Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
ae8577b
Unify lazy caching for remote arrays
FrancescAlted Sep 3, 2026
d7d20cc
Optimize lazy HTTPS opening
FrancescAlted Sep 3, 2026
65fdd56
Clarify fsspec HTTPS example
FrancescAlted Sep 3, 2026
6c6e5a4
Avoid redundant Caterva2 metadata refresh
FrancescAlted Sep 3, 2026
bca3cf4
Clarify and extend remote array caching
FrancescAlted Sep 4, 2026
eb214c1
Reconstruct remote sources from proxy caches
FrancescAlted Sep 4, 2026
266e8e8
Count metadata in remote traffic
FrancescAlted Sep 4, 2026
5200b64
Report persistent cache status
FrancescAlted Sep 4, 2026
408899d
Update C2Array test doubles for traffic
FrancescAlted Sep 4, 2026
47fd165
Reduce default test suite runtime
FrancescAlted Sep 4, 2026
1d0e2b9
Add persistable RemoteProxy
FrancescAlted Sep 4, 2026
38890c0
Harden remote proxy source refresh
FrancescAlted Sep 4, 2026
7e7753c
Make remote proxies self-caching
FrancescAlted Sep 5, 2026
dfb193e
Unify lazy remote array access under RemoteProxy with in-memory caching
FrancescAlted Sep 5, 2026
8d4ae0d
Support unbounded cache for DISK remote proxies and update docs
FrancescAlted Sep 5, 2026
7ff8842
Fix remote proxy cache accounting and document quota behavior
FrancescAlted Sep 5, 2026
1d193f6
Skip remote proxy tests when fsspec is not installed
FrancescAlted Sep 5, 2026
1429910
Document remote proxy v5 storage admission
FrancescAlted Sep 5, 2026
a7298d5
New RemoteProxy.with_sparse_cache() for deploying a sparse cache
FrancescAlted Sep 6, 2026
a77ac97
Update to latest C-Blosc2 source
FrancescAlted Sep 6, 2026
5fbd00a
Add sparse remote proxy v7 support
FrancescAlted Sep 6, 2026
3d2b5e2
Clarify contiguous compatibility mode
FrancescAlted Sep 6, 2026
b8a3865
Set cache maintenance interval to one minute
FrancescAlted Sep 6, 2026
d8d21ed
Support storage_options in blosc2.open and organize remote examples
FrancescAlted Sep 7, 2026
f47e35d
Add b2nd-to-zarr CLI utility
FrancescAlted Sep 7, 2026
389ae67
Add immutable remote proxy sources
FrancescAlted Sep 7, 2026
aa6b219
Support fixed-size Zarr dtypes
FrancescAlted Sep 7, 2026
3973881
Support scalar and empty Zarr arrays
FrancescAlted Sep 7, 2026
4b1af61
Support remote HDF5 arrays via kerchunk and unify dataset syntax
FrancescAlted Sep 8, 2026
3f9dc19
Add native remote array reads from B2Z hierarchies
FrancescAlted Sep 8, 2026
8fc6fb5
Optimize remote B2Z metadata reads
FrancescAlted Sep 8, 2026
480a413
Support meta and vlmeta access and caching in RemoteProxy
FrancescAlted Sep 8, 2026
00a1ab8
Add RemoteProxy attrs alias and filter HDF5 dimension metadata
FrancescAlted Sep 8, 2026
ee7d4fd
Read public Caterva2 attributes in remote arrays
FrancescAlted Sep 8, 2026
27df9e5
Add remote array support to b2view
FrancescAlted Sep 8, 2026
6248887
Add attrs as the recommended user metadata interface
FrancescAlted Sep 8, 2026
c26ece6
Hide hierarchy details for standalone b2view objects
FrancescAlted Sep 8, 2026
a7070c1
Fix Zarr decoder startup in b2view
FrancescAlted Sep 8, 2026
89548d9
Add remote hierarchy browsing
FrancescAlted Sep 9, 2026
57b693f
Fix meta annotation
FrancescAlted Sep 9, 2026
6fc8ed6
Update remote arrays guide and B2ZNDSource docs
FrancescAlted Sep 9, 2026
565cdd0
Fix remote table paging layout
FrancescAlted Sep 9, 2026
8583d46
Exercise remote array backends in CI
FrancescAlted Sep 9, 2026
bec0f5e
Document HTTP/HTTPS and general fsspec support for remote arrays
FrancescAlted Sep 9, 2026
824d86a
Some more fixes for the test suite, and remote arrays docs review
FrancescAlted Sep 9, 2026
b891fb6
Handle unavailable S3 test credentials
FrancescAlted Sep 9, 2026
b672180
Add RemoteArray and initial RemoteStore discovery
FrancescAlted Sep 10, 2026
0f82b2e
Add shared RemoteStore memory caching
FrancescAlted Sep 10, 2026
169a04f
Add persistent RemoteStore disk caching
FrancescAlted Sep 10, 2026
f75ed01
Migrate b2view to shared RemoteStore caching
FrancescAlted Sep 10, 2026
a0c19cb
Step 6, and v13 plan is complete now
FrancescAlted Sep 10, 2026
5ab63dd
Add portable RemoteStore exports and immutable caches
FrancescAlted Sep 10, 2026
6b40b5a
Fix column capping when paging backward to start in b2view
FrancescAlted Sep 10, 2026
e3de169
Fix invalid Windows filename characters in Zarr proxy test
FrancescAlted Sep 10, 2026
5f175d5
Updated docs for the new remote features
FrancescAlted Sep 10, 2026
e23003b
Add --cache-dir option to b2view for persistent remote caching
FrancescAlted Sep 10, 2026
d975eda
C-Blosc2 bumped to latest 3.3.4
FrancescAlted Sep 10, 2026
af0ce37
Fix Windows hang in remote store tests and cache lock cleanup
FrancescAlted Sep 10, 2026
8717439
Fix flaky timeout in remote listing retry and shutdown test
FrancescAlted Sep 10, 2026
a9fa7cc
Fix remote persistence and protect conversion inputs
FrancescAlted Sep 10, 2026
c5d0397
Wait for remote viewer results in asynchronous tests
FrancescAlted Sep 10, 2026
c89e66f
Disable in-process HTTP server tests on Windows
FrancescAlted Sep 10, 2026
9d41755
Drop file-backed index handles between tests
FrancescAlted Sep 10, 2026
64677af
Bound the two-writer barrier so a failed sibling cannot hang
FrancescAlted Sep 10, 2026
e8b3d83
Name the test behind a CI hang instead of hanging
FrancescAlted Sep 10, 2026
c35ea12
Give the b2view waits a wall-clock budget
FrancescAlted Sep 10, 2026
f1f3a1f
Keep the deadman's stacks where CI can show them
FrancescAlted Sep 10, 2026
33bdf00
Let the warm cache restart wait for the first browser to close
FrancescAlted Sep 10, 2026
381e2db
Catch hangs outside tests with a session deadman
FrancescAlted Sep 10, 2026
b740310
Bound the zarr sync bridge under kerchunk's HDF5 translation
FrancescAlted Sep 10, 2026
dbae1e2
Keep zarr Buffer objects out of a cut-short HDF5 manifest
FrancescAlted Sep 10, 2026
9c7aca9
Abort an HDF5 translation whose zarr bridge timed out
FrancescAlted Sep 11, 2026
fd1324c
Add shared RemoteStore sparse caches
FrancescAlted Sep 11, 2026
4066959
Update B2Z sparse attachment test
FrancescAlted Sep 11, 2026
2eba2fc
Reset Zarr resources before HDF5 scans
FrancescAlted Sep 11, 2026
2f2964d
Apply blacken-docs formatting
FrancescAlted Sep 11, 2026
0c6525e
Keep Ruff format off Markdown files
FrancescAlted Sep 11, 2026
8f0f132
Address review feedback on remote arrays, b2view, and zarr conversion
FrancescAlted Sep 11, 2026
8d27fe3
Wait for the previous remote browser close before refresh reopens
FrancescAlted Sep 11, 2026
677da11
Emit numcodecs compressors for b2nd-to-zarr v2 output
FrancescAlted Sep 11, 2026
13e85a2
Coordinate Zarr sync resets with in-flight reads
FrancescAlted Sep 11, 2026
951ae13
Partition RemoteArray caches by fsspec storage options
FrancescAlted Sep 11, 2026
6196566
Partition RemoteStore caches by fsspec storage options
FrancescAlted Sep 11, 2026
dc00d7d
Keep format and dataset selections when localizing fsspec opens
FrancescAlted Sep 11, 2026
e0a69b3
Restore full-strength locking stress runs behind a heavy marker
FrancescAlted Sep 11, 2026
5e2ff0b
Document the Zarr adapter's fixed-size dtype support
FrancescAlted Sep 11, 2026
edccebc
Wait for End to take effect in the remote paging test
FrancescAlted Sep 11, 2026
cbf4ab9
Run TUI tests once, outside the blocking CI matrix
FrancescAlted Sep 11, 2026
ab17e27
Fix remote cache lifecycle and compatibility regressions
FrancescAlted Sep 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 33 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,15 +88,45 @@ jobs:

