This is an automated email from the ASF dual-hosted git repository.

marklau99 pushed a commit to branch test-new-record-rpc-format
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 97a42adf3b7247c4df19e76236a3804931b44a52
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);
+    }
   }
 }

Reply via email to