Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2e8a0ed

Browse files
committed
Add target "slru" to pg_stat_reset_shared()
Currently, pg_stat_reset_shared() cannot reset the counters in the viewpg_stat_slru even if it is a type of shared stats. This patch addssupport for a new value in pg_stat_reset_shared(), called "slru", ableto do that. Note that pg_stat_reset_shared(NULL) also resets SLRUcounters.There may be a point in removing pg_stat_reset_slru() that wasintroduced in28cac71 (v13~) as the new option overlaps with thisfunction, but we would lose the ability to reset individual SLRUcounters. This is left for future reconsideration.Author: Atsushi TorikoshiDiscussion:https://postgr.es/m/e3c25d72e81378e7b64f3c52e0306fc9@oss.nttdata.com
1 parent816f105 commit2e8a0ed

File tree

4 files changed

+39
-2
lines changed

4 files changed

+39
-2
lines changed

‎doc/src/sgml/monitoring.sgml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4749,6 +4749,12 @@ description | Waiting for a newly initialized WAL file to reach durable storage
47494749
the <structname>pg_stat_recovery_prefetch</structname> view.
47504750
</para>
47514751
</listitem>
4752+
<listitem>
4753+
<para>
4754+
<literal>slru</literal>: Reset all the counters shown in the
4755+
<structname>pg_stat_slru</structname> view.
4756+
</para>
4757+
</listitem>
47524758
<listitem>
47534759
<para>
47544760
<literal>wal</literal>: Reset all the counters shown in the

‎src/backend/utils/adt/pgstatfuncs.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1695,6 +1695,7 @@ pg_stat_reset_shared(PG_FUNCTION_ARGS)
16951695
pgstat_reset_of_kind(PGSTAT_KIND_CHECKPOINTER);
16961696
pgstat_reset_of_kind(PGSTAT_KIND_IO);
16971697
XLogPrefetchResetStats();
1698+
pgstat_reset_of_kind(PGSTAT_KIND_SLRU);
16981699
pgstat_reset_of_kind(PGSTAT_KIND_WAL);
16991700

17001701
PG_RETURN_VOID();
@@ -1712,13 +1713,15 @@ pg_stat_reset_shared(PG_FUNCTION_ARGS)
17121713
pgstat_reset_of_kind(PGSTAT_KIND_IO);
17131714
elseif (strcmp(target,"recovery_prefetch")==0)
17141715
XLogPrefetchResetStats();
1716+
elseif (strcmp(target,"slru")==0)
1717+
pgstat_reset_of_kind(PGSTAT_KIND_SLRU);
17151718
elseif (strcmp(target,"wal")==0)
17161719
pgstat_reset_of_kind(PGSTAT_KIND_WAL);
17171720
else
17181721
ereport(ERROR,
17191722
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
17201723
errmsg("unrecognized reset target: \"%s\"",target),
1721-
errhint("Target must be \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", \"recovery_prefetch\", or \"wal\".")));
1724+
errhint("Target must be \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", \"recovery_prefetch\",\"slru\",or \"wal\".")));
17221725

17231726
PG_RETURN_VOID();
17241727
}

‎src/test/regress/expected/stats.out

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -960,6 +960,21 @@ SELECT stats_reset > :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_rec
960960
(1 row)
961961

962962
SELECT stats_reset AS recovery_prefetch_reset_ts FROM pg_stat_recovery_prefetch \gset
963+
-- Test that reset_shared with slru specified as the stats type works
964+
SELECT max(stats_reset) AS slru_reset_ts FROM pg_stat_slru \gset
965+
SELECT pg_stat_reset_shared('slru');
966+
pg_stat_reset_shared
967+
----------------------
968+
969+
(1 row)
970+
971+
SELECT max(stats_reset) > :'slru_reset_ts'::timestamptz FROM pg_stat_slru;
972+
?column?
973+
----------
974+
t
975+
(1 row)
976+
977+
SELECT max(stats_reset) AS slru_reset_ts FROM pg_stat_slru \gset
963978
-- Test that reset_shared with wal specified as the stats type works
964979
SELECT stats_reset AS wal_reset_ts FROM pg_stat_wal \gset
965980
SELECT pg_stat_reset_shared('wal');
@@ -1007,6 +1022,12 @@ SELECT stats_reset > :'recovery_prefetch_reset_ts'::timestamptz FROM pg_stat_rec
10071022
t
10081023
(1 row)
10091024

1025+
SELECT max(stats_reset) > :'slru_reset_ts'::timestamptz FROM pg_stat_slru;
1026+
?column?
1027+
----------
1028+
t
1029+
(1 row)
1030+
10101031
SELECT stats_reset > :'wal_reset_ts'::timestamptz FROM pg_stat_wal;
10111032
?column?
10121033
----------
@@ -1016,7 +1037,7 @@ SELECT stats_reset > :'wal_reset_ts'::timestamptz FROM pg_stat_wal;
10161037
-- Test error case for reset_shared with unknown stats type
10171038
SELECT pg_stat_reset_shared('unknown');
10181039
ERROR: unrecognized reset target: "unknown"
1019-
HINT: Target must be "archiver", "bgwriter", "checkpointer", "io", "recovery_prefetch", or "wal".
1040+
HINT: Target must be "archiver", "bgwriter", "checkpointer", "io", "recovery_prefetch","slru",or "wal".
10201041
-- Test that reset works for pg_stat_database
10211042
-- Since pg_stat_database stats_reset starts out as NULL, reset it once first so we have something to compare it to
10221043
SELECT pg_stat_reset();

‎src/test/regress/sql/stats.sql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,12 @@ SELECT pg_stat_reset_shared('recovery_prefetch');
482482
SELECT stats_reset> :'recovery_prefetch_reset_ts'::timestamptzFROM pg_stat_recovery_prefetch;
483483
SELECT stats_resetAS recovery_prefetch_reset_tsFROM pg_stat_recovery_prefetch \gset
484484

485+
-- Test that reset_shared with slru specified as the stats type works
486+
SELECTmax(stats_reset)AS slru_reset_tsFROM pg_stat_slru \gset
487+
SELECT pg_stat_reset_shared('slru');
488+
SELECTmax(stats_reset)> :'slru_reset_ts'::timestamptzFROM pg_stat_slru;
489+
SELECTmax(stats_reset)AS slru_reset_tsFROM pg_stat_slru \gset
490+
485491
-- Test that reset_shared with wal specified as the stats type works
486492
SELECT stats_resetAS wal_reset_tsFROM pg_stat_wal \gset
487493
SELECT pg_stat_reset_shared('wal');
@@ -495,6 +501,7 @@ SELECT stats_reset > :'archiver_reset_ts'::timestamptz FROM pg_stat_archiver;
495501
SELECT stats_reset> :'bgwriter_reset_ts'::timestamptzFROM pg_stat_bgwriter;
496502
SELECT stats_reset> :'checkpointer_reset_ts'::timestamptzFROM pg_stat_checkpointer;
497503
SELECT stats_reset> :'recovery_prefetch_reset_ts'::timestamptzFROM pg_stat_recovery_prefetch;
504+
SELECTmax(stats_reset)> :'slru_reset_ts'::timestamptzFROM pg_stat_slru;
498505
SELECT stats_reset> :'wal_reset_ts'::timestamptzFROM pg_stat_wal;
499506

500507
-- Test error case for reset_shared with unknown stats type

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp