Re: Speed up Clog Access by increasing CLOG buffers
Amit Kapila <amit.kapila16@gmail.com>
On Mon, Sep 21, 2015 at 6:34 AM, Peter Geoghegan <pg@heroku.com> wrote: > > On Mon, Aug 31, 2015 at 9:49 PM, Amit Kapila <amit.kapila16@gmail.com> wrote: > > Increasing CLOG buffers to 64 helps in reducing the contention due to second > > reason. Experiments revealed that increasing CLOG buffers only helps > > once the contention around ProcArrayLock is reduced. > > There has been a lot of research on bitmap compression, more or less > for the benefit of bitmap index access methods. > > Simple techniques like run length encoding are effective for some > things. If the need to map the bitmap into memory to access the status > of transactions is a concern, there has been work done on that, too. > Byte-aligned bitmap compression is a technique that might offer a good > trade-off between compression clog, and decompression overhead -- I > think that there basically is no decompression overhead, because set > operations can be performed on the "compressed" representation > directly. There are other techniques, too. > I could see benefits of doing compression for CLOG, but I think it won't be straight forward, other than handling of compression and decompression, currently code relies on transaction id to find the clog page, that will not work after compression or we need to do some changes in that mapping to make it work. Also I think it could avoid the increase of clog buffers which can help readers, but it won't help much for contention around clog updates for transaction status. Overall this idea sounds promising, but I think the work involved is more than the benefit I am expecting for the current optimization we are discussing. With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
Commits
-
Use group updates when setting transaction status in clog.
- baaf272ac908 11.0 landed
- ccce90b39867 10.0 landed
-
Improve 64bit atomics support.
- e8fdbd58fe56 10.0 landed
-
Add ProcArrayGroupUpdate wait event.
- d4116a771925 10.0 landed
-
Make the different Unix-y semaphore implementations ABI-compatible.
- be7b2848c6d8 10.0 cited
-
Fix broken ALTER INDEX documentation
- 2143f5e12790 9.6.0 cited
-
Code and docs review for commit 3187d6de0e5a9e805b27c48437897e8c39071d45.
- d12e5bb79bb5 9.6.0 cited
-
Partition the freelist for shared dynahash tables.
- 44ca4022f3f9 9.6.0 cited
-
Correct StartupSUBTRANS for page wraparound
- 481725c0ba73 9.6.0 cited
-
Make idle backends exit if the postmaster dies.
- ac1d7945f866 9.6.0 cited
-
contrib/sslinfo: add ssl_extension_info SRF
- 49124613f134 9.6.0 cited
-
Reduce ProcArrayLock contention by removing backends in batches.
- 0e141c0fbb21 9.6.0 cited
-
Fix `make installcheck` for serializable transactions.
- 253de7e1eb9a 9.6.0 cited
-
Lockless StrategyGetBuffer clock sweep hot path.
- d72731a70450 9.5.0 cited
-
Reduce sinval synchronization overhead.
- b4fbe392f8ff 9.2.0 cited