diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2024-02-06 10:54:10 +0100 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2024-02-06 10:54:10 +0100 |
commit | d172b717c6f436738cc8383a4e9f611ae227fd93 (patch) | |
tree | 9e0534de49aefc6ea176cf6e8c963a25cd0aa55c /src/backend/access/transam/clog.c | |
parent | b83033c3cff556d520281aaec399e47b4f11edbe (diff) | |
download | postgresql-d172b717c6f436738cc8383a4e9f611ae227fd93.tar.gz postgresql-d172b717c6f436738cc8383a4e9f611ae227fd93.zip |
Use atomic access for SlruShared->latest_page_number
The new concurrency model proposed for slru.c to improve performance
does not include any single lock that would coordinate processes
doing concurrent reads/writes on SlruShared->latest_page_number.
We can instead use atomic reads and writes for that variable.
Author: Dilip Kumar <dilipbalaut@gmail.com>
Reviewed-by: Andrey M. Borodin <x4mmm@yandex-team.ru>
Discussion: https://postgr.es/m/CAFiTN-vzDvNz=ExGXz6gdyjtzGixKSqs0mKHMmaQ8sOSEFZ33A@mail.gmail.com
Diffstat (limited to 'src/backend/access/transam/clog.c')
-rw-r--r-- | src/backend/access/transam/clog.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/backend/access/transam/clog.c b/src/backend/access/transam/clog.c index f6e7da7ffc9..06fc2989bab 100644 --- a/src/backend/access/transam/clog.c +++ b/src/backend/access/transam/clog.c @@ -766,14 +766,10 @@ StartupCLOG(void) TransactionId xid = XidFromFullTransactionId(TransamVariables->nextXid); int64 pageno = TransactionIdToPage(xid); - LWLockAcquire(XactSLRULock, LW_EXCLUSIVE); - /* * Initialize our idea of the latest page number. */ - XactCtl->shared->latest_page_number = pageno; - - LWLockRelease(XactSLRULock); + pg_atomic_write_u64(&XactCtl->shared->latest_page_number, pageno); } /* |