Skip to content

Commit ffb2dc0

Browse files
committed
Fix wrong inequality direction for scale up prevention
lower short-timeout threshold
1 parent 7be4134 commit ffb2dc0

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

core/src/pollers/poll_buffer.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ where
305305
// Reduce poll timeout if we're frequently getting tasks, to avoid having many
306306
// outstanding long polls for a full minute after a burst subsides.
307307
let timeout_override =
308-
if report_handle.ingested_this_period.load(Ordering::Relaxed) > 2 {
308+
if report_handle.ingested_this_period.load(Ordering::Relaxed) > 1 {
309309
Some(Duration::from_secs(11))
310310
} else {
311311
None
@@ -468,8 +468,10 @@ where
468468
}
469469
let ingested = rhc.ingested_this_period.swap(0, Ordering::Relaxed);
470470
let ingested_last = rhc.ingested_last_period.swap(ingested, Ordering::Relaxed);
471-
rhc.scale_up_allowed
472-
.store(ingested_last >= ingested, Ordering::Relaxed);
471+
rhc.scale_up_allowed.store(
472+
ingested >= (ingested_last as f64 * 1.1) as usize,
473+
Ordering::Relaxed,
474+
);
473475
}
474476
}))
475477
} else {

tests/manual_tests.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ async fn poller_load_spiky() {
4343
.worker_config
4444
.max_cached_workflows(5000_usize)
4545
.max_outstanding_workflow_tasks(1000_usize)
46+
.max_outstanding_activities(1000_usize)
4647
.workflow_task_poller_behavior(PollerBehavior::Autoscaling {
4748
minimum: 1,
4849
maximum: 200,

0 commit comments

Comments
 (0)