- name: Test (Windows)
if: runner.os == 'Windows'
run: python -m pytest -m "not heavy and not network" --durations=25
# env:
run: python -m pytest -m "not heavy and not network and not tui" --durations=25
env:
# A test over this many seconds is a deadlock, not a slow test (the
# slowest is ~7 s): dump stacks and kill the worker so xdist names it
# instead of the job hanging until the 6-hour cap. The session budget
# catches the same hang in teardown or interpreter exit, where no test
# is running to be named.
PYTEST_DEADMAN_SECONDS: "300"
PYTEST_DEADMAN_SESSION_SECONDS: "1500"
# BLOSC_NTHREADS: "1"
# NUMEXPR_NUM_THREADS: "1"
# OMP_NUM_THREADS: "1"

- name: Test (non-Windows)
if: runner.os != 'Windows'
run: python -m pytest -m "not heavy and not network" --durations=25
run: python -m pytest -m "not heavy and not network and not tui" --durations=25
env:
PYTEST_DEADMAN_SECONDS: "300"
PYTEST_DEADMAN_SESSION_SECONDS: "1500"

# TUIs are timing-sensitive and only boot a headless terminal: one OS is
# enough, and a flake here is feedback, not a release blocker.
- name: Test TUI (non-blocking)
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' && !matrix.numpy-version
continue-on-error: true
run: python -m pytest -m "tui and not heavy and not network" -n 4 --dist loadfile --durations=10
env:
PYTEST_DEADMAN_SECONDS: "300"
PYTEST_DEADMAN_SESSION_SECONDS: "900"

