agora inbox for pgsql-hackers@postgresql.orghelp / color / mirror / Atom feed
[PATCH v1] Make pg_stat_statements tests immune to prepared statements invalidation. 132+ messages / 2 participants [nested] [flat]
* [PATCH v1] Make pg_stat_statements tests immune to prepared statements invalidation. @ 2021-07-26 01:23 Julien Rouhaud <julien.rouhaud@free.fr> 0 siblings, 0 replies; 132+ messages in thread From: Julien Rouhaud @ 2021-07-26 01:23 UTC (permalink / raw) The tests for the number of planifications have been unstable since their introduction, but got unnoticed until now as buildfarm animals don't run them for now. Discussion: https://postgr.es/m/42557.1627229005@sss.pgh.pa.us --- .../expected/pg_stat_statements.out | 27 ++++++++++++------- .../sql/pg_stat_statements.sql | 5 +++- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/contrib/pg_stat_statements/expected/pg_stat_statements.out b/contrib/pg_stat_statements/expected/pg_stat_statements.out index 40b5109b55..ea2f8cf77f 100644 --- a/contrib/pg_stat_statements/expected/pg_stat_statements.out +++ b/contrib/pg_stat_statements/expected/pg_stat_statements.out @@ -850,16 +850,23 @@ SELECT 42; 42 (1 row) -SELECT query, plans, calls, rows FROM pg_stat_statements ORDER BY query COLLATE "C"; - query | plans | calls | rows --------------------------------------------------------------------------------------+-------+-------+------ - ALTER TABLE test ADD COLUMN x int | 0 | 1 | 0 - CREATE TABLE test () | 0 | 1 | 0 - PREPARE prep1 AS SELECT COUNT(*) FROM test | 2 | 4 | 4 - SELECT $1 | 3 | 3 | 3 - SELECT pg_stat_statements_reset() | 0 | 1 | 1 - SELECT query, plans, calls, rows FROM pg_stat_statements ORDER BY query COLLATE "C" | 1 | 0 | 0 -(6 rows) +SELECT query, plans, calls, rows FROM pg_stat_statements WHERE query NOT LIKE 'PREPARE%' ORDER BY query COLLATE "C"; + query | plans | calls | rows +-------------------------------------------------------------------------------------------------------------+-------+-------+------ + ALTER TABLE test ADD COLUMN x int | 0 | 1 | 0 + CREATE TABLE test () | 0 | 1 | 0 + SELECT $1 | 3 | 3 | 3 + SELECT pg_stat_statements_reset() | 0 | 1 | 1 + SELECT query, plans, calls, rows FROM pg_stat_statements WHERE query NOT LIKE $1 ORDER BY query COLLATE "C" | 1 | 0 | 0 +(5 rows) + +-- for the prepared statemennt we expect at least one replan, but cache +-- invalidations could force more +SELECT query, plans >=2 AND plans<=calls AS plans_ok, rows FROM pg_stat_statements WHERE query LIKE 'PREPARE%' ORDER BY query COLLATE "C"; + query | plans_ok | rows +--------------------------------------------+----------+------ + PREPARE prep1 AS SELECT COUNT(*) FROM test | t | 4 +(1 row) -- -- access to pg_stat_statements_info view diff --git a/contrib/pg_stat_statements/sql/pg_stat_statements.sql b/contrib/pg_stat_statements/sql/pg_stat_statements.sql index bc3b6493e6..3606a5f581 100644 --- a/contrib/pg_stat_statements/sql/pg_stat_statements.sql +++ b/contrib/pg_stat_statements/sql/pg_stat_statements.sql @@ -356,7 +356,10 @@ EXECUTE prep1; SELECT 42; SELECT 42; SELECT 42; -SELECT query, plans, calls, rows FROM pg_stat_statements ORDER BY query COLLATE "C"; +SELECT query, plans, calls, rows FROM pg_stat_statements WHERE query NOT LIKE 'PREPARE%' ORDER BY query COLLATE "C"; +-- for the prepared statemennt we expect at least one replan, but cache +-- invalidations could force more +SELECT query, plans >=2 AND plans<=calls AS plans_ok, rows FROM pg_stat_statements WHERE query LIKE 'PREPARE%' ORDER BY query COLLATE "C"; -- -- access to pg_stat_statements_info view -- 2.32.0 --u7vhz6hsqudt26ss-- ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
* [PATCH v1 1/2] Add a USDT for tracing nbtree page splits @ 2026-04-27 14:53 Dmitrii Dolgov <9erthalion6@gmail.com> 0 siblings, 0 replies; 132+ messages in thread From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw) Add a new USDT nbtree__page__split with a single argument BlockNumber to trace page splits, which is usefull for experimenting. --- src/backend/access/nbtree/nbtinsert.c | 3 +++ src/backend/utils/probes.d | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index c8af97dd23d..ddb7b47118e 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -24,6 +24,7 @@ #include "common/pg_prng.h" #include "lib/qunique.h" #include "miscadmin.h" +#include "pg_trace.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "utils/injection_point.h" @@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf, pfree(lefthighkey); /* split's done */ + TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber); + return rbuf; } diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 1929521c6a5..521b76ec59e 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -91,4 +91,6 @@ provider postgresql { probe wal__switch(); probe wal__buffer__write__dirty__start(); probe wal__buffer__write__dirty__done(); + + probe nbtree__page__split(BlockNumber); }; base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba -- 2.52.0 --lrvveq3ghcikhrll Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch" Content-Transfer-Encoding: 8bit ^ permalink raw reply [nested|flat] 132+ messages in thread
end of thread, other threads:[~2026-04-27 14:53 UTC | newest] Thread overview: 132+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2021-07-26 01:23 [PATCH v1] Make pg_stat_statements tests immune to prepared statements invalidation. Julien Rouhaud <julien.rouhaud@free.fr> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com> 2026-04-27 14:53 [PATCH v1 1/2] Add a USDT for tracing nbtree page splits Dmitrii Dolgov <9erthalion6@gmail.com>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox