{
  "status": "shipping",
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-17",
  "advantages": [],
  "limitations": [],
  "slug": "hdf5-chunked-layout",
  "term": "HDF5 chunked layout",
  "aliases": [
    "HDF5 chunked storage",
    "HDF5 dataset chunk"
  ],
  "definition": "An HDF5 chunked layout divides a dataset into fixed-shape array blocks that can be stored and filtered separately.",
  "note": "Geometry: chunk dimensions are chosen at dataset creation. Compression and other filters operate on chunks; selecting a few values can require processing a whole filtered chunk. A different chunk shape requires rewriting the dataset. [h5py-dataset]\n\nByte accounting: a 32 by 32 chunk of four-byte integers expands to 4,096 bytes, regardless of its smaller compressed size. In a measured scalar-read trace, a cache large enough for the compressed bytes but smaller than the decoded chunk still reread that chunk for each selection. [hesela-cache]\n\nTerminology: array chunk geometry is distinct from content-defined chunking, which places boundaries based on byte content for purposes such as deduplication. [h5py-dataset] [hesela-cdc]",
  "related": [
    "hdf5",
    "hdf5-raw-data-chunk-cache",
    "content-defined-chunking"
  ],
  "citations": [
    {
      "id": "h5py-dataset",
      "title": "h5py 3.15: Datasets, chunked storage and filter pipeline",
      "url": "https://docs.h5py.org/en/3.15.0/high/dataset.html",
      "accessed": "2026-10-17"
    },
    {
      "id": "hesela-cache",
      "title": "Hesela: HDF5 chunk cache, measured file-driver reads",
      "url": "https://hesela.com/analyses/hdf5-chunk-cache-read-amplification/",
      "accessed": "2026-10-17"
    },
    {
      "id": "hesela-cdc",
      "title": "Hesela: Content-defined chunking boundaries",
      "url": "https://hesela.com/analyses/content-defined-chunking-boundaries/",
      "accessed": "2026-10-17"
    }
  ]
}
