Avoid an extra FEC cut for a marginal overload safety reserve
This commit is contained in:
1 parent
3d6c843958
commit
01324d2ebb
1 file changed
+2
-2
@@ -1144,7 +1144,7 @@ static void pressure_tick(struct stream_network *net, uint64_t now) {
|
||||
else if (!net->global_candidate) { net->global_candidate = 1; net->global_since_ms = now; }
|
||||
net->global_pressure = net->global_candidate && now - net->global_since_ms >= STREAM_LOAD_CONFIRM_MS;
|
||||
if (net->global_pressure) {
|
||||
uint64_t required = global.growth_rate ? global.growth_rate + global.growth_rate / 10 + 1 : global.queued.bytes / 2 + 1;
|
||||
uint64_t required = global.growth_rate ? global.growth_rate + global.growth_rate / 100 + 1 : global.queued.bytes / 2 + 1;
|
||||
for (unsigned pass = 0; pass < net->peer_count && required; pass++) {
|
||||
struct stream_peer *best = NULL; uint64_t best_rate = 0;
|
||||
for (struct stream_peer *p = net->peers; p; p = p->next) {
|
||||
@@ -1164,7 +1164,7 @@ static void pressure_tick(struct stream_network *net, uint64_t now) {
|
||||
p->busy++;
|
||||
if (!net->global_pressure && p->load.snapshot.confirmed && !p->pressure.active && !p->cooling) {
|
||||
uint64_t g = p->load.snapshot.growth_rate;
|
||||
pressure_begin(p, g ? g + g / 10 + 1 : p->load.queued.bytes / 2 + 1, now);
|
||||
pressure_begin(p, g ? g + g / 100 + 1 : p->load.queued.bytes / 2 + 1, now);
|
||||
}
|
||||
if (p->pressure.active && now >= p->pressure.deadline_ms) {
|
||||
DEBUG_WARN(DEBUG_CATEGORY_STREAM, "stream OVERLOAD deadline peer=%llx id=%llu released=%llu required=%llu",
|
||||
|
||||
Reference in new issue
Block a user