diff --git a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/context/TraceId.java b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/context/TraceId.java index 944c1197b..18eb7b143 100644 --- a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/context/TraceId.java +++ b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/context/TraceId.java @@ -38,10 +38,4 @@ public interface TraceId { short getFlags(); boolean isRoot(); - - int getTraceCount(); - - int incrementTraceCount(); - - int decrementTraceCount(); } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultAsyncTraceId.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultAsyncTraceId.java index 1aaa263d2..5b9ca12d0 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultAsyncTraceId.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultAsyncTraceId.java @@ -75,22 +75,6 @@ public class DefaultAsyncTraceId implements AsyncTraceId { return startTime; } - - @Override - public int getTraceCount() { - return traceId.getTraceCount(); - } - - @Override - public int incrementTraceCount() { - return traceId.incrementTraceCount(); - } - - @Override - public int decrementTraceCount() { - return traceId.decrementTraceCount(); - } - @Override public TraceId getParentTraceId() { return traceId; @@ -108,5 +92,4 @@ public class DefaultAsyncTraceId implements AsyncTraceId { builder.append("}"); return builder.toString(); } - } \ No newline at end of file diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultTrace.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultTrace.java index 1d48069de..3d0c91007 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultTrace.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/DefaultTrace.java @@ -60,7 +60,6 @@ public final class DefaultTrace implements Trace { this.traceId = new DefaultTraceId(traceContext.getAgentId(), traceContext.getAgentStartTime(), transactionId); this.sampling = sampling; - this.traceId.incrementTraceCount(); Span span = createSpan(); this.spanRecorder = new DefaultSpanRecorder(traceContext, span, traceId, sampling); this.spanRecorder.recordTraceId(traceId); @@ -84,7 +83,6 @@ public final class DefaultTrace implements Trace { this.traceId = continueTraceId; this.sampling = sampling; - this.traceId.incrementTraceCount(); Span span = createSpan(); this.spanRecorder = new DefaultSpanRecorder(traceContext, span, traceId, sampling); this.spanRecorder.recordTraceId(traceId); @@ -180,7 +178,6 @@ public final class DefaultTrace implements Trace { // If the stack is not handled properly, NullPointerException will be thrown after this. Is it OK? if (this.storage != null) { - this.traceId.decrementTraceCount(); this.storage.close(); this.storage = null; } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/ThreadLocalTraceFactory.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/ThreadLocalTraceFactory.java index e7b6d4d20..c2c6524f7 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/ThreadLocalTraceFactory.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/ThreadLocalTraceFactory.java @@ -26,7 +26,6 @@ import com.navercorp.pinpoint.exception.PinpointException; import com.navercorp.pinpoint.profiler.context.storage.AsyncStorage; import com.navercorp.pinpoint.profiler.context.storage.Storage; import com.navercorp.pinpoint.profiler.context.storage.StorageFactory; -import com.navercorp.pinpoint.profiler.context.storage.StoragePool; import com.navercorp.pinpoint.profiler.monitor.metric.MetricRegistry; import com.navercorp.pinpoint.profiler.util.NamedThreadLocal; @@ -50,8 +49,6 @@ public class ThreadLocalTraceFactory implements TraceFactory { private final StorageFactory storageFactory; private final Sampler sampler; - private final StoragePool storagePool; - // Unique id for tracing a internal stacktrace and calculating a slow time of activethreadcount // moved here in order to make codes simpler for now private final AtomicLong transactionId = new AtomicLong(0); @@ -73,7 +70,6 @@ public class ThreadLocalTraceFactory implements TraceFactory { this.metricRegistry = metricRegistry; this.storageFactory = storageFactory; this.sampler = sampler; - this.storagePool = new StoragePool(storageFactory); } @@ -132,7 +128,7 @@ public class ThreadLocalTraceFactory implements TraceFactory { final boolean sampling = true; final DefaultTrace trace = new DefaultTrace(traceContext, traceID, sampling); // final Storage storage = storageFactory.createStorage(); - final Storage storage = storagePool.getStorage(traceID); + final Storage storage = storageFactory.createStorage(); trace.setStorage(storage); threadLocal.set(trace); return trace; @@ -172,7 +168,7 @@ public class ThreadLocalTraceFactory implements TraceFactory { // final Storage storage = storageFactory.createStorage(); final DefaultTrace trace = new DefaultTrace(traceContext, nextTransactionId(), sampling); final TraceId traceId = trace.getTraceId(); - final Storage storage = storagePool.getStorage(traceId); + final Storage storage = storageFactory.createStorage(); trace.setStorage(storage); trace.setTraceType(traceType); threadLocal.set(trace); @@ -209,7 +205,7 @@ public class ThreadLocalTraceFactory implements TraceFactory { final TraceId parentTraceId = traceId.getParentTraceId(); final boolean sampling = true; final DefaultTrace trace = new DefaultTrace(traceContext, parentTraceId, sampling); - final Storage storage = storagePool.getStorage(parentTraceId); + final Storage storage = storageFactory.createStorage(); trace.setStorage(new AsyncStorage(storage)); final AsyncTrace asyncTrace = new AsyncTrace(trace, asyncId, traceId.nextAsyncSequence(), startTime); diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/AsyncStorage.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/AsyncStorage.java index 3c96aa0db..2cc0f6437 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/AsyncStorage.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/AsyncStorage.java @@ -47,11 +47,6 @@ public class AsyncStorage implements Storage { storage.flush(); } - @Override - public void setCloseHandler(StorageCloseHandler closeHandler) { - storage.setCloseHandler(closeHandler); - } - @Override public void close() { storage.close(); diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/BufferedStorage.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/BufferedStorage.java index eb8e45750..2b4ebcd5a 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/BufferedStorage.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/BufferedStorage.java @@ -40,7 +40,6 @@ public class BufferedStorage implements Storage { private List storage; private final DataSender dataSender; private final SpanChunkFactory spanChunkFactory; - private StorageCloseHandler closeHandler; public BufferedStorage(DataSender dataSender, SpanChunkFactory spanChunkFactory) { this(dataSender, spanChunkFactory, DEFAULT_BUFFER_SIZE); @@ -62,14 +61,13 @@ public class BufferedStorage implements Storage { @Override public void store(SpanEvent spanEvent) { List flushData = null; - synchronized (this) { - storage.add(spanEvent); - if (storage.size() >= bufferSize) { - // data copy - flushData = storage; - storage = new ArrayList(bufferSize); - } + storage.add(spanEvent); + if (storage.size() >= bufferSize) { + // data copy + flushData = storage; + storage = new ArrayList(bufferSize); } + if (flushData != null) { final SpanChunk spanChunk = spanChunkFactory.create(flushData); if (isDebug) { @@ -99,10 +97,8 @@ public class BufferedStorage implements Storage { public void flush() { List spanEventList; - synchronized (this) { - spanEventList = storage; - this.storage = new ArrayList(bufferSize); - } + spanEventList = storage; + this.storage = new ArrayList(bufferSize); if (spanEventList != null && !spanEventList.isEmpty()) { final SpanChunk spanChunk = spanChunkFactory.create(spanEventList); @@ -113,19 +109,8 @@ public class BufferedStorage implements Storage { } } - public StorageCloseHandler getCloseHandler() { - return closeHandler; - } - - public void setCloseHandler(StorageCloseHandler closeHandler) { - this.closeHandler = closeHandler; - } - @Override public void close() { - if(closeHandler != null) { - closeHandler.handle(); - } } @Override diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/LogStorageFactory.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/LogStorageFactory.java index d0fe8ae61..1a6ca15a5 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/LogStorageFactory.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/LogStorageFactory.java @@ -51,10 +51,6 @@ public class LogStorageFactory implements StorageFactory { public void flush() { } - @Override - public void setCloseHandler(StorageCloseHandler closeHandler) { - } - @Override public void close() { } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/SpanStorage.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/SpanStorage.java index 3f95ff870..3db4ad416 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/SpanStorage.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/SpanStorage.java @@ -66,10 +66,6 @@ public class SpanStorage implements Storage { public void flush() { } - @Override - public void setCloseHandler(StorageCloseHandler closeHandler) { - } - @Override public void close() { } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/Storage.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/Storage.java index 453f9c212..569367d16 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/Storage.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/Storage.java @@ -39,7 +39,5 @@ public interface Storage { void flush(); - void setCloseHandler(StorageCloseHandler closeHandler); - void close(); } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/StorageCloseHandler.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/StorageCloseHandler.java deleted file mode 100644 index 0e8c97c7d..000000000 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/StorageCloseHandler.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2014 NAVER Corp. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.navercorp.pinpoint.profiler.context.storage; - -/** - * - * @author jaehong.kim - * - */ -public interface StorageCloseHandler { - void handle(); -} diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/StoragePool.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/StoragePool.java deleted file mode 100644 index be04d8e06..000000000 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/storage/StoragePool.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2014 NAVER Corp. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.navercorp.pinpoint.profiler.context.storage; - -import java.util.concurrent.ConcurrentHashMap; - -import com.navercorp.pinpoint.bootstrap.context.TraceId; - -/** - * - * @author jaehong.kim - * - */ -public class StoragePool { - private final StorageFactory storageFactory; - private final ConcurrentHashMap pool = new ConcurrentHashMap(); - - public StoragePool(final StorageFactory storageFactory) { - this.storageFactory = storageFactory; - } - - public Storage getStorage(final TraceId traceId) { - Storage storage = pool.get(traceId); - if (storage == null) { - final Storage newStorage = storageFactory.createStorage(); - newStorage.setCloseHandler(new StorageCloseHandler() { - @Override - public void handle() { - if (traceId.getTraceCount() == 0) { - pool.remove(traceId); - } - } - }); - storage = pool.putIfAbsent(traceId, newStorage); - if (storage == null) { - storage = newStorage; - } - } - - return storage; - } -} \ No newline at end of file diff --git a/profiler/src/main/java/com/navercorp/pinpoint/test/SimpleSpanStorage.java b/profiler/src/main/java/com/navercorp/pinpoint/test/SimpleSpanStorage.java index e068f84bd..d61b06daf 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/test/SimpleSpanStorage.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/test/SimpleSpanStorage.java @@ -60,10 +60,6 @@ public final class SimpleSpanStorage implements Storage { public void flush() { } - @Override - public void setCloseHandler(StorageCloseHandler closeHandler) { - } - @Override public void close() { }