- name: Deadlock stacks, if a worker had to be killed
if: always()
shell: bash
run: |
if [ -s deadman-stacks.log ]; then
echo "::group::Deadlock stacks"
cat deadman-stacks.log
echo "::endgroup::"
fi

# The network tests talk to a live Caterva2 server and were 24 of the 25
# slowest tests in *both* the Windows and Linux jobs, with near-identical
Expand Down
3 changes: 3 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ repos:
- id: ruff-check
args: ["--fix", "--show-fixes"]
- id: ruff-format
# Ruff 0.16+ can claim Markdown code blocks; blacken-docs owns those
# blocks here, so keep Ruff on Python sources and notebooks.
types_or: [python, pyi, jupyter]
exclude: ^bench/

- repo: https://github.com/adamchainz/blacken-docs
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ project(python-blosc2)

# Update to the latest minimum C-Blosc2 version, and to the actual bundled one
set(BLOSC2_MIN_VERSION 3.3.0)
set(BLOSC2_BUNDLED_VERSION v3.3.3)
# set(BLOSC2_BUNDLED_VERSION a7f9a5be3527e87a7cbce1c16977835361d27033)
set(BLOSC2_BUNDLED_VERSION v3.3.4)
#set(BLOSC2_BUNDLED_VERSION a54e259aeb1c0e62d6bbea28934369d4831e4046)

if(WIN32 AND NOT CMAKE_C_COMPILER_ID STREQUAL "Clang")
message(FATAL_ERROR "Windows builds require clang-cl. Set CC/CXX to clang-cl or configure CMake with -T ClangCL.")
Expand Down
19 changes: 18 additions & 1 deletion RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,24 @@

## Changes from 4.12.0 to 4.13.0

XXX version-specific blurb XXX
This release adds portable remote array references, bounded caches, and remote
hierarchy browsing for B2Z, Zarr, and HDF5 containers.

