The cost of a chained walk
Two readers, one file, one request: a single plane, deep inside a microscopy stack. They differ only in how they find out where it lives.
Object storage charges tens of milliseconds per request, against about 0.1 ms for a local seek. Reading the metadata of one NetCDF file took 502 sequential GETs to move 267 KB, an effective 7 KB/s (Nicholas, 2025).
- Native: each block names the next, so the walk is a chain that grows with the file.
- Icechunk: the location is looked up in a manifest. Four hops, never more.
Both read the same bytes in the same object. Zarr would beat them both at two hops, by storing a second copy of the array, so it is not raced here.
Object storage
Native OME-TIFF
Through Icechunk
Native reader
0 B/s
effective
round trips 0
GETs 0
first byte 0.00 s
moved 0 B
Icechunk reader
0 B/s
effective
round trips 0
GETs 0
first byte 0.00 s
moved 0 B