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)