Skip to content

Commit 125d7b8

Browse files
knizhnikkelvich
authored andcommitted
Dump hash info
1 parent 66ee06f commit 125d7b8

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

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'

multimaster.c

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

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

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

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