This is an automated email from the ASF dual-hosted git repository. marklau99 pushed a commit to branch compressed-wal in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 3f86e92ffb7ad1450b9e798b02db73dc677e4cb7 Author: Liu Xuxin <[email protected]> AuthorDate: Mon Jan 8 16:45:33 2024 +0800 add log for compression --- .../iotdb/rpc/TSnappyElasticFramedTransport.java | 27 +++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSnappyElasticFramedTransport.java b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSnappyElasticFramedTransport.java index a85ccf0c5b5..817c994061a 100644 --- a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSnappyElasticFramedTransport.java +++ b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/TSnappyElasticFramedTransport.java @@ -20,11 +20,19 @@ package org.apache.iotdb.rpc; import org.apache.thrift.transport.TTransport; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.xerial.snappy.Snappy; import java.io.IOException; +import java.util.concurrent.atomic.AtomicLong; public class TSnappyElasticFramedTransport extends TCompressedElasticFramedTransport { + private static final Logger LOGGER = LoggerFactory.getLogger(TSnappyElasticFramedTransport.class); + private static final AtomicLong totalUncompressionTime = new AtomicLong(0); + private static final AtomicLong totalUncompressionCount = new AtomicLong(0); + private static final AtomicLong totalOriginalDataSize = new AtomicLong(0); + private static final AtomicLong totalCompressedDataSize = new AtomicLong(0); public static class Factory extends TElasticFramedTransport.Factory { @@ -74,6 +82,23 @@ public class TSnappyElasticFramedTransport extends TCompressedElasticFramedTrans @Override protected void uncompress(byte[] input, int inOff, int size, byte[] output, int outOff) throws IOException { - Snappy.uncompress(input, inOff, size, output, outOff); + + long startTime = System.nanoTime(); + int uncompressedSize = Snappy.uncompress(input, inOff, size, output, outOff); + long endTime = System.nanoTime(); + totalUncompressionTime.addAndGet(endTime - startTime); + totalOriginalDataSize.addAndGet(uncompressedSize); + totalCompressedDataSize.addAndGet(size); + long count = totalUncompressionCount.incrementAndGet(); + if (count % 1000 == 0) { + LOGGER.info( + "Average uncompression time: {} ms, average compression rate: {}", + totalUncompressionTime.doubleValue() / count / 1000000, + totalOriginalDataSize.doubleValue() / totalCompressedDataSize.doubleValue()); + totalUncompressionCount.set(0); + totalUncompressionTime.set(0); + totalOriginalDataSize.set(0); + totalCompressedDataSize.set(0); + } } }
