Skip to content
Snippets Groups Projects
Commit 9725e4d5 authored by Florian Fittkau's avatar Florian Fittkau
Browse files

moved traces summarization to top level

parent 436d8020
No related branches found
No related tags found
No related merge requests found
package explorviz.live_trace_processing.filter.reduction.summarization; package explorviz.live_trace_processing.filter.reduction;
import java.util.List; import java.util.List;
...@@ -6,11 +6,11 @@ import explorviz.live_trace_processing.record.event.AbstractBeforeEventRecord; ...@@ -6,11 +6,11 @@ import explorviz.live_trace_processing.record.event.AbstractBeforeEventRecord;
import explorviz.live_trace_processing.record.event.AbstractEventRecord; import explorviz.live_trace_processing.record.event.AbstractEventRecord;
import explorviz.live_trace_processing.record.trace.Trace; import explorviz.live_trace_processing.record.trace.Trace;
class TracePatternSummarizationBuffer { class TracesSummarizationBuffer {
private Trace accumulator; private Trace accumulator;
private final long bufferCreatedTimestamp; private final long bufferCreatedTimestamp;
public TracePatternSummarizationBuffer(final long bufferCreatedTimestamp) { public TracesSummarizationBuffer(final long bufferCreatedTimestamp) {
this.bufferCreatedTimestamp = bufferCreatedTimestamp; this.bufferCreatedTimestamp = bufferCreatedTimestamp;
} }
......
package explorviz.live_trace_processing.filter.reduction.summarization; package explorviz.live_trace_processing.filter.reduction;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -8,7 +8,6 @@ import java.util.concurrent.ConcurrentSkipListMap; ...@@ -8,7 +8,6 @@ import java.util.concurrent.ConcurrentSkipListMap;
import explorviz.live_trace_processing.Constants; import explorviz.live_trace_processing.Constants;
import explorviz.live_trace_processing.filter.AbstractFilter; import explorviz.live_trace_processing.filter.AbstractFilter;
import explorviz.live_trace_processing.filter.IPipeReceiver; import explorviz.live_trace_processing.filter.IPipeReceiver;
import explorviz.live_trace_processing.filter.reduction.ITraceReduction;
import explorviz.live_trace_processing.reader.TimeProvider; import explorviz.live_trace_processing.reader.TimeProvider;
import explorviz.live_trace_processing.record.IRecord; import explorviz.live_trace_processing.record.IRecord;
import explorviz.live_trace_processing.record.misc.TerminateRecord; import explorviz.live_trace_processing.record.misc.TerminateRecord;
...@@ -16,15 +15,15 @@ import explorviz.live_trace_processing.record.misc.TimedPeriodRecord; ...@@ -16,15 +15,15 @@ import explorviz.live_trace_processing.record.misc.TimedPeriodRecord;
import explorviz.live_trace_processing.record.trace.Trace; import explorviz.live_trace_processing.record.trace.Trace;
import explorviz.live_trace_processing.record.trace.TraceComperator; import explorviz.live_trace_processing.record.trace.TraceComperator;
public class TracePatternSummarizationFilter extends AbstractFilter implements ITraceReduction { public class TracesSummarizationFilter extends AbstractFilter implements ITraceReduction {
private final long maxCollectionDuration; private final long maxCollectionDuration;
private final Map<Trace, TracePatternSummarizationBuffer> trace2buffer = new ConcurrentSkipListMap<Trace, TracePatternSummarizationBuffer>( private final Map<Trace, TracesSummarizationBuffer> trace2buffer = new ConcurrentSkipListMap<Trace, TracesSummarizationBuffer>(
new TraceComperator()); new TraceComperator());
// TODO cache for buffer objects // TODO cache for buffer objects
public TracePatternSummarizationFilter(final long maxCollectionDuration, public TracesSummarizationFilter(final long maxCollectionDuration,
final IPipeReceiver sinkReceiver) { final IPipeReceiver sinkReceiver) {
super(sinkReceiver, Constants.TRACE_SUMMARIZATION_DISRUPTOR_SIZE, super(sinkReceiver, Constants.TRACE_SUMMARIZATION_DISRUPTOR_SIZE,
Constants.TRACE_SUMMARIZATION_OUTPUT_BUFFER_SIZE, "Reduced traces/sec"); Constants.TRACE_SUMMARIZATION_OUTPUT_BUFFER_SIZE, "Reduced traces/sec");
...@@ -54,9 +53,9 @@ public class TracePatternSummarizationFilter extends AbstractFilter implements I ...@@ -54,9 +53,9 @@ public class TracePatternSummarizationFilter extends AbstractFilter implements I
} }
private void insertIntoBuffer(final Trace trace) { private void insertIntoBuffer(final Trace trace) {
TracePatternSummarizationBuffer traceAggregationBuffer = trace2buffer.get(trace); TracesSummarizationBuffer traceAggregationBuffer = trace2buffer.get(trace);
if (traceAggregationBuffer == null) { if (traceAggregationBuffer == null) {
traceAggregationBuffer = new TracePatternSummarizationBuffer( traceAggregationBuffer = new TracesSummarizationBuffer(
TimeProvider.getCurrentTimestamp()); TimeProvider.getCurrentTimestamp());
trace2buffer.put(trace, traceAggregationBuffer); trace2buffer.put(trace, traceAggregationBuffer);
} }
...@@ -66,7 +65,7 @@ public class TracePatternSummarizationFilter extends AbstractFilter implements I ...@@ -66,7 +65,7 @@ public class TracePatternSummarizationFilter extends AbstractFilter implements I
private void processTimeoutQueue(final long timestamp) { private void processTimeoutQueue(final long timestamp) {
final long bufferTimeout = timestamp - maxCollectionDuration; final long bufferTimeout = timestamp - maxCollectionDuration;
final List<Trace> toRemove = new ArrayList<Trace>(); final List<Trace> toRemove = new ArrayList<Trace>();
for (final TracePatternSummarizationBuffer traceBuffer : trace2buffer.values()) { for (final TracesSummarizationBuffer traceBuffer : trace2buffer.values()) {
if (traceBuffer.getBufferCreatedTimestamp() <= bufferTimeout) { if (traceBuffer.getBufferCreatedTimestamp() <= bufferTimeout) {
final Trace aggregatedTrace = traceBuffer.getAggregatedTrace(); final Trace aggregatedTrace = traceBuffer.getAggregatedTrace();
deliver(aggregatedTrace); deliver(aggregatedTrace);
...@@ -79,7 +78,7 @@ public class TracePatternSummarizationFilter extends AbstractFilter implements I ...@@ -79,7 +78,7 @@ public class TracePatternSummarizationFilter extends AbstractFilter implements I
} }
private void terminate() { private void terminate() {
for (final TracePatternSummarizationBuffer traceBuffer : trace2buffer.values()) { for (final TracesSummarizationBuffer traceBuffer : trace2buffer.values()) {
deliver(traceBuffer.getAggregatedTrace()); deliver(traceBuffer.getAggregatedTrace());
} }
trace2buffer.clear(); trace2buffer.clear();
......
...@@ -61,6 +61,7 @@ public class PatternSummarizationFilter extends AbstractReductionFilter { ...@@ -61,6 +61,7 @@ public class PatternSummarizationFilter extends AbstractReductionFilter {
final int traceLength = traceEvents.size(); final int traceLength = traceEvents.size();
int count = 0; int count = 0;
final Stack<Integer> stack = new Stack<Integer>(); final Stack<Integer> stack = new Stack<Integer>();
while (index < traceLength) { while (index < traceLength) {
final AbstractEventRecord event = traceEvents.get(index); final AbstractEventRecord event = traceEvents.get(index);
if (event instanceof AbstractBeforeEventRecord) { if (event instanceof AbstractBeforeEventRecord) {
......
...@@ -8,7 +8,7 @@ import explorviz.live_trace_processing.filter.ITraceSink; ...@@ -8,7 +8,7 @@ import explorviz.live_trace_processing.filter.ITraceSink;
import explorviz.live_trace_processing.filter.reconstruction.ITraceReconstruction; import explorviz.live_trace_processing.filter.reconstruction.ITraceReconstruction;
import explorviz.live_trace_processing.filter.reconstruction.TraceReconstructionFilter; import explorviz.live_trace_processing.filter.reconstruction.TraceReconstructionFilter;
import explorviz.live_trace_processing.filter.reduction.ITraceReduction; import explorviz.live_trace_processing.filter.reduction.ITraceReduction;
import explorviz.live_trace_processing.filter.reduction.language_based.RemoveConstructorsFilter; import explorviz.live_trace_processing.filter.reduction.TracesSummarizationFilter;
import explorviz.live_trace_processing.reader.TCPReader; import explorviz.live_trace_processing.reader.TCPReader;
public class FilterConfiguration { public class FilterConfiguration {
...@@ -17,12 +17,12 @@ public class FilterConfiguration { ...@@ -17,12 +17,12 @@ public class FilterConfiguration {
// final IRecordCounting recordCounting = new // final IRecordCounting recordCounting = new
// RecordCountingFilter(sink); // RecordCountingFilter(sink);
final ITraceReduction traceReduction = new RemoveConstructorsFilter(sink); final ITraceReduction traceReduction = new TracesSummarizationFilter(
// final ITraceReduction traceReduction = new TimeUnit.MILLISECONDS.toNanos(990), sink);
// TreeSummarization(recordCounting);
// final ITraceReduction traceReduction = new // final PatternSummarizationFilter oneTraceReduction = new
// TracePatternSummarizationFilter( // PatternSummarizationFilter(
// TimeUnit.MILLISECONDS.toNanos(990), sink); // traceReduction, 300, 1);
final ITraceReconstruction traceReconstruction = new TraceReconstructionFilter( final ITraceReconstruction traceReconstruction = new TraceReconstructionFilter(
TimeUnit.SECONDS.toNanos(4), traceReduction); TimeUnit.SECONDS.toNanos(4), traceReduction);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment