pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Julien Rouhaud <rjuju123@gmail.com>
To: Andrey Borodin <x4mmm@yandex-team.ru>
Cc: Gilles Darold <gilles@darold.net>
Cc: Tomas Vondra <tomas.vondra@enterprisedb.com>
Cc: Tomas Vondra <tomas.vondra@2ndquadrant.com>
Cc: Alexander Korotkov <aekorotkov@gmail.com>
Cc: Anastasia Lubennikova <a.lubennikova@postgrespro.ru>
Cc: Daniel Gustafsson <daniel@yesql.se>
Cc: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: Thomas Munro <thomas.munro@gmail.com>
Subject: Re: MultiXact\SLRU buffers configuration
Date: Fri, 14 Jan 2022 17:28:38 +0800
Message-ID: <20220114092838.gbr6ea7zxbaespsr@jrouhaud> (raw)
In-Reply-To: <28051640513399@vla1-36b7415cbc1b.qloud-c.yandex.net>
References: <CA+hUKGKEdeVKpOqBxzRF+Z4=j0T+CA7ERrXni5De71Mm6-dBWA@mail.gmail.com>
	<27D90FFC-B897-4BC5-B4F5-9047B9886AA3@yandex-team.ru>
	<CA+hUKGKTESKn9-BkUT8T3vwcgZQJqsV4PSQKpE+M1qUgfSTLMg@mail.gmail.com>
	<B7D61584-6CAC-4CF9-B3D4-7CC52D6C4C5C@yandex-team.ru>
	<15CA416B-3446-462D-902B-4883DD3ADEE6@yandex-team.ru>
	<CA+hUKGLCLDtgDj2Xsf0uBk5WXDCeHxBDDJPsyY7m65Fde-=pyg@mail.gmail.com>
	<B8FACD14-E3AB-4EB3-8CCC-E93697C54F72@yandex-team.ru>
	<CA+hUKGKzPSXYowH=Y8NiuUD8gdyD225-WHaEzXT1E0Sa8RopVQ@mail.gmail.com>
	<494C5E7F-E410-48FA-A93E-F7723D859561@yandex-team.ru>
	<28051640513399@vla1-36b7415cbc1b.qloud-c.yandex.net>

Hi,
On Sun, Dec 26, 2021 at 03:09:59PM +0500, Andrey Borodin wrote:
> 
> 
> PFA rebase of the patchset. Also I've added a patch to combine page_number, page_status, and page_dirty together to touch less cachelines.

The cfbot reports some errors on the latest version of the patch:

