Skip to content

bench(cat_ranges): add many-range and large-range microbenchmark scenarios - #1093

Merged
zhixiangli merged 2 commits into
fsspec:mainfrom
yuxin00j:bench-cat-ranges-large-cases
Oct 9, 2026
Merged

zhixiangli merged 2 commits into
fsspec:mainfrom
yuxin00j:bench-cat-ranges-large-cases

Conversation

@yuxin00j

@yuxin00j yuxin00j commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds 11 cat_ranges microbenchmark scenarios covering range counts and sizes the current suite does not exercise: 1000/2000/5000 x 1 MB ranges on a 10 GB file, 1000/2000/5000 mixed 64 KB / 1 MB / 4 MB ranges on a 50 GB file, 8 x 64/256/1024 MB ranges, a single 1 GB range, and 32 mixed 1 MB - 1 GB ranges on a 50 GB file.

Changes

  • gcsfs/tests/perf/microbenchmarks/cat_ranges/configs.yaml: new many_ranges_sweep, many_mixed_ranges, large_ranges_sweep, single_1gb_range and huge_file_mixed scenarios. "Many ranges" and "large ranges" are kept as separate scenarios so a single call stays under roughly 10 GB of returned data.

No code changes; benchmark configuration only.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request adds several new benchmark scenarios to gcsfs/tests/perf/microbenchmarks/cat_ranges/configs.yaml to test performance under various conditions, such as many ranges, mixed range sizes, large ranges, and single large ranges on large files. The feedback suggests adding a batch_sizes configuration to the scenarios with a high number of ranges (up to 5000) to prevent potential connection exhaustion, high memory overhead, or GCS rate limiting.

Comment thread gcsfs/tests/perf/microbenchmarks/cat_ranges/configs.yaml
Comment thread gcsfs/tests/perf/microbenchmarks/cat_ranges/configs.yaml
@yuxin00j
yuxin00j requested a review from ankitaluthra1 October 2, 2026 05:46
@codecov

codecov Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.25%. Comparing base (cd98d68) to head (fbb5535).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1093   +/-   ##
=======================================
  Coverage   90.25%   90.25%           
=======================================
  Files          16       16           
  Lines        3458     3458           
=======================================
  Hits         3121     3121           
  Misses        337      337           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@yuxin00j
yuxin00j requested a review from zhixiangli October 5, 2026 02:56

@zhixiangli zhixiangli left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@yuxin00j LGTM!
I would appreciate it if you could add code comments explaining why those tests matter and what real-world scenarios they cover.

@yuxin00j

yuxin00j commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

@yuxin00j LGTM! I would appreciate it if you could add code comments explaining why those tests matter and what real-world scenarios they cover.

The existing scenarios mostly use 200 ranges on 1 GB objects with ranges of at most 16 MB, so the new ones extend each dimension separately: range count (up to 5000), range size (up to 1 GB), and object size (up to 50 GB). These are synthetic coverage cases rather than a specific workload.

…4MB-1GB) scenarios

Adds cat_ranges_many_ranges_sweep, cat_ranges_many_mixed_ranges,
cat_ranges_large_ranges_sweep, cat_ranges_single_1gb_range and
cat_ranges_huge_file_mixed (50 GB file). Each call stays under ~10 GB.
@yuxin00j
yuxin00j force-pushed the bench-cat-ranges-large-cases branch from 3fe8890 to fbb5535 Compare October 9, 2026 03:07
@zhixiangli
zhixiangli merged commit 80bcae2 into fsspec:main Oct 9, 2026
11 checks passed
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.

2 participants