diff --git a/src/main/java/com/nhn/pinpoint/collector/dao/hbase/StatisticsCache.java b/src/main/java/com/nhn/pinpoint/collector/dao/hbase/StatisticsCache.java index c7e8b965c..c5bdd12f1 100644 --- a/src/main/java/com/nhn/pinpoint/collector/dao/hbase/StatisticsCache.java +++ b/src/main/java/com/nhn/pinpoint/collector/dao/hbase/StatisticsCache.java @@ -107,7 +107,7 @@ public class StatisticsCache { private void drainAllLocalBuffer() { try { - logger.debug("drain all local buffer"); + logger.trace("drain all local buffer"); bufferListLock.lock(); for (Map buffer : bufferList) { @@ -160,7 +160,7 @@ public class StatisticsCache { return; } - logger.debug("flush cache"); + logger.trace("flush cache"); Set> entrySet = cache.entrySet(); for (Entry entry : entrySet) { diff --git a/src/main/java/com/nhn/pinpoint/collector/receiver/udp/UDPReceiver.java b/src/main/java/com/nhn/pinpoint/collector/receiver/udp/UDPReceiver.java index 0182097f3..561ba3134 100644 --- a/src/main/java/com/nhn/pinpoint/collector/receiver/udp/UDPReceiver.java +++ b/src/main/java/com/nhn/pinpoint/collector/receiver/udp/UDPReceiver.java @@ -16,6 +16,7 @@ import org.apache.thrift.TBase; import org.apache.thrift.TException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.core.NamedThreadLocal; import java.io.IOException; import java.net.*; @@ -193,10 +194,16 @@ public class UDPReceiver implements DataReceiver { private class DispatchPacket implements Runnable { private final DatagramPacket packet; + private final ThreadLocal deserializer = new NamedThreadLocal("HeaderTBaseDeserializer") { + @Override + protected HeaderTBaseDeserializer initialValue() { + return new HeaderTBaseDeserializer(); + } + }; private DispatchPacket(DatagramPacket packet) { if (packet == null) { - throw new NullPointerException("packet"); + throw new NullPointerException("packet must not be null"); } this.packet = packet; } @@ -205,8 +212,7 @@ public class UDPReceiver implements DataReceiver { public void run() { Timer.Context time = timer.time(); - // thread local로 캐쉬할까? 근데 worker라서 별로 영향이 없을거 같음. - HeaderTBaseDeserializer deserializer = new HeaderTBaseDeserializer(); + HeaderTBaseDeserializer deserializer = this.deserializer.get(); try { TBase tBase = deserializer.deserialize(packet.getData()); // dispatch는 비지니스 로직 실행을 의미. diff --git a/src/test/java/com/nhn/pinpoint/collector/dao/hbase/HbaseApplicationTraceIndexDaoTest.java b/src/test/java/com/nhn/pinpoint/collector/dao/hbase/HbaseApplicationTraceIndexDaoTest.java new file mode 100644 index 000000000..712d6305e --- /dev/null +++ b/src/test/java/com/nhn/pinpoint/collector/dao/hbase/HbaseApplicationTraceIndexDaoTest.java @@ -0,0 +1,24 @@ +package com.nhn.pinpoint.collector.dao.hbase; + +import com.sematext.hbase.wd.RowKeyDistributorByHashPrefix; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +/** + * + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration("classpath:applicationContext-test.xml") +public class HbaseApplicationTraceIndexDaoTest { + + @Autowired + private RowKeyDistributorByHashPrefix distributorByHashPrefix; + + @Test + public void testInsert() throws Exception { +// distributorByHashPrefix.getOriginalKey(Bytes.read(1)); + } +} diff --git a/src/test/resources/hbase.properties b/src/test/resources/hbase.properties deleted file mode 100644 index 9f8aed725..000000000 --- a/src/test/resources/hbase.properties +++ /dev/null @@ -1,8 +0,0 @@ -hbase.client.host=localhost -# 가상머신 장비 -#hbase.client.host=10.101.17.108 -#개발적용 장비 -#hbase.client.host=114.111.41.36 - -hbase.client.port=2181 -hbase.htable.threads.max=32 \ No newline at end of file diff --git a/src/test/resources/pinpoint-collector.properties b/src/test/resources/pinpoint-collector.properties deleted file mode 100644 index f80b94831..000000000 --- a/src/test/resources/pinpoint-collector.properties +++ /dev/null @@ -1,23 +0,0 @@ -#HBaseTemplate에서 사용하는 HtablePool사이즈 -hbase.hTablePoolSize=1024 - -# tco listen port -collectorTcpListenPort=9994 -# udp listen port -collectorUdpListenPort=9995 - -# udp메시지를 처리할 thread 수, hbase.hTablePoolSize사이즈와 같이 조절해야 한다. -udpWorkerThread=512 -# udp메시지를 처리할 thread가 모두 동작중일때 요청을 몇개까지 큐잉할지? -udpWorkerQueueSize=5120 - - -#udp socket의 receiveBufferSize설정. 만약 udp 손실율이 심할 경우 아래 사항을 체크해볼것. -udpSocketReceiveBufferSize=4194304 -#$ /sbin/sysctl -a | grep -e rmem -e wmem -#net.core.wmem_max = 524288 -#net.core.rmem_max = 524288 -#net.core.wmem_default = 229376 -#net.core.rmem_default = 229376 -#위 설정을 다음과 같이 수정합니다. -#irteamsu$ sudo sysctl -w net.core.rmem_max=4194304