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§
- Delete
Bucket - 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.