Re: CLOG contention, part 2
От | Simon Riggs |
---|---|
Тема | Re: CLOG contention, part 2 |
Дата | |
Msg-id | CA+U5nMK4GwZEy8yv93v=U8dUmFcRMzvQWd_sf3s5LcgF_8nLfg@mail.gmail.com обсуждение исходный текст |
Ответ на | CLOG contention, part 2 (Simon Riggs <simon@2ndQuadrant.com>) |
Список | pgsql-hackers |
On Sun, Jan 8, 2012 at 2:25 PM, Simon Riggs <simon@2ndquadrant.com> wrote: > I've taken that idea and used it to build a second Clog cache, known > as ClogHistory which allows access to the read-only tail of pages in > the clog. Once a page has been written to for the last time, it will > be accessed via the ClogHistory Slru in preference to the normal Clog > Slru. This separates historical accesses by readers from current write > access by committers. Historical access doesn't force dirty writes, > nor are commits made to wait when historical access occurs. Why do we need this in 9.2? We now have clog_buffers = 32 and we have write rates ~16,000 tps. At those write rates we fill a clog buffer every 2 seconds, so the clog cache completely churns every 64 seconds. If we wish to achieve those rates in the real world, any access to data that was written by a transaction more than a minute ago will cause clog cache page faults, leading to stalls in new transactions. To avoid those problems we need * background writing of the clog LRU (already posted as a separate patch) * a way of separating access to historical data from the main commit path (this patch) And to evaluate such situations, we need a way to simulate data that contains many transactions. 32 buffers can hold just over 1 million transaction ids, so benchmarks against databases containing > 10 million separate transactions are recommended (remembering that this is just 10 mins of data on high TPS systems). A pgbench patch is provided separately to aid in the evaluation. -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: