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,10 +861,8 @@ SyncDistributedObjectsToNodeList(List *workerNodeList)
/* send commands to new workers, the current user should be a superuser */
Assert(superuser());
SendMetadataCommandListToWorkerListInCoordinatedTransaction(
workerNodesToSync,
CurrentUserName(),
commandList);
SendBareCommandListToWorkers(workerNodesToSync,
commandList);
}

View File

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

View File

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