agora inbox for pgsql-hackers@postgresql.org  
help / color / mirror / Atom feed
[PATCH v1] Make pg_stat_statements tests immune to prepared statements invalidation.
131+ 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; 131+ 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] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ 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; 131+ messages in thread

From: Dmitrii Dolgov @ 2026-04-27 14:53 UTC (permalink / raw)

Add a new USDT nbtree__page__split with a single argument BlockNumber to
trace page splits, which is usefull for experimenting.
---
 src/backend/access/nbtree/nbtinsert.c | 3 +++
 src/backend/utils/probes.d            | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index c8af97dd23d..ddb7b47118e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -24,6 +24,7 @@
 #include "common/pg_prng.h"
 #include "lib/qunique.h"
 #include "miscadmin.h"
+#include "pg_trace.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
 #include "utils/injection_point.h"
@@ -2107,6 +2108,8 @@ _bt_split(Relation rel, Relation heaprel, BTScanInsert itup_key, Buffer buf,
 		pfree(lefthighkey);
 
 	/* split's done */
+	TRACE_POSTGRESQL_NBTREE_PAGE_SPLIT(origpagenumber);
+
 	return rbuf;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index 1929521c6a5..521b76ec59e 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -91,4 +91,6 @@ provider postgresql {
 	probe wal__switch();
 	probe wal__buffer__write__dirty__start();
 	probe wal__buffer__write__dirty__done();
+
+	probe nbtree__page__split(BlockNumber);
 };

base-commit: 1a51ec16db7aa1688d0083911db78e17ff7f26ba
-- 
2.52.0


--lrvveq3ghcikhrll
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v1-0002-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 131+ messages in thread


end of thread, other threads:[~2026-04-27 14:53 UTC | newest]

Thread overview: 131+ 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>

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