https://cirrus-ci.com/task/6121317215764480
[04:56:38.432] su postgres -c "make -s -j${BUILD_JOBS} world-bin"
[04:56:48.270] In file included from async.c:134:
[04:56:48.270] ../../../src/include/access/slru.h:47:28: error: expected identifier or ‘(’ before ‘:’ token
[04:56:48.270]    47 | typedef enum SlruPageStatus:int16_t
[04:56:48.270]       |                            ^
[04:56:48.270] ../../../src/include/access/slru.h:53:3: warning: data definition has no type or storage class
[04:56:48.270]    53 | } SlruPageStatus;
[04:56:48.270]       |   ^~~~~~~~~~~~~~
[04:56:48.270] ../../../src/include/access/slru.h:53:3: warning: type defaults to ‘int’ in declaration of ‘SlruPageStatus’ [-Wimplicit-int]
[04:56:48.270] ../../../src/include/access/slru.h:58:2: error: expected specifier-qualifier-list before ‘SlruPageStatus’
[04:56:48.270]    58 |  SlruPageStatus page_status;
[04:56:48.270]       |  ^~~~~~~~~~~~~~
[04:56:48.270] async.c: In function ‘asyncQueueAddEntries’:
[04:56:48.270] async.c:1448:41: error: ‘SlruPageEntry’ has no member named ‘page_dirty’
[04:56:48.270]  1448 |  NotifyCtl->shared->page_entries[slotno].page_dirty = true;
[04:56:48.270]       |                                         ^
[04:56:48.271] make[3]: *** [<builtin>: async.o] Error 1
[04:56:48.271] make[3]: *** Waiting for unfinished jobs....
[04:56:48.297] make[2]: *** [common.mk:39: commands-recursive] Error 2
[04:56:48.297] make[2]: *** Waiting for unfinished jobs....
[04:56:54.554] In file included from clog.c:36:
[04:56:54.554] ../../../../src/include/access/slru.h:47:28: error: expected identifier or ‘(’ before ‘:’ token
[04:56:54.554]    47 | typedef enum SlruPageStatus:int16_t
[04:56:54.554]       |                            ^
[04:56:54.554] ../../../../src/include/access/slru.h:53:3: warning: data definition has no type or storage class
[04:56:54.554]    53 | } SlruPageStatus;
[04:56:54.554]       |   ^~~~~~~~~~~~~~
[04:56:54.554] ../../../../src/include/access/slru.h:53:3: warning: type defaults to ‘int’ in declaration of ‘SlruPageStatus’ [-Wimplicit-int]
[04:56:54.554] ../../../../src/include/access/slru.h:58:2: error: expected specifier-qualifier-list before ‘SlruPageStatus’
[04:56:54.554]    58 |  SlruPageStatus page_status;
[04:56:54.554]       |  ^~~~~~~~~~~~~~
[04:56:54.554] clog.c: In function ‘TransactionIdSetPageStatusInternal’:
[04:56:54.554] clog.c:396:39: error: ‘SlruPageEntry’ has no member named ‘page_dirty’
[04:56:54.554]   396 |  XactCtl->shared->page_entries[slotno].page_dirty = true;
[04:56:54.554]       |                                       ^
[04:56:54.554] In file included from ../../../../src/include/postgres.h:46,
[04:56:54.554]                  from clog.c:33:
[04:56:54.554] clog.c: In function ‘BootStrapCLOG’:
[04:56:54.554] clog.c:716:47: error: ‘SlruPageEntry’ has no member named ‘page_dirty’
[04:56:54.554]   716 |  Assert(!XactCtl->shared->page_entries[slotno].page_dirty);
[04:56:54.554]       |                                               ^
[04:56:54.554] ../../../../src/include/c.h:848:9: note: in definition of macro ‘Assert’
[04:56:54.554]   848 |   if (!(condition)) \
[04:56:54.554]       |         ^~~~~~~~~
[04:56:54.554] clog.c: In function ‘TrimCLOG’:
[04:56:54.554] clog.c:801:40: error: ‘SlruPageEntry’ has no member named ‘page_dirty’
[04:56:54.554]   801 |   XactCtl->shared->page_entries[slotno].page_dirty = true;
[04:56:54.554]       |                                        ^
[04:56:54.554] In file included from ../../../../src/include/postgres.h:46,
[04:56:54.554]                  from clog.c:33:
[04:56:54.554] clog.c: In function ‘clog_redo’:
[04:56:54.554] clog.c:997:48: error: ‘SlruPageEntry’ has no member named ‘page_dirty’
[04:56:54.554]   997 |   Assert(!XactCtl->shared->page_entries[slotno].page_dirty);
[04:56:54.554]       |                                                ^
[04:56:54.554] ../../../../src/include/c.h:848:9: note: in definition of macro ‘Assert’
[04:56:54.554]   848 |   if (!(condition)) \
[04:56:54.554]       |         ^~~~~~~~~
[04:56:54.555] make[4]: *** [<builtin>: clog.o] Error 1
[04:56:54.555] make[3]: *** [../../../src/backend/common.mk:39: transam-recursive] Error 2
[04:56:54.555] make[3]: *** Waiting for unfinished jobs....
[04:56:56.405] make[2]: *** [common.mk:39: access-recursive] Error 2
[04:56:56.405] make[1]: *** [Makefile:42: all-backend-recurse] Error 2
[04:56:56.405] make: *** [GNUmakefile:21: world-bin-src-recurse] Error 2
[04:56:56.407]
[04:56:56.407] Exit status: 2

Could you send a new version?  In the meantime I will switch the patch status
to Waiting on Author.





view thread (123+ messages)  latest in thread

Message-ID: <20220114092838.gbr6ea7zxbaespsr@jrouhaud>
Permalink:  ../20220114092838.gbr6ea7zxbaespsr@jrouhaud/
Also on:    postgresql.org/message-id/20220114092838.gbr6ea7zxbaespsr@jrouhaud

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: rjuju123@gmail.com, x4mmm@yandex-team.ru, gilles@darold.net, tomas.vondra@enterprisedb.com, tomas.vondra@2ndquadrant.com, aekorotkov@gmail.com, a.lubennikova@postgrespro.ru, daniel@yesql.se, horikyota.ntt@gmail.com, thomas.munro@gmail.com
  Subject: Re: MultiXact\SLRU buffers configuration
  In-Reply-To: <20220114092838.gbr6ea7zxbaespsr@jrouhaud>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox