Skip to content

Commit ec5fe25

Browse files
committed
Dump hash info
1 parent b9bfb32 commit ec5fe25

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

contrib/mmts/multimaster--1.0.sql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,14 @@ AS 'MODULE_PATHNAME','mtm_get_snapshot'
2828
LANGUAGE C;
2929

3030

31-
CREATE TYPE mtm.node_state AS ("id" integer, "disabled" bool, "disconnected" bool, "catchUp" bool, "slotLag" bigint, "avgTransDelay" bigint, "lastStatusChange" timestamp, "connStr" text);
31+
CREATE TYPE mtm.node_state AS ("id" integer, "disabled" bool, "disconnected" bool, "catchUp" bool, "slotLag" bigint, "avgTransDelay" bigint, "lastStatusChange" timestamp, "oldestSnapshot" bigint, "connStr" text);
3232

3333
CREATE FUNCTION mtm.get_nodes_state() RETURNS SETOF mtm.node_state
3434
AS 'MODULE_PATHNAME','mtm_get_nodes_state'
3535
LANGUAGE C;
3636

37-
CREATE TYPE mtm.cluster_state AS ("status" text, "disabledNodeMask" bigint, "disconnectedNodeMask" bigint, "catchUpNodeMask" bigint, "liveNodes" integer, "allNodes" integer, "nActiveQueries" integer, "nPendingQueries" integer, "queueSize" bigint, "transCount" bigint, "timeShift" bigint, "recoverySlot" integer);
37+
CREATE TYPE mtm.cluster_state AS ("status" text, "disabledNodeMask" bigint, "disconnectedNodeMask" bigint, "catchUpNodeMask" bigint, "liveNodes" integer, "allNodes" integer, "nActiveQueries" integer, "nPendingQueries" integer, "queueSize" bigint, "transCount" bigint, "timeShift" bigint, "recoverySlot" integer,
38+
"xidHashSize" bigint, "gidHashSize" bigint, "oldestSnapshot" bigint, "configChanges" integer);
3839

3940
CREATE FUNCTION mtm.get_cluster_state() RETURNS mtm.cluster_state
4041
AS 'MODULE_PATHNAME','mtm_get_cluster_state'

contrib/mmts/multimaster.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2307,7 +2307,8 @@ mtm_get_nodes_state(PG_FUNCTION_ARGS)
23072307
usrfctx->nulls[4] = lag < 0;
23082308
usrfctx->values[5] = Int64GetDatum(Mtm->transCount ? Mtm->nodes[usrfctx->nodeId-1].transDelay/Mtm->transCount : 0);
23092309
usrfctx->values[6] = TimestampTzGetDatum(time_t_to_timestamptz(Mtm->nodes[usrfctx->nodeId-1].lastStatusChangeTime/USECS_PER_SEC));
2310-
usrfctx->values[7] = CStringGetTextDatum(Mtm->nodes[usrfctx->nodeId-1].con.connStr);
2310+
usrfctx->values[7] = Int64GetDatum(Mtm->nodes[usrfctx->nodeId-1].oldestSnapshot);
2311+
usrfctx->values[8] = CStringGetTextDatum(Mtm->nodes[usrfctx->nodeId-1].con.connStr);
23112312
usrfctx->nodeId += 1;
23122313

23132314
SRF_RETURN_NEXT(funcctx, HeapTupleGetDatum(heap_form_tuple(usrfctx->desc, usrfctx->values, usrfctx->nulls)));
@@ -2334,6 +2335,10 @@ mtm_get_cluster_state(PG_FUNCTION_ARGS)
23342335
values[9] = Int64GetDatum(Mtm->transCount);
23352336
values[10] = Int64GetDatum(Mtm->timeShift);
23362337
values[11] = Int32GetDatum(Mtm->recoverySlot);
2338+
values[12] = Int64GetDatum(hash_get_num_entries(MtmXid2State));
2339+
values[13] = Int64GetDatum(hash_get_num_entries(MtmGid2State));
2340+
values[14] = Int64GetDatum(Mtm->oldestSnapshot);
2341+
values[15] = Int32GetDatum(Mtm->nConfigChanges);
23372342

23382343
PG_RETURN_DATUM(HeapTupleGetDatum(heap_form_tuple(desc, values, nulls)));
23392344
}

contrib/mmts/multimaster.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@
5959
#define Anum_mtm_local_tables_rel_schema 1
6060
#define Anum_mtm_local_tables_rel_name 2
6161

62-
#define Natts_mtm_cluster_state 12
63-
#define Natts_mtm_nodes_state 8
62+
#define Natts_mtm_cluster_state 16
63+
#define Natts_mtm_nodes_state 9
6464

6565
typedef uint64 csn_t; /* commit serial number */
6666
#define INVALID_CSN ((csn_t)-1)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy