Skip to main content

tile_prefix

Function tile_prefix 

Source
pub fn tile_prefix(
    schema: &ArraySchema,
    tile_indices: &[u64],
) -> ArrayResult<u64>
Expand description

The space-filling-curve key of the tile at tile_indices.

The memtable, the segment index, the transaction overlay and retention group cells by this key. A cluster routes a tile by the top bits of fmix64(key) (nodedb_types::array_route::prefix_bucket), not by the key’s own top bits. Every cell inside a group stays addressed by its full coordinate: a lookup matches the coordinate within the group (TileBuffer::get_cell_bytes, extract_cell_bytes), and a tile’s MBR is built from the cells it holds. Two tiles that share a key therefore share one group and one route, and lose no cell.

A dimension whose tile count fits its share of the key bits scales each index over that count to the full bit width. Its tiles keep distinct, ordered keys. A dimension with more tiles than its bits can number, such as one with the default full-range domain, keeps the low bits of the index instead. Nearby tiles then keep distinct keys, and tiles 2^bits apart share one. Such keys can share their top bits, and the routing mix still spreads them over buckets.