Skip to content

Commit b362cad

Browse files
knizhnikkelvich
authored andcommitted
Print connectivity matrix
1 parent 9d26b3c commit b362cad

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

multimaster.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1299,6 +1299,7 @@ static bool
12991299
MtmBuildConnectivityMatrix(nodemask_t* matrix, bool nowait)
13001300
{
13011301
int i, j, n = Mtm->nAllNodes;
1302+
fprintf(stderr, "Connectivity matrix:\n");
13021303
for (i = 0; i < n; i++) {
13031304
if (i+1 != MtmNodeId) {
13041305
void* data = RaftableGet(psprintf("node-mask-%d", i+1), NULL, NULL, nowait);
@@ -1309,7 +1310,12 @@ MtmBuildConnectivityMatrix(nodemask_t* matrix, bool nowait)
13091310
} else {
13101311
matrix[i] = Mtm->connectivityMask;
13111312
}
1313+
for (j = 0; j < n; j++) {
1314+
putc(BIT_CHECK(matrix[i], j) ? 'X' : '+', stderr);
1315+
}
1316+
putc('\n', stderr);
13121317
}
1318+
fputs("-----------------------\n", stderr);
13131319
/* make matrix symetric: required for Bron–Kerbosch algorithm */
13141320
for (i = 0; i < n; i++) {
13151321
for (j = 0; j < i; j++) {
@@ -1340,6 +1346,17 @@ bool MtmRefreshClusterStatus(bool nowait)
13401346

13411347
clique = MtmFindMaxClique(matrix, Mtm->nAllNodes, &clique_size);
13421348
if (clique_size >= Mtm->nAllNodes/2+1) { /* have quorum */
1349+
fprintf(stderr, "Old mask: ");
1350+
for (i = 0; i < Mtm->nAllNodes; i++) {
1351+
putc(BIT_CHECK(Mtm->disabledNodeMask, i) ? '-' : '+', stderr);
1352+
}
1353+
putc('\n', stderr);
1354+
fprintf(stderr, "New mask: ");
1355+
for (i = 0; i < Mtm->nAllNodes; i++) {
1356+
putc(BIT_CHECK(clique, i) ? '+' : '-', stderr);
1357+
}
1358+
putc('\n', stderr);
1359+
13431360
MTM_LOG1("Find clique %lx, disabledNodeMask %lx", (long) clique, (long) Mtm->disabledNodeMask);
13441361
MtmLock(LW_EXCLUSIVE);
13451362
mask = ~clique & (((nodemask_t)1 << Mtm->nAllNodes)-1) & ~Mtm->disabledNodeMask; /* new disabled nodes mask */

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