Skip to content

Commit d701470

Browse files
committed
optimize scan resolve lock
Signed-off-by: birdstorm <samuelwyf@hotmail.com>
1 parent 4aad320 commit d701470

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

tikv-client/scripts/proto.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ CURRENT_DIR=`pwd`
1818
TISPARK_HOME="$(cd "`dirname "$0"`"/../..; pwd)"
1919
cd $TISPARK_HOME/tikv-client
2020

21-
kvproto_hash=6ed99a08e262d8a32d6355dcba91cf99cb92074a
21+
kvproto_hash=5dfa7b1325a3bfc07100eb2bcde655950122fa25
2222

2323
raft_rs_hash=b9891b673573fad77ebcf9bbe0969cf945841926
2424

tikv-client/src/main/java/com/pingcap/tikv/operation/KVErrorHandler.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -279,20 +279,22 @@ public boolean handleResponseError(BackOffer backOffer, RespT resp) {
279279
boolean retry = false;
280280

281281
if (resp instanceof ScanResponse) {
282-
List<KvPair> kvPairs = ((ScanResponse) resp).getPairsList();
283-
List<Lock> locks = new ArrayList<>();
284-
for (KvPair kvPair : kvPairs) {
285-
if (kvPair.hasError()) {
286-
Lock lock = AbstractLockResolverClient.extractLockFromKeyErr(kvPair.getError());
287-
locks.add(lock);
282+
if (((ScanResponse) resp).hasError()) {
283+
List<KvPair> kvPairs = ((ScanResponse) resp).getPairsList();
284+
List<Lock> locks = new ArrayList<>();
285+
for (KvPair kvPair : kvPairs) {
286+
if (kvPair.hasError()) {
287+
Lock lock = AbstractLockResolverClient.extractLockFromKeyErr(kvPair.getError());
288+
locks.add(lock);
289+
}
288290
}
289-
}
290-
if (!locks.isEmpty()) {
291-
try {
292-
resolveLocks(backOffer, locks);
293-
retry = true;
294-
} catch (KeyException e) {
295-
logger.warn("Unable to handle KeyExceptions other than LockException", e);
291+
if (!locks.isEmpty()) {
292+
try {
293+
resolveLocks(backOffer, locks);
294+
retry = true;
295+
} catch (KeyException e) {
296+
logger.warn("Unable to handle KeyExceptions other than LockException", e);
297+
}
296298
}
297299
}
298300
} else {

0 commit comments

Comments
 (0)