Skip to content
Snippets Groups Projects
Commit 1aaed454 authored by Christian Wulf's avatar Christian Wulf
Browse files

improved performance of InstanceOfFilter

parent 8ba52389
No related branches found
No related tags found
No related merge requests found
...@@ -18,10 +18,11 @@ public class InstanceOfFilter<I, O> extends ConsumerStage<I, O> { ...@@ -18,10 +18,11 @@ public class InstanceOfFilter<I, O> extends ConsumerStage<I, O> {
this.type = type; this.type = type;
} }
@SuppressWarnings("unchecked")
@Override @Override
protected void execute5(final I element) { protected void execute5(final I element) {
if (this.type.isInstance(element)) { if (this.type.isInstance(element)) {
this.send(this.type.cast(element)); this.send((O) element);
} else { // swallow up the element } else { // swallow up the element
if (this.logger.isDebugEnabled()) { if (this.logger.isDebugEnabled()) {
this.logger.debug("element is not an instance of " + this.type.getName() + ", but of " + element.getClass()); this.logger.debug("element is not an instance of " + this.type.getName() + ", but of " + element.getClass());
......
...@@ -40,7 +40,7 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord, TraceE ...@@ -40,7 +40,7 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord, TraceE
private long maxTraceTimeout = Long.MAX_VALUE; private long maxTraceTimeout = Long.MAX_VALUE;
private long maxEncounteredLoggingTimestamp = -1; private long maxEncounteredLoggingTimestamp = -1;
private static final Map<Long, TraceBuffer> traceId2trace = new HashMapWithDefault<Long, TraceBuffer>(new TraceBuffer()); private final Map<Long, TraceBuffer> traceId2trace = new HashMapWithDefault<Long, TraceBuffer>(new TraceBuffer());
@Override @Override
protected void execute5(final IFlowRecord element) { protected void execute5(final IFlowRecord element) {
...@@ -51,9 +51,9 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord, TraceE ...@@ -51,9 +51,9 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord, TraceE
} }
private void putIfFinished(final Long traceId) { private void putIfFinished(final Long traceId) {
final TraceBuffer traceBuffer = TraceReconstructionFilter.traceId2trace.get(traceId); final TraceBuffer traceBuffer = this.traceId2trace.get(traceId);
if (traceBuffer.isFinished()) { if (traceBuffer.isFinished()) {
TraceReconstructionFilter.traceId2trace.remove(traceId); this.traceId2trace.remove(traceId);
this.put(traceBuffer); this.put(traceBuffer);
} }
} }
...@@ -62,12 +62,12 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord, TraceE ...@@ -62,12 +62,12 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord, TraceE
Long traceId = null; Long traceId = null;
if (record instanceof TraceMetadata) { if (record instanceof TraceMetadata) {
traceId = ((TraceMetadata) record).getTraceId(); traceId = ((TraceMetadata) record).getTraceId();
final TraceBuffer traceBuffer = TraceReconstructionFilter.traceId2trace.get(traceId); final TraceBuffer traceBuffer = this.traceId2trace.get(traceId);
traceBuffer.setTrace((TraceMetadata) record); traceBuffer.setTrace((TraceMetadata) record);
} else if (record instanceof AbstractTraceEvent) { } else if (record instanceof AbstractTraceEvent) {
traceId = ((AbstractTraceEvent) record).getTraceId(); traceId = ((AbstractTraceEvent) record).getTraceId();
final TraceBuffer traceBuffer = TraceReconstructionFilter.traceId2trace.get(traceId); final TraceBuffer traceBuffer = this.traceId2trace.get(traceId);
traceBuffer.insertEvent((AbstractTraceEvent) record); traceBuffer.insertEvent((AbstractTraceEvent) record);
} }
...@@ -77,7 +77,7 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord, TraceE ...@@ -77,7 +77,7 @@ public class TraceReconstructionFilter extends ConsumerStage<IFlowRecord, TraceE
@Override @Override
public void onIsPipelineHead() { public void onIsPipelineHead() {
Iterator<TraceBuffer> iterator = TraceReconstructionFilter.traceId2trace.values().iterator(); Iterator<TraceBuffer> iterator = this.traceId2trace.values().iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
TraceBuffer traceBuffer = iterator.next(); TraceBuffer traceBuffer = iterator.next();
this.put(traceBuffer); this.put(traceBuffer);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment