Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider descendants_must_be_read feature for groups #207

Open
jstriebel opened this issue Feb 16, 2023 · 0 comments
Open

Consider descendants_must_be_read feature for groups #207

jstriebel opened this issue Feb 16, 2023 · 0 comments

Comments

@jstriebel
Copy link
Member

Assuming a group extension changes the metadata for all its children (e.g. consolidated metadata), but also has other parent groups, it is important to read the group with this extension, even when opening the hierarchy via a parent. An example:

  • Group G has such an extension (e.g. consolidated metadata)
  • Group P is a parent
  • Array A is in group G, and can only be opened via G

Then P should signal that group G must be read in order to open any subarrays. This could be done via a group feature descendants_must_be_read, which should be set to true for all parents of G in the example. This is not included in the original spec since the feature is too speculative concerning the opening implementation and future group extension. It should be considered once such a group extension exists. (See #204 (comment).)

The original proposal of this feature was to add a descendants_must_be_read key to the group metadata:

``descendants_must_be_read``


    Boolean that indicates whether any descendant groups may themselves specify
    storage transformers or other features needed to read their contents.
    Defaults to ``false``. If set to ``true``, implementations must read the
    metadata of all groups along the path to any descendant arrays or groups. If
    set to ``false`` (or not specified), for improved efficiency implementations
    need not read the metadata of groups along the path to descendants when
    opening those descendants.

    When adding a group extension to a non-root group, implementations must set
    this attribute to ``true`` in all ancestor groups.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant