Lockless StrategyGetBuffer() clock sweep
От | Andres Freund |
---|---|
Тема | Lockless StrategyGetBuffer() clock sweep |
Дата | |
Msg-id | 20141027133218.GA2639@awork2.anarazel.de обсуждение исходный текст |
Ответы |
Re: Lockless StrategyGetBuffer() clock sweep
|
Список | pgsql-hackers |
Hi, I've previously posted a patch at http://archives.postgresql.org/message-id/20141010160020.GG6670%40alap3.anarazel.de that reduces contention in StrategyGetBuffer() by making the clock sweep lockless. Robert asked me to post it to a new thread; I originally wrote it to see some other contention in more detail, that's why it ended up in that thread... The performance numbers I've quoted over there are: > Test: > pgbench -M prepared -P 5 -S -c 496 -j 496 -T 5000 > on a scale=1000 database, with 4GB of shared buffers. > > Before: > progress: 40.0 s, 136252.3 tps, lat 3.628 ms stddev 4.547 > progress: 45.0 s, 135049.0 tps, lat 3.660 ms stddev 4.515 > progress: 50.0 s, 135788.9 tps, lat 3.640 ms stddev 4.398 > progress: 55.0 s, 135268.4 tps, lat 3.654 ms stddev 4.469 > progress: 60.0 s, 134991.6 tps, lat 3.661 ms stddev 4.739 > > after: > progress: 40.0 s, 207701.1 tps, lat 2.382 ms stddev 3.018 > progress: 45.0 s, 208022.4 tps, lat 2.377 ms stddev 2.902 > progress: 50.0 s, 209187.1 tps, lat 2.364 ms stddev 2.970 > progress: 55.0 s, 206462.7 tps, lat 2.396 ms stddev 2.871 > progress: 60.0 s, 210263.8 tps, lat 2.351 ms stddev 2.914 Imo the patch doesn't complicate the logic noticeably... I do wonder if we could make the freelist accesses lockless as well - but I think that's harder. So I don't want to mix that with this. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Вложения
В списке pgsql-hackers по дате отправления: