Controlled software observations / synthetic arrays
Zarr archive acceptance observations
Three controlled software studies connect missing objects, fill interpretation, shard completeness and metadata age to the scientific array returned by a reader.
Download CSV696 read observations / three separate studiesMetadata and rows / Full analysis / Reproduction guide / Original file hashes
Method
Generated from unchanged original observations: Zarr 3.1.3 (54 rows); Xarray 2025.10.1 and 2026.9.0 over Zarr 3.1.3 (252 rows per release); Zarr 3.4.1 strict-policy reads (138 rows). Eight routing controls and one reopen control are retained separately, not counted as CSV rows. All values are dimensionless synthetic integers or decoded missing markers.
The CSV normalizes read outcomes without replacing the originals. Each row names its source file and zero-based observation index. JSON null represents a decoded NaN in consumer values; a null values field and an error class represent a failed read. Neither missing values nor null fields are converted to zero by this generator.
| Condition | Format | Nonmissing count | Mean |
|---|---|---|---|
| Intact 10..17 | 2 | 8 | 13.5 |
| Tail chunk deleted | 2 | 4 | 11.5 |
| Intact 0..7 | 2 | 7 | 4 |
| Intact 10..17 | 3 | 8 | 13.5 |
| Tail chunk deleted | 3 | 8 | 5.75 |
| Intact 0..7 | 3 | 8 | 3.5 |
Three version scopes
- Zarr-Python 3.1.3: absence, payload checksums, relocation and format-2 consolidated metadata; fill -999.
- Xarray 2025.10.1 and 2026.9.0 over Zarr 3.1.3: storage fill zero, CF masking and reduction denominators; no Dask or consolidation.
- Zarr-Python 3.4.1: format-3 strict reads, both shard-index locations and effective configuration; fill -999.
The eight API-routing controls and one reopen control are not part of the 696-row CSV. Read routing.json and observations.json for those outcomes. Different observation units must not be combined into a failure probability.
Reproduce
Use the guide and a separate environment for each dependency set. The harnesses create only private synthetic stores. Preserve the published observations and write fresh captures to new filenames. Compare observation records, not host-specific environment fields. The original source/code review is not independent peer review.
For table regeneration, retain this package at replay/public/research/zarr-archive/, then run:
node replay/public/research/zarr-archive/build-dataset.mjs --root replayThe generator verifies every selected original file against inputs.json, checks population/version boundaries and recomputes count, sum and mean. Hashes identify known bytes; trust in the expected manifest must come from outside the damaged store.
Original evidence files
zarr-fill-evidence/experiment.pyzarr-fill-evidence/test_experiment.pyzarr-fill-evidence/observations.jsonzarr-fill-evidence/requirements.txtzarr-fill-evidence/provenance.jsonzarr-fill-evidence/sources.jsonzarr-xarray-consumer/experiment.pyzarr-xarray-consumer/test_experiment.pyzarr-xarray-consumer/validate.pyzarr-xarray-consumer/observations-2025.10.1.jsonzarr-xarray-consumer/observations-2026.9.0.jsonzarr-xarray-consumer/requirements-2025.10.1.txtzarr-xarray-consumer/requirements-2026.9.0.txtzarr-xarray-consumer/provenance.jsonzarr-strict-shards/experiment.pyzarr-strict-shards/routing.pyzarr-strict-shards/test_experiment.pyzarr-strict-shards/observations.jsonzarr-strict-shards/routing.jsonzarr-strict-shards/requirements.txtzarr-strict-shards/provenance.jsonzarr-strict-shards/claims.json
Column definitions
- study
- study
- version
- Zarr version for original/strict; Xarray version for consumer rows.
- case
- case
- format
- format
- repetition
- Original repeat index; null for the strict single-capture matrix.
- layout
- layout
- state
- state
- selection
- selection
- strict
- strict
- sourceFile
- Path relative to /research/zarr-archive/ of the original report.
- sourceIndex
- Zero-based index into the original report's observations array.
- values
- Decoded values; JSON null marks NaN in the Xarray report.
- error
- error
- count
- Count of non-null decoded values, not a completeness measure.
- sum
- Sum of non-null decoded values; dimensionless.
- mean
- Sum divided by non-null count; null for a read error.
Limits
- One Python implementation family and local stores; no field incidence estimate.
- Different experiments use different fill values and versions. Do not pool row counts into a reliability denominator.
- Strict-policy observations use format 3 in Zarr 3.4.1; stale consolidation observations use format 2 in Zarr 3.1.3.
- Xarray behavior is scoped to the two pinned releases, not current software. No Dask, concurrent writers, cloud race, crash or power-loss tests.
- Source/code self-review, not independent peer review. Input hashes identify retained bytes; they are not signatures.
Sources and reuse
CC0-1.0 for Hesela's original code and observations; third-party software and documents retain their own licenses.
- Zarr format 2 specification: chunks and fill values
- Zarr format 3 core specification: fill values and array reads
- Zarr sharding codec 1.0: empty inner chunks and index layout
- Zarr CRC32C codec 1.0
- Zarr-Python: runtime array configuration
- Zarr-Python 3.4.1: existing-array open and creation branches
- Xarray 2025.10.1: open_zarr decoding contract
- Xarray 2025.10.1: DataArray.mean and skipna
- Xarray issue #10269: fill-mask option forwarding
- Xarray v2026.09.0: Zarr backend implementation
- Zarr-Python: consolidated metadata and synchronization
Definitions: Zarr, Zarr fill value, Zarr consolidated metadata.
Published by Hesela team
Report a correction · Editorial standards · Reuse guidance
Cite this page
Hesela team. Zarr archive acceptance observations. Hesela. https://hesela.dev/datasets/zarr-archive-acceptance/