Skip to content

Commit 17cbbd0

Browse files
author
block
authored
refresh configuration for membership change (#652)
* refresh configuration for membership change * by CR
1 parent 1ef3067 commit 17cbbd0

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

jraft-rheakv/rheakv-core/src/main/java/com/alipay/sofa/jraft/rhea/client/pd/AbstractPlacementDriverClient.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import java.util.List;
2020
import java.util.Map;
21+
import java.util.concurrent.TimeUnit;
2122
import java.util.concurrent.TimeoutException;
2223

2324
import org.slf4j.Logger;
@@ -60,9 +61,12 @@
6061
*/
6162
public abstract class AbstractPlacementDriverClient implements PlacementDriverClient {
6263

63-
private static final Logger LOG = LoggerFactory.getLogger(AbstractPlacementDriverClient.class);
64+
private static final Logger LOG = LoggerFactory
65+
.getLogger(AbstractPlacementDriverClient.class);
6466

65-
protected final RegionRouteTable regionRouteTable = new RegionRouteTable();
67+
private static final long AT_LEAST_REQUIRED_MILLIS = TimeUnit.SECONDS.toMillis(1);
68+
69+
protected final RegionRouteTable regionRouteTable = new RegionRouteTable();
6670
protected final long clusterId;
6771
protected final String clusterName;
6872

@@ -277,6 +281,17 @@ protected PeerId getLeader(final String raftGroupId, final boolean forceRefresh,
277281
: new RouteTableException(error.toString());
278282
}
279283
}
284+
285+
// we need refresh configuration for membership change
286+
final long leftTime = deadline - System.currentTimeMillis();
287+
if (leftTime > AT_LEAST_REQUIRED_MILLIS) {
288+
try {
289+
RouteTable.getInstance().refreshConfiguration(this.cliClientService, raftGroupId, (int) leftTime);
290+
} catch (final InterruptedException e) {
291+
ThrowUtil.throwException(e);
292+
} catch (final TimeoutException ignored) {
293+
}
294+
}
280295
}
281296
return routeTable.selectLeader(raftGroupId);
282297
}

0 commit comments

Comments
 (0)