Module mutations_batcher (2.23.1)

API documentation for bigtable.data._async.mutations_batcher module.

Classes

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
)

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)