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

Implement Zarr v3 and sharding codec #7079

Merged
merged 34 commits into from
Jun 5, 2023
Merged

Implement Zarr v3 and sharding codec #7079

merged 34 commits into from
Jun 5, 2023

Conversation

frcroth
Copy link
Member

@frcroth frcroth commented May 15, 2023

URL of deployed dev instance (used for testing):

Steps to test:

  • Explore and view an unsharded and a sharded zarr v3 dataset.

Questions

  • Name classes zarr3 or zarrV3? -> zarr3
  • Storage transformers: There are currently no storage transformers proposed (or I didn't find them). Should this implementation already allow for these, or is that not relevant? -> Not relevant
  • Are there any more codecs that work like sharding (wrapping other codecs in its implementation) or is it just that one. If this is the only one (that should be supported anyway), it could be treated as a special case. Otherwise, codec parsing and handling probably needs to be overhauled significantly -> Current assumption is only support one layer of sharding

Todos

  • Implement suffix length range requests for gcs/s3

Issues:


(Please delete unneeded items, merge only when none are left open)

  • Updated changelog
  • Needs datastore update after deployment

@frcroth frcroth self-assigned this May 26, 2023
@frcroth frcroth requested a review from fm3 May 26, 2023 09:30
@frcroth frcroth changed the title WIP: Implement Zarr V3 Implement Zarr V3 and sharding codec May 26, 2023
@frcroth frcroth changed the title Implement Zarr V3 and sharding codec Implement Zarr v3 and sharding codec May 26, 2023
@frcroth frcroth marked this pull request as ready for review May 26, 2023 09:32
Copy link
Member

@fm3 fm3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider me impressed! This is good stuff, I only added minor comments to the code. Thanks for getting through all of this :-)

Some things I noticed during testing:

@frcroth
Copy link
Member Author

frcroth commented Jun 2, 2023

The wrong segment ids are an endian issue. Where would be the best place to switch the endianness?

@frcroth frcroth requested a review from fm3 June 2, 2023 13:38
@fm3
Copy link
Member

fm3 commented Jun 5, 2023

Thanks for addressing the feedback! As discussed in person, the endianness issue for the segmentation layer may be in the data, we should be re-checking that.

I “unresolved” two conversations above that I think are still open, and turned some notes into checkboxes in my last comment. Could you have a look at those? I’d say this is already very close to complete :)

Copy link
Member

@fm3 fm3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Niice!

I took the liberty to change a few lines in the json validation, where I still got bare exceptions. This works for me now :)

If more issues come up with future datasets we can still fix them then.

Good to go! :shipit:

@frcroth frcroth merged commit 2e9ffbd into master Jun 5, 2023
@frcroth frcroth deleted the zarr3 branch June 5, 2023 15:19
hotzenklotz added a commit that referenced this pull request Jun 8, 2023
…esign-right-sidebar

* 'master' of github.com:scalableminds/webknossos:
  Create bounding box by dragging with box tool (#7118)
  Prevent 'negative' buckets from being created (#7124)
  Lazy load onnx and canvas2html module (#7121)
  Disable editing of super voxel skeletons in skeleton mode (#7086)
  add missing evolution to migration guide (#7126)
  Change sttp backend to HttpURLConnectionBackend (#7125)
  Implement Zarr v3 and sharding codec (#7079)
  Fix decompression of garbage data after valid gzip data causing decompression to fail (#7119)
  When scanning volume buckets, skip those with unparseable key (#7115)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement Zarr v3 and sharding
3 participants