* `blosc2.open(..., lazy=True)` now returns a `RemoteArray` with a bounded
memory cache by default. `CachePolicy.NONE` disables retention; `cache_dir`
or `cache_path` selects persistent disk caching. `cache_storage` is deprecated
in favor of `cache_dir`.
* `RemoteStore` discovers remote hierarchies and shares a cache budget across
their arrays. Stores and arrays can export portable references with optional
cached data. `b2view` supports browsing these remote sources.
* New `ZarrNDSource`, `HDF5NDSource`, and `B2ZNDSource` adapters read immutable
arrays on demand. The `b2nd-to-zarr` command converts local NDArrays to Zarr.

* Use `.attrs` as the recommended interface for user-defined metadata. Arrays,
containers and proxy sources now expose it as an alias for `.vlmeta`, preserving
existing storage and access rules. `C2Array.attrs` continues to select the
server's user attributes while `C2Array.vlmeta` retains protocol metadata.
`.vlmeta` remains supported and is not deprecated.

## Changes from 4.11.0 to 4.12.0

Expand Down
18 changes: 18 additions & 0 deletions bench/remote_array_traffic.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{"backend": "b2z", "transport": "s3", "url": "s3://blosc2/hierarchy.b2z", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 1.2488116670865566, "requests": 3, "methods": {"GET": 2, "HEAD": 1}, "connections": 1, "body_bytes": 24576, "traffic_requests": 2, "traffic_bytes": 24576}, "cold_slice": {"seconds": 0.49289220792707056, "requests": 2, "methods": {"GET": 2}, "connections": 0, "body_bytes": 16241, "traffic_requests": 2, "traffic_bytes": 16241}, "warm_slice": {"seconds": 0.0009889589855447412, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 1}
{"backend": "b2z", "transport": "https", "url": "https://f001.backblazeb2.com/file/blosc2/hierarchy.b2z", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 1.043098833062686, "requests": 3, "methods": {"GET": 2, "HEAD": 1}, "connections": 1, "body_bytes": 24576, "traffic_requests": 2, "traffic_bytes": 24576}, "cold_slice": {"seconds": 0.48495695809833705, "requests": 2, "methods": {"GET": 2}, "connections": 0, "body_bytes": 16241, "traffic_requests": 2, "traffic_bytes": 16241}, "warm_slice": {"seconds": 0.0010930829448625445, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 1}
{"backend": "zarr", "transport": "s3", "url": "s3://blosc2/hierarchy.zarr/d0/a3", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 7.477702042087913, "requests": 6, "methods": {"GET": 3, "HEAD": 3}, "connections": 5, "body_bytes": 1788, "traffic_requests": 1, "traffic_bytes": 1042}, "cold_slice": {"seconds": 0.4852743750670925, "requests": 2, "methods": {"GET": 1, "HEAD": 1}, "connections": 0, "body_bytes": 11645, "traffic_requests": 1, "traffic_bytes": 11645}, "warm_slice": {"seconds": 0.00036441697739064693, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 1}
{"backend": "zarr", "transport": "https", "url": "https://f001.backblazeb2.com/file/blosc2/hierarchy.zarr/d0/a3", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 0.6389846670208499, "requests": 3, "methods": {"GET": 3}, "connections": 3, "body_bytes": 1230, "traffic_requests": 1, "traffic_bytes": 1042}, "cold_slice": {"seconds": 0.265499584027566, "requests": 1, "methods": {"GET": 1}, "connections": 0, "body_bytes": 11645, "traffic_requests": 1, "traffic_bytes": 11645}, "warm_slice": {"seconds": 0.00035462493542581797, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 1}
{"backend": "h5", "transport": "s3", "url": "s3://blosc2/hierarchy.h5", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 11.35246516589541, "requests": 57, "methods": {"GET": 56, "HEAD": 1}, "connections": 1, "body_bytes": 47332, "traffic_requests": 2, "traffic_bytes": 392}, "cold_slice": {"seconds": 0.2362309170421213, "requests": 1, "methods": {"GET": 1}, "connections": 0, "body_bytes": 13399, "traffic_requests": 1, "traffic_bytes": 13399}, "warm_slice": {"seconds": 0.0005953341023996472, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 1}
{"backend": "h5", "transport": "https", "url": "https://f001.backblazeb2.com/file/blosc2/hierarchy.h5", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 11.591361916973256, "requests": 57, "methods": {"GET": 56, "HEAD": 1}, "connections": 1, "body_bytes": 47332, "traffic_requests": 2, "traffic_bytes": 392}, "cold_slice": {"seconds": 0.2375075420131907, "requests": 1, "methods": {"GET": 1}, "connections": 0, "body_bytes": 13399, "traffic_requests": 1, "traffic_bytes": 13399}, "warm_slice": {"seconds": 0.0005853750044479966, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 1}
{"backend": "b2z", "transport": "s3", "url": "s3://blosc2/hierarchy.b2z", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 1.2223038750234991, "requests": 3, "methods": {"GET": 2, "HEAD": 1}, "connections": 1, "body_bytes": 24576, "traffic_requests": 2, "traffic_bytes": 24576}, "cold_slice": {"seconds": 0.4608378750272095, "requests": 2, "methods": {"GET": 2}, "connections": 0, "body_bytes": 16241, "traffic_requests": 2, "traffic_bytes": 16241}, "warm_slice": {"seconds": 0.0009959590388461947, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 2}
{"backend": "b2z", "transport": "https", "url": "https://f001.backblazeb2.com/file/blosc2/hierarchy.b2z", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 1.0011600840371102, "requests": 3, "methods": {"GET": 2, "HEAD": 1}, "connections": 1, "body_bytes": 24576, "traffic_requests": 2, "traffic_bytes": 24576}, "cold_slice": {"seconds": 0.4179259999655187, "requests": 2, "methods": {"GET": 2}, "connections": 0, "body_bytes": 16241, "traffic_requests": 2, "traffic_bytes": 16241}, "warm_slice": {"seconds": 0.0010035419836640358, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 2}
{"backend": "zarr", "transport": "s3", "url": "s3://blosc2/hierarchy.zarr/d0/a3", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 1.3998966669896618, "requests": 6, "methods": {"GET": 3, "HEAD": 3}, "connections": 5, "body_bytes": 1788, "traffic_requests": 1, "traffic_bytes": 1042}, "cold_slice": {"seconds": 0.4981873750220984, "requests": 2, "methods": {"GET": 1, "HEAD": 1}, "connections": 0, "body_bytes": 11645, "traffic_requests": 1, "traffic_bytes": 11645}, "warm_slice": {"seconds": 0.00038591690827161074, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 2}
{"backend": "zarr", "transport": "https", "url": "https://f001.backblazeb2.com/file/blosc2/hierarchy.zarr/d0/a3", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 0.6370132910087705, "requests": 3, "methods": {"GET": 3}, "connections": 3, "body_bytes": 1230, "traffic_requests": 1, "traffic_bytes": 1042}, "cold_slice": {"seconds": 0.2670587080065161, "requests": 1, "methods": {"GET": 1}, "connections": 0, "body_bytes": 11645, "traffic_requests": 1, "traffic_bytes": 11645}, "warm_slice": {"seconds": 0.0004256248939782381, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 2}
{"backend": "h5", "transport": "s3", "url": "s3://blosc2/hierarchy.h5", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 11.579921333002858, "requests": 57, "methods": {"GET": 56, "HEAD": 1}, "connections": 1, "body_bytes": 47332, "traffic_requests": 2, "traffic_bytes": 392}, "cold_slice": {"seconds": 0.25883508403785527, "requests": 1, "methods": {"GET": 1}, "connections": 0, "body_bytes": 13399, "traffic_requests": 1, "traffic_bytes": 13399}, "warm_slice": {"seconds": 0.0006202919175848365, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 2}
{"backend": "h5", "transport": "https", "url": "https://f001.backblazeb2.com/file/blosc2/hierarchy.h5", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 11.457834250060841, "requests": 57, "methods": {"GET": 56, "HEAD": 1}, "connections": 1, "body_bytes": 47332, "traffic_requests": 2, "traffic_bytes": 392}, "cold_slice": {"seconds": 0.2313700410304591, "requests": 1, "methods": {"GET": 1}, "connections": 0, "body_bytes": 13399, "traffic_requests": 1, "traffic_bytes": 13399}, "warm_slice": {"seconds": 0.0005405419506132603, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 2}
{"backend": "b2z", "transport": "s3", "url": "s3://blosc2/hierarchy.b2z", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 1.2231810830999166, "requests": 3, "methods": {"GET": 2, "HEAD": 1}, "connections": 1, "body_bytes": 24576, "traffic_requests": 2, "traffic_bytes": 24576}, "cold_slice": {"seconds": 0.4398518749512732, "requests": 2, "methods": {"GET": 2}, "connections": 0, "body_bytes": 16241, "traffic_requests": 2, "traffic_bytes": 16241}, "warm_slice": {"seconds": 0.0009655829053372145, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 3}
{"backend": "b2z", "transport": "https", "url": "https://f001.backblazeb2.com/file/blosc2/hierarchy.b2z", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 1.0051324159139767, "requests": 3, "methods": {"GET": 2, "HEAD": 1}, "connections": 1, "body_bytes": 24576, "traffic_requests": 2, "traffic_bytes": 24576}, "cold_slice": {"seconds": 0.41061416699085385, "requests": 2, "methods": {"GET": 2}, "connections": 0, "body_bytes": 16241, "traffic_requests": 2, "traffic_bytes": 16241}, "warm_slice": {"seconds": 0.0004735830007120967, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 3}
{"backend": "zarr", "transport": "s3", "url": "s3://blosc2/hierarchy.zarr/d0/a3", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 1.4775527090532705, "requests": 6, "methods": {"GET": 3, "HEAD": 3}, "connections": 5, "body_bytes": 1788, "traffic_requests": 1, "traffic_bytes": 1042}, "cold_slice": {"seconds": 0.4406578750349581, "requests": 2, "methods": {"GET": 1, "HEAD": 1}, "connections": 0, "body_bytes": 11645, "traffic_requests": 1, "traffic_bytes": 11645}, "warm_slice": {"seconds": 0.00023274996783584356, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 3}
{"backend": "zarr", "transport": "https", "url": "https://f001.backblazeb2.com/file/blosc2/hierarchy.zarr/d0/a3", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 6.490244832937606, "requests": 3, "methods": {"GET": 3}, "connections": 3, "body_bytes": 1230, "traffic_requests": 1, "traffic_bytes": 1042}, "cold_slice": {"seconds": 0.34011666697915643, "requests": 2, "methods": {"GET": 2}, "connections": 0, "body_bytes": 11645, "traffic_requests": 1, "traffic_bytes": 11645}, "warm_slice": {"seconds": 0.00039166701026260853, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 3}
{"backend": "h5", "transport": "s3", "url": "s3://blosc2/hierarchy.h5", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 11.601201582932845, "requests": 57, "methods": {"GET": 56, "HEAD": 1}, "connections": 1, "body_bytes": 47332, "traffic_requests": 2, "traffic_bytes": 392}, "cold_slice": {"seconds": 0.2506593340076506, "requests": 1, "methods": {"GET": 1}, "connections": 0, "body_bytes": 13399, "traffic_requests": 1, "traffic_bytes": 13399}, "warm_slice": {"seconds": 0.0004546659765765071, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 3}
{"backend": "h5", "transport": "https", "url": "https://f001.backblazeb2.com/file/blosc2/hierarchy.h5", "dataset": "d0/a3", "shape": [10, 1000, 1000], "dtype": "int32", "chunks": [2, 500, 500], "blocks": [1, 50, 500], "slice": "[0, :100, :100]", "result_bytes": 40000, "cache_bytes": 15598, "blosc2_version": "4.13.0.dev0", "phases": {"open": {"seconds": 13.41276800003834, "requests": 57, "methods": {"GET": 56, "HEAD": 1}, "connections": 1, "body_bytes": 47332, "traffic_requests": 2, "traffic_bytes": 392}, "cold_slice": {"seconds": 0.23232333292253315, "requests": 1, "methods": {"GET": 1}, "connections": 0, "body_bytes": 13399, "traffic_requests": 1, "traffic_bytes": 13399}, "warm_slice": {"seconds": 0.0005118330009281635, "requests": 0, "methods": {}, "connections": 0, "body_bytes": 0, "traffic_requests": 0, "traffic_bytes": 0}}, "repetition": 3}
Loading
Loading