diff --git a/pom.xml b/pom.xml
index 794a9f3e849..22caa6f7b1c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -63,8 +63,8 @@
UTF-8
6.22.1.1
3.5.1
- 1.2.17
- 1.7.16
+ 2.15
+ 2.0.0-alpha5
1.38.0
2.0.34.Final
2.8.5
diff --git a/src/main/java/org/tikv/cdc/RegionCDCClient.java b/src/main/java/org/tikv/cdc/RegionCDCClient.java
index d118c7793b0..ca8177ac618 100644
--- a/src/main/java/org/tikv/cdc/RegionCDCClient.java
+++ b/src/main/java/org/tikv/cdc/RegionCDCClient.java
@@ -26,6 +26,7 @@
import org.tikv.kvproto.Coprocessor.KeyRange;
class RegionCDCClient implements AutoCloseable, StreamObserver {
+
private static final Logger LOGGER = LoggerFactory.getLogger(RegionCDCClient.class);
private static final AtomicLong REQ_ID_COUNTER = new AtomicLong(0);
private static final Set ALLOWED_LOGTYPE =
@@ -127,7 +128,7 @@ public void close() throws Exception {
channel.shutdown();
}
try {
- LOGGER.debug("awaitTermination (region: {})", region.getId());
+ LOGGER.atDebug().log("awaitTermination (region: {})", region.getId());
channel.awaitTermination(60, TimeUnit.SECONDS);
} catch (final InterruptedException e) {
LOGGER.error("Failed to shutdown channel(regionId: {})", region.getId());
@@ -178,7 +179,7 @@ public void onNext(final ChangeDataEvent event) {
}
private void submitEvent(final CDCEvent event) {
- LOGGER.debug("submit event: {}", event);
+ LOGGER.atDebug().log("submit event: {}", event);
eventConsumer.accept(event);
}
}
diff --git a/src/main/java/org/tikv/common/AbstractGRPCClient.java b/src/main/java/org/tikv/common/AbstractGRPCClient.java
index a3c4ed5efff..bdbef7a93cb 100644
--- a/src/main/java/org/tikv/common/AbstractGRPCClient.java
+++ b/src/main/java/org/tikv/common/AbstractGRPCClient.java
@@ -42,6 +42,7 @@ public abstract class AbstractGRPCClient<
BlockingStubT extends AbstractStub,
FutureStubT extends AbstractFutureStub>
implements AutoCloseable {
+
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
protected final ChannelFactory channelFactory;
protected TiConfiguration conf;
@@ -105,7 +106,7 @@ protected void callAsyncWithRetry(
Supplier requestFactory,
StreamObserver responseObserver,
ErrorHandler handler) {
- logger.debug(String.format("Calling %s...", method.getFullMethodName()));
+ logger.atDebug().log("Calling {}...", method.getFullMethodName());
RetryPolicy.Builder builder = new Builder<>(backOffer);
builder
@@ -121,7 +122,7 @@ protected void callAsyncWithRetry(
},
method.getFullMethodName(),
backOffer);
- logger.debug(String.format("leaving %s...", method.getFullMethodName()));
+ logger.atDebug().log("Leaving {}...", method.getFullMethodName());
}
StreamObserver callBidiStreamingWithRetry(
@@ -129,7 +130,7 @@ StreamObserver callBidiStreamingWithRetry(
MethodDescriptor method,
StreamObserver responseObserver,
ErrorHandler> handler) {
- logger.debug(String.format("Calling %s...", method.getFullMethodName()));
+ logger.atDebug().log("Calling {}...", method.getFullMethodName());
RetryPolicy.Builder> builder = new Builder<>(backOffer);
StreamObserver observer =
@@ -143,7 +144,7 @@ StreamObserver callBidiStreamingWithRetry(
},
method.getFullMethodName(),
backOffer);
- logger.debug(String.format("leaving %s...", method.getFullMethodName()));
+ logger.atDebug().log("Leaving {}...", method.getFullMethodName());
return observer;
}
@@ -152,7 +153,7 @@ public StreamingResponse callServerStreamingWithRetry(
MethodDescriptor method,
Supplier requestFactory,
ErrorHandler handler) {
- logger.debug(String.format("Calling %s...", method.getFullMethodName()));
+ logger.atDebug().log("Calling {}...", method.getFullMethodName());
RetryPolicy.Builder builder = new Builder<>(backOffer);
StreamingResponse response =
@@ -167,7 +168,7 @@ public StreamingResponse callServerStreamingWithRetry(
},
method.getFullMethodName(),
backOffer);
- logger.debug(String.format("leaving %s...", method.getFullMethodName()));
+ logger.atDebug().log("Leaving {}...", method.getFullMethodName());
return response;
}
diff --git a/src/main/java/org/tikv/common/catalog/CatalogTransaction.java b/src/main/java/org/tikv/common/catalog/CatalogTransaction.java
index e28335cc01a..5b4ea66bf4f 100644
--- a/src/main/java/org/tikv/common/catalog/CatalogTransaction.java
+++ b/src/main/java/org/tikv/common/catalog/CatalogTransaction.java
@@ -37,6 +37,7 @@
import org.tikv.common.util.Pair;
public class CatalogTransaction {
+
protected static final Logger logger = LoggerFactory.getLogger(CatalogTransaction.class);
private final Snapshot snapshot;
@@ -48,7 +49,11 @@ public static T parseFromJson(ByteString json, Class cls) {
Objects.requireNonNull(json, "json is null");
Objects.requireNonNull(cls, "cls is null");
- logger.debug(String.format("Parse Json %s : %s", cls.getSimpleName(), json.toStringUtf8()));
+ logger
+ .atDebug()
+ .addArgument(cls::getSimpleName)
+ .addArgument(json::toStringUtf8)
+ .log("Parse Json {} : {}");
ObjectMapper mapper = new ObjectMapper();
try {
return mapper.readValue(json.toStringUtf8(), cls);
diff --git a/src/main/java/org/tikv/common/importer/ImporterStoreClient.java b/src/main/java/org/tikv/common/importer/ImporterStoreClient.java
index f3aa929e117..fe70cd9fa09 100644
--- a/src/main/java/org/tikv/common/importer/ImporterStoreClient.java
+++ b/src/main/java/org/tikv/common/importer/ImporterStoreClient.java
@@ -191,6 +191,7 @@ protected ImportSSTGrpc.ImportSSTStub getStub() {
public void close() throws Exception {}
public static class ImporterStoreClientBuilder {
+
private final TiConfiguration conf;
private final ChannelFactory channelFactory;
private final RegionManager regionManager;
@@ -214,7 +215,7 @@ public synchronized ImporterStoreClient build(TiStore store) throws GrpcExceptio
Objects.requireNonNull(store, "store is null");
String addressStr = store.getStore().getAddress();
- logger.debug(String.format("Create region store client on address %s", addressStr));
+ logger.atDebug().log("Create region store client on address {}", addressStr);
ManagedChannel channel = channelFactory.getChannel(addressStr, pdClient.getHostMapping());
ImportSSTGrpc.ImportSSTBlockingStub blockingStub = ImportSSTGrpc.newBlockingStub(channel);
diff --git a/src/main/java/org/tikv/common/log/SlowLogImpl.java b/src/main/java/org/tikv/common/log/SlowLogImpl.java
index 3a722b90476..aa5c61ed5bb 100644
--- a/src/main/java/org/tikv/common/log/SlowLogImpl.java
+++ b/src/main/java/org/tikv/common/log/SlowLogImpl.java
@@ -73,7 +73,7 @@ public void setError(Throwable err) {
public void log() {
long currentMS = System.currentTimeMillis();
if (error != null || (slowThresholdMS >= 0 && currentMS - startMS > slowThresholdMS)) {
- logger.warn("SlowLog:" + getSlowLogString(currentMS));
+ logger.atWarn().addArgument(() -> getSlowLogString(currentMS)).log("SlowLog:{}");
}
}
diff --git a/src/main/java/org/tikv/common/operation/PDErrorHandler.java b/src/main/java/org/tikv/common/operation/PDErrorHandler.java
index 421755164ee..825006fdd5d 100644
--- a/src/main/java/org/tikv/common/operation/PDErrorHandler.java
+++ b/src/main/java/org/tikv/common/operation/PDErrorHandler.java
@@ -32,6 +32,7 @@
import org.tikv.kvproto.Pdpb;
public class PDErrorHandler implements ErrorHandler {
+
public static final Function getRegionResponseErrorExtractor =
r ->
r.getHeader().hasError()
@@ -62,7 +63,7 @@ public boolean handleResponseError(BackOffer backOffer, RespT resp) {
client.updateLeaderOrforwardFollower();
return true;
case REGION_PEER_NOT_ELECTED:
- logger.debug(error.getMessage());
+ logger.atDebug().log(error.getMessage());
backOffer.doBackOff(
BackOffFunction.BackOffFuncType.BoPDRPC, new GrpcException(error.toString()));
return true;
diff --git a/src/main/java/org/tikv/common/predicates/TiKVScanAnalyzer.java b/src/main/java/org/tikv/common/predicates/TiKVScanAnalyzer.java
index 4e133a9356d..249ba21542e 100644
--- a/src/main/java/org/tikv/common/predicates/TiKVScanAnalyzer.java
+++ b/src/main/java/org/tikv/common/predicates/TiKVScanAnalyzer.java
@@ -57,6 +57,7 @@
import org.tikv.kvproto.Coprocessor.KeyRange;
public class TiKVScanAnalyzer {
+
private static final double INDEX_SCAN_COST_FACTOR = 1.2;
private static final double TABLE_SCAN_COST_FACTOR = 1.0;
private static final double DOUBLE_READ_COST_FACTOR = TABLE_SCAN_COST_FACTOR * 3;
@@ -437,6 +438,7 @@ boolean isCoveringIndex(
}
public static class TiKVScanPlan {
+
private final Map> keyRanges;
private final Set filters;
private final double cost;
@@ -502,6 +504,7 @@ public TiStoreType getStoreType() {
}
public static class Builder {
+
private final String tableName;
private final Logger logger = LoggerFactory.getLogger(getClass().getName());
private Map> keyRanges;
@@ -593,17 +596,15 @@ private void debug(IndexScanType scanType) {
plan = "None";
desc = "";
}
- logger.debug(
- "[Table:"
- + tableName
- + "]["
- + plan
- + ":"
- + desc
- + "] cost="
- + cost
- + " estimated row count="
- + estimatedRowCount);
+ logger
+ .atDebug()
+ .log(
+ "[Table:{}][{}:{}] cost={} estimated row count={}",
+ tableName,
+ plan,
+ desc,
+ cost,
+ estimatedRowCount);
}
// TODO: Fine-grained statistics usage
diff --git a/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java b/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java
index cfa2eb27e70..34b8827a75a 100644
--- a/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java
+++ b/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java
@@ -45,6 +45,7 @@
public abstract class AbstractRegionStoreClient
extends AbstractGRPCClient
implements RegionErrorReceiver {
+
private static final Logger logger = LoggerFactory.getLogger(AbstractRegionStoreClient.class);
public static final Histogram SEEK_LEADER_STORE_DURATION =
@@ -109,9 +110,7 @@ public void close() throws GrpcException {}
*/
@Override
public boolean onNotLeader(TiRegion newRegion) {
- if (logger.isDebugEnabled()) {
- logger.debug(region + ", new leader = " + newRegion.getLeader().getStoreId());
- }
+ logger.atDebug().log("{}, new leader = {}", region, newRegion.getLeader().getStoreId());
// When switch leader fails or the region changed its region epoch,
// it would be necessary to re-split task's key range for new region.
if (!region.getRegionEpoch().equals(newRegion.getRegionEpoch())) {
@@ -353,6 +352,7 @@ private TiStore switchProxyStore() {
}
private static class SwitchLeaderTask {
+
private final ListenableFuture task;
private final Metapb.Peer peer;
@@ -363,6 +363,7 @@ private SwitchLeaderTask(ListenableFuture task, Metapb.P
}
private static class ForwardCheckTask {
+
private final ListenableFuture task;
private final Metapb.Store store;
diff --git a/src/main/java/org/tikv/common/region/RegionCache.java b/src/main/java/org/tikv/common/region/RegionCache.java
index f9d848ac9d3..c7e45e08782 100644
--- a/src/main/java/org/tikv/common/region/RegionCache.java
+++ b/src/main/java/org/tikv/common/region/RegionCache.java
@@ -16,6 +16,7 @@
import org.tikv.common.util.BackOffer;
public class RegionCache {
+
private static final Logger logger = LoggerFactory.getLogger(RegionCache.class);
private final Map regionCache;
@@ -43,26 +44,23 @@ public synchronized TiRegion getRegionByKey(ByteString key, BackOffer backOffer)
} else {
regionId = keyToRegionIdCache.get(Key.toRawKey(key));
}
- if (logger.isDebugEnabled()) {
- logger.debug(
- String.format("getRegionByKey key[%s] -> ID[%s]", formatBytesUTF8(key), regionId));
- }
+ logger
+ .atDebug()
+ .addArgument(() -> formatBytesUTF8(key))
+ .addArgument(() -> regionId)
+ .log("getRegionByKey key[{}] -> ID[{}]");
if (regionId == null) {
return null;
}
TiRegion region;
region = regionCache.get(regionId);
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("getRegionByKey ID[%s] -> Region[%s]", regionId, region));
- }
+ logger.atDebug().log("getRegionByKey ID[{}] -> Region[{}]", regionId, region);
return region;
}
public synchronized TiRegion putRegion(TiRegion region) {
- if (logger.isDebugEnabled()) {
- logger.debug("putRegion: " + region);
- }
+ logger.atDebug().log("putRegion: {}", region);
TiRegion oldRegion = regionCache.get(region.getId());
if (oldRegion != null) {
if (oldRegion.getMeta().equals(region.getMeta())) {
@@ -79,9 +77,7 @@ public synchronized TiRegion putRegion(TiRegion region) {
@Deprecated
public synchronized TiRegion getRegionById(long regionId) {
TiRegion region = regionCache.get(regionId);
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("getRegionByKey ID[%s] -> Region[%s]", regionId, region));
- }
+ logger.atDebug().log("getRegionByKey ID[{}] -> Region[{}]", regionId, region);
return region;
}
@@ -92,9 +88,7 @@ private synchronized TiRegion getRegionFromCache(long regionId) {
/** Removes region associated with regionId from regionCache. */
public synchronized void invalidateRegion(TiRegion region) {
try {
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("invalidateRegion ID[%s]", region.getId()));
- }
+ logger.atDebug().log("invalidateRegion ID[{}]", region.getId());
TiRegion oldRegion = regionCache.get(region.getId());
if (oldRegion != null && oldRegion == region) {
keyToRegionIdCache.remove(makeRange(region.getStartKey(), region.getEndKey()));
@@ -118,9 +112,7 @@ public synchronized void insertRegionToCache(TiRegion region) {
public synchronized boolean updateRegion(TiRegion expected, TiRegion region) {
try {
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("invalidateRegion ID[%s]", region.getId()));
- }
+ logger.atDebug().log("invalidateRegion ID[{}]", region.getId());
TiRegion oldRegion = regionCache.get(region.getId());
if (!expected.getMeta().equals(oldRegion.getMeta())) {
return false;
@@ -162,9 +154,7 @@ public synchronized void invalidateAllRegionForStore(TiStore store) {
List regionToRemove = new ArrayList<>();
for (TiRegion r : regionCache.values()) {
if (r.getLeader().getStoreId() == store.getId()) {
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("invalidateAllRegionForStore Region[%s]", r));
- }
+ logger.atDebug().log("invalidateAllRegionForStore Region[{}]", r);
regionToRemove.add(r);
}
}
diff --git a/src/main/java/org/tikv/common/region/RegionManager.java b/src/main/java/org/tikv/common/region/RegionManager.java
index b9fc08d73fd..bdad1e72b92 100644
--- a/src/main/java/org/tikv/common/region/RegionManager.java
+++ b/src/main/java/org/tikv/common/region/RegionManager.java
@@ -44,6 +44,7 @@
@SuppressWarnings("UnstableApiUsage")
public class RegionManager {
+
private static final Logger logger = LoggerFactory.getLogger(RegionManager.class);
public static final Histogram GET_REGION_BY_KEY_REQUEST_LATENCY =
Histogram.build()
@@ -105,7 +106,10 @@ public TiRegion getRegionByKey(ByteString key, BackOffer backOffer) {
TiRegion region = cache.getRegionByKey(key, backOffer);
try {
if (region == null) {
- logger.debug("Key not found in keyToRegionIdCache:" + formatBytesUTF8(key));
+ logger
+ .atDebug()
+ .addArgument(() -> formatBytesUTF8(key))
+ .log("Key not found in keyToRegionIdCache:{}");
Pair regionAndLeader = pdClient.getRegionByKey(backOffer, key);
region =
cache.putRegion(createRegion(regionAndLeader.first, regionAndLeader.second, backOffer));
diff --git a/src/main/java/org/tikv/common/region/RegionStoreClient.java b/src/main/java/org/tikv/common/region/RegionStoreClient.java
index 4b6452f8ac8..a2a5965b833 100644
--- a/src/main/java/org/tikv/common/region/RegionStoreClient.java
+++ b/src/main/java/org/tikv/common/region/RegionStoreClient.java
@@ -63,6 +63,7 @@
/** Note that RegionStoreClient itself is not thread-safe */
public class RegionStoreClient extends AbstractRegionStoreClient {
+
private static final Logger logger = LoggerFactory.getLogger(RegionStoreClient.class);
@VisibleForTesting public final AbstractLockResolverClient lockResolverClient;
private final TiStoreType storeType;
@@ -118,9 +119,7 @@ private RegionStoreClient(
regionManager.getRegionStorePairByKey(region.getStartKey(), TiStoreType.TiKV).second;
String addressStr = tikvStore.getStore().getAddress();
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("Create region store client on address %s", addressStr));
- }
+ logger.atDebug().log("Create region store client on address {}", addressStr);
ManagedChannel channel = channelFactory.getChannel(addressStr, pdClient.getHostMapping());
TikvBlockingStub tikvBlockingStub = TikvGrpc.newBlockingStub(channel);
@@ -647,7 +646,7 @@ private List handleCopResponse(
if (response.hasLocked()) {
Lock lock = new Lock(response.getLocked());
- logger.debug(String.format("coprocessor encounters locks: %s", lock));
+ logger.atDebug().log("coprocessor encounters locks: {}", lock);
ResolveLockResult resolveLockResult =
lockResolverClient.resolveLocks(
backOffer, startTs, Collections.singletonList(lock), forWrite);
@@ -1232,6 +1231,7 @@ public int getValue() {
}
public static class RegionStoreClientBuilder {
+
private final TiConfiguration conf;
private final ChannelFactory channelFactory;
private final RegionManager regionManager;
@@ -1258,9 +1258,7 @@ public RegionStoreClient build(TiRegion region, TiStore store, TiStoreType store
Objects.requireNonNull(storeType, "storeType is null");
String addressStr = store.getStore().getAddress();
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("Create region store client on address %s", addressStr));
- }
+ logger.atDebug().log("Create region store client on address {}", addressStr);
ManagedChannel channel = null;
TikvBlockingStub blockingStub = null;
diff --git a/src/main/java/org/tikv/common/util/ConcreteBackOffer.java b/src/main/java/org/tikv/common/util/ConcreteBackOffer.java
index 355c9ff6023..4310112e322 100644
--- a/src/main/java/org/tikv/common/util/ConcreteBackOffer.java
+++ b/src/main/java/org/tikv/common/util/ConcreteBackOffer.java
@@ -35,6 +35,7 @@
import org.tikv.common.log.SlowLogSpan;
public class ConcreteBackOffer implements BackOffer {
+
private static final Logger logger = LoggerFactory.getLogger(ConcreteBackOffer.class);
private final int maxSleep;
private final Map backOffFunctionMap;
@@ -203,10 +204,13 @@ public boolean canRetryAfterSleep(BackOffFunction.BackOffFuncType funcType, long
@Override
public void doBackOffWithMaxSleep(
BackOffFunction.BackOffFuncType funcType, long maxSleepMs, Exception err) {
- logger.debug(
- String.format(
- "%s, retry later(totalSleep %dms, maxSleep %dms)",
- err.getMessage(), totalSleep, maxSleep));
+ logger
+ .atDebug()
+ .log(
+ "{}, retry later(totalSleep {}ms, maxSleep {}ms)",
+ err.getMessage(),
+ totalSleep,
+ maxSleep);
errors.add(err);
if (!canRetryAfterSleep(funcType, maxSleepMs)) {
logThrowError(err);
diff --git a/src/main/java/org/tikv/raw/SmartRawKVClient.java b/src/main/java/org/tikv/raw/SmartRawKVClient.java
index fcca8945137..31a29cbb215 100644
--- a/src/main/java/org/tikv/raw/SmartRawKVClient.java
+++ b/src/main/java/org/tikv/raw/SmartRawKVClient.java
@@ -30,6 +30,7 @@
import org.tikv.service.failsafe.CircuitBreaker;
public class SmartRawKVClient implements RawKVClientBase {
+
private static final Logger logger = LoggerFactory.getLogger(SmartRawKVClient.class);
private static final Histogram REQUEST_LATENCY =
@@ -226,21 +227,21 @@ private T callWithCircuitBreaker0(String funcName, Function1 func) {
throw e;
}
} else if (circuitBreaker.attemptExecution()) {
- logger.debug("attemptExecution");
+ logger.atDebug().log("attemptExecution");
try {
T result = func.apply();
circuitBreaker.getMetrics().recordSuccess();
circuitBreaker.recordAttemptSuccess();
- logger.debug("markSuccess");
+ logger.atDebug().log("markSuccess");
return result;
} catch (Exception e) {
circuitBreaker.getMetrics().recordFailure();
circuitBreaker.recordAttemptFailure();
- logger.debug("markNonSuccess");
+ logger.atDebug().log("markNonSuccess");
throw e;
}
} else {
- logger.debug("Circuit Breaker Opened");
+ logger.atDebug().log("Circuit Breaker Opened");
CIRCUIT_BREAKER_OPENED.labels(funcName).inc();
throw new CircuitBreakerOpenException();
}
@@ -262,10 +263,12 @@ public void close() throws Exception {
}
public interface Function1 {
+
T apply();
}
public interface Function0 {
+
void apply();
}
}
diff --git a/src/main/java/org/tikv/service/failsafe/CircuitBreakerImpl.java b/src/main/java/org/tikv/service/failsafe/CircuitBreakerImpl.java
index 7f2231bd7ab..d3ac641449d 100644
--- a/src/main/java/org/tikv/service/failsafe/CircuitBreakerImpl.java
+++ b/src/main/java/org/tikv/service/failsafe/CircuitBreakerImpl.java
@@ -24,6 +24,7 @@
import org.tikv.common.TiConfiguration;
public class CircuitBreakerImpl implements CircuitBreaker {
+
private static final Logger logger = LoggerFactory.getLogger(CircuitBreakerImpl.class);
private static final Counter CIRCUIT_BREAKER_ATTEMPT_COUNTER =
@@ -77,7 +78,7 @@ public CircuitBreakerImpl(
private MetricsListener getMetricsListener() {
return hc -> {
- logger.debug("onNext " + hc.toString());
+ logger.atDebug().log("onNext {}", hc);
// check if we are past the requestVolumeThreshold
if (hc.getTotalRequests() < requestVolumeThreshold) {
// we are not past the minimum volume threshold for the stat window,
diff --git a/src/main/java/org/tikv/service/failsafe/CircuitBreakerMetricsImpl.java b/src/main/java/org/tikv/service/failsafe/CircuitBreakerMetricsImpl.java
index da497efcb71..7d70728b807 100644
--- a/src/main/java/org/tikv/service/failsafe/CircuitBreakerMetricsImpl.java
+++ b/src/main/java/org/tikv/service/failsafe/CircuitBreakerMetricsImpl.java
@@ -28,6 +28,7 @@
import org.slf4j.LoggerFactory;
public class CircuitBreakerMetricsImpl implements CircuitBreakerMetrics {
+
private static final Logger logger = LoggerFactory.getLogger(CircuitBreakerMetricsImpl.class);
private final int windowInMS;
@@ -76,7 +77,7 @@ private void onReachCircuitWindow() {
if (!currentMetrics.compareAndSet(singleWindowMetrics, new SingleWindowMetrics())) {
return;
}
- logger.debug("window timeout, reset SingleWindowMetrics");
+ logger.atDebug().log("window timeout, reset SingleWindowMetrics");
HealthCounts healthCounts = singleWindowMetrics.getHealthCounts();
for (MetricsListener metricsListener : listeners) {
metricsListener.onNext(healthCounts);
@@ -95,6 +96,7 @@ public void close() throws IOException {
/** Instead of using SingleWindowMetrics, it is better to use RollingWindowMetrics. */
static class SingleWindowMetrics {
+
private final long startMS = System.currentTimeMillis();
private final AtomicLong totalCount = new AtomicLong(0);
private final AtomicLong errorCount = new AtomicLong(0);
diff --git a/src/main/java/org/tikv/txn/TTLManager.java b/src/main/java/org/tikv/txn/TTLManager.java
index 82f64fafe5f..4e83aa1af0b 100644
--- a/src/main/java/org/tikv/txn/TTLManager.java
+++ b/src/main/java/org/tikv/txn/TTLManager.java
@@ -42,6 +42,7 @@
* https://github.com/pingcap/tidb/blob/master/store/tikv/2pc.go
*/
public class TTLManager {
+
/** 20 seconds */
public static final int MANAGED_LOCK_TTL = 20000;
@@ -133,8 +134,10 @@ private void sendTxnHeartBeat(BackOffer bo, long ttl) {
}
}
- LOG.debug(
- "sendTxnHeartBeat success key={} ttl={} success", KeyUtils.formatBytes(primaryLock), ttl);
+ LOG.atDebug()
+ .addArgument(() -> KeyUtils.formatBytes(primaryLock))
+ .addArgument(() -> ttl)
+ .log("sendTxnHeartBeat success key={} ttl={} success");
}
public void close() throws InterruptedException {
diff --git a/src/main/java/org/tikv/txn/TwoPhaseCommitter.java b/src/main/java/org/tikv/txn/TwoPhaseCommitter.java
index d009751e501..ee8838670ff 100644
--- a/src/main/java/org/tikv/txn/TwoPhaseCommitter.java
+++ b/src/main/java/org/tikv/txn/TwoPhaseCommitter.java
@@ -396,11 +396,12 @@ private void doPrewriteSecondaryKeySingleBatchWithRetry(
BatchKeys batchKeys,
Map mutations)
throws TiBatchWriteException {
- LOG.debug(
- "start prewrite secondary key, row={}, size={}KB, regionId={}",
- batchKeys.getKeys().size(),
- batchKeys.getSizeInKB(),
- batchKeys.getRegion().getId());
+ LOG.atDebug()
+ .log(
+ "start prewrite secondary key, row={}, size={}KB, regionId={}",
+ batchKeys.getKeys().size(),
+ batchKeys.getSizeInKB(),
+ batchKeys.getRegion().getId());
List keyList = batchKeys.getKeys();
int batchSize = keyList.size();
@@ -444,11 +445,12 @@ private void doPrewriteSecondaryKeySingleBatchWithRetry(
throw new TiBatchWriteException(errorMsg, e);
}
}
- LOG.debug(
- "prewrite secondary key successfully, row={}, size={}KB, regionId={}",
- batchKeys.getKeys().size(),
- batchKeys.getSizeInKB(),
- batchKeys.getRegion().getId());
+ LOG.atDebug()
+ .log(
+ "prewrite secondary key successfully, row={}, size={}KB, regionId={}",
+ batchKeys.getKeys().size(),
+ batchKeys.getSizeInKB(),
+ batchKeys.getRegion().getId());
}
private void appendBatchBySize(