Remote reads (range-read M2/M3: open_storage, HTTP/S3) and near-complete in-place editing #18

Merged
osobh merged 52 commits from feat/p3-remote-editor into main 2026-09-27 11:15:23 +00:00
Showing only changes of commit 4e8109770d - Show all commits
@@ -717,6 +717,42 @@ fn shrink_matches_libhdf5() {
false,
99,
);
// Early allocation with unlimited dimensions (Extensible Array,
// version-2 B-tree; version-1 B-tree under `earliest`), filtered and
// not: growth allocates and fills every new chunk, as libhdf5 does.
for (i, (lv, dump)) in [("'earliest'", true), ("'v110'", true), ("'latest'", false)]
.iter()
.enumerate()
{
for (j, (max, z)) in [
("(None, 9)", ""),
("(None, None)", ""),
("(None, 9)", ", compression='gzip'"),
("(None, None)", ", compression='gzip'"),
]
.iter()
.enumerate()
{
shrink_workload(
&format!("early_{i}_{j}"),
lv,
&format!(
"\x20 f.create_dataset('x', data=np.arange(72, dtype='<i4').reshape(8, 9), \
maxshape={max}, chunks=(3, 4), fillvalue=-4{z})\n\
\x20 dcpl = f['x'].id.get_create_plist()\n\
\x20 del f['x']\n\
\x20 dcpl.set_alloc_time(h5d.ALLOC_TIME_EARLY)\n\
\x20 h5d.create(f.id, b'x', h5t.STD_I32LE, \
h5s.create_simple((8, 9), tuple(h5s.UNLIMITED if m is None else m for m in {max})), \
dcpl=dcpl)\n\
\x20 f['x'][...] = np.arange(72, dtype='<i4').reshape(8, 9)\n"
),
-4,
*dump,
200 + (i * 4 + j) as u64,
);
}
}
}
/// An implicit chunk index (early allocation, no filters, fixed maximum