mirror of https://github.com/citusdata/citus.git
[performance improvement] remove duplicate LoadShardList call (#7380)
LoadShardList is called twice, which is not neccessary, and there is no need to sort the shard placement list since we only want to know the list length.pull/7377/head^2
parent
1d55debb98
commit
8e979f7ac6
|
@ -381,7 +381,7 @@ EnsureModificationsCanRun(void)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* EnsureModificationsCanRunOnRelation firsts calls into EnsureModificationsCanRun() and
|
* EnsureModificationsCanRunOnRelation first calls into EnsureModificationsCanRun() and
|
||||||
* then does one more additional check. The additional check is to give a proper error
|
* then does one more additional check. The additional check is to give a proper error
|
||||||
* message if any relation that is modified is replicated, as replicated tables use
|
* message if any relation that is modified is replicated, as replicated tables use
|
||||||
* 2PC and 2PC cannot happen when recovery is in progress.
|
* 2PC and 2PC cannot happen when recovery is in progress.
|
||||||
|
|
|
@ -362,10 +362,8 @@ ErrorIfShardPlacementsNotColocated(Oid leftRelationId, Oid rightRelationId)
|
||||||
leftRelationName, rightRelationName)));
|
leftRelationName, rightRelationName)));
|
||||||
}
|
}
|
||||||
|
|
||||||
List *leftPlacementList = ShardPlacementListSortedByWorker(
|
List *leftPlacementList = ShardPlacementList(leftShardId);
|
||||||
leftShardId);
|
List *rightPlacementList = ShardPlacementList(rightShardId);
|
||||||
List *rightPlacementList = ShardPlacementListSortedByWorker(
|
|
||||||
rightShardId);
|
|
||||||
|
|
||||||
if (list_length(leftPlacementList) != list_length(rightPlacementList))
|
if (list_length(leftPlacementList) != list_length(rightPlacementList))
|
||||||
{
|
{
|
||||||
|
|
|
@ -470,12 +470,11 @@ SingleReplicatedTable(Oid relationId)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
List *shardIntervalList = LoadShardList(relationId);
|
|
||||||
uint64 *shardIdPointer = NULL;
|
uint64 *shardIdPointer = NULL;
|
||||||
foreach_ptr(shardIdPointer, shardIntervalList)
|
foreach_ptr(shardIdPointer, shardList)
|
||||||
{
|
{
|
||||||
uint64 shardId = *shardIdPointer;
|
uint64 shardId = *shardIdPointer;
|
||||||
shardPlacementList = ShardPlacementListSortedByWorker(shardId);
|
shardPlacementList = ShardPlacementList(shardId);
|
||||||
|
|
||||||
if (list_length(shardPlacementList) != 1)
|
if (list_length(shardPlacementList) != 1)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue