mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-20 13:21:29 +02:00
OPTIM: stick-tables: exit expiry faster when the update lock is held
It helps keep the contention level low: when we hold the update lock that we know other parts may be relying on (peers, track-sc etc), we decrease the remaining visit counters 4 times as fast to further reduce the contention. At this point no more warnings are seen during intense synchronization (2x64 cores, 1.5M req/s with a track-sc each, 5M entries in use).
This commit is contained in:
parent
696793205b
commit
46463d6850
@ -936,7 +936,8 @@ struct task *process_table_expire(struct task *task, void *context, unsigned int
|
|||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
to_visit--;
|
/* Let's quit earlier if we currently hold the update lock */
|
||||||
|
to_visit -= 1 + 3 * updt_locked;
|
||||||
|
|
||||||
/* timer looks expired, detach it from the queue */
|
/* timer looks expired, detach it from the queue */
|
||||||
ts = eb32_entry(eb, struct stksess, exp);
|
ts = eb32_entry(eb, struct stksess, exp);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user