Skip to main content

Module partition

Module partition 

Source
Expand description

Cell-to-tile partitioning for distributed array writes.

Both coord_put and coord_delete receive a flat list of cells (or coord tuples) paired with their pre-computed Hilbert prefixes. This module groups them by tile bucket (the top prefix_bits of the Hilbert prefix) and maps each bucket to its owning vShard via array_vshard_for_tile.

Callers pre-attach Hilbert prefixes because the query planner already holds the schema and can compute them at planning time; doing the same computation again inside the coordinator would require an additional schema lookup that nodedb-cluster intentionally avoids (it carries no dependency on nodedb-array).

§Output shape

partition_put_cells returns a Vec<(vshard_id, representative_hilbert_prefix, cells_msgpack)> where cells_msgpack is a zerompk-encoded Vec<raw-cell-bytes> (the same bytes the shard handler passes to exec_put).

partition_delete_coords returns a Vec<(vshard_id, coords_msgpack)> where coords_msgpack is a zerompk-encoded Vec<raw-coord-bytes>.

Structs§

DeleteBucket
One bucket produced by partition_delete_coords.
PutBucket
One bucket produced by partition_put_cells.

Functions§

partition_delete_coords
Group (hilbert_prefix, coord_msgpack) pairs by tile bucket.
partition_put_cells
Group (hilbert_prefix, cell_msgpack) pairs by tile bucket.