Re: SLRU optimization - configurable buffer pool and partitioning the SLRU lock

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Dilip Kumar <dilipbalaut@gmail.com>
Cc: tender wang <tndrwang@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-01-25T16:33:43Z
Lists: pgsql-hackers

Attachments

On 2024-Jan-25, Alvaro Herrera wrote:

> Here's a touched-up version of this patch.

> diff --git a/src/backend/storage/lmgr/lwlock.c b/src/backend/storage/lmgr/lwlock.c
> index 98fa6035cc..4a5e05d5e4 100644
> --- a/src/backend/storage/lmgr/lwlock.c
> +++ b/src/backend/storage/lmgr/lwlock.c
> @@ -163,6 +163,13 @@ static const char *const BuiltinTrancheNames[] = {
>  	[LWTRANCHE_LAUNCHER_HASH] = "LogicalRepLauncherHash",
>  	[LWTRANCHE_DSM_REGISTRY_DSA] = "DSMRegistryDSA",
>  	[LWTRANCHE_DSM_REGISTRY_HASH] = "DSMRegistryHash",
> +	[LWTRANCHE_COMMITTS_SLRU] = "CommitTSSLRU",
> +	[LWTRANCHE_MULTIXACTOFFSET_SLRU] = "MultixactOffsetSLRU",
> +	[LWTRANCHE_MULTIXACTMEMBER_SLRU] = "MultixactMemberSLRU",
> +	[LWTRANCHE_NOTIFY_SLRU] = "NotifySLRU",
> +	[LWTRANCHE_SERIAL_SLRU] = "SerialSLRU"
> +	[LWTRANCHE_SUBTRANS_SLRU] = "SubtransSLRU",
> +	[LWTRANCHE_XACT_SLRU] = "XactSLRU",
>  };

Eeek.  Last minute changes ...  Fixed here.

-- 
Álvaro Herrera        Breisgau, Deutschland  —  https://www.EnterpriseDB.com/
"La primera ley de las demostraciones en vivo es: no trate de usar el sistema.
Escriba un guión que no toque nada para no causar daños." (Jakob Nielsen)

Commits

  1. Fix zeroing of pg_serial page without SLRU bank lock

  2. Fix misspelled assertions

  3. GUC table: Add description to computed variables

  4. Improve performance of subsystems on top of SLRU

  5. Rename SLRU elements in view pg_stat_slru

  6. Use atomic access for SlruShared->latest_page_number

  7. Split use of SerialSLRULock, creating SerialControlLock

  8. Index SLRUs by 64-bit integers rather than by 32-bit integers

  9. Add a macro templatized hashtable.