Class MutationsBatcher (2.28.1)

MutationsBatcher(
    table: TableType,
    *,
    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

Will automatically flush the batcher:

  • every flush_interval seconds
  • after queue size reaches flush_limit_mutation_count
  • after queue reaches flush_limit_bytes
  • when batcher is closed or destroyed

Properties

closed

Returns:

  • True if the batcher is closed, False otherwise

Methods

__enter__

__enter__()

Allow use of context manager API

__exit__

__exit__(exc_type, exc, tb)

Allow use of context manager API.

Flushes the batcher and cleans up resources.

append

append(mutation_entry: RowMutationEntry)

Add a new set of mutations to the internal queue

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

close

close()

Flush queue and clean up resources