update function getNextFollower (#125)

Signed-off-by: marsishandsome <marsishandsome@gmail.com>
This commit is contained in:
Liangliang Gu 2021-02-18 16:35:40 +08:00 committed by GitHub
parent ab9ccfb6e2
commit 0d4b27bcd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 4 deletions

View File

@ -22,6 +22,7 @@ import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Random;
import java.util.Set; import java.util.Set;
import org.tikv.common.TiConfiguration.KVMode; import org.tikv.common.TiConfiguration.KVMode;
import org.tikv.common.codec.Codec.BytesCodec; import org.tikv.common.codec.Codec.BytesCodec;
@ -75,7 +76,7 @@ public class TiRegion implements Serializable {
if (isReplicaRead && meta.getPeersCount() > 0) { if (isReplicaRead && meta.getPeersCount() > 0) {
// try to get first follower // try to get first follower
try { try {
getNextFollower(); chooseRandomFollower();
} catch (Exception ignore) { } catch (Exception ignore) {
// ignore // ignore
} }
@ -117,17 +118,17 @@ public class TiRegion implements Serializable {
return meta.getPeers(followerIdx); return meta.getPeers(followerIdx);
} }
public Peer getNextFollower() { private void chooseRandomFollower() {
int cnt = meta.getPeersCount(); int cnt = meta.getPeersCount();
followerIdx = new Random().nextInt(cnt);
for (int retry = cnt - 1; retry > 0; retry--) { for (int retry = cnt - 1; retry > 0; retry--) {
followerIdx = (followerIdx + 1) % cnt; followerIdx = (followerIdx + 1) % cnt;
Peer cur = meta.getPeers(followerIdx); Peer cur = meta.getPeers(followerIdx);
if (cur.getIsLearner()) { if (cur.getIsLearner()) {
continue; continue;
} }
return cur; return;
} }
return leader;
} }
public List<Peer> getLearnerList() { public List<Peer> getLearnerList() {