From 3227d6551ee6761615bbc465263fdd83e20964db Mon Sep 17 00:00:00 2001 From: Onder Kalaci Date: Mon, 30 May 2022 12:25:19 +0200 Subject: [PATCH] Do not send metadata changes during add node if citus.enable_metadata_sync is set to false (cherry picked from commit 7157152f6c19809b7ae16ee10a7c6c9fdee079ce) --- .../distributed/metadata/node_metadata.c | 42 +++++++++++-------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/src/backend/distributed/metadata/node_metadata.c b/src/backend/distributed/metadata/node_metadata.c index d0a166f14..23d4d3f4d 100644 --- a/src/backend/distributed/metadata/node_metadata.c +++ b/src/backend/distributed/metadata/node_metadata.c @@ -1899,12 +1899,15 @@ RemoveNodeFromCluster(char *nodeName, int32 nodePort) RemoveOldShardPlacementForNodeGroup(workerNode->groupId); - char *nodeDeleteCommand = NodeDeleteCommand(workerNode->nodeId); - /* make sure we don't have any lingering session lifespan connections */ CloseNodeConnectionsAfterTransaction(workerNode->workerName, nodePort); - SendCommandToWorkersWithMetadata(nodeDeleteCommand); + if (EnableMetadataSync) + { + char *nodeDeleteCommand = NodeDeleteCommand(workerNode->nodeId); + + SendCommandToWorkersWithMetadata(nodeDeleteCommand); + } } @@ -2155,18 +2158,21 @@ AddNodeMetadata(char *nodeName, int32 nodePort, workerNode = FindWorkerNodeAnyCluster(nodeName, nodePort); - /* send the delete command to all primary nodes with metadata */ - char *nodeDeleteCommand = NodeDeleteCommand(workerNode->nodeId); - SendCommandToWorkersWithMetadata(nodeDeleteCommand); - - /* finally prepare the insert command and send it to all primary nodes */ - uint32 primariesWithMetadata = CountPrimariesWithMetadata(); - if (primariesWithMetadata != 0) + if (EnableMetadataSync) { - List *workerNodeList = list_make1(workerNode); - char *nodeInsertCommand = NodeListInsertCommand(workerNodeList); + /* send the delete command to all primary nodes with metadata */ + char *nodeDeleteCommand = NodeDeleteCommand(workerNode->nodeId); + SendCommandToWorkersWithMetadata(nodeDeleteCommand); - SendCommandToWorkersWithMetadata(nodeInsertCommand); + /* finally prepare the insert command and send it to all primary nodes */ + uint32 primariesWithMetadata = CountPrimariesWithMetadata(); + if (primariesWithMetadata != 0) + { + List *workerNodeList = list_make1(workerNode); + char *nodeInsertCommand = NodeListInsertCommand(workerNodeList); + + SendCommandToWorkersWithMetadata(nodeInsertCommand); + } } return workerNode->nodeId; @@ -2185,11 +2191,13 @@ SetWorkerColumn(WorkerNode *workerNode, int columnIndex, Datum value) { workerNode = SetWorkerColumnLocalOnly(workerNode, columnIndex, value); - char *metadataSyncCommand = GetMetadataSyncCommandToSetNodeColumn(workerNode, - columnIndex, - value); + if (EnableMetadataSync) + { + char *metadataSyncCommand = + GetMetadataSyncCommandToSetNodeColumn(workerNode, columnIndex, value); - SendCommandToWorkersWithMetadata(metadataSyncCommand); + SendCommandToWorkersWithMetadata(metadataSyncCommand); + } return workerNode; }