Repository navigation
fix: make push concurrency configurable and fail when uploads fail - #27
Open
arnaucoma24 wants to merge 1 commit into
Open
arnaucoma24 wants to merge 1 commit into
arnaucoma24 wants to merge 1 commit into
Conversation
isaura push uploaded 4 files at a time (hard-coded), each split into parallel multipart parts. For wide models (dozens of ~250 MB chunks) the cloud MinIO answers most uploads with RequestTimeout "please reduce your request rate". Those failures were only logged as warnings: push still merged the bloom filter and catalog, printed "pushed to cloud" and exited 0. Callers could not detect it, and the cloud bloom listed molecules whose chunks never arrived. - PUSH_WORKERS env var (default 4, unchanged behaviour) sets the number of files uploaded in parallel. - If any object fails to upload, push logs an error and exits 1 before merging the bloom filter / catalog. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
isaura pushfailed for wide models, and the failure was reported as success.1. Too many concurrent uploads. Push relays 4 files at a time (hard-coded
ThreadPoolExecutor(max_workers=4)), each split into parallel multipart parts (MINIO_MAX_CONCURRENCY). For wide models, which have dozens of ~250 MB chunks (eos8aa5: 51 objects, 12 GB), the cloud MinIO rejected almost every object with:The same 241 MB chunk uploads in 39 s when it is the only upload. Narrow models (~5 small objects) were not affected.
2. Failed uploads were swallowed. Failed objects were only logged as warnings. Push then merged the bloom filter and wrote
catalog.json, printed✓ … pushed to cloudand exited 0. So:Changes
PUSH_WORKERS(default4, so default behaviour is unchanged) sets how many files push uploads in parallel. Documented indocs/CONFIGURATION.md.N/M objects failed to upload … Aborting push.and exits with code 1, before merging the bloom filter and catalog. Re-running push uploads every object again.Testing
pytest tests/test_wide_io.py: 49 passed.ruff checkon the changed files: no new findings (17 before and after).PUSH_WORKERS=1 MINIO_MAX_CONCURRENCY=1 MINIO_MULTIPART_CHUNKSIZE=33554432. Each push exited 0 with no warnings, and every object is on the cloud with the same size as in the local store:The bloom filters hold 1,355,109 entries both locally and on the cloud for each model.
Not addressed
PUSH_WORKERS.🤖 Generated with Claude Code