mirror of https://github.com/citusdata/citus.git
sync objects without coordinated tx
parent
eeb8431a5f
commit
dc603d16fe
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue