-
Notifications
You must be signed in to change notification settings - Fork 26
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
Zarr streaming #6144
Zarr streaming #6144
Conversation
...-datastore/app/com/scalableminds/webknossos/datastore/controllers/BinaryDataController.scala
Outdated
Show resolved
Hide resolved
@fm3 Can you have a look already? What doesn't seem to work yet is working with different mags... Somehow the request always leads to empty responses. When substituting the VoxelPosition calculation in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is good stuff, thank you for pushing this so far already :)
I added some comments about what I noticed while first reading the code.
Regarding different mags, I did not immediately see an issue, though I think I would need a concrete test case to debug this. Maybe we can look at this together this week.
One thing that could be a culprit is the supplied coordinates. We should double check whether the requested coordinates need to still be in mag1 or not, and what the client that you tested, does.
...-datastore/app/com/scalableminds/webknossos/datastore/controllers/BinaryDataController.scala
Outdated
Show resolved
Hide resolved
...-datastore/app/com/scalableminds/webknossos/datastore/controllers/BinaryDataController.scala
Outdated
Show resolved
Hide resolved
...-datastore/app/com/scalableminds/webknossos/datastore/controllers/BinaryDataController.scala
Outdated
Show resolved
Hide resolved
...-datastore/app/com/scalableminds/webknossos/datastore/controllers/BinaryDataController.scala
Outdated
Show resolved
Hide resolved
...-datastore/app/com/scalableminds/webknossos/datastore/controllers/BinaryDataController.scala
Outdated
Show resolved
Hide resolved
...-datastore/app/com/scalableminds/webknossos/datastore/controllers/BinaryDataController.scala
Outdated
Show resolved
Hide resolved
...-datastore/app/com/scalableminds/webknossos/datastore/controllers/BinaryDataController.scala
Outdated
Show resolved
Hide resolved
...-datastore/app/com/scalableminds/webknossos/datastore/controllers/BinaryDataController.scala
Outdated
Show resolved
Hide resolved
…e/controllers/BinaryDataController.scala Co-authored-by: Florian M <[email protected]>
…e/controllers/BinaryDataController.scala Co-authored-by: Florian M <[email protected]>
Since currently all buckets are uncompressed when serving them, we don't need to check the compression.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is getting somewhere :) I left some minor comments, but I’d say this will soon be good to go!
One more thing: please write follow-up issues for the things that were discussed as future work (e.g. sending 404 for chunks outside the real bounding box instead of empty 200 replies; handing through already-compressed buckets)
...tastore/app/com/scalableminds/webknossos/datastore/controllers/ZarrStreamingController.scala
Outdated
Show resolved
Hide resolved
...tastore/app/com/scalableminds/webknossos/datastore/controllers/ZarrStreamingController.scala
Outdated
Show resolved
Hide resolved
...tastore/app/com/scalableminds/webknossos/datastore/controllers/ZarrStreamingController.scala
Outdated
Show resolved
Hide resolved
...sos-datastore/app/com/scalableminds/webknossos/datastore/services/DataSourceRepository.scala
Outdated
Show resolved
Hide resolved
Co-authored-by: Florian M <[email protected]>
…e/controllers/ZarrStreamingController.scala Co-authored-by: Florian M <[email protected]>
…e/controllers/ZarrStreamingController.scala Co-authored-by: Florian M <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚀
whoop whoop 🙌 🎉 |
URL of deployed dev instance (used for testing):
Steps to test:
There are currently 4 issues on the client side: 1)
is_dir
is wrongly implemented and mostly returns false in fsspec (should be fixed in UPath PR), 2)encoding=utf-8
caused a problem, 3)iterdir
in UPath uses a false implementation of_sub_path
(should be fixed in UPath), and 4)is_file
check, doesn't check first whether file exists which leads to an exception (change first line ofwk.WKWArray.open
toif (path / "header.wkw").exists() and (path / "header.wkw").is_file():
Issues:
(Please delete unneeded items, merge only when none are left open)
ToDo