From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Robert Haas <rhaas(at)postgresql(dot)org> |
Cc: | "pgsql-committers(at)postgresql(dot)org" <pgsql-committers(at)postgresql(dot)org> |
Subject: | Re: pgsql: Simplify LWLock tranche machinery by removing array_base/array_s |
Date: | 2016-12-21 07:14:12 |
Message-ID: | CAFj8pRAHFYA1EFphsK1eOpa=ED34P-mXbFWCKxnJqWc4zqaxtA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers pgsql-hackers |
Hi
Is there some help for extensions developers, how to fix extensions after
this change?
Orafce hits this change.
Regards
Pavel
2016-12-16 17:41 GMT+01:00 Robert Haas <rhaas(at)postgresql(dot)org>:
> Simplify LWLock tranche machinery by removing array_base/array_stride.
>
> array_base and array_stride were added so that we could identify the
> offset of an LWLock within a tranche, but this facility is only very
> marginally used apart from the main tranche. So, give every lock in
> the main tranche its own tranche ID and get rid of array_base,
> array_stride, and all that's attached. For debugging facilities
> (Trace_lwlocks and LWLOCK_STATS) print the pointer address of the
> LWLock using %p instead of the offset. This is arguably more useful,
> and certainly a lot cheaper. Drop the offset-within-tranche from
> the information reported to dtrace and from one can't-happen message
> inside lwlock.c.
>
> The main user-visible impact of this change is that pg_stat_activity
> will now report all waits for LWLocks as "LWLock" rather than
> reporting some as "LWLockTranche" and others as "LWLockNamed".
>
> The main motivation for this change is that the need to specify an
> array_base and an array_stride is awkward for parallel query. There
> is only a very limited supply of tranche IDs so we can't just keep
> allocating new ones, and if we try to use the same tranche IDs every
> time then we run into trouble when multiple parallel contexts are
> use simultaneously. So if we didn't get rid of this mechanism we'd
> have to make it even more complicated. By simplifying it in this
> way, we instead reduce the size of the generated code for lwlock.c
> by about 5%.
>
> Discussion: http://postgr.es/m/CA+TgmoYsFn6NUW1x0AZtupJGUAs1UDY4
> dJtCN47_Q6D0sP80PA(at)mail(dot)gmail(dot)com
>
> Branch
> ------
> master
>
> Details
> -------
> http://git.postgresql.org/pg/commitdiff/3761fe3c20bb040b15f0e8da58d824
> 631da00caa
>
> Modified Files
> --------------
> doc/src/sgml/monitoring.sgml | 52 ++++-----
> src/backend/access/transam/slru.c | 6 +-
> src/backend/access/transam/xlog.c | 9 +-
> src/backend/postmaster/pgstat.c | 10 +-
> src/backend/replication/logical/origin.c | 8 +-
> src/backend/replication/slot.c | 8 +-
> src/backend/storage/buffer/buf_init.c | 16 +--
> src/backend/storage/ipc/procarray.c | 9 +-
> src/backend/storage/lmgr/lwlock.c | 175
> ++++++++++---------------------
> src/backend/utils/mmgr/dsa.c | 15 +--
> src/backend/utils/probes.d | 16 +--
> src/include/access/slru.h | 1 -
> src/include/pgstat.h | 3 +-
> src/include/storage/lwlock.h | 45 ++------
> 14 files changed, 112 insertions(+), 261 deletions(-)
>
>
> --
> Sent via pgsql-committers mailing list (pgsql-committers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-committers
>
From | Date | Subject | |
---|---|---|---|
Next Message | Fujii Masao | 2016-12-21 11:27:53 | pgsql: Forbid invalid combination of options in pg_basebackup. |
Previous Message | Tom Lane | 2016-12-21 00:22:08 | pgsql: Fix minor oversights in nodeAgg.c. |
From | Date | Subject | |
---|---|---|---|
Next Message | Ants Aasma | 2016-12-21 07:40:09 | Re: Replication slot xmin is not reset if HS feedback is turned off while standby is shut down |
Previous Message | Pavel Stehule | 2016-12-21 06:59:38 | Re: too low cost of Bitmap index scan |