From 40af77642a6a84c1c30fd2ee3bf2afa21c503200 Mon Sep 17 00:00:00 2001 From: Florian Fittkau <ffi@informatik.uni-kiel.de> Date: Wed, 25 Mar 2015 13:32:42 +0100 Subject: [PATCH] WiP --- .../explorviz.live_trace_processing.default.properties | 1 + .../reconstruction/TraceReconstructionBuffer.java | 10 +++++++--- .../reconstruction/TraceReconstructionFilter.java | 7 +++++-- .../main/FilterConfiguration.java | 3 ++- .../reconstruction/TraceReconstructionBufferTest.java | 2 +- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/META-INF/explorviz.live_trace_processing.default.properties b/src/META-INF/explorviz.live_trace_processing.default.properties index c92159f..e879ca2 100644 --- a/src/META-INF/explorviz.live_trace_processing.default.properties +++ b/src/META-INF/explorviz.live_trace_processing.default.properties @@ -40,5 +40,6 @@ explorviz.live_trace_processing.tcp_reader_disruptor_size=16384 explorviz.live_trace_processing.trace_reconstruction_disruptor_size=256 explorviz.live_trace_processing.trace_reconstruction_buffer_initial_size=128 +explorviz.live_trace_processing.trace_reconstruction_timeout_in_sec=4 explorviz.live_trace_processing.trace_summarization_disruptor_size=64 diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java index 9d40ff3..1523531 100644 --- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java +++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java @@ -15,17 +15,21 @@ import explorviz.live_trace_processing.record.trace.RuntimeStatisticInformation; import explorviz.live_trace_processing.record.trace.Trace; class TraceReconstructionBuffer { - private static final int TIMEOUT_IN_SECONDS = 4; - private final List<AbstractEventRecord> events = new ArrayList<AbstractEventRecord>( Constants.TRACE_RECONSTRUCTION_BUFFER_INITIAL_SIZE); private int openEvents; - private int updatedInThisPeriodCounter = TIMEOUT_IN_SECONDS; + private final int TIMEOUT_IN_SECONDS; + private int updatedInThisPeriodCounter; private int maxOrderIndex = -1; + public TraceReconstructionBuffer(final int traceTimeoutInSec) { + TIMEOUT_IN_SECONDS = traceTimeoutInSec; + updatedInThisPeriodCounter = TIMEOUT_IN_SECONDS; + } + public final void insertEvent(final AbstractEventRecord event) { resetTimeoutCounter(); setMaxOrderIndex(event); diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java index 2a874a2..b99d5ca 100644 --- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java +++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java @@ -23,10 +23,13 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R private final PipesMerger<IRecord> traceReconstructionMerger; + private final int traceTimeoutInSec; + public TraceReconstructionFilter(final PipesMerger<IRecord> traceReconstructionMerger, - final Queue<IRecord> receiverQueue) { + final Queue<IRecord> receiverQueue, final int traceTimeoutInSec) { super(receiverQueue, "Reconstructed traces/sec", 1000); this.traceReconstructionMerger = traceReconstructionMerger; + this.traceTimeoutInSec = traceTimeoutInSec; } @Override @@ -61,7 +64,7 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R private final TraceReconstructionBuffer getBufferForRecord(final AbstractEventRecord record) { TraceReconstructionBuffer traceBuffer = traceIdAndHost2trace.get(record); if (traceBuffer == null) { - traceBuffer = new TraceReconstructionBuffer(); + traceBuffer = new TraceReconstructionBuffer(traceTimeoutInSec); traceIdAndHost2trace.put(record, traceBuffer); } return traceBuffer; diff --git a/src/explorviz/live_trace_processing/main/FilterConfiguration.java b/src/explorviz/live_trace_processing/main/FilterConfiguration.java index 477640b..50d9c79 100644 --- a/src/explorviz/live_trace_processing/main/FilterConfiguration.java +++ b/src/explorviz/live_trace_processing/main/FilterConfiguration.java @@ -26,7 +26,8 @@ public class FilterConfiguration { Constants.TCP_READER_DISRUPTOR_SIZE); new TraceReconstructionFilter(traceReconstructionMerger, - traceReductionConnector.registerProducer()).start(); + traceReductionConnector.registerProducer(), + Constants.TRACE_RECONSTRUCTION_TIMEOUT_IN_SEC).start(); new TCPReader(configuration.getIntProperty(ConfigurationFactory.READER_LISTENING_PORT, 10133), traceReconstructionMerger).read(); diff --git a/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java b/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java index 8af6f34..ba9f9ae 100644 --- a/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java +++ b/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java @@ -11,7 +11,7 @@ public class TraceReconstructionBufferTest { @Test public void testInsertEvent() throws Exception { - final TraceReconstructionBuffer traceReconstructionBuffer = new TraceReconstructionBuffer(); + final TraceReconstructionBuffer traceReconstructionBuffer = new TraceReconstructionBuffer(5); traceReconstructionBuffer.insertEvent(new BeforeOperationEventRecord(1, 0, 0, "test", "TestClazz", "", new HostApplicationMetaDataRecord("testSystem", "testIp", "testHost", "testApp", "Java"))); -- GitLab