As of January 1, 2020 this library no longer supports Python 2 on the latest released version. Library versions released prior to that date will continue to be available. For more information please visit Python 2 support on Google Cloud.

Mutations Batcher Async

class google.cloud.bigtable.data._async.mutations_batcher.MutationsBatcherAsync(table: TableAsync, *, flush_interval: float | None = 5, flush_limit_mutation_count: int | None = 1000, flush_limit_bytes: int = 20971520, flow_control_max_mutation_count: int = 100000, flow_control_max_bytes: int = 104857600, batch_operation_timeout: float | TABLE_DEFAULT = TABLE_DEFAULT.MUTATE_ROWS, batch_attempt_timeout: float | None | TABLE_DEFAULT = TABLE_DEFAULT.MUTATE_ROWS, batch_retryable_errors: Sequence[type[Exception]] | TABLE_DEFAULT = TABLE_DEFAULT.MUTATE_ROWS)[source]

Bases: object

Allows users to send batches using context manager API:

Runs mutate_row, mutate_rows, and check_and_mutate_row internally, combining to use as few network requests as required

Flushes:
  • every flush_interval seconds

  • after queue reaches flush_count in quantity

  • after queue reaches flush_size_bytes in storage size

  • when batcher is closed or destroyed

async with table.mutations_batcher() as batcher:
for i in range(10):

batcher.add(row, mut)

Parameters
  • table (-) – Table to preform rpc calls

  • flush_interval (-) – Automatically flush every flush_interval seconds. If None, no time-based flushing is performed.

  • flush_limit_mutation_count (-) – Flush immediately after flush_limit_mutation_count mutations are added across all entries. If None, this limit is ignored.

  • flush_limit_bytes (-) – Flush immediately after flush_limit_bytes bytes are added.

  • flow_control_max_mutation_count (-) – Maximum number of inflight mutations.

  • flow_control_max_bytes (-) – Maximum number of inflight bytes.

  • batch_operation_timeout (-) – timeout for each mutate_rows operation, in seconds. If TABLE_DEFAULT, defaults to the Table’s default_mutate_rows_operation_timeout.

  • batch_attempt_timeout (-) – timeout for each individual request, in seconds. If TABLE_DEFAULT, defaults to the Table’s default_mutate_rows_attempt_timeout. If None, defaults to batch_operation_timeout.

  • batch_retryable_errors (-) – a list of errors that will be retried if encountered. Defaults to the Table’s default_mutate_rows_retryable_errors.

async __aenter__()[source]

For context manager API

async __aexit__(exc_type, exc, tb)[source]

For context manager API

async append(mutation_entry: google.cloud.bigtable.data.mutations.RowMutationEntry)[source]

Add a new set of mutations to the internal queue

TODO: return a future to track completion of this entry

Parameters

mutation_entry (-) – new entry to add to flush queue

Raises
  • - RuntimeError if batcher is closed

  • - ValueError if an invalid mutation type is added

async close()[source]

Flush queue and clean up resources