sync objects without coordinated tx

metadata_sync_partially_non_tx
Onder Kalaci 2022-12-02 09:40:47 +01:00
parent eeb8431a5f
commit dc603d16fe
3 changed files with 12 additions and 6 deletions

View File

@ -861,9 +861,7 @@ SyncDistributedObjectsToNodeList(List *workerNodeList)
/* send commands to new workers, the current user should be a superuser */ /* send commands to new workers, the current user should be a superuser */
Assert(superuser()); Assert(superuser());
SendMetadataCommandListToWorkerListInCoordinatedTransaction( SendBareCommandListToWorkers(workerNodesToSync,
workerNodesToSync,
CurrentUserName(),
commandList); commandList);
} }

View File

@ -182,10 +182,16 @@ SendBareCommandListToMetadataWorkers(List *commandList)
{ {
TargetWorkerSet targetWorkerSet = NON_COORDINATOR_METADATA_NODES; TargetWorkerSet targetWorkerSet = NON_COORDINATOR_METADATA_NODES;
List *workerNodeList = TargetWorkerSetNodeList(targetWorkerSet, RowShareLock); List *workerNodeList = TargetWorkerSetNodeList(targetWorkerSet, RowShareLock);
char *nodeUser = CurrentUserName();
ErrorIfAnyMetadataNodeOutOfSync(workerNodeList); ErrorIfAnyMetadataNodeOutOfSync(workerNodeList);
SendBareCommandListToWorkers(workerNodeList, commandList);
}
void
SendBareCommandListToWorkers(List *workerNodeList, List *commandList)
{
/* run commands serially */ /* run commands serially */
WorkerNode *workerNode = NULL; WorkerNode *workerNode = NULL;
foreach_ptr(workerNode, workerNodeList) foreach_ptr(workerNode, workerNodeList)
@ -197,7 +203,8 @@ SendBareCommandListToMetadataWorkers(List *commandList)
MultiConnection *workerConnection = GetNodeUserDatabaseConnection(connectionFlags, MultiConnection *workerConnection = GetNodeUserDatabaseConnection(connectionFlags,
nodeName, nodeName,
nodePort, nodePort,
nodeUser, NULL); CurrentUserName(),
NULL);
/* iterate over the commands and execute them in the same connection */ /* iterate over the commands and execute them in the same connection */
const char *commandString = NULL; const char *commandString = NULL;

View File

@ -74,6 +74,7 @@ extern bool SendOptionalMetadataCommandListToWorkerInCoordinatedTransaction(cons
extern void SendCommandToWorkersWithMetadata(const char *command); extern void SendCommandToWorkersWithMetadata(const char *command);
extern void SendCommandToWorkersWithMetadataViaSuperUser(const char *command); extern void SendCommandToWorkersWithMetadataViaSuperUser(const char *command);
extern void SendBareCommandListToMetadataWorkers(List *commandList); extern void SendBareCommandListToMetadataWorkers(List *commandList);
extern void SendBareCommandListToWorkers(List *workerNodeList, List *commandList);
extern void EnsureNoModificationsHaveBeenDone(void); extern void EnsureNoModificationsHaveBeenDone(void);
extern void SendCommandListToWorkerOutsideTransaction(const char *nodeName, extern void SendCommandListToWorkerOutsideTransaction(const char *nodeName,
int32 nodePort, int32 nodePort,