@@ -486,7 +486,7 @@ document. Store.*
486486* Metadata documents are defined using the JSON type system (objects,
487487 arrays, strings, numbers).
488488
489- * Metadata documents are encoded for storage.
489+ * Metadata documents are serialised ( encoded) for storage.
490490
491491 * Default encoding is JSON, but protocol extensions can define other
492492 encodings for group and array metadata, see below.
@@ -870,18 +870,67 @@ Operation | Implementation
870870
871871### Making hierarchy discovery more efficient
872872
873- * Current v3 resolves this by two means:
873+ * Current v3 resolves this by three means:
874874
875875 1 . Split the [ storage key
876876 space] ( https://zarr-specs.readthedocs.io/en/core-protocol-v3.0-dev/protocol/core/v3.0.html#storage-keys ) ,
877877 so all metadata keys have prefix "meta/" and all chunk keys have
878878 prefix "data/".
879+
880+ 2 . Change the format of metadata keys slightly (see below).
879881
880- 2 . Leverage the fact that many stores, including cloud object
882+ 3 . Leverage the fact that many stores, including cloud object
881883 stores, can support ` list_prefix(prefix) ` and/or
882884 ` list_dir(prefix) ` operations, which natively list all keys with
883885 a given prefix.
884886
887+ ===
888+
889+ ### v2/3 comparison - storage keys
890+
891+ Bootstrap metadata ...
892+
893+ Version | Storage key
894+ --- | ---
895+ v2 | N/A
896+ v3 | ` zarr.json `
897+
898+ ===
899+
900+ ### v2/3 comparison - storage keys
901+
902+ Array metadata, e.g., for array at path "/foo/bar" ...
903+
904+ Version | Storage key
905+ --- | ---
906+ v2 | ` foo/bar/.zarray `
907+ v3 | ` meta/root/foo/bar.array `
908+
909+ ===
910+
911+ ### v2/3 comparison - storage keys
912+
913+ Group metadata, e.g., for group at path "/foo/baz" ...
914+
915+ Version | Storage key
916+ --- | ---
917+ v2 | ` foo/baz/.zgroup `
918+ v3 | ` meta/root/foo/baz.group `
919+
920+ ===
921+
922+ ### v2/3 comparison - storage keys
923+
924+ Chunk data, e.g., for chunk at grid index (0, 0) in 2D array at path "/foo/bar" ...
925+
926+ Version | Storage key
927+ --- | ---
928+ v2 | ` foo/bar/0.0 `
929+ v3 | ` data/foo/bar/0.0 `
930+ v3* | ` data/foo/bar/0/0 `
931+
932+ <small >* chunk key format can be configured in array metadata</small >
933+
885934====
886935
887936### [ Core protocol] ( https://zarr-specs.readthedocs.io/en/core-protocol-v3.0-dev/protocol/core/v3.0.html#protocol-operations ) - examples
0 commit comments