As clients build up the chunks for a dataset, they may leave certain elements uncovered in the dataset's dataspace.

Uncovered, variable-sized chunks

This is not a problem for storing the chunk information, but it can be a problem if the client attempts to access elements not stored in any existing chunks.

For example, if each process chose to operate on rectangular selections in the dataset:

Uncovered, variable-sized chunks, with selections that access uncovered elements

What should happen when reading or writing to elements that are not covered by any chunks?

Some potential solutions:

  1. Don't allow datasets to be created with uncovered elements. This will probably be a problem when a dataset's dataspace is extended.
  2. Don't do any I/O, just return an error from HDF5 calls that attempt to access elements not in any chunks.
  3. Define a "background" chunk that contains all uncovered chunks. This is a problem when a chunk is defined later that covers an element - how to access the elements that have been covered?
  4. Treat uncovered elements as a "black hole" on writing and as the "fill value" when reading.