diff --git a/tikv-client/scripts/proto.sh b/tikv-client/scripts/proto.sh index 23c668ca7b..fb92ee7f31 100755 --- a/tikv-client/scripts/proto.sh +++ b/tikv-client/scripts/proto.sh @@ -18,7 +18,7 @@ CURRENT_DIR=`pwd` TISPARK_HOME="$(cd "`dirname "$0"`"/../..; pwd)" cd $TISPARK_HOME/tikv-client -kvproto_hash=6ed99a08e262d8a32d6355dcba91cf99cb92074a +kvproto_hash=62630088ebc1aabcba3038ede6e775d89d38c98b raft_rs_hash=b9891b673573fad77ebcf9bbe0969cf945841926 diff --git a/tikv-client/src/main/java/com/pingcap/tikv/TiConfiguration.java b/tikv-client/src/main/java/com/pingcap/tikv/TiConfiguration.java index f74a532206..3d90486e8c 100644 --- a/tikv-client/src/main/java/com/pingcap/tikv/TiConfiguration.java +++ b/tikv-client/src/main/java/com/pingcap/tikv/TiConfiguration.java @@ -34,7 +34,7 @@ public class TiConfiguration implements Serializable { private static final DateTimeZone DEF_TIMEZONE = Converter.getLocalTimezone(); private static final int DEF_TIMEOUT = 10; private static final TimeUnit DEF_TIMEOUT_UNIT = TimeUnit.MINUTES; - private static final int DEF_SCAN_BATCH_SIZE = 10480; + private static final int DEF_SCAN_BATCH_SIZE = 10240; private static final boolean DEF_IGNORE_TRUNCATE = true; private static final boolean DEF_TRUNCATE_AS_WARNING = false; private static final int DEF_MAX_FRAME_SIZE = 2147483647; // 2 GB diff --git a/tikv-client/src/main/java/com/pingcap/tikv/operation/KVErrorHandler.java b/tikv-client/src/main/java/com/pingcap/tikv/operation/KVErrorHandler.java index 526e6056c2..df4b271be5 100644 --- a/tikv-client/src/main/java/com/pingcap/tikv/operation/KVErrorHandler.java +++ b/tikv-client/src/main/java/com/pingcap/tikv/operation/KVErrorHandler.java @@ -320,20 +320,22 @@ public boolean handleResponseError(BackOffer backOffer, RespT resp) { boolean retry = false; if (resp instanceof ScanResponse) { - List kvPairs = ((ScanResponse) resp).getPairsList(); - List locks = new ArrayList<>(); - for (KvPair kvPair : kvPairs) { - if (kvPair.hasError()) { - Lock lock = AbstractLockResolverClient.extractLockFromKeyErr(kvPair.getError()); - locks.add(lock); + if (((ScanResponse) resp).hasError()) { + List kvPairs = ((ScanResponse) resp).getPairsList(); + List locks = new ArrayList<>(); + for (KvPair kvPair : kvPairs) { + if (kvPair.hasError()) { + Lock lock = AbstractLockResolverClient.extractLockFromKeyErr(kvPair.getError()); + locks.add(lock); + } } - } - if (!locks.isEmpty()) { - try { - resolveLocks(backOffer, locks); - retry = true; - } catch (KeyException e) { - logger.warn("Unable to handle KeyExceptions other than LockException", e); + if (!locks.isEmpty()) { + try { + resolveLocks(backOffer, locks); + retry = true; + } catch (KeyException e) { + logger.warn("Unable to handle KeyExceptions other than LockException", e); + } } } } else { diff --git a/tikv-client/src/main/java/com/pingcap/tikv/operation/iterator/ConcreteScanIterator.java b/tikv-client/src/main/java/com/pingcap/tikv/operation/iterator/ConcreteScanIterator.java index 44cfb586e0..d8c6d10390 100644 --- a/tikv-client/src/main/java/com/pingcap/tikv/operation/iterator/ConcreteScanIterator.java +++ b/tikv-client/src/main/java/com/pingcap/tikv/operation/iterator/ConcreteScanIterator.java @@ -62,9 +62,9 @@ TiRegion loadCurrentRegionToCache() throws GrpcException { if (limit <= 0) { currentCache = null; } else { + int scanLimit = Math.min(limit, conf.getScanBatchSize()); try { - int scanSize = Math.min(limit, conf.getScanBatchSize()); - currentCache = client.scan(backOffer, startKey, scanSize, version); + currentCache = client.scan(backOffer, startKey, scanLimit, version); } catch (final TiKVException e) { backOffer.doBackOff(BackOffFunction.BackOffFuncType.BoRegionMiss, e); continue;