You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
zarr-developers/zarr-python#4028 (in review) adds shards_initialized, initialized_regions, initialized_chunk_regions, and read_regions. moczarr's
discovery is arithmetic (coverage MOCs, no listings), so these don't replace the MOC
path — they slot in underneath and beside it. Filed now so the flip-list is on record;
blocked on the first zarr-python release carrying #4028.
Integration points
read_regions as the within-leaf transport. moczarr computes populated regions
from coverage metadata with zero store round-trips; read_regions takes
caller-supplied regions by design and does the concurrent fetch/decode. For sharded
leaves (the zagg#233 default), feeding MOC-derived regions to read_regions replaces
per-leaf assembly plumbing with upstream-maintained concurrency, and the sharding
codec's partial decode already skips empty inner chunks. (Follow-on to the open_hive: shared store handle — O(leaves) store opens must collapse before thousand-leaf stores #5
store-handle consolidation: same goal, one more layer collapsed.)
Degraded-path occupancy from shard indexes — posture decision. Today a corrupt
coverage-bitmap sidecar raises (the D9 family: degrade, never wrong answers — but
for sidecars we currently have nothing to degrade to). initialized_chunk_regions
recovers true inner-chunk occupancy from the shard indexes themselves (one small
range-read per populated shard, no chunk data). Options:
keep raising (sidecar corruption stays loud), or
degrade to shard-index introspection with a warning — slower but correct, matching
the "unusable root MOC → walk" posture.
This is a semantics choice for @espg; the primitive makes the second option cheap to
implement either way.
Sidecar cross-validation. The bitmap sidecar and the shard index declare the same
occupancy from different sources (metadata vs. bytes). A test-suite / tools/ check
that they agree on the fixture store (and optionally an opt-in runtime verify flag)
turns #4028 into a correctness cross-check on the whole write path, not just a read
optimization.
Out of scope
The hive-tree discovery walk (leaf group discovery) — that's store-level listing of
the digit tree, not array-level occupancy; #4028 doesn't apply.
zarr-python floor bump to the release carrying #4028 (extra or core dep as
appropriate).
Acceptance: sharded-leaf reads route through read_regions; the sidecar/shard-index
agreement check runs in CI against the fixture store; posture decision from (2)
recorded here and implemented or explicitly declined.
🤖 from Claude
Context
zarr-developers/zarr-python#4028 (in review) adds
shards_initialized,initialized_regions,initialized_chunk_regions, andread_regions. moczarr'sdiscovery is arithmetic (coverage MOCs, no listings), so these don't replace the MOC
path — they slot in underneath and beside it. Filed now so the flip-list is on record;
blocked on the first zarr-python release carrying #4028.
Integration points
read_regionsas the within-leaf transport. moczarr computes populated regionsfrom coverage metadata with zero store round-trips;
read_regionstakescaller-supplied regions by design and does the concurrent fetch/decode. For sharded
leaves (the zagg#233 default), feeding MOC-derived regions to
read_regionsreplacesper-leaf assembly plumbing with upstream-maintained concurrency, and the sharding
codec's partial decode already skips empty inner chunks. (Follow-on to the open_hive: shared store handle — O(leaves) store opens must collapse before thousand-leaf stores #5
store-handle consolidation: same goal, one more layer collapsed.)
coverage-bitmap sidecar raises (the D9 family: degrade, never wrong answers — but
for sidecars we currently have nothing to degrade to).
initialized_chunk_regionsrecovers true inner-chunk occupancy from the shard indexes themselves (one small
range-read per populated shard, no chunk data). Options:
the "unusable root MOC → walk" posture.
This is a semantics choice for @espg; the primitive makes the second option cheap to
implement either way.
occupancy from different sources (metadata vs. bytes). A test-suite /
tools/checkthat they agree on the fixture store (and optionally an opt-in runtime verify flag)
turns #4028 into a correctness cross-check on the whole write path, not just a read
optimization.
Out of scope
the digit tree, not array-level occupancy; #4028 doesn't apply.
change; at most a docs mention, since the MOC path never issues the empty reads that
negative caching remembers.
Gating / acceptance
appropriate).
read_regions; the sidecar/shard-indexagreement check runs in CI against the fixture store; posture decision from (2)
recorded here and implemented or explicitly declined.
Cross-refs: #1 (plan: layers), #5 (store-handle consolidation), englacial/zagg#233,
zarr-developers/zarr-python#4028 / #3929 / #4042.