Conversation
c96b4d5 to
5d8d3d8
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3855 +/- ##
==========================================
+ Coverage 25.77% 25.78% +0.01%
==========================================
Files 670 670
Lines 43113 43173 +60
==========================================
+ Hits 11112 11132 +20
- Misses 30983 31021 +38
- Partials 1018 1020 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
41d14dc to
7b26cb7
Compare
pkg/services/policer/process.go
Outdated
| p.mtx.RUnlock() | ||
| // boostWindowSize is the number of recent batches tracked to compute the | ||
| // current boost multiplier. | ||
| const boostWindowSize = 8 |
There was a problem hiding this comment.
do you have any inspiration why it is not e.g. 100? 8 seems too low to me
There was a problem hiding this comment.
I just pulled that number out of thin air. With that size, it would take 5 iterations requiring replication to trigger the boost mode. Maybe it could be increased to 16-32, but 100 seems like too much: it would take 51 iterations with replication to trigger the boost mode, which would be too rare, in my opinion.
7b26cb7 to
15aeb6a
Compare
When the policer detects missing replicas and triggers replication, it enters "boost mode" and multiplies the object batch size by a configurable boost multiplier for subsequent batches. To avoid premature activation on short-lived outages and premature deactivation during netmap changes, boost mode uses a sliding window of the last 8 batches: the policer enters boost when a strict majority of the window's batches required replication, and leaves it when a strict majority were clean. An equal split keeps the current state unchanged. This significantly speeds up cluster recovery. Add new reloadable config option `policer.boost_multiplier`. Closes #3762. Signed-off-by: Andrey Butusov <andrey@nspcc.io>
Signed-off-by: Andrey Butusov <andrey@nspcc.io>
Closes #3762.