-
Notifications
You must be signed in to change notification settings - Fork 17
Zip Store #37
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
Open
brokkoli71
wants to merge
63
commits into
main
Choose a base branch
from
zip-store
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Zip Store #37
Changes from all commits
Commits
Show all changes
63 commits
Select commit
Hold shift + click to select a range
8e79825
add ZipStore tests
brokkoli71 2611738
refactor and unify outputs of Store.list
brokkoli71 5e2e017
read zip store
brokkoli71 4a9f7f0
Bump to 0.0.6 to trigger release
joshmoore 99081e5
Bump to 0.0.7
joshmoore 268890e
Bump to 0.0.8
joshmoore b9e6db4
Bump to 0.0.9
joshmoore 08afc36
write buffer of zip store
brokkoli71 0cacc5b
use apache commons compress for zip file read and write
brokkoli71 5b74372
set Zip64Mode.AsNeeded
brokkoli71 ee92e27
test Zipped OME-Zarr requirements
brokkoli71 a344655
Sort zarr.json files in breadth-first order within BufferedZipStore
brokkoli71 ea16692
manually read zip comment
brokkoli71 7e0164f
refactor read zip comment
brokkoli71 02445e0
test zip store with v2
brokkoli71 caafad0
use com.fasterxml.jackson.databind.util.ByteBufferBackedInputStream i…
brokkoli71 dbc559c
add ReadOnlyZipStore
brokkoli71 db57be7
fix ReadOnlyZipStore for zips with
brokkoli71 768bd62
add BufferedZipStore parameter flushOnWrite
brokkoli71 38bec27
fix testMemoryStore
brokkoli71 bdcbc46
default flushOnWrite to false
brokkoli71 9014fef
fix s3 store get range
brokkoli71 5c74445
add store.getInputStream
brokkoli71 7e0e90e
add store.getSize
brokkoli71 086d3f8
improve performance of ReadOnlyZipStore.getArchiveComment
brokkoli71 7d4f487
inherit zipstores from common parent and reduce buffers in memory in …
brokkoli71 ca88fb5
Merge branch 'main' into zip-store
brokkoli71 72ef229
fix s3 test buckets
brokkoli71 e8fb440
reduce getArchiveComment store requests
brokkoli71 2927ca7
Merge branch 'main' into zip-store
brokkoli71 8b390bc
format
brokkoli71 7b064c8
fix merge
brokkoli71 d98767c
improve Group::list performance
brokkoli71 e4514b2
fix ReadOnlyZipStore::list
brokkoli71 76aacb8
less requests to store on read
brokkoli71 60e11d7
fix FilesystemStore::list
brokkoli71 cd349f9
fix MemoryStore::list
brokkoli71 a1c54ea
fix ReadOnlyZipStore::list
brokkoli71 a2aef00
test Store::list for local stores
brokkoli71 4f7bee8
less store.exists() for v2.Group.list()
brokkoli71 60e28cd
add S3Mock for tests
brokkoli71 51d0f36
fallback to chunkHandle.exists() for non listable stores
brokkoli71 b309922
fix ZarrV2Test::testGroup
brokkoli71 cac3e22
downgrade s3mock version to match java-version 11
brokkoli71 8d5d583
downgrade s3mock version to match java-version 11
brokkoli71 c64ea1c
run S3 Mock with docker
brokkoli71 55d5475
S3Mock tests only on linux
brokkoli71 5ae5ac2
fix ZarrV3Test::testGroup for windows, mac
brokkoli71 8c4e988
refactor and add missing store tests
brokkoli71 4e4f1e8
fix s3Store::list
brokkoli71 8d64385
fix ReadOnlyZipStore::list
brokkoli71 78c0e3a
add tests
brokkoli71 9b73829
fix tests with path collision
brokkoli71 77060de
reformat code
brokkoli71 2e048f7
improve httpStore testing
brokkoli71 a1e3601
change store::list to list no directories
brokkoli71 ffd5deb
adjust test for store::list
brokkoli71 4f80830
test store::exist, list, listChildren
brokkoli71 82e0ef3
test store::get with start and end
brokkoli71 2897f0a
test store::delete
brokkoli71 91e5e3d
fix ReadOnlyZipStoreTest.testReadFromBufferedZipStore and S3StoreTest…
brokkoli71 933f58b
fix S3StoreTest.testList
brokkoli71 52de5f4
test store.get with start argument
brokkoli71 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -45,4 +45,5 @@ build/ | |
| /main.py | ||
| /pyproject.toml | ||
| /uv.lock | ||
| **/__pycache__ | ||
| **/__pycache__ | ||
| /dependency-reduced-pom.xml | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
I am not sure this is good. Listing can also be very expensive. Imagine you just want to read a single chunk but have to list billions of chunks first.
What scenario did you have in mind?
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.
hmm.. the readonlyzipstore needs to parse the zip until it finds the required file, this is quite slow for many exist calls. also, s3 stores would need separate requests for each exists(). maybe this could be replaced with a store.exists that takes a list of keys? s3 could run the exist checks concurrently (instead of listing) and the zipstore could check all existences during one parsing?
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.
Yeah, a multi-exists could work. Or, maybe the Readonlyzipstore caches a list of files when it opens the zip? Then exists should be quick.