diff --git a/src/META-INF/explorviz.live_trace_processing.default.properties b/src/META-INF/explorviz.live_trace_processing.default.properties index 96d199a978e03088eccd1bcc21e732ec34236c59..c92159f13cca0262ac8fc793c8b59e77eacb9169 100644 --- a/src/META-INF/explorviz.live_trace_processing.default.properties +++ b/src/META-INF/explorviz.live_trace_processing.default.properties @@ -9,7 +9,7 @@ explorviz.live_trace_processing.writer_load_balancing_port=9999 explorviz.live_trace_processing.writer_load_balancing_wait_time=20000 explorviz.live_trace_processing.writer_load_balancing_scaling_group=analysis-worker -explorviz.live_trace_processing.sending_buffer_size=2097152 +explorviz.live_trace_processing.sending_buffer_size=262144 ######################## Monitoring ######################## diff --git a/src/explorviz/live_trace_processing/connector/TCPConnector.java b/src/explorviz/live_trace_processing/connector/TCPConnector.java index dc575be5e23702dfb718fb19292ae0ddf2082d23..8b313f7d079819b07a58a5471dc7d91b78e3a600 100644 --- a/src/explorviz/live_trace_processing/connector/TCPConnector.java +++ b/src/explorviz/live_trace_processing/connector/TCPConnector.java @@ -6,6 +6,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.nio.ByteBuffer; import java.nio.channels.SocketChannel; +import java.util.List; import explorviz.live_trace_processing.Constants; import explorviz.live_trace_processing.StringRegistry; @@ -14,22 +15,25 @@ import explorviz.live_trace_processing.filter.AbstractSink; import explorviz.live_trace_processing.filter.SinglePipeConnector; import explorviz.live_trace_processing.record.IRecord; import explorviz.live_trace_processing.record.ISerializableRecord; +import explorviz.live_trace_processing.record.event.AbstractEventRecord; import explorviz.live_trace_processing.record.misc.StringRegistryRecord; import explorviz.live_trace_processing.record.misc.TerminateRecord; import explorviz.live_trace_processing.record.misc.TimedPeriodRecord; +import explorviz.live_trace_processing.record.trace.Trace; import explorviz.live_trace_processing.writer.IRecordSender; import explorviz.live_trace_processing.writer.IStringRecordSender; import explorviz.live_trace_processing.writer.IWriter; public class TCPConnector extends AbstractSink implements IWriter, IStringRecordSender, -IRecordSender { + IRecordSender { private URL providerURL; private SocketChannel socketChannel; private final StringRegistry stringRegistry = new StringRegistry(this); - private final ByteBuffer buffer = ByteBuffer.allocateDirect(Constants.SENDING_BUFFER_SIZE); + private final ByteBuffer sendingBuffer = ByteBuffer.allocate(Constants.SENDING_BUFFER_SIZE); + private final ByteBuffer stringBuffer = ByteBuffer.allocate(Constants.SENDING_BUFFER_SIZE); private volatile boolean shouldDisconnect = false; @@ -38,7 +42,7 @@ IRecordSender { public TCPConnector(final SinglePipeConnector<IRecord> tcpConnectorConnector, final String hostname, final int port, final Configuration configuration) { this.tcpConnectorConnector = tcpConnectorConnector; - buffer.clear(); + sendingBuffer.clear(); try { setProviderURL(new URL("http://" + hostname + ":" + port)); } catch (final MalformedURLException e) { @@ -77,24 +81,31 @@ IRecordSender { @Override public void sendOutStringRecord(final StringRegistryRecord record) { - final ByteBuffer stringBuffer = ByteBuffer.allocate(record.getRecordSizeInBytes()); record.putIntoByteBuffer(stringBuffer, stringRegistry, this); send(stringBuffer); } @Override public void processRecord(final IRecord record) { - if (record instanceof ISerializableRecord) { + if (record instanceof Trace) { + final Trace trace = (Trace) record; + final List<AbstractEventRecord> traceEvents = trace.getTraceEvents(); + for (final AbstractEventRecord event : traceEvents) { + if (sendingBuffer.remaining() < event.getRecordSizeInBytes()) { + send(sendingBuffer); + } + event.putIntoByteBuffer(sendingBuffer, stringRegistry, this); + } + send(sendingBuffer); + } else if (record instanceof ISerializableRecord) { final ISerializableRecord serializableRecord = (ISerializableRecord) record; - if (buffer.remaining() < serializableRecord.getRecordSizeInBytes()) { - send(buffer); - System.out.println("required: " + serializableRecord.getRecordSizeInBytes() - + " and capacity is " + buffer.capacity()); + if (sendingBuffer.remaining() < serializableRecord.getRecordSizeInBytes()) { + send(sendingBuffer); } - serializableRecord.putIntoByteBuffer(buffer, stringRegistry, this); + serializableRecord.putIntoByteBuffer(sendingBuffer, stringRegistry, this); } else if (record instanceof TimedPeriodRecord) { // send(buffer); - // this the end of timedperiodrecords - master has own + // this the end of timedperiodrecords - master has its own } else if (record instanceof TerminateRecord) { terminate(); } diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java index a45d4d87cddab0c197667416168f13db5b6578a6..eb1cc607f78efddab96d5a70a86e425845d7b203 100644 --- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java +++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java @@ -77,7 +77,7 @@ class TraceReconstructionBuffer { return ((openEvents != 0) || events.isEmpty() || ((maxOrderIndex + 1) != events.size())); } - public final Trace toTrace(final boolean valid) { + public final Trace toTrace() { final Stack<AbstractBeforeEventRecord> stack = new Stack<AbstractBeforeEventRecord>(); boolean containsRemoteRecord = false; @@ -89,21 +89,30 @@ class TraceReconstructionBuffer { || (event instanceof BeforeSentRemoteCallRecord)) { containsRemoteRecord = true; } - } else if ((event instanceof AbstractAfterEventRecord) - || (event instanceof AbstractAfterFailedEventRecord)) { + } else if (event instanceof AbstractAfterEventRecord) { + final AbstractAfterEventRecord abstractAfterEventRecord = (AbstractAfterEventRecord) event; if (!stack.isEmpty()) { final AbstractBeforeEventRecord beforeEvent = stack.pop(); if (beforeEvent.getRuntimeStatisticInformation() == null) { - final long time = event.getLoggingTimestamp() - - beforeEvent.getLoggingTimestamp(); + final long time = abstractAfterEventRecord.getMethodDuration(); + beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation( + 1, time, time * time)); + } + } + } else if (event instanceof AbstractAfterFailedEventRecord) { + final AbstractAfterFailedEventRecord abstractAfterFailedEventRecord = (AbstractAfterFailedEventRecord) event; + if (!stack.isEmpty()) { + final AbstractBeforeEventRecord beforeEvent = stack.pop(); + + if (beforeEvent.getRuntimeStatisticInformation() == null) { + final long time = abstractAfterFailedEventRecord.getMethodDuration(); beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation( 1, time, time * time)); } } } } - return new Trace(new ArrayList<AbstractEventRecord>(events), valid, containsRemoteRecord, - events.size()); + return new Trace(new ArrayList<AbstractEventRecord>(events), containsRemoteRecord); } } diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java index 56a44c6e2197f87653c8f9e4311e8a8ede9c51b6..74c545c07e368c99044b8b96fe3ab8966c037cf8 100644 --- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java +++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java @@ -1,7 +1,6 @@ package explorviz.live_trace_processing.filter.reconstruction; -import java.util.ArrayList; -import java.util.List; +import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Queue; @@ -14,7 +13,6 @@ import explorviz.live_trace_processing.record.IRecord; import explorviz.live_trace_processing.record.event.AbstractEventRecord; import explorviz.live_trace_processing.record.misc.TerminateRecord; import explorviz.live_trace_processing.record.misc.TimedPeriodRecord; -import explorviz.live_trace_processing.record.trace.Trace; public final class TraceReconstructionFilter extends AbstractFilter implements Runnable { private final long maxTraceTimeout; @@ -46,16 +44,9 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R traceBuffer.insertEvent(abstractOperationEvent); if (traceBuffer.isFinished()) { - deliver(traceBuffer.toTrace(true)); + deliver(traceBuffer.toTrace()); traceId2trace.remove(traceId); } - } else if (record instanceof Trace) { - final Trace trace = (Trace) record; - if (trace.isValid()) { - deliver(trace); - } else { - getBufferForTraceId(trace.getTraceEvents().get(0).getTraceId()); - } } else if (record instanceof TimedPeriodRecord) { checkForTimeouts(TimeProvider.getCurrentTimestamp()); deliver(record); @@ -78,9 +69,12 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R private void checkForTimeouts(final long timestamp) { final long traceTimeout = timestamp - maxTraceTimeout; - final List<Long> traceIdsToRemove = new ArrayList<Long>(); - for (final Entry<Long, TraceReconstructionBuffer> entry : traceId2trace.entrySet()) { + final Iterator<Entry<Long, TraceReconstructionBuffer>> iterator = traceId2trace.entrySet() + .iterator(); + + while (iterator.hasNext()) { + final Entry<Long, TraceReconstructionBuffer> entry = iterator.next(); final TraceReconstructionBuffer traceBuffer = entry.getValue(); if (traceBuffer.isUpdatedInThisPeriod()) { traceBuffer.setUpdatedInThisPeriod(false); @@ -88,20 +82,16 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R traceBuffer.updateLastBufferInsert(); if ((timestamp - traceBuffer.getLastBufferInsert()) <= traceTimeout) { - deliver(traceBuffer.toTrace(false)); - traceIdsToRemove.add(entry.getKey()); + deliver(traceBuffer.toTrace()); + iterator.remove(); } } } - - for (final long traceIdToRemove : traceIdsToRemove) { - traceId2trace.remove(traceIdToRemove); - } } private void terminate() { for (final TraceReconstructionBuffer entry : traceId2trace.values()) { - deliver(entry.toTrace(false)); + deliver(entry.toTrace()); } traceId2trace.clear(); } diff --git a/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java b/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java index a0a97af99ea4e1c5f6623ff94193dec580e0ac17..8f1481e251541fda70dbbb44c3f00ff9cd805d4f 100644 --- a/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java +++ b/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java @@ -45,15 +45,10 @@ public class TracesSummarizationFilter extends AbstractFilter { if (record instanceof Trace) { final Trace trace = (Trace) record; - if (trace.isValid()) { - if (!trace.containsRemoteRecord()) { - insertIntoBuffer(trace); - } else { - // trace with remote records cant be reduced - makeTraceElementsAccumulator(trace); - deliver(trace); - } + if (!trace.containsRemoteRecord()) { + insertIntoBuffer(trace); } else { + // trace with remote records cant be reduced makeTraceElementsAccumulator(trace); deliver(trace); } @@ -91,7 +86,7 @@ public class TracesSummarizationFilter extends AbstractFilter { final AbstractBeforeOperationEventRecord abstractBeforeOperationEventRecord = (AbstractBeforeOperationEventRecord) abstractBeforeEventRecord; abstractBeforeOperationEventRecord.getRuntimeStatisticInformation() - .makeAccumulator(abstractBeforeOperationEventRecord.getObjectId()); + .makeAccumulator(abstractBeforeOperationEventRecord.getObjectId()); } else { abstractBeforeEventRecord.getRuntimeStatisticInformation().makeAccumulator(0); diff --git a/src/explorviz/live_trace_processing/main/FilterConfiguration.java b/src/explorviz/live_trace_processing/main/FilterConfiguration.java index e480365a55823ba631e4b8accf5928c34f6e774d..cc946c6d27398e8cbf022e1d9ef99589500bbfe7 100644 --- a/src/explorviz/live_trace_processing/main/FilterConfiguration.java +++ b/src/explorviz/live_trace_processing/main/FilterConfiguration.java @@ -19,13 +19,13 @@ public class FilterConfiguration { final SinglePipeConnector<IRecord> traceReductionConnector = new SinglePipeConnector<IRecord>( Constants.TRACE_RECONSTRUCTION_DISRUPTOR_SIZE); - new TracesSummarizationFilter(traceReductionConnector, TimeUnit.SECONDS.toNanos(4), sink) + new TracesSummarizationFilter(traceReductionConnector, TimeUnit.SECONDS.toNanos(3), sink) .start(); final PipesMerger<IRecord> traceReconstructionMerger = new PipesMerger<IRecord>( Constants.TCP_READER_DISRUPTOR_SIZE); - new TraceReconstructionFilter(traceReconstructionMerger, TimeUnit.SECONDS.toNanos(4), + new TraceReconstructionFilter(traceReconstructionMerger, TimeUnit.SECONDS.toNanos(3), traceReductionConnector.registerProducer()).start(); new TCPReader(configuration.getIntProperty(ConfigurationFactory.READER_LISTENING_PORT, diff --git a/src/explorviz/live_trace_processing/reader/TCPReader.java b/src/explorviz/live_trace_processing/reader/TCPReader.java index 733df3b48d38200efd7d1e8e47b68347d4048346..5fe8ef294782288fb9ca28d4929f1bbb1df4cebf 100644 --- a/src/explorviz/live_trace_processing/reader/TCPReader.java +++ b/src/explorviz/live_trace_processing/reader/TCPReader.java @@ -3,9 +3,6 @@ package explorviz.live_trace_processing.reader; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.channels.ServerSocketChannel; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import java.util.Queue; import java.util.concurrent.TimeUnit; @@ -25,9 +22,6 @@ public final class TCPReader implements IPeriodicTimeSignalReceiver { private ServerSocketChannel serversocket; - private final List<TCPReaderOneClient> threads = Collections - .synchronizedList(new ArrayList<TCPReaderOneClient>()); - private final PipesMerger<IRecord> merger; public TCPReader(final int listeningPort, final PipesMerger<IRecord> traceReconstructionMerger) { @@ -55,10 +49,7 @@ public final class TCPReader implements IPeriodicTimeSignalReceiver { try { open(); while (active) { - final TCPReaderOneClient thread = new TCPReaderOneClient(serversocket.accept(), - merger); - thread.start(); - threads.add(thread); + new TCPReaderOneClient(serversocket.accept(), merger).start(); } } catch (final IOException ex) { LOG.info("Error in read() " + ex.getMessage()); diff --git a/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java b/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java index 13efffb30a62679e6b4b603b5e694e5e088f4598..47fa7fbd33a34dee02d0072edcdd730e000d1b9b 100644 --- a/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java +++ b/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java @@ -15,7 +15,6 @@ import explorviz.live_trace_processing.IdNotAvailableException; import explorviz.live_trace_processing.StringRegistry; import explorviz.live_trace_processing.filter.PipesMerger; import explorviz.live_trace_processing.record.IRecord; -import explorviz.live_trace_processing.record.event.AbstractEventRecord; import explorviz.live_trace_processing.record.event.constructor.AfterConstructorEventRecord; import explorviz.live_trace_processing.record.event.constructor.AfterFailedConstructorEventRecord; import explorviz.live_trace_processing.record.event.constructor.BeforeConstructorEventRecord; @@ -34,7 +33,6 @@ import explorviz.live_trace_processing.record.event.statics.BeforeStaticOperatio import explorviz.live_trace_processing.record.misc.StringRegistryRecord; import explorviz.live_trace_processing.record.misc.SystemMonitoringRecord; import explorviz.live_trace_processing.record.trace.HostApplicationMetaDataRecord; -import explorviz.live_trace_processing.record.trace.Trace; class TCPReaderOneClient extends Thread { @@ -47,10 +45,6 @@ class TCPReaderOneClient extends Thread { private final SocketChannel socketChannel; - private final String remoteAddress = ""; - - private Trace currentlyOpenTrace; - private final Queue<IRecord> queue; private final PipesMerger<IRecord> merger; @@ -62,9 +56,9 @@ class TCPReaderOneClient extends Thread { @Override public void run() { - final ByteBuffer buffer = ByteBuffer.allocate(2 * 1024 * 1024); + final ByteBuffer buffer = ByteBuffer.allocate(256 * 1024); + String remoteAddress = ""; try { - String remoteAddress = ""; if (socketChannel.isConnected()) { remoteAddress = ((InetSocketAddress) socketChannel.getRemoteAddress()) .getHostName(); @@ -100,328 +94,428 @@ class TCPReaderOneClient extends Thread { // } private final void messagesfromByteArray(final ByteBuffer buffer) { - boolean shouldProceed = true; - if (currentlyOpenTrace != null) { - shouldProceed = readInTraceRecordChunks(buffer); - } - - if (shouldProceed) { - while (buffer.remaining() > 0) { - final byte clazzId = buffer.get(); - switch (clazzId) { - case HostApplicationMetaDataRecord.CLAZZ_ID: { - if (buffer.remaining() >= HostApplicationMetaDataRecord.BYTE_LENGTH) { - readInHostApplicationMetaData(buffer); - break; - } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + while (buffer.remaining() > 0) { + final byte clazzId = buffer.get(); + switch (clazzId) { + case HostApplicationMetaDataRecord.CLAZZ_ID: { + if (buffer.remaining() >= HostApplicationMetaDataRecord.BYTE_LENGTH) { + readInHostApplicationMetaData(buffer); + break; } - case BeforeOperationEventRecord.CLAZZ_ID: { - if (buffer.remaining() >= BeforeOperationEventRecord.COMPRESSED_BYTE_LENGTH) { - readInBeforeOperationEvent(buffer); - break; - } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case BeforeOperationEventRecord.CLAZZ_ID: { + if (buffer.remaining() >= BeforeOperationEventRecord.COMPRESSED_BYTE_LENGTH) { + readInBeforeOperationEvent(buffer); + break; } - case AfterFailedOperationEventRecord.CLAZZ_ID: { - if (buffer.remaining() >= AfterFailedOperationEventRecord.COMPRESSED_BYTE_LENGTH) { - readInAfterFailedOperationEvent(buffer); - break; - } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterFailedOperationEventRecord.CLAZZ_ID: { + if (buffer.remaining() >= AfterFailedOperationEventRecord.COMPRESSED_BYTE_LENGTH) { + readInAfterFailedOperationEvent(buffer); + break; + } + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterOperationEventRecord.CLAZZ_ID: { + if (buffer.remaining() >= AfterOperationEventRecord.COMPRESSED_BYTE_LENGTH) { + readInAfterOperationEvent(buffer); + break; } - case AfterOperationEventRecord.CLAZZ_ID: { - if (buffer.remaining() >= AfterOperationEventRecord.COMPRESSED_BYTE_LENGTH) { - readInAfterOperationEvent(buffer); - break; - } + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case StringRegistryRecord.CLAZZ_ID: { + int mapId = 0; + int stringLength = 0; + if (buffer.remaining() >= 8) { + mapId = buffer.getInt(); + stringLength = buffer.getInt(); + } else { buffer.position(buffer.position() - 1); buffer.compact(); return; } - case StringRegistryRecord.CLAZZ_ID: { - int mapId = 0; - int stringLength = 0; - if (buffer.remaining() >= 8) { - mapId = buffer.getInt(); - stringLength = buffer.getInt(); - } else { - buffer.position(buffer.position() - 1); - buffer.compact(); - return; - } - if (buffer.remaining() >= stringLength) { - final byte[] stringByteArray = new byte[stringLength]; + if (buffer.remaining() >= stringLength) { + final byte[] stringByteArray = new byte[stringLength]; - buffer.get(stringByteArray); + buffer.get(stringByteArray); - stringRegistry.putStringRecord(mapId, new String(stringByteArray)); + stringRegistry.putStringRecord(mapId, new String(stringByteArray)); - checkWaitingMessages(); - } else { - buffer.position(buffer.position() - 9); - buffer.compact(); - return; - } - break; - } - case SystemMonitoringRecord.CLAZZ_ID: { - if (buffer.remaining() >= SystemMonitoringRecord.COMPRESSED_BYTE_LENGTH) { - readInSystemMonitoringRecord(buffer); - break; - } - buffer.position(buffer.position() - 1); + checkWaitingMessages(); + } else { + buffer.position(buffer.position() - 9); buffer.compact(); return; } - case Trace.CLAZZ_ID: { - if (buffer.remaining() >= Trace.BYTE_LENGTH) { - final byte validByte = buffer.get(); - boolean valid = true; - if (validByte == (byte) 0) { - valid = false; - } - final byte containsRemoteRecordByte = buffer.get(); - boolean containsRemoteRecord = true; - if (containsRemoteRecordByte == (byte) 0) { - containsRemoteRecord = false; - } - final int eventsLength = buffer.getInt(); - - final List<AbstractEventRecord> events = new ArrayList<AbstractEventRecord>( - eventsLength); - currentlyOpenTrace = new Trace(events, valid, containsRemoteRecord, - eventsLength); - - if (!readInTraceRecordChunks(buffer)) { - return; - } - break; - } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + break; + } + case SystemMonitoringRecord.CLAZZ_ID: { + if (buffer.remaining() >= SystemMonitoringRecord.COMPRESSED_BYTE_LENGTH) { + readInSystemMonitoringRecord(buffer); + break; } - case BeforeConstructorEventRecord.CLAZZ_ID: { - if (buffer.remaining() >= BeforeConstructorEventRecord.COMPRESSED_BYTE_LENGTH) { - readInBeforeConstructorEvent(buffer); - break; - } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case BeforeConstructorEventRecord.CLAZZ_ID: { + if (buffer.remaining() >= BeforeConstructorEventRecord.COMPRESSED_BYTE_LENGTH) { + readInBeforeConstructorEvent(buffer); + break; } - case AfterFailedConstructorEventRecord.CLAZZ_ID: { - if (buffer.remaining() >= AfterFailedConstructorEventRecord.COMPRESSED_BYTE_LENGTH) { - readInAfterFailedConstructorEvent(buffer); - break; - } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterFailedConstructorEventRecord.CLAZZ_ID: { + if (buffer.remaining() >= AfterFailedConstructorEventRecord.COMPRESSED_BYTE_LENGTH) { + readInAfterFailedConstructorEvent(buffer); + break; } - case AfterConstructorEventRecord.CLAZZ_ID: { - if (buffer.remaining() >= AfterConstructorEventRecord.COMPRESSED_BYTE_LENGTH) { - readInAfterConstructorEvent(buffer); - break; - } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterConstructorEventRecord.CLAZZ_ID: { + if (buffer.remaining() >= AfterConstructorEventRecord.COMPRESSED_BYTE_LENGTH) { + readInAfterConstructorEvent(buffer); + break; + } + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case BeforeReceivedRemoteCallRecord.CLAZZ_ID: { + if (buffer.remaining() >= BeforeReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH) { + readInBeforeReceivedRemoteCallEvent(buffer); + break; + } + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case BeforeStaticOperationEventRecord.CLAZZ_ID: { + if (buffer.remaining() >= BeforeStaticOperationEventRecord.COMPRESSED_BYTE_LENGTH) { + readInBeforeStaticOperationEvent(buffer); + break; + } + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterFailedStaticOperationEventRecord.CLAZZ_ID: { + if (buffer.remaining() >= AfterFailedStaticOperationEventRecord.COMPRESSED_BYTE_LENGTH) { + readInAfterFailedStaticOperationEvent(buffer); + break; + } + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterStaticOperationEventRecord.CLAZZ_ID: { + if (buffer.remaining() >= AfterStaticOperationEventRecord.COMPRESSED_BYTE_LENGTH) { + readInAfterStaticOperationEvent(buffer); + break; + } + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case BeforeSentRemoteCallRecord.CLAZZ_ID: { + if (buffer.remaining() >= BeforeSentRemoteCallRecord.COMPRESSED_BYTE_LENGTH) { + readInBeforeSentRemoteCallEvent(buffer); + break; + } + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterSentRemoteCallRecord.CLAZZ_ID: { + if (buffer.remaining() >= AfterSentRemoteCallRecord.COMPRESSED_BYTE_LENGTH) { + readInAfterSentRemoteCallEvent(buffer); + break; + } + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case BeforeUnknownReceivedRemoteCallRecord.CLAZZ_ID: { + if (buffer.remaining() >= BeforeUnknownReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH) { + readInBeforeUnknownReceivedRemoteCallEvent(buffer); + break; + } + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterUnknownReceivedRemoteCallRecord.CLAZZ_ID: { + if (buffer.remaining() >= AfterUnknownReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH) { + readInAfterUnknownReceivedRemoteCallEvent(buffer); + break; + } + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterReceivedRemoteCallRecord.CLAZZ_ID: { + if (buffer.remaining() >= AfterReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH) { + readInAfterReceivedRemoteCallEvent(buffer); + break; } - case BeforeReceivedRemoteCallRecord.CLAZZ_ID: { - if (buffer.remaining() >= BeforeReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH) { - readInBeforeReceivedRemoteCallEvent(buffer); - break; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case BeforeOperationEventRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= BeforeOperationEventRecord.BYTE_LENGTH) { + try { + putInQueue(new BeforeOperationEventRecord(buffer, stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + break; } - case BeforeStaticOperationEventRecord.CLAZZ_ID: { - if (buffer.remaining() >= BeforeStaticOperationEventRecord.COMPRESSED_BYTE_LENGTH) { - readInBeforeStaticOperationEvent(buffer); - break; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterFailedOperationEventRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= AfterFailedOperationEventRecord.BYTE_LENGTH) { + try { + putInQueue(new AfterFailedOperationEventRecord(buffer, stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + break; } - case AfterFailedStaticOperationEventRecord.CLAZZ_ID: { - if (buffer.remaining() >= AfterFailedStaticOperationEventRecord.COMPRESSED_BYTE_LENGTH) { - readInAfterFailedStaticOperationEvent(buffer); - break; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterOperationEventRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= AfterOperationEventRecord.BYTE_LENGTH) { + try { + putInQueue(new AfterOperationEventRecord(buffer, stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + break; } - case AfterStaticOperationEventRecord.CLAZZ_ID: { - if (buffer.remaining() >= AfterStaticOperationEventRecord.COMPRESSED_BYTE_LENGTH) { - readInAfterStaticOperationEvent(buffer); - break; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case SystemMonitoringRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= SystemMonitoringRecord.BYTE_LENGTH) { + try { + putInQueue(SystemMonitoringRecord.createFromByteBuffer(buffer, + stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + break; } - case BeforeSentRemoteCallRecord.CLAZZ_ID: { - if (buffer.remaining() >= BeforeSentRemoteCallRecord.COMPRESSED_BYTE_LENGTH) { - readInBeforeSentRemoteCallEvent(buffer); - break; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case BeforeConstructorEventRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= BeforeConstructorEventRecord.BYTE_LENGTH) { + try { + putInQueue(new BeforeConstructorEventRecord(buffer, stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + break; } - case AfterSentRemoteCallRecord.CLAZZ_ID: { - if (buffer.remaining() >= AfterSentRemoteCallRecord.COMPRESSED_BYTE_LENGTH) { - readInAfterSentRemoteCallEvent(buffer); - break; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterFailedConstructorEventRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= AfterFailedConstructorEventRecord.BYTE_LENGTH) { + try { + putInQueue(new AfterFailedConstructorEventRecord(buffer, stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + break; } - case BeforeUnknownReceivedRemoteCallRecord.CLAZZ_ID: { - if (buffer.remaining() >= BeforeUnknownReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH) { - readInBeforeUnknownReceivedRemoteCallEvent(buffer); - break; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterConstructorEventRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= AfterConstructorEventRecord.BYTE_LENGTH) { + try { + putInQueue(new AfterConstructorEventRecord(buffer, stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + break; } - case AfterUnknownReceivedRemoteCallRecord.CLAZZ_ID: { - if (buffer.remaining() >= AfterUnknownReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH) { - readInAfterUnknownReceivedRemoteCallEvent(buffer); - break; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case BeforeReceivedRemoteCallRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= BeforeReceivedRemoteCallRecord.BYTE_LENGTH) { + try { + putInQueue(new BeforeReceivedRemoteCallRecord(buffer, stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + break; } - case AfterReceivedRemoteCallRecord.CLAZZ_ID: { - if (buffer.remaining() >= AfterReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH) { - readInAfterReceivedRemoteCallEvent(buffer); - break; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case BeforeStaticOperationEventRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= BeforeStaticOperationEventRecord.BYTE_LENGTH) { + try { + putInQueue(new BeforeStaticOperationEventRecord(buffer, stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + break; } - case SystemMonitoringRecord.CLAZZ_ID_FROM_WORKER: { - if (buffer.remaining() >= SystemMonitoringRecord.BYTE_LENGTH) { - try { - putInQueue(SystemMonitoringRecord.createFromByteBuffer(buffer, - stringRegistry)); - } catch (final IdNotAvailableException e) { - // should not happen - e.printStackTrace(); - } - break; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterFailedStaticOperationEventRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= AfterFailedStaticOperationEventRecord.BYTE_LENGTH) { + try { + putInQueue(new AfterFailedStaticOperationEventRecord(buffer, + stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); } - buffer.position(buffer.position() - 1); - buffer.compact(); - return; + break; } - default: { - System.out.println("unknown class id " + clazzId + " at offset " - + (buffer.position() - 1)); - buffer.clear(); - return; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterStaticOperationEventRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= AfterStaticOperationEventRecord.BYTE_LENGTH) { + try { + putInQueue(new AfterStaticOperationEventRecord(buffer, stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); + } + break; } + buffer.position(buffer.position() - 1); + buffer.compact(); + return; } - } - - buffer.clear(); - } - } - - private boolean readInTraceRecordChunks(final ByteBuffer buffer) { - if (buffer.remaining() >= 1) { - final byte clazzId = buffer.get(); - - if (clazzId == StringRegistryRecord.CLAZZ_ID) { - int mapId = 0; - int stringLength = 0; - if (buffer.remaining() >= 8) { - mapId = buffer.getInt(); - stringLength = buffer.getInt(); - } else { + case BeforeSentRemoteCallRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= BeforeSentRemoteCallRecord.BYTE_LENGTH) { + try { + putInQueue(new BeforeSentRemoteCallRecord(buffer, stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); + } + break; + } buffer.position(buffer.position() - 1); buffer.compact(); - return false; + return; } - - if (buffer.remaining() >= stringLength) { - final byte[] stringByteArray = new byte[stringLength]; - - buffer.get(stringByteArray); - - stringRegistry.putStringRecord(mapId, new String(stringByteArray)); - - checkWaitingMessages(); - - boolean cleared = false; - if (buffer.remaining() == 0) { - buffer.clear(); - cleared = true; + case AfterSentRemoteCallRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= AfterSentRemoteCallRecord.BYTE_LENGTH) { + try { + putInQueue(new AfterSentRemoteCallRecord(buffer, stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); + } + break; } - return !cleared; - } else { - buffer.position(buffer.position() - 9); + buffer.position(buffer.position() - 1); buffer.compact(); + return; } - } else if (buffer.remaining() >= (4 + 4)) { - int recordAmountNowComming = buffer.getInt(); - final int bytesComming = buffer.getInt(); - if (buffer.remaining() >= bytesComming) { - while (recordAmountNowComming > 0) { + case BeforeUnknownReceivedRemoteCallRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= BeforeUnknownReceivedRemoteCallRecord.BYTE_LENGTH) { try { - final AbstractEventRecord fromByteBuffer = AbstractEventRecord - .createFromByteBuffer(buffer, stringRegistry); - currentlyOpenTrace.getTraceEvents().add(fromByteBuffer); + putInQueue(new BeforeUnknownReceivedRemoteCallRecord(buffer, + stringRegistry)); } catch (final IdNotAvailableException e) { // should not happen e.printStackTrace(); } - recordAmountNowComming--; + break; } - - boolean cleared = false; - if (buffer.remaining() == 0) { - buffer.clear(); - cleared = true; + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterUnknownReceivedRemoteCallRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= AfterUnknownReceivedRemoteCallRecord.BYTE_LENGTH) { + try { + putInQueue(new AfterUnknownReceivedRemoteCallRecord(buffer, + stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); + } + break; } - - if (currentlyOpenTrace.getTraceEvents().size() == currentlyOpenTrace - .getEventsLength()) { - final List<AbstractEventRecord> traceEvents = currentlyOpenTrace - .getTraceEvents(); - for (final AbstractEventRecord event : traceEvents) { - putInQueue(event); + buffer.position(buffer.position() - 1); + buffer.compact(); + return; + } + case AfterReceivedRemoteCallRecord.CLAZZ_ID_FROM_WORKER: { + if (buffer.remaining() >= AfterReceivedRemoteCallRecord.BYTE_LENGTH) { + try { + putInQueue(new AfterReceivedRemoteCallRecord(buffer, stringRegistry)); + } catch (final IdNotAvailableException e) { + // should not happen + e.printStackTrace(); } - currentlyOpenTrace = null; - return !cleared; + break; } - } else { - buffer.position(buffer.position() - 4 - 4 - 1); + buffer.position(buffer.position() - 1); buffer.compact(); + return; + } + default: { + System.out.println("unknown class id " + clazzId + " at offset " + + (buffer.position() - 1)); + buffer.clear(); + return; } } - } else { - buffer.compact(); } - return false; + + buffer.clear(); } private final void readInHostApplicationMetaData(final ByteBuffer buffer) { @@ -446,7 +540,6 @@ class TCPReaderOneClient extends Thread { } private final void readInBeforeOperationEvent(final ByteBuffer buffer) { - final long timestamp = buffer.getLong(); final long traceId = buffer.getLong(); final int orderIndex = buffer.getInt(); final int objectId = buffer.getInt(); @@ -459,8 +552,8 @@ class TCPReaderOneClient extends Thread { final String clazz = stringRegistry.getStringFromId(clazzId); final String implementedInterface = stringRegistry.getStringFromId(interfaceId); - putInQueue(new BeforeOperationEventRecord(timestamp, traceId, orderIndex, objectId, - operation, clazz, implementedInterface, hostApplicationMetadata)); + putInQueue(new BeforeOperationEventRecord(traceId, orderIndex, objectId, operation, + clazz, implementedInterface, hostApplicationMetadata)); } catch (final IdNotAvailableException e) { putInWaitingMessages(buffer, BeforeOperationEventRecord.COMPRESSED_BYTE_LENGTH + 1); } @@ -501,7 +594,6 @@ class TCPReaderOneClient extends Thread { } private final void readInBeforeConstructorEvent(final ByteBuffer buffer) { - final long timestamp = buffer.getLong(); final long traceId = buffer.getLong(); final int orderIndex = buffer.getInt(); final int objectId = buffer.getInt(); @@ -514,8 +606,8 @@ class TCPReaderOneClient extends Thread { final String clazz = stringRegistry.getStringFromId(clazzId); final String implementedInterface = stringRegistry.getStringFromId(interfaceId); - putInQueue(new BeforeConstructorEventRecord(timestamp, traceId, orderIndex, objectId, - operation, clazz, implementedInterface, hostApplicationMetadata)); + putInQueue(new BeforeConstructorEventRecord(traceId, orderIndex, objectId, operation, + clazz, implementedInterface, hostApplicationMetadata)); } catch (final IdNotAvailableException e) { putInWaitingMessages(buffer, BeforeConstructorEventRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID); @@ -550,16 +642,14 @@ class TCPReaderOneClient extends Thread { final long callerTraceId = buffer.getLong(); final int callerOrderIndex = buffer.getInt(); - final long timestamp = buffer.getLong(); final long traceId = buffer.getLong(); final int orderIndex = buffer.getInt(); - putInQueue(new BeforeReceivedRemoteCallRecord(timestamp, callerTraceId, callerOrderIndex, - traceId, orderIndex, hostApplicationMetadata)); + putInQueue(new BeforeReceivedRemoteCallRecord(callerTraceId, callerOrderIndex, traceId, + orderIndex, hostApplicationMetadata)); } private final void readInBeforeStaticOperationEvent(final ByteBuffer buffer) { - final long timestamp = buffer.getLong(); final long traceId = buffer.getLong(); final int orderIndex = buffer.getInt(); final int operationId = buffer.getInt(); @@ -571,8 +661,8 @@ class TCPReaderOneClient extends Thread { final String clazz = stringRegistry.getStringFromId(clazzId); final String implementedInterface = stringRegistry.getStringFromId(interfaceId); - putInQueue(new BeforeStaticOperationEventRecord(timestamp, traceId, orderIndex, - operation, clazz, implementedInterface, hostApplicationMetadata)); + putInQueue(new BeforeStaticOperationEventRecord(traceId, orderIndex, operation, clazz, + implementedInterface, hostApplicationMetadata)); } catch (final IdNotAvailableException e) { putInWaitingMessages(buffer, BeforeStaticOperationEventRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID); @@ -606,15 +696,13 @@ class TCPReaderOneClient extends Thread { } private final void readInBeforeSentRemoteCallEvent(final ByteBuffer buffer) { - final long timestamp = buffer.getLong(); final long traceId = buffer.getLong(); final int orderIndex = buffer.getInt(); final int technologyId = buffer.getInt(); try { - putInQueue(new BeforeSentRemoteCallRecord(timestamp, - stringRegistry.getStringFromId(technologyId), traceId, orderIndex, - hostApplicationMetadata)); + putInQueue(new BeforeSentRemoteCallRecord(stringRegistry.getStringFromId(technologyId), + traceId, orderIndex, hostApplicationMetadata)); } catch (final IdNotAvailableException e) { putInWaitingMessages(buffer, BeforeSentRemoteCallRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID); @@ -632,7 +720,6 @@ class TCPReaderOneClient extends Thread { } private final void readInBeforeUnknownReceivedRemoteCallEvent(final ByteBuffer buffer) { - final long timestamp = buffer.getLong(); final long traceId = buffer.getLong(); final int orderIndex = buffer.getInt(); @@ -640,7 +727,7 @@ class TCPReaderOneClient extends Thread { final int destionationId = buffer.getInt(); try { - putInQueue(new BeforeUnknownReceivedRemoteCallRecord(timestamp, + putInQueue(new BeforeUnknownReceivedRemoteCallRecord( stringRegistry.getStringFromId(senderId), stringRegistry.getStringFromId(destionationId), traceId, orderIndex, hostApplicationMetadata)); diff --git a/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java b/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java index 33e9ae6cf7e98e9ce83e11653fe9abb57eb5594d..8af6f34a0ac38434dff6f30c50dcd58604abd8c2 100644 --- a/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java +++ b/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java @@ -12,7 +12,7 @@ public class TraceReconstructionBufferTest { @Test public void testInsertEvent() throws Exception { final TraceReconstructionBuffer traceReconstructionBuffer = new TraceReconstructionBuffer(); - traceReconstructionBuffer.insertEvent(new BeforeOperationEventRecord(1000, 1, 0, 0, "test", + traceReconstructionBuffer.insertEvent(new BeforeOperationEventRecord(1, 0, 0, "test", "TestClazz", "", new HostApplicationMetaDataRecord("testSystem", "testIp", "testHost", "testApp", "Java"))); assertTrue(true); diff --git a/test/explorviz/live_trace_processing/filter/reduction/PatternSummarizationTest.java b/test/explorviz/live_trace_processing/filter/reduction/PatternSummarizationTest.java deleted file mode 100644 index ff50167402eaa3194b1386b72b18bbe633d59367..0000000000000000000000000000000000000000 --- a/test/explorviz/live_trace_processing/filter/reduction/PatternSummarizationTest.java +++ /dev/null @@ -1,270 +0,0 @@ -package explorviz.live_trace_processing.filter.reduction; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.Before; -import org.junit.Test; - -import explorviz.live_trace_processing.record.event.AbstractEventRecord; -import explorviz.live_trace_processing.record.event.normal.AfterOperationEventRecord; -import explorviz.live_trace_processing.record.event.normal.BeforeOperationEventRecord; -import explorviz.live_trace_processing.record.trace.HostApplicationMetaDataRecord; -import explorviz.live_trace_processing.record.trace.RuntimeStatisticInformation; - -public class PatternSummarizationTest { - - @Before - public void init() { - final List<AbstractEventRecord> traceEvents = new ArrayList<AbstractEventRecord>(); - - final BeforeOperationEventRecord beforeEvent = new BeforeOperationEventRecord(1L, 1L, 0, 0, - "test.package.Clazz.A()", "ClazzA", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(31L)); - traceEvents.add(beforeEvent); - - final BeforeOperationEventRecord beforeEvent1 = new BeforeOperationEventRecord(2L, 1L, 1, - 0, "test.package.Clazz.B()", "ClazzB", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent1.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2L)); - traceEvents.add(beforeEvent1); - - final AfterOperationEventRecord afterEvent1 = new AfterOperationEventRecord(4L, 1L, 2, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent1); - - final BeforeOperationEventRecord beforeEvent2 = new BeforeOperationEventRecord(5L, 1L, 3, - 0, "test.package.Clazz.C()", "ClazzC", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent2.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L)); - traceEvents.add(beforeEvent2); - - final AfterOperationEventRecord afterEvent2 = new AfterOperationEventRecord(6L, 1L, 4, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent2); - - final BeforeOperationEventRecord beforeEvent3 = new BeforeOperationEventRecord(7L, 1L, 5, - 0, "test.package.Clazz.D()", "ClazzD", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent3.setRuntimeStatisticInformation(new RuntimeStatisticInformation(9L)); - traceEvents.add(beforeEvent3); - - final BeforeOperationEventRecord beforeEvent4 = new BeforeOperationEventRecord(8L, 1L, 6, - 0, "test.package.Clazz.E()", "ClazzE", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent4.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L)); - traceEvents.add(beforeEvent4); - - final AfterOperationEventRecord afterEvent4 = new AfterOperationEventRecord(9L, 1L, 7, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent4); - - final BeforeOperationEventRecord beforeEvent5 = new BeforeOperationEventRecord(10L, 1L, 8, - 0, "test.package.Clazz.F()", "ClazzF", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent5.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L)); - traceEvents.add(beforeEvent5); - - final AfterOperationEventRecord afterEvent5 = new AfterOperationEventRecord(11L, 1L, 9, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent5); - - final BeforeOperationEventRecord beforeEvent6 = new BeforeOperationEventRecord(12L, 1L, 10, - 0, "test.package.Clazz.E()", "ClazzE", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent6.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L)); - traceEvents.add(beforeEvent6); - - final AfterOperationEventRecord afterEvent6 = new AfterOperationEventRecord(13L, 1L, 11, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent6); - - final BeforeOperationEventRecord beforeEvent7 = new BeforeOperationEventRecord(14L, 1L, 12, - 0, "test.package.Clazz.F()", "ClazzF", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent7.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L)); - traceEvents.add(beforeEvent7); - - final AfterOperationEventRecord afterEvent7 = new AfterOperationEventRecord(15L, 1L, 13, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent7); - - final AfterOperationEventRecord afterEvent3 = new AfterOperationEventRecord(16L, 1L, 14, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent3); - - final BeforeOperationEventRecord beforeEvent8 = new BeforeOperationEventRecord(17L, 1L, 15, - 0, "test.package.Clazz.B()", "ClazzB", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent8.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2L)); - traceEvents.add(beforeEvent8); - - final AfterOperationEventRecord afterEvent8 = new AfterOperationEventRecord(19L, 1L, 16, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent8); - - final BeforeOperationEventRecord beforeEvent9 = new BeforeOperationEventRecord(20L, 1L, 17, - 0, "test.package.Clazz.C()", "ClazzC", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent9.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L)); - traceEvents.add(beforeEvent9); - - final AfterOperationEventRecord afterEvent9 = new AfterOperationEventRecord(21L, 1L, 18, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent9); - - final BeforeOperationEventRecord beforeEvent10 = new BeforeOperationEventRecord(22L, 1L, - 19, 0, "test.package.Clazz.D()", "ClazzD", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent10.setRuntimeStatisticInformation(new RuntimeStatisticInformation(9L)); - traceEvents.add(beforeEvent10); - - final BeforeOperationEventRecord beforeEvent11 = new BeforeOperationEventRecord(23L, 1L, - 20, 0, "test.package.Clazz.E()", "ClazzE", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent11.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L)); - traceEvents.add(beforeEvent11); - - final AfterOperationEventRecord afterEvent11 = new AfterOperationEventRecord(24L, 1L, 21, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent11); - - final BeforeOperationEventRecord beforeEvent12 = new BeforeOperationEventRecord(25L, 1L, - 22, 0, "test.package.Clazz.F()", "ClazzF", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent12.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L)); - traceEvents.add(beforeEvent12); - - final AfterOperationEventRecord afterEvent12 = new AfterOperationEventRecord(26L, 1L, 23, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent12); - - final BeforeOperationEventRecord beforeEvent13 = new BeforeOperationEventRecord(27L, 1L, - 24, 0, "test.package.Clazz.E()", "ClazzE", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent13.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L)); - traceEvents.add(beforeEvent13); - - final AfterOperationEventRecord afterEvent13 = new AfterOperationEventRecord(28L, 1L, 25, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent13); - - final BeforeOperationEventRecord beforeEvent14 = new BeforeOperationEventRecord(29L, 1L, - 26, 0, "test.package.Clazz.F()", "ClazzF", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent14.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1L)); - traceEvents.add(beforeEvent14); - - final AfterOperationEventRecord afterEvent14 = new AfterOperationEventRecord(30L, 1L, 27, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent14); - - final AfterOperationEventRecord afterEvent10 = new AfterOperationEventRecord(31L, 1L, 28, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent10); - - final AfterOperationEventRecord afterEvent = new AfterOperationEventRecord(32L, 1L, 29, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent); - - // trace = new Trace(traceEvents, true); - } - - @Test - public void testReduction() { - final List<AbstractEventRecord> traceEvents = new ArrayList<AbstractEventRecord>(); - - final BeforeOperationEventRecord beforeEvent = new BeforeOperationEventRecord(1L, 1L, 0, 0, - "test.package.Clazz.A()", "ClazzA", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(31L)); - traceEvents.add(beforeEvent); - - final BeforeOperationEventRecord beforeEvent1 = new BeforeOperationEventRecord(2L, 1L, 1, - 0, "test.package.Clazz.B()", "ClazzB", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent1.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2, 4, 8)); - traceEvents.add(beforeEvent1); - - final AfterOperationEventRecord afterEvent1 = new AfterOperationEventRecord(4L, 1L, 2, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent1); - - final BeforeOperationEventRecord beforeEvent2 = new BeforeOperationEventRecord(5L, 1L, 3, - 0, "test.package.Clazz.C()", "ClazzC", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent2.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2, 2, 2)); - traceEvents.add(beforeEvent2); - - final AfterOperationEventRecord afterEvent2 = new AfterOperationEventRecord(6L, 1L, 4, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent2); - - final BeforeOperationEventRecord beforeEvent3 = new BeforeOperationEventRecord(7L, 1L, 5, - 0, "test.package.Clazz.D()", "ClazzD", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent3.setRuntimeStatisticInformation(new RuntimeStatisticInformation(2, 18, 162)); - traceEvents.add(beforeEvent3); - - final BeforeOperationEventRecord beforeEvent4 = new BeforeOperationEventRecord(8L, 1L, 6, - 0, "test.package.Clazz.E()", "ClazzE", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent4.setRuntimeStatisticInformation(new RuntimeStatisticInformation(4, 4, 4)); - traceEvents.add(beforeEvent4); - - final AfterOperationEventRecord afterEvent4 = new AfterOperationEventRecord(9L, 1L, 7, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent4); - - final BeforeOperationEventRecord beforeEvent5 = new BeforeOperationEventRecord(10L, 1L, 8, - 0, "test.package.Clazz.F()", "ClazzF", "", new HostApplicationMetaDataRecord( - "testSystem", "testIp", "host", "application", "Java")); - beforeEvent5.setRuntimeStatisticInformation(new RuntimeStatisticInformation(4, 4, 4)); - traceEvents.add(beforeEvent5); - - final AfterOperationEventRecord afterEvent5 = new AfterOperationEventRecord(11L, 1L, 9, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent5); - - final AfterOperationEventRecord afterEvent3 = new AfterOperationEventRecord(16L, 1L, 14, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent3); - - final AfterOperationEventRecord afterEvent = new AfterOperationEventRecord(32L, 1L, 29, - new HostApplicationMetaDataRecord("testSystem", "testIp", "host", "application", - "Java")); - traceEvents.add(afterEvent); - - // final Trace compareTrace = new Trace(traceEvents, true); - // final PatternSummarizationFilter patternSummarizationFilter = new - // PatternSummarizationFilter( - // null, PatternSummarizationFilter.DEFAULT_DISTANCE, - // PatternSummarizationFilter.DEFAULT_NESTINGLEVEL); - // final Trace reducedTrace = - // patternSummarizationFilter.testReduction(trace); - // Assert.assertTrue(compareTrace.compareTo(reducedTrace) == 0); - - } - -}