@@ -1585,10 +1585,14 @@ private void computeFragmentExecParams() throws Exception {
1585
1585
dest .server = dummyServer ;
1586
1586
dest .setBrpcServer (dummyServer );
1587
1587
1588
- int parallelTasksNum = destParams .ignoreDataDistribution
1589
- ? destParams .parallelTasksNum : destParams .instanceExecParams .size ();
1590
- for (int insIdx = 0 ; insIdx < parallelTasksNum ; insIdx ++) {
1588
+ Set <TNetworkAddress > hostSet = new HashSet <>();
1589
+ for (int insIdx = 0 ; insIdx < destParams .instanceExecParams .size (); insIdx ++) {
1591
1590
FInstanceExecParam instanceExecParams = destParams .instanceExecParams .get (insIdx );
1591
+ if (destParams .ignoreDataDistribution
1592
+ && hostSet .contains (instanceExecParams .host )) {
1593
+ continue ;
1594
+ }
1595
+ hostSet .add (instanceExecParams .host );
1592
1596
if (instanceExecParams .bucketSeqSet .contains (bucketSeq )) {
1593
1597
dest .fragment_instance_id = instanceExecParams .instanceId ;
1594
1598
dest .server = toRpcHost (instanceExecParams .host );
@@ -1623,10 +1627,14 @@ private void computeFragmentExecParams() throws Exception {
1623
1627
}
1624
1628
});
1625
1629
} else {
1630
+ Set <TNetworkAddress > hostSet = new HashSet <>();
1626
1631
// add destination host to this fragment's destination
1627
- int parallelTasksNum = destParams .ignoreDataDistribution
1628
- ? destParams .parallelTasksNum : destParams .instanceExecParams .size ();
1629
- for (int j = 0 ; j < parallelTasksNum ; ++j ) {
1632
+ for (int j = 0 ; j < destParams .instanceExecParams .size (); ++j ) {
1633
+ if (destParams .ignoreDataDistribution
1634
+ && hostSet .contains (destParams .instanceExecParams .get (j ).host )) {
1635
+ continue ;
1636
+ }
1637
+ hostSet .add (destParams .instanceExecParams .get (j ).host );
1630
1638
TPlanFragmentDestination dest = new TPlanFragmentDestination ();
1631
1639
dest .fragment_instance_id = destParams .instanceExecParams .get (j ).instanceId ;
1632
1640
dest .server = toRpcHost (destParams .instanceExecParams .get (j ).host );
@@ -1698,10 +1706,14 @@ private void computeMultiCastFragmentParams() throws Exception {
1698
1706
dest .server = dummyServer ;
1699
1707
dest .setBrpcServer (dummyServer );
1700
1708
1701
- int parallelTasksNum = destParams .ignoreDataDistribution
1702
- ? destParams .parallelTasksNum : destParams .instanceExecParams .size ();
1703
- for (int insIdx = 0 ; insIdx < parallelTasksNum ; insIdx ++) {
1709
+ Set <TNetworkAddress > hostSet = new HashSet <>();
1710
+ for (int insIdx = 0 ; insIdx < destParams .instanceExecParams .size (); insIdx ++) {
1704
1711
FInstanceExecParam instanceExecParams = destParams .instanceExecParams .get (insIdx );
1712
+ if (destParams .ignoreDataDistribution
1713
+ && hostSet .contains (instanceExecParams .host )) {
1714
+ continue ;
1715
+ }
1716
+ hostSet .add (instanceExecParams .host );
1705
1717
if (instanceExecParams .bucketSeqSet .contains (bucketSeq )) {
1706
1718
dest .fragment_instance_id = instanceExecParams .instanceId ;
1707
1719
dest .server = toRpcHost (instanceExecParams .host );
@@ -1736,7 +1748,13 @@ private void computeMultiCastFragmentParams() throws Exception {
1736
1748
}
1737
1749
});
1738
1750
} else {
1751
+ Set <TNetworkAddress > hostSet = new HashSet <>();
1739
1752
for (int j = 0 ; j < destParams .instanceExecParams .size (); ++j ) {
1753
+ if (destParams .ignoreDataDistribution
1754
+ && hostSet .contains (destParams .instanceExecParams .get (j ).host )) {
1755
+ continue ;
1756
+ }
1757
+ hostSet .add (destParams .instanceExecParams .get (j ).host );
1740
1758
TPlanFragmentDestination dest = new TPlanFragmentDestination ();
1741
1759
dest .fragment_instance_id = destParams .instanceExecParams .get (j ).instanceId ;
1742
1760
dest .server = toRpcHost (destParams .instanceExecParams .get (j ).host );
0 commit comments