public inbox for [email protected]help / color / mirror / Atom feed
[PATCH v1 1/2] Add a USDT for tracing nbtree page splits 273+ messages / 1 participants [nested] [flat]
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <[email protected]> 0 siblings, 0 replies; 273+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 273+ messages in thread
end of thread, other threads:[~2026-04-27 14:53 UTC | newest] Thread overview: 273+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <[email protected]>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox