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 */
|
/* send commands to new workers, the current user should be a superuser */
|
||||||
Assert(superuser());
|
Assert(superuser());
|
||||||
SendMetadataCommandListToWorkerListInCoordinatedTransaction(
|
SendBareCommandListToWorkers(workerNodesToSync,
|
||||||
workerNodesToSync,
|
commandList);
|
||||||
CurrentUserName(),
|
|
||||||
commandList);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue