On Mon, Sep 19, 2016 at 2:41 AM, Tomas Vondra
<tomas.von...@2ndquadrant.com> wrote:
> 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).

Good option, We can test plain TPC-B also..

I have some more results.. I have got the result for "Update with no
savepoint"....

below is my script...

\set aid random (1,30000000)
\set tid random (1,3000)
\set delta random(-5000, 5000)
BEGIN;
UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;


Results: (median of three, 10 minutes run).

Clients   Head     GroupLock
16          21452    21589
32          42422    42688
64          42460    52590           ~ 23%
128        22683    56825           ~150%
256       18748     54867

With this workload I observed that gain is bigger than my previous
workload (select for update with 2 SP)..

Just to confirm that the gain what we are seeing is because of Clog
Lock contention removal or it's
something else, I ran 128 client with perf for 5 minutes and below is my result.

I can see that after applying group lock patch, LWLockAcquire become
28% to just 4%, and all because
of Clog Lock.

On Head:
------------
-   28.45%     0.24%  postgres  postgres           [.] LWLockAcquire
   - LWLockAcquire
      + 53.49% TransactionIdSetPageStatus
      + 40.83% SimpleLruReadPage_ReadOnly
      + 1.16% BufferAlloc
      + 0.92% GetSnapshotData
      + 0.89% GetNewTransactionId
      + 0.72% LockBuffer
      + 0.70% ProcArrayGroupClearXid


After Group Lock Patch:
-------------------------------
-    4.47%     0.26%  postgres  postgres           [.] LWLockAcquire
   - LWLockAcquire
      + 27.11% GetSnapshotData
      + 21.57% GetNewTransactionId
      + 11.44% SimpleLruReadPage_ReadOnly
      + 10.13% BufferAlloc
      + 7.24% ProcArrayGroupClearXid
      + 4.74% LockBuffer
      + 4.08% LockAcquireExtended
      + 2.91% TransactionGroupUpdateXidStatus
      + 2.71% LockReleaseAll
      + 1.90% WALInsertLockAcquire
      + 0.94% LockRelease
      + 0.91% VirtualXactLockTableInsert
      + 0.90% VirtualXactLockTableCleanup
      + 0.72% MultiXactIdSetOldestMember
      + 0.66% LockRefindAndRelease

Next I will test, "update with 2 savepoints", "select for update with
no savepoints"....
I will also test the granular lock and atomic lock patch in next run..

-- 
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to