-
Notifications
You must be signed in to change notification settings - Fork 6
feat(router): jobsdb pickup query batch size adapting to throttling limit #6338
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
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #6338 +/- ##
==========================================
+ Coverage 77.57% 77.60% +0.02%
==========================================
Files 523 523
Lines 70266 70361 +95
==========================================
+ Hits 54512 54602 +90
- Misses 12913 12921 +8
+ Partials 2841 2838 -3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
e84a9c0
to
38785fa
Compare
97fd797
to
bfed78c
Compare
bfed78c
to
1446112
Compare
dde391e
to
7f95ef0
Compare
7f95ef0
to
be3a509
Compare
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.
LGTM
🤖 I have created a release *beep* *boop* --- ## [1.60.0-rc.1](v1.59.0...v1.60.0-rc.1) (2025-09-29) ### Features * **router:** jobsdb pickup query batch size adapting to throttling limit ([#6338](#6338)) ([c38b971](c38b971)) ### Bug Fixes * add outgoing metrics to proxy flow ([#6355](#6355)) ([23a5c81](23a5c81)) * aws session config region ([#6354](#6354)) ([23a5c81](23a5c81)) * dedup gauge ([#6359](#6359)) ([a562df4](a562df4)) * keydb grpc config ([#6370](#6370)) ([cf04743](cf04743)) * missing keydb client stats ([#6360](#6360)) ([c42e5c8](c42e5c8)) * naming collision in redis throttling configuration ([#6365](#6365)) ([4f87afb](4f87afb)) * set table type to external for glue ([#6386](#6386)) ([9017582](9017582)) * ut mirroring tests ([#6341](#6341)) ([51dd4f7](51dd4f7)) * **warehouse:** alter namespace col size ([#6379](#6379)) ([fbba498](fbba498)) * **warehouse:** skip extract async job failing test ([#6378](#6378)) ([89a4d1e](89a4d1e)) ### Miscellaneous * add authentication to reporting client ([#6384](#6384)) ([502d2b0](502d2b0)) * add explicit permissions for workflows ([#6381](#6381)) ([1d22623](1d22623)) * add readme for async destinaiton module ([#6356](#6356)) ([cc80333](cc80333)) * remove deprecated throttling configuration keys ([#6377](#6377)) ([8d667b7](8d667b7)) * upgrade build-scan-push-action to v1.8.0 ([#6350](#6350)) ([51dd4f7](51dd4f7)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- ## [1.60.0-rc.2](v1.59.0...v1.60.0-rc.2) (2025-09-30) ### Features * **router:** jobsdb pickup query batch size adapting to throttling limit ([#6338](#6338)) ([c38b971](c38b971)) ### Bug Fixes * add outgoing metrics to proxy flow ([#6355](#6355)) ([23a5c81](23a5c81)) * aws session config region ([#6354](#6354)) ([23a5c81](23a5c81)) * dedup gauge ([#6359](#6359)) ([a562df4](a562df4)) * keydb grpc config ([#6370](#6370)) ([cf04743](cf04743)) * missing keydb client stats ([#6360](#6360)) ([c42e5c8](c42e5c8)) * naming collision in redis throttling configuration ([#6365](#6365)) ([4f87afb](4f87afb)) * set table type to external for glue ([#6386](#6386)) ([9017582](9017582)) * ut mirroring tests ([#6341](#6341)) ([51dd4f7](51dd4f7)) * **warehouse:** alter namespace col size ([#6379](#6379)) ([fbba498](fbba498)) * **warehouse:** skip extract async job failing test ([#6378](#6378)) ([89a4d1e](89a4d1e)) ### Miscellaneous * add authentication to reporting client ([#6384](#6384)) ([502d2b0](502d2b0)) * add explicit permissions for workflows ([#6381](#6381)) ([1d22623](1d22623)) * add readme for async destinaiton module ([#6356](#6356)) ([cc80333](cc80333)) * configurable event name trimming for reporting ([#6394](#6394)) ([7628efa](7628efa)) * remove deprecated throttling configuration keys ([#6377](#6377)) ([8d667b7](8d667b7)) * upgrade build-scan-push-action to v1.8.0 ([#6350](#6350)) ([51dd4f7](51dd4f7)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- ## [1.60.0-rc.3](v1.59.0...v1.60.0-rc.3) (2025-09-30) ### Features * **router:** jobsdb pickup query batch size adapting to throttling limit ([#6338](#6338)) ([c38b971](c38b971)) ### Bug Fixes * add outgoing metrics to proxy flow ([#6355](#6355)) ([23a5c81](23a5c81)) * aws session config region ([#6354](#6354)) ([23a5c81](23a5c81)) * dedup gauge ([#6359](#6359)) ([a562df4](a562df4)) * keydb consistent hashing ([#6403](#6403)) ([3ee79b2](3ee79b2)) * keydb grpc config ([#6370](#6370)) ([cf04743](cf04743)) * missing keydb client stats ([#6360](#6360)) ([c42e5c8](c42e5c8)) * naming collision in redis throttling configuration ([#6365](#6365)) ([4f87afb](4f87afb)) * set table type to external for glue ([#6386](#6386)) ([9017582](9017582)) * ut mirroring tests ([#6341](#6341)) ([51dd4f7](51dd4f7)) * **warehouse:** alter namespace col size ([#6379](#6379)) ([fbba498](fbba498)) * **warehouse:** skip extract async job failing test ([#6378](#6378)) ([89a4d1e](89a4d1e)) ### Miscellaneous * add authentication to reporting client ([#6384](#6384)) ([502d2b0](502d2b0)) * add explicit permissions for workflows ([#6381](#6381)) ([1d22623](1d22623)) * add readme for async destinaiton module ([#6356](#6356)) ([cc80333](cc80333)) * configurable event name trimming for reporting ([#6394](#6394)) ([7628efa](7628efa)) * remove deprecated throttling configuration keys ([#6377](#6377)) ([8d667b7](8d667b7)) * upgrade build-scan-push-action to v1.8.0 ([#6350](#6350)) ([51dd4f7](51dd4f7)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- ## [1.60.0](v1.59.0...v1.60.0) (2025-09-30) ### Features * **router:** jobsdb pickup query batch size adapting to throttling limit ([#6338](#6338)) ([c38b971](c38b971)) ### Bug Fixes * add outgoing metrics to proxy flow ([#6355](#6355)) ([23a5c81](23a5c81)) * aws session config region ([#6354](#6354)) ([23a5c81](23a5c81)) * dedup gauge ([#6359](#6359)) ([a562df4](a562df4)) * keydb consistent hashing ([#6403](#6403)) ([3ee79b2](3ee79b2)) * keydb grpc config ([#6370](#6370)) ([cf04743](cf04743)) * missing keydb client stats ([#6360](#6360)) ([c42e5c8](c42e5c8)) * naming collision in redis throttling configuration ([#6365](#6365)) ([4f87afb](4f87afb)) * set table type to external for glue ([#6386](#6386)) ([9017582](9017582)) * ut mirroring tests ([#6341](#6341)) ([51dd4f7](51dd4f7)) * **warehouse:** alter namespace col size ([#6379](#6379)) ([fbba498](fbba498)) * **warehouse:** skip extract async job failing test ([#6378](#6378)) ([89a4d1e](89a4d1e)) ### Miscellaneous * add authentication to reporting client ([#6384](#6384)) ([502d2b0](502d2b0)) * add explicit permissions for workflows ([#6381](#6381)) ([1d22623](1d22623)) * add readme for async destinaiton module ([#6356](#6356)) ([cc80333](cc80333)) * configurable event name trimming for reporting ([#6394](#6394)) ([7628efa](7628efa)) * remove deprecated throttling configuration keys ([#6377](#6377)) ([8d667b7](8d667b7)) * upgrade build-scan-push-action to v1.8.0 ([#6350](#6350)) ([51dd4f7](51dd4f7)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- ## [1.60.0](v1.59.0...v1.60.0) (2025-09-30) ### Features * **router:** jobsdb pickup query batch size adapting to throttling limit ([#6338](#6338)) ([c38b971](c38b971)) ### Bug Fixes * add outgoing metrics to proxy flow ([#6355](#6355)) ([23a5c81](23a5c81)) * aws session config region ([#6354](#6354)) ([23a5c81](23a5c81)) * dedup gauge ([#6359](#6359)) ([a562df4](a562df4)) * keydb consistent hashing ([#6403](#6403)) ([3ee79b2](3ee79b2)) * keydb grpc config ([#6370](#6370)) ([cf04743](cf04743)) * missing keydb client stats ([#6360](#6360)) ([c42e5c8](c42e5c8)) * naming collision in redis throttling configuration ([#6365](#6365)) ([4f87afb](4f87afb)) * set table type to external for glue ([#6386](#6386)) ([9017582](9017582)) * ut mirroring tests ([#6341](#6341)) ([51dd4f7](51dd4f7)) * **warehouse:** alter namespace col size ([#6379](#6379)) ([fbba498](fbba498)) * **warehouse:** skip extract async job failing test ([#6378](#6378)) ([89a4d1e](89a4d1e)) ### Miscellaneous * add authentication to reporting client ([#6384](#6384)) ([502d2b0](502d2b0)) * add explicit permissions for workflows ([#6381](#6381)) ([1d22623](1d22623)) * add readme for async destinaiton module ([#6356](#6356)) ([cc80333](cc80333)) * configurable event name trimming for reporting ([#6394](#6394)) ([7628efa](7628efa)) * remove deprecated throttling configuration keys ([#6377](#6377)) ([8d667b7](8d667b7)) * upgrade build-scan-push-action to v1.8.0 ([#6350](#6350)) ([51dd4f7](51dd4f7)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Description
Routers with destination isolation enabled are now able to adapt their jobsdb pickup query batch size dynamically based on the destination's current throttling limit.
false
)Router.<DEST_TYPE>.pickupQueryThrottlingEnabled
Router.pickupQueryThrottlingEnabled
.readSleepSeconds*2
).10000
)Router.<DEST_TYPE>.maxJobQueryBatchSize
Router.maxJobQueryBatchSize
By dynamically adjusting the pickup query batch size to match the destination’s current throttling limits, routers no longer over-fetch jobs that cannot be processed immediately. This reduces the number of jobs queried from the database only to be discarded later due to throttling constraints. The result is lower query overhead, more efficient use of system resources, and faster end-to-end job processing since only jobs that can realistically be delivered are retrieved and no sleep penalty is added in the pickup loop due to less discarded jobs (for high job discard ratios (>60%) we impose a sleep penalty of 5 seconds per loop as a back-pressure mechanism).
Linear Ticket
resolves PIPE-2375
Security