Re: Speed up Clog Access by increasing CLOG buffers
Robert Haas <robertmhaas@gmail.com>
On Sun, Sep 18, 2016 at 5:11 PM, Tomas Vondra <tomas.vondra@2ndquadrant.com> wrote: > IMHO in the ideal case the first message in this thread would provide a test > case, demonstrating the effect of the patch. Then we wouldn't have the issue > of looking for a good workload two years later. > > But now that I look at the first post, I see it apparently used a plain > tpc-b pgbench (with synchronous_commit=on) to show the benefits, which is > the workload I'm running right now (results sometime tomorrow). > > That workload clearly uses no savepoints at all, so I'm wondering why you > suggested to use several of them - I know you said that it's to show > differences between the approaches, but why should that matter to any of the > patches (and if it matters, why I got almost no differences in the > benchmarks)? > > Pardon my ignorance, CLOG is not my area of expertise ... It's possible that the effect of this patch depends on the number of sockets. EDB test machine cthulhu as 8 sockets, and power2 has 4 sockets. I assume Dilip's tests were run on one of those two, although he doesn't seem to have mentioned which one. Your system is probably 2 or 4 sockets, which might make a difference. Results might also depend on CPU architecture; power2 is, unsurprisingly, a POWER system, whereas I assume you are testing x86. Maybe somebody who has access should test on hydra.pg.osuosl.org, which is a community POWER resource. (Send me a private email if you are a known community member who wants access for benchmarking purposes.) Personally, I find the results so far posted on this thread thoroughly unimpressive. I acknowledge that Dilip's results appear to show that in a best-case scenario these patches produce a rather large gain. However, that gain seems to happen in a completely contrived scenario: astronomical client counts, unlogged tables, and a test script that maximizes pressure on CLogControlLock. If you have to work that hard to find a big win, and tests under more reasonable conditions show no benefit, it's not clear to me that it's really worth the time we're all spending benchmarking and reviewing this, or the risk of bugs, or the damage to the SLRU abstraction layer. I think there's a very good chance that we're better off moving on to projects that have a better chance of helping in the real world. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
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