Module bigtable

Module bigtable 

Source
Expand description

BigTable backend for high-volume, low-latency storage of small objects.

§Row Format

Each row key is the object’s storage path. A row contains either an object or a tombstone — never both. The two layouts are mutually exclusive and distinguished by column presence:

ColumnFamilyContentPresent when
pfg/fmCompressed payload bytesObject row only
mfg/fmMetadata JSONObject row only
rfg/fmRedirect path to LT storageTombstone row only
tfg/fmTombstone metadata JSONTombstone row only

The r column signals a tombstone row: its value is the long-term ObjectId serialized via as_storage_path(). Callers can resolve the LT object directly from the r value without reconstructing it from the row key.

p/m and r/t are mutually exclusive. Every write begins with a DeleteFromRow mutation that clears all columns before writing the new cells, so mixed rows cannot exist.

§Legacy Tombstone Format

Tombstones written before the r/t column layout used the object-row format with an empty p column and "is_redirect_tombstone": true in the m JSON. Both formats are supported for reading. A bigtable.legacy_tombstone_read metric is emitted on each legacy read. Legacy tombstones expire naturally by TTL/GC; TTI bumps transparently upgrade them to the new format.

Structs§

BigTableBackend
BigTable storage backend for high-volume, low-latency object storage.
BigTableConfig
Configuration for BigTableBackend.