v65-0001-Turn-on-per-node-counts-in-benchmark.patch
text/x-patch
Filename: v65-0001-Turn-on-per-node-counts-in-benchmark.patch
Type: text/x-patch
Part: 0
Patch
Format: format-patch
Series: patch v65-0001
Subject: Turn on per-node counts in benchmark
| File | + | − |
|---|---|---|
| contrib/bench_radix_tree/bench_radix_tree.c | 5 | 0 |
| contrib/bench_radix_tree/.gitignore | 3 | 0 |
| src/backend/lib/radixtree.c | 1 | 1 |
| src/include/lib/radixtree.h | 1 | 1 |
From 43a50a385930ee340d0a3b003910c704a0ff342c Mon Sep 17 00:00:00 2001
From: John Naylor <john.naylor@postgresql.org>
Date: Thu, 6 Oct 2022 09:07:41 +0700
Subject: [PATCH v65 1/5] Turn on per-node counts in benchmark
Also add gitigore, fix whitespace, and change to NOTICE
---
contrib/bench_radix_tree/.gitignore | 3 +++
contrib/bench_radix_tree/bench_radix_tree.c | 5 +++++
src/backend/lib/radixtree.c | 2 +-
src/include/lib/radixtree.h | 2 +-
4 files changed, 10 insertions(+), 2 deletions(-)
create mode 100644 contrib/bench_radix_tree/.gitignore
diff --git a/contrib/bench_radix_tree/.gitignore b/contrib/bench_radix_tree/.gitignore
new file mode 100644
index 0000000000..8830f5460d
--- /dev/null
+++ b/contrib/bench_radix_tree/.gitignore
@@ -0,0 +1,3 @@
+*data
+log/*
+results/*
diff --git a/contrib/bench_radix_tree/bench_radix_tree.c b/contrib/bench_radix_tree/bench_radix_tree.c
index 5806ef7519..36c5218ae7 100644
--- a/contrib/bench_radix_tree/bench_radix_tree.c
+++ b/contrib/bench_radix_tree/bench_radix_tree.c
@@ -13,6 +13,7 @@
#include "fmgr.h"
#include "funcapi.h"
#include "lib/radixtree.h"
+#include <math.h>
#include "miscadmin.h"
#include "utils/timestamp.h"
@@ -183,6 +184,8 @@ bench_search(FunctionCallInfo fcinfo, bool shuffle)
TimestampDifference(start_time, end_time, &secs, &usecs);
rt_load_ms = secs * 1000 + usecs / 1000;
+ rt_stats(rt);
+
/* measure the load time of the array */
itemptrs = MemoryContextAllocHuge(CurrentMemoryContext,
sizeof(ItemPointerData) * ntids);
@@ -292,6 +295,8 @@ bench_load_random_int(PG_FUNCTION_ARGS)
TimestampDifference(start_time, end_time, &secs, &usecs);
load_time_ms = secs * 1000 + usecs / 1000;
+ rt_stats(rt);
+
MemSet(nulls, false, sizeof(nulls));
values[0] = Int64GetDatum(rt_memory_usage(rt));
values[1] = Int64GetDatum(load_time_ms);
diff --git a/src/backend/lib/radixtree.c b/src/backend/lib/radixtree.c
index b163eac480..a84c06f0d4 100644
--- a/src/backend/lib/radixtree.c
+++ b/src/backend/lib/radixtree.c
@@ -1980,7 +1980,7 @@ rt_verify_node(rt_node *node)
void
rt_stats(radix_tree *tree)
{
- fprintf(stderr, "num_keys = %lu, height = %u, n4 = %u, n16 = %u,n32 = %u, n128 = %u, n256 = %u",
+ elog(NOTICE, "num_keys = %lu, height = %u, n4 = %u, n16 = %u, n32 = %u, n128 = %u, n256 = %u",
tree->num_keys,
tree->root->shift / RT_NODE_SPAN,
tree->cnt[0],
diff --git a/src/include/lib/radixtree.h b/src/include/lib/radixtree.h
index 38cc6abf4c..d5d7668617 100644
--- a/src/include/lib/radixtree.h
+++ b/src/include/lib/radixtree.h
@@ -15,7 +15,7 @@
#include "postgres.h"
-/* #define RT_DEBUG 1 */
+#define RT_DEBUG 1
typedef struct radix_tree radix_tree;
typedef struct rt_iter rt_iter;
--
2.37.3