Class MutationsBatcherAsync (2.23.1)

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
)

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)

Methods

MutationsBatcherAsync

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
)

__aenter__

__aenter__()

For context manager API

__aexit__

__aexit__(exc_type, exc, tb)

For context manager API

append

append(mutation_entry: google.cloud.bigtable.data.mutations.RowMutationEntry)

Add a new set of mutations to the internal queue

TODO: return a future to track completion of this entry

Exceptions
Type Description
RuntimeError if batcher is closed:
ValueError if an invalid mutation type is added:

close

close()

Flush queue and clean up resources