Skip to content

Commit 0d7c882

Browse files
committed
add implementation note about resizing
1 parent b9636e8 commit 0d7c882

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

docs/core/v3.0.rst

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1649,6 +1649,28 @@ a prefix will erase all the implicit group in the prefix.
16491649
Care must thus be taken when erasing an array or a group if the parent needs to
16501650
be converted into an explicit group.
16511651

1652+
Resizing
1653+
--------
1654+
1655+
In general, arrays can be resized for writable (and if necessary deletable)
1656+
stores. In the most basic case, two scenarios can be considered, shrinking along
1657+
an array dimension, or increasing its size.
1658+
1659+
When shrinking, implementations can consider to delete chunks if the store
1660+
allows this, or keep them. This should either be configurable, or be
1661+
communicated to the user appropriately.
1662+
1663+
When increasing an array along a dimension, chunks may or may not have existed
1664+
in the new area. For areas where no chunks existed previously, they implicitly
1665+
have the fill value after updating the metadata, no new chunks need to be
1666+
written in this case. Previous partial chunks will contain the fill value at the
1667+
time of writing them by default. If there was chunk data in the new area which
1668+
was not deleted when shrinking the array, this data will be shown by default.
1669+
The latter case should be signalled to the user appropriately. An implementation
1670+
can also allow the user to choose to delete previous data explicitly when
1671+
increasing the array (by writing the fill value into partial chunks and deleting
1672+
others), but this should not be the default behavior.
1673+
16521674

16531675
Comparison with Zarr v2
16541676
=======================

0 commit comments

Comments
 (0)