Expand description
Transaction definitions for updating datasets
Prior to creating a new manifest, a transaction must be created representing the changes being made to the dataset. By representing them as incremental changes, we can detect whether concurrent operations are compatible with one another. We can also rebuild manifests when retrying committing a manifest.
For more details please refer to the Transaction Specification.
The work splits along these lines:
builder Transaction: an operation plus the version it was based on
operation the vocabulary of changes an operation can describe
update_map incremental edits to the manifest's string maps
validate pre-commit checks against the manifest being replaced
manifest_build applying an operation to produce the next manifest
index_maintenance how that narrows or drops index metadata
row_version how it assigns row ids and per-row version metadata
conflicts whether two operations collide, for the commit retry path
proto the persisted protobuf encoding of all of the aboveStructs§
- Coverage
Identity - What one physical index segment contributes to coverage.
- Data
Overlay Group - Overlay files to append to a single fragment, in order (the last entry is
newest). The overlays are appended to the fragment’s existing
overlayslist rather than replacing it, so overlays written by concurrent commits are preserved. Each overlay’scommitted_versionis stamped to the new dataset version at commit time (re-stamped on retry). - Data
Replacement Group - Read
Version State - The version a transaction read, as the coverage derivation needs it.
- Rewrite
Group - Rewritten
Index - Transaction
- A change to a dataset that can be retried
- Transaction
Builder - Add TransactionBuilder for flexibly setting option without using
mut - Update
Map - Represents updates to a map (either incremental or replacement)
- Update
MapEntry - An entry for a map update. If value is None, the key will be removed from the map.
- Updated
Fragment Offsets - Matched physical row offsets per fragment for a partial
UpdateMode::RewriteColumnsupdate.
Enums§
- Operation
- An operation on a dataset.
- Update
Mode
Functions§
- translate_
config_ updates - Helper function to translate old-style config updates to new UpdateMap format
- translate_
schema_ metadata_ updates - Helper function to translate old-style schema metadata to new UpdateMap format
- validate_
operation - Validate the operation is valid for the given manifest.
Type Aliases§
- Logical
Index Segments - Non-system logical index name -> its physical segments, ordered by UUID.