Repository: asterixdb Updated Branches: refs/heads/master 49791dbff -> 8c43f62bd
Introduce ITracer Change-Id: I1d41d9cf74f481ba26882cf2ca318d0d2b9607f7 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2050 Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Contrib: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: Murtadha Hubail <mhub...@apache.org> Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/8c43f62b Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/8c43f62b Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/8c43f62b Branch: refs/heads/master Commit: 8c43f62bd7557fa07734cdbe5989781971d9ddf2 Parents: 49791db Author: Till Westmann <ti...@apache.org> Authored: Fri Oct 6 13:53:57 2017 -0700 Committer: Till Westmann <ti...@apache.org> Committed: Fri Oct 6 16:19:04 2017 -0700 ---------------------------------------------------------------------- .../api/application/INCServiceContext.java | 4 +- .../control/nc/NodeControllerService.java | 32 +++++- .../nc/application/NCServiceContext.java | 5 +- .../common/comm/io/AbstractFrameAppender.java | 13 +-- .../dataflow/common/comm/util/FrameUtils.java | 8 +- .../storage/am/lsm/btree/impls/LSMBTree.java | 4 +- .../am/lsm/btree/utils/LSMBTreeUtil.java | 4 +- .../am/lsm/common/impls/AbstractLSMIndex.java | 6 +- .../storage/am/lsm/common/impls/LSMHarness.java | 13 ++- .../am/lsm/common/impls/TracedIOOperation.java | 12 +-- .../invertedindex/impls/LSMInvertedIndex.java | 4 +- .../am/lsm/rtree/impls/AbstractLSMRTree.java | 4 +- .../test/support/TestNCServiceContext.java | 6 +- .../am/lsm/btree/LSMBTreeExamplesTest.java | 4 +- ...MBTreeModificationOperationCallbackTest.java | 4 +- .../LSMBTreeSearchOperationCallbackTest.java | 4 +- .../am/lsm/btree/LSMBTreeUpdateInPlaceTest.java | 4 +- .../storage/am/lsm/btree/impl/TestLsmBtree.java | 4 +- .../am/lsm/btree/impl/TestLsmBtreeUtil.java | 4 +- .../multithread/LSMBTreeMultiThreadTest.java | 4 +- .../am/lsm/btree/perf/LSMTreeRunner.java | 4 +- .../am/lsm/btree/util/LSMBTreeTestContext.java | 5 +- .../org/apache/hyracks/util/trace/Event.java | 15 ++- .../org/apache/hyracks/util/trace/ITracer.java | 100 +++++++++++++++++++ .../org/apache/hyracks/util/trace/Tracer.java | 53 +++------- 25 files changed, 205 insertions(+), 115 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/INCServiceContext.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/INCServiceContext.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/INCServiceContext.java index 9a484ca..a881c4f 100644 --- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/INCServiceContext.java +++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/INCServiceContext.java @@ -22,7 +22,7 @@ import org.apache.hyracks.api.comm.IChannelInterfaceFactory; import org.apache.hyracks.api.io.IIOManager; import org.apache.hyracks.api.lifecycle.ILifeCycleComponentManager; import org.apache.hyracks.api.resources.memory.IMemoryManager; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; /** * Service Context at the Node Controller for an application. @@ -59,7 +59,7 @@ public interface INCServiceContext extends IServiceContext { * * @return a Tracer */ - Tracer getTracer(); + ITracer getTracer(); /** * Set the handler for state dumps. http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java index f4ec6e4..350343b 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java @@ -69,7 +69,6 @@ import org.apache.hyracks.control.common.ipc.CCNCFunctions; import org.apache.hyracks.control.common.ipc.ClusterControllerRemoteProxy; import org.apache.hyracks.control.common.ipc.IControllerRemoteProxyIPCEventListener; import org.apache.hyracks.control.common.job.profiling.om.JobProfile; -import org.apache.hyracks.util.PidHelper; import org.apache.hyracks.control.common.work.FutureValue; import org.apache.hyracks.control.common.work.WorkQueue; import org.apache.hyracks.control.nc.application.NCServiceContext; @@ -90,6 +89,9 @@ import org.apache.hyracks.ipc.impl.IPCSystem; import org.apache.hyracks.net.protocols.muxdemux.FullFrameChannelInterfaceFactory; import org.apache.hyracks.net.protocols.muxdemux.MuxDemuxPerformanceCounters; import org.apache.hyracks.util.ExitUtil; +import org.apache.hyracks.util.PidHelper; +import org.apache.hyracks.util.trace.ITracer; +import org.apache.hyracks.util.trace.Tracer; import org.kohsuke.args4j.CmdLineException; public class NodeControllerService implements IControllerService { @@ -194,8 +196,8 @@ public class NodeControllerService implements IControllerService { // Set shutdown hook before so it doesn't have the same uncaught exception handler Runtime.getRuntime().addShutdownHook(new NCShutdownHook(this)); Thread.currentThread().setUncaughtExceptionHandler(getLifeCycleComponentManager()); - ioManager = new IOManager(IODeviceHandle.getDevices(ncConfig.getIODevices()), - application.getFileDeviceResolver()); + ioManager = + new IOManager(IODeviceHandle.getDevices(ncConfig.getIODevices()), application.getFileDeviceResolver()); workQueue = new WorkQueue(id, Thread.NORM_PRIORITY); // Reserves MAX_PRIORITY of the heartbeat thread. jobletMap = new Hashtable<>(); @@ -315,6 +317,8 @@ public class NodeControllerService implements IControllerService { timerThread.setPriority(Thread.MAX_PRIORITY); // Schedule heartbeat generator. timer.schedule(heartbeatTask, 0, nodeParameters.getHeartbeatPeriod()); + // Schedule tracing a human-readable datetime + timer.schedule(new TraceCurrentTimeTask(serviceCtx.getTracer()), 0, 60000); if (nodeParameters.getProfileDumpPeriod() > 0) { // Schedule profile dump generator. @@ -336,8 +340,8 @@ public class NodeControllerService implements IControllerService { // Use "public" versions of network addresses and ports NetworkAddress datasetAddress = datasetNetworkManager.getPublicNetworkAddress(); NetworkAddress netAddress = netManager.getPublicNetworkAddress(); - NetworkAddress meesagingPort = messagingNetManager != null ? messagingNetManager.getPublicNetworkAddress() - : null; + NetworkAddress meesagingPort = + messagingNetManager != null ? messagingNetManager.getPublicNetworkAddress() : null; int allCores = osMXBean.getAvailableProcessors(); nodeRegistration = new NodeRegistration(ipc.getSocketAddress(), id, ncConfig, netAddress, datasetAddress, osMXBean.getName(), osMXBean.getArch(), osMXBean.getVersion(), allCores, runtimeMXBean.getVmName(), @@ -566,6 +570,24 @@ public class NodeControllerService implements IControllerService { } } + private class TraceCurrentTimeTask extends TimerTask { + + private ITracer tracer; + + public TraceCurrentTimeTask(ITracer tracer) { + this.tracer = tracer; + } + + @Override + public void run() { + try { + ITracer.check(tracer).instant("CurrentTime", "Timestamp", Tracer.Scope.p, Tracer.dateTimeStamp()); + } catch (Exception e) { + LOGGER.log(Level.WARNING, "Exception tracing current time", e); + } + } + } + public void sendApplicationMessageToCC(byte[] data, DeploymentId deploymentId) throws Exception { ccs.sendApplicationMessageToCC(data, deploymentId, id); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/application/NCServiceContext.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/application/NCServiceContext.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/application/NCServiceContext.java index d1d2dc9..68d9581 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/application/NCServiceContext.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/application/NCServiceContext.java @@ -34,6 +34,7 @@ import org.apache.hyracks.control.common.utils.HyracksThreadFactory; import org.apache.hyracks.control.nc.NodeControllerService; import org.apache.hyracks.control.nc.io.IOManager; import org.apache.hyracks.control.nc.resources.memory.MemoryManager; +import org.apache.hyracks.util.trace.ITracer; import org.apache.hyracks.util.trace.Tracer; public class NCServiceContext extends ServiceContext implements INCServiceContext { @@ -44,7 +45,7 @@ public class NCServiceContext extends ServiceContext implements INCServiceContex private IStateDumpHandler sdh; private final NodeControllerService ncs; private IChannelInterfaceFactory messagingChannelInterfaceFactory; - private final Tracer tracer; + private final ITracer tracer; public NCServiceContext(NodeControllerService ncs, ServerContext serverCtx, IOManager ioManager, String nodeId, MemoryManager memoryManager, ILifeCycleComponentManager lifeCyclecomponentManager, @@ -93,7 +94,7 @@ public class NCServiceContext extends ServiceContext implements INCServiceContex } @Override - public Tracer getTracer() { + public ITracer getTracer() { return tracer; } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/AbstractFrameAppender.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/AbstractFrameAppender.java b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/AbstractFrameAppender.java index dfb03ab..13632f0 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/AbstractFrameAppender.java +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/AbstractFrameAppender.java @@ -28,7 +28,7 @@ import org.apache.hyracks.api.comm.IFrameAppender; import org.apache.hyracks.api.comm.IFrameWriter; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.util.IntSerDeUtils; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; /* * Frame @@ -117,18 +117,13 @@ public class AbstractFrameAppender implements IFrameAppender { writer.flush(); } - public void flush(IFrameWriter writer, Tracer tracer, String name, String cat, String args) + public void flush(IFrameWriter writer, ITracer tracer, String name, String cat, String args) throws HyracksDataException { - long tid = -1L; - if (tracer != null && tracer.isEnabled()) { - tid = tracer.durationB(name, cat, args); - } + final long tid = ITracer.check(tracer).durationB(name, cat, args); if (tupleCount > 0) { write(writer, true); } writer.flush(); - if (tracer != null && tracer.isEnabled()) { - tracer.durationE(tid, args); - } + ITracer.check(tracer).durationE(tid, args); } } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/util/FrameUtils.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/util/FrameUtils.java b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/util/FrameUtils.java index 8411ff7..ea53c25 100644 --- a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/util/FrameUtils.java +++ b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/util/FrameUtils.java @@ -26,7 +26,7 @@ import org.apache.hyracks.api.comm.IFrameTupleAppender; import org.apache.hyracks.api.comm.IFrameWriter; import org.apache.hyracks.api.exceptions.ErrorCode; import org.apache.hyracks.api.exceptions.HyracksDataException; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; public class FrameUtils { @@ -150,14 +150,14 @@ public class FrameUtils { } public static int appendToWriter(IFrameWriter writer, IFrameTupleAppender frameTupleAppender, - IFrameTupleAccessor tupleAccessor, int tIndex, Tracer tracer, String name, String cat, String args) + IFrameTupleAccessor tupleAccessor, int tIndex, ITracer tracer, String name, String cat, String args) throws HyracksDataException { int flushedBytes = 0; if (!frameTupleAppender.append(tupleAccessor, tIndex)) { flushedBytes = frameTupleAppender.getBuffer().capacity(); - long tid = tracer.durationB(name, cat, args); + long tid = ITracer.check(tracer).durationB(name, cat, args); frameTupleAppender.write(writer, true); - tracer.durationE(tid, args); + ITracer.check(tracer).durationE(tid, args); if (!frameTupleAppender.append(tupleAccessor, tIndex)) { throw HyracksDataException.create(ErrorCode.TUPLE_CANNOT_FIT_INTO_EMPTY_FRAME, tupleAccessor.getTupleLength(tIndex)); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java index a0d5a22..c7d45e1 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java @@ -75,7 +75,7 @@ import org.apache.hyracks.storage.common.ISearchOperationCallback; import org.apache.hyracks.storage.common.ISearchPredicate; import org.apache.hyracks.storage.common.MultiComparator; import org.apache.hyracks.storage.common.buffercache.IBufferCache; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; public class LSMBTree extends AbstractLSMIndex implements ITreeIndex { @@ -106,7 +106,7 @@ public class LSMBTree extends AbstractLSMIndex implements ITreeIndex { double bloomFilterFalsePositiveRate, int fieldCount, IBinaryComparatorFactory[] cmpFactories, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, boolean needKeyDupCheck, int[] btreeFields, int[] filterFields, - boolean durable, boolean updateAware, Tracer tracer) throws HyracksDataException { + boolean durable, boolean updateAware, ITracer tracer) throws HyracksDataException { super(ioManager, virtualBufferCaches, diskBTreeFactory.getBufferCache(), fileManager, bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, filterFrameFactory, filterManager, filterFields, durable, filterHelper, btreeFields, tracer); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java index a9c7a80..4aafbe9 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java @@ -53,7 +53,7 @@ import org.apache.hyracks.storage.am.lsm.common.impls.ComponentFilterHelper; import org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFilterManager; import org.apache.hyracks.storage.am.lsm.common.impls.TreeIndexFactory; import org.apache.hyracks.storage.common.buffercache.IBufferCache; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; public class LSMBTreeUtil { @@ -66,7 +66,7 @@ public class LSMBTreeUtil { ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, boolean needKeyDupCheck, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] btreeFields, int[] filterFields, boolean durable, - IMetadataPageManagerFactory freePageManagerFactory, boolean updateAware, Tracer tracer) + IMetadataPageManagerFactory freePageManagerFactory, boolean updateAware, ITracer tracer) throws HyracksDataException { LSMBTreeTupleWriterFactory insertTupleWriterFactory = new LSMBTreeTupleWriterFactory(typeTraits, cmpFactories.length, false, updateAware); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java index c471cfb..dc64f9b 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java @@ -61,7 +61,7 @@ import org.apache.hyracks.storage.common.IIndexCursor; import org.apache.hyracks.storage.common.IModificationOperationCallback; import org.apache.hyracks.storage.common.ISearchOperationCallback; import org.apache.hyracks.storage.common.buffercache.IBufferCache; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; public abstract class AbstractLSMIndex implements ILSMIndex { protected final ILSMHarness lsmHarness; @@ -89,14 +89,14 @@ public abstract class AbstractLSMIndex implements ILSMIndex { protected boolean isActive; protected final AtomicBoolean[] flushRequests; protected boolean memoryComponentsAllocated = false; - protected Tracer tracer; + protected ITracer tracer; public AbstractLSMIndex(IIOManager ioManager, List<IVirtualBufferCache> virtualBufferCaches, IBufferCache diskBufferCache, ILSMIndexFileManager fileManager, double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, ILSMComponentFilterFrameFactory filterFrameFactory, LSMComponentFilterManager filterManager, int[] filterFields, boolean durable, - IComponentFilterHelper filterHelper, int[] treeFields, Tracer tracer) { + IComponentFilterHelper filterHelper, int[] treeFields, ITracer tracer) { this.ioManager = ioManager; this.virtualBufferCaches = virtualBufferCaches; this.diskBufferCache = diskBufferCache; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java index 1ef807f..1069f8f 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java @@ -55,8 +55,8 @@ import org.apache.hyracks.storage.am.lsm.common.api.LSMOperationType; import org.apache.hyracks.storage.am.lsm.common.util.IOOperationUtils; import org.apache.hyracks.storage.common.IIndexCursor; import org.apache.hyracks.storage.common.ISearchPredicate; -import org.apache.hyracks.util.trace.Tracer; -import org.apache.hyracks.util.trace.Tracer.Scope; +import org.apache.hyracks.util.trace.ITracer; +import org.apache.hyracks.util.trace.ITracer.Scope; public class LSMHarness implements ILSMHarness { private static final Logger LOGGER = Logger.getLogger(LSMHarness.class.getName()); @@ -67,10 +67,10 @@ public class LSMHarness implements ILSMHarness { protected final AtomicBoolean fullMergeIsRequested; protected final boolean replicationEnabled; protected List<ILSMDiskComponent> componentsToBeReplicated; - protected Tracer tracer; + protected ITracer tracer; public LSMHarness(ILSMIndex lsmIndex, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, - boolean replicationEnabled, Tracer tracer) { + boolean replicationEnabled, ITracer tracer) { this.lsmIndex = lsmIndex; this.opTracker = opTracker; this.mergePolicy = mergePolicy; @@ -253,9 +253,8 @@ public class LSMHarness implements ILSMHarness { } break; case INACTIVE: - if (tracer != null && tracer.isEnabled()) { - tracer.instant(lsmIndex.toString(), "release-memory-component", Scope.p, null); - } + ITracer.check(tracer).instant(lsmIndex.toString(), "release-memory-component", + Scope.p, null); ((AbstractLSMMemoryComponent) c).reset(); // Notify all waiting threads whenever the mutable component's has change to inactive. This is important because // even though we switched the mutable components, it is possible that the component that we just switched http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/TracedIOOperation.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/TracedIOOperation.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/TracedIOOperation.java index 08e5f94..9cc8022 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/TracedIOOperation.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/TracedIOOperation.java @@ -27,8 +27,8 @@ import org.apache.hyracks.api.io.IODeviceHandle; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperation; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback; import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor; -import org.apache.hyracks.util.trace.Tracer; -import org.apache.hyracks.util.trace.Tracer.Scope; +import org.apache.hyracks.util.trace.ITracer; +import org.apache.hyracks.util.trace.ITracer.Scope; class TracedIOOperation implements ILSMIOOperation { @@ -36,17 +36,17 @@ class TracedIOOperation implements ILSMIOOperation { protected final ILSMIOOperation ioOp; private final LSMIOOpertionType ioOpType; - private final Tracer tracer; + private final ITracer tracer; private final String cat; - protected TracedIOOperation(ILSMIOOperation ioOp, Tracer tracer) { + protected TracedIOOperation(ILSMIOOperation ioOp, ITracer tracer) { this.ioOp = ioOp; this.tracer = tracer; this.ioOpType = ioOp.getIOOpertionType(); this.cat = ioOpType.name().toLowerCase(); } - public static ILSMIOOperation wrap(final ILSMIOOperation ioOp, final Tracer tracer) { + public static ILSMIOOperation wrap(final ILSMIOOperation ioOp, final ITracer tracer) { if (tracer != null && tracer.isEnabled()) { tracer.instant(ioOp.getTarget().getRelativePath(), ioOp.getIOOpertionType() == LSMIOOpertionType.FLUSH ? "schedule-flush" : "schedule-merge", Scope.p, @@ -104,7 +104,7 @@ class TracedIOOperation implements ILSMIOOperation { class ComparableTracedIOOperation extends TracedIOOperation implements Comparable<ILSMIOOperation> { - protected ComparableTracedIOOperation(ILSMIOOperation ioOp, Tracer trace) { + protected ComparableTracedIOOperation(ILSMIOOperation ioOp, ITracer trace) { super(ioOp, trace); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java index 4cd8543..eb3924c 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java @@ -86,7 +86,7 @@ import org.apache.hyracks.storage.common.ISearchOperationCallback; import org.apache.hyracks.storage.common.ISearchPredicate; import org.apache.hyracks.storage.common.MultiComparator; import org.apache.hyracks.storage.common.buffercache.IBufferCache; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex { private static final Logger LOGGER = Logger.getLogger(LSMInvertedIndex.class.getName()); @@ -118,7 +118,7 @@ public class LSMInvertedIndex extends AbstractLSMIndex implements IInvertedIndex throws HyracksDataException { super(ioManager, virtualBufferCaches, diskInvIndexFactory.getBufferCache(), fileManager, bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, filterFrameFactory, - filterManager, filterFields, durable, filterHelper, invertedIndexFields, Tracer.none()); + filterManager, filterFields, durable, filterHelper, invertedIndexFields, ITracer.NONE); this.tokenizerFactory = tokenizerFactory; this.invListTypeTraits = invListTypeTraits; this.invListCmpFactories = invListCmpFactories; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java index 4f08dd3..ec8a857 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java @@ -57,7 +57,7 @@ import org.apache.hyracks.storage.common.IModificationOperationCallback; import org.apache.hyracks.storage.common.ISearchOperationCallback; import org.apache.hyracks.storage.common.ISearchPredicate; import org.apache.hyracks.storage.common.buffercache.IBufferCache; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; public abstract class AbstractLSMRTree extends AbstractLSMIndex implements ITreeIndex { @@ -92,7 +92,7 @@ public abstract class AbstractLSMRTree extends AbstractLSMIndex implements ITree boolean isPointMBR, IBufferCache diskBufferCache) throws HyracksDataException { super(ioManager, virtualBufferCaches, diskBufferCache, fileManager, bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, filterFrameFactory, filterManager, filterFields, durable, - filterHelper, rtreeFields, Tracer.none()); + filterHelper, rtreeFields, ITracer.NONE); int i = 0; for (IVirtualBufferCache virtualBufferCache : virtualBufferCaches) { RTree memRTree = new RTree(virtualBufferCache, new VirtualFreePageManager(virtualBufferCache), http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/test/support/TestNCServiceContext.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/test/support/TestNCServiceContext.java b/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/test/support/TestNCServiceContext.java index cbdb7b7..4417795 100644 --- a/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/test/support/TestNCServiceContext.java +++ b/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/test/support/TestNCServiceContext.java @@ -32,7 +32,7 @@ import org.apache.hyracks.api.lifecycle.LifeCycleComponentManager; import org.apache.hyracks.api.messages.IMessageBroker; import org.apache.hyracks.api.resources.memory.IMemoryManager; import org.apache.hyracks.api.service.IControllerService; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; public class TestNCServiceContext implements INCServiceContext { private final ILifeCycleComponentManager lccm; @@ -87,8 +87,8 @@ public class TestNCServiceContext implements INCServiceContext { } @Override - public Tracer getTracer() { - return Tracer.none(); + public ITracer getTracer() { + return ITracer.NONE; } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeExamplesTest.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeExamplesTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeExamplesTest.java index 56af40d..960367d 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeExamplesTest.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeExamplesTest.java @@ -37,7 +37,7 @@ import org.apache.hyracks.storage.am.common.api.ITreeIndex; import org.apache.hyracks.storage.am.lsm.btree.util.LSMBTreeTestHarness; import org.apache.hyracks.storage.am.lsm.btree.utils.LSMBTreeUtil; import org.apache.hyracks.storage.common.IIndexAccessor; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -54,7 +54,7 @@ public class LSMBTreeExamplesTest extends OrderedIndexExamplesTest { bloomFilterKeyFields, harness.getBoomFilterFalsePositiveRate(), harness.getMergePolicy(), harness.getOperationTracker(), harness.getIOScheduler(), harness.getIOOperationCallback(), true, filterTypeTraits, filterCmpFactories, btreeFields, filterFields, true, - harness.getMetadataPageManagerFactory(), false, Tracer.none()); + harness.getMetadataPageManagerFactory(), false, ITracer.NONE); } @Before http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeModificationOperationCallbackTest.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeModificationOperationCallbackTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeModificationOperationCallbackTest.java index 87ccde7..b633614 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeModificationOperationCallbackTest.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeModificationOperationCallbackTest.java @@ -29,7 +29,7 @@ import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexAccessor; import org.apache.hyracks.storage.am.lsm.common.impls.BlockingIOOperationCallbackWrapper; import org.apache.hyracks.storage.am.lsm.common.impls.NoOpIOOperationCallbackFactory; import org.apache.hyracks.storage.am.lsm.common.impls.NoOpOperationTrackerFactory; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; import org.junit.Test; public class LSMBTreeModificationOperationCallbackTest extends AbstractModificationOperationCallbackTest { @@ -53,7 +53,7 @@ public class LSMBTreeModificationOperationCallbackTest extends AbstractModificat harness.getBoomFilterFalsePositiveRate(), harness.getMergePolicy(), NoOpOperationTrackerFactory.INSTANCE.getOperationTracker(null), harness.getIOScheduler(), harness.getIOOperationCallback(), true, null, null, null, null, true, - harness.getMetadataPageManagerFactory(), false, Tracer.none()); + harness.getMetadataPageManagerFactory(), false, ITracer.NONE); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeSearchOperationCallbackTest.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeSearchOperationCallbackTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeSearchOperationCallbackTest.java index 73497a9..9ba7570 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeSearchOperationCallbackTest.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeSearchOperationCallbackTest.java @@ -38,7 +38,7 @@ import org.apache.hyracks.storage.common.IIndexAccessor; import org.apache.hyracks.storage.common.IIndexBulkLoader; import org.apache.hyracks.storage.common.IIndexCursor; import org.apache.hyracks.storage.common.ISearchOperationCallback; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; import org.junit.Assert; import org.junit.Test; @@ -59,7 +59,7 @@ public class LSMBTreeSearchOperationCallbackTest extends AbstractSearchOperation harness.getBoomFilterFalsePositiveRate(), harness.getMergePolicy(), NoOpOperationTrackerFactory.INSTANCE.getOperationTracker(null), harness.getIOScheduler(), harness.getIOOperationCallback(), true, null, null, null, null, true, - harness.getMetadataPageManagerFactory(), false, Tracer.none()); + harness.getMetadataPageManagerFactory(), false, ITracer.NONE); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeUpdateInPlaceTest.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeUpdateInPlaceTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeUpdateInPlaceTest.java index 2e68e44..e059faa 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeUpdateInPlaceTest.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeUpdateInPlaceTest.java @@ -39,7 +39,7 @@ import org.apache.hyracks.storage.am.lsm.common.impls.NoOpIOOperationCallbackFac import org.apache.hyracks.storage.am.lsm.common.impls.NoOpOperationTrackerFactory; import org.apache.hyracks.storage.common.IIndexAccessor; import org.apache.hyracks.storage.common.IModificationOperationCallback; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -75,7 +75,7 @@ public class LSMBTreeUpdateInPlaceTest extends AbstractOperationCallbackTest { harness.getBoomFilterFalsePositiveRate(), harness.getMergePolicy(), NoOpOperationTrackerFactory.INSTANCE.getOperationTracker(null), harness.getIOScheduler(), harness.getIOOperationCallback(), true, null, null, null, null, true, - harness.getMetadataPageManagerFactory(), true, Tracer.all()); + harness.getMetadataPageManagerFactory(), true, ITracer.NONE); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtree.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtree.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtree.java index 79f4e22..6c1a406 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtree.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtree.java @@ -47,7 +47,7 @@ import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMIndexOperationC import org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFilterManager; import org.apache.hyracks.storage.am.lsm.common.impls.LSMTreeIndexAccessor; import org.apache.hyracks.storage.am.lsm.common.impls.TreeIndexFactory; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; public class TestLsmBtree extends LSMBTree { @@ -77,7 +77,7 @@ public class TestLsmBtree extends LSMBTree { double bloomFilterFalsePositiveRate, int fieldCount, IBinaryComparatorFactory[] cmpFactories, ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, boolean needKeyDupCheck, int[] btreeFields, int[] filterFields, - boolean durable, boolean updateAware, Tracer tracer) throws HyracksDataException { + boolean durable, boolean updateAware, ITracer tracer) throws HyracksDataException { super(ioManager, virtualBufferCaches, interiorFrameFactory, insertLeafFrameFactory, deleteLeafFrameFactory, fileManager, diskBTreeFactory, bulkLoadBTreeFactory, bloomFilterFactory, filterHelper, filterFrameFactory, filterManager, bloomFilterFalsePositiveRate, fieldCount, cmpFactories, mergePolicy, http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeUtil.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeUtil.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeUtil.java index 940e517..049cb59 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeUtil.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeUtil.java @@ -48,7 +48,7 @@ import org.apache.hyracks.storage.am.lsm.common.impls.ComponentFilterHelper; import org.apache.hyracks.storage.am.lsm.common.impls.LSMComponentFilterManager; import org.apache.hyracks.storage.am.lsm.common.impls.TreeIndexFactory; import org.apache.hyracks.storage.common.buffercache.IBufferCache; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; public class TestLsmBtreeUtil { @@ -61,7 +61,7 @@ public class TestLsmBtreeUtil { ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, ILSMIOOperationScheduler ioScheduler, ILSMIOOperationCallback ioOpCallback, boolean needKeyDupCheck, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] btreeFields, int[] filterFields, boolean durable, - IMetadataPageManagerFactory freePageManagerFactory, boolean updateAware, Tracer tracer) + IMetadataPageManagerFactory freePageManagerFactory, boolean updateAware, ITracer tracer) throws HyracksDataException { LSMBTreeTupleWriterFactory insertTupleWriterFactory = new LSMBTreeTupleWriterFactory(typeTraits, cmpFactories.length, false, updateAware); http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/multithread/LSMBTreeMultiThreadTest.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/multithread/LSMBTreeMultiThreadTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/multithread/LSMBTreeMultiThreadTest.java index 4ebbe5f..3a7a6bb 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/multithread/LSMBTreeMultiThreadTest.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/multithread/LSMBTreeMultiThreadTest.java @@ -32,7 +32,7 @@ import org.apache.hyracks.storage.am.common.api.ITreeIndex; import org.apache.hyracks.storage.am.common.datagen.ProbabilityHelper; import org.apache.hyracks.storage.am.lsm.btree.util.LSMBTreeTestHarness; import org.apache.hyracks.storage.am.lsm.btree.utils.LSMBTreeUtil; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; public class LSMBTreeMultiThreadTest extends OrderedIndexMultiThreadTest { @@ -57,7 +57,7 @@ public class LSMBTreeMultiThreadTest extends OrderedIndexMultiThreadTest { harness.getFileReference(), harness.getDiskBufferCache(), typeTraits, cmpFactories, bloomFilterKeyFields, harness.getBoomFilterFalsePositiveRate(), harness.getMergePolicy(), harness.getOperationTracker(), harness.getIOScheduler(), harness.getIOOperationCallback(), true, null, - null, null, null, true, harness.getMetadataPageManagerFactory(), false, Tracer.none()); + null, null, null, true, harness.getMetadataPageManagerFactory(), false, ITracer.NONE); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/perf/LSMTreeRunner.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/perf/LSMTreeRunner.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/perf/LSMTreeRunner.java index 50078ef..6a35fb1 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/perf/LSMTreeRunner.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/perf/LSMTreeRunner.java @@ -48,7 +48,7 @@ import org.apache.hyracks.storage.common.buffercache.HeapBufferAllocator; import org.apache.hyracks.storage.common.buffercache.IBufferCache; import org.apache.hyracks.test.support.TestStorageManagerComponentHolder; import org.apache.hyracks.test.support.TestUtils; -import org.apache.hyracks.util.trace.Tracer; +import org.apache.hyracks.util.trace.ITracer; public class LSMTreeRunner implements IExperimentRunner { @@ -110,7 +110,7 @@ public class LSMTreeRunner implements IExperimentRunner { cmpFactories, bloomFilterKeyFields, bloomFilterFalsePositiveRate, new NoMergePolicy(), new ThreadCountingTracker(), ioScheduler, NoOpIOOperationCallbackFactory.INSTANCE.createIoOpCallback(), true, null, null, null, null, true, TestStorageManagerComponentHolder.getMetadataPageManagerFactory(), - false, Tracer.none()); + false, ITracer.NONE); } @Override http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/util/LSMBTreeTestContext.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/util/LSMBTreeTestContext.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/util/LSMBTreeTestContext.java index 6c95f4d..ef5a0d2 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/util/LSMBTreeTestContext.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/util/LSMBTreeTestContext.java @@ -41,6 +41,7 @@ import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicy; import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker; import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCache; import org.apache.hyracks.storage.common.buffercache.IBufferCache; +import org.apache.hyracks.util.trace.ITracer; import org.apache.hyracks.util.trace.Tracer; @SuppressWarnings("rawtypes") @@ -96,12 +97,12 @@ public final class LSMBTreeTestContext extends OrderedIndexTestContext { lsmTree = LSMBTreeUtil.createLSMTree(ioManager, virtualBufferCaches, file, diskBufferCache, typeTraits, cmpFactories, bloomFilterKeyFields, bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, needKeyDupCheck, filterTypeTraits, filterCmp, btreefields, filterfields, - true, metadataPageManagerFactory, updateAware, Tracer.none()); + true, metadataPageManagerFactory, updateAware, ITracer.NONE); } else { lsmTree = LSMBTreeUtil.createLSMTree(ioManager, virtualBufferCaches, file, diskBufferCache, typeTraits, cmpFactories, bloomFilterKeyFields, bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallback, needKeyDupCheck, null, null, null, null, true, - metadataPageManagerFactory, updateAware, Tracer.all()); + metadataPageManagerFactory, updateAware, Tracer.ALL); } LSMBTreeTestContext testCtx = new LSMBTreeTestContext(fieldSerdes, lsmTree, filtered); return testCtx; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java index 444cd4f..b3f5c98 100644 --- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java +++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java @@ -20,21 +20,19 @@ package org.apache.hyracks.util.trace; import java.util.concurrent.TimeUnit; -import org.apache.hyracks.util.trace.Tracer.Scope; - final class Event { - private static final long NANOTIME_DELTA_TO_EPOCH = System.nanoTime() - - TimeUnit.MILLISECONDS.toNanos(System.currentTimeMillis()); + private static final long NANOTIME_DELTA_TO_EPOCH = + System.nanoTime() - TimeUnit.MILLISECONDS.toNanos(System.currentTimeMillis()); public final String name; public final String cat; - public final Tracer.Phase ph; + public final ITracer.Phase ph; public final long ts; public final int pid; public final long tid; - public final Tracer.Scope scope; + public final ITracer.Scope scope; public final String args; - private Event(String name, String cat, Tracer.Phase ph, long ts, int pid, long tid, Tracer.Scope scope, + private Event(String name, String cat, ITracer.Phase ph, long ts, int pid, long tid, ITracer.Scope scope, String args) { this.name = name; this.cat = cat; @@ -50,7 +48,8 @@ final class Event { return (System.nanoTime() - NANOTIME_DELTA_TO_EPOCH) / 1000; } - public static Event create(String name, String cat, Tracer.Phase ph, int pid, long tid, Scope scope, String args) { + public static Event create(String name, String cat, ITracer.Phase ph, int pid, long tid, ITracer.Scope scope, + String args) { return new Event(name, cat, ph, timestamp(), pid, tid, scope, args); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/ITracer.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/ITracer.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/ITracer.java new file mode 100644 index 0000000..4a82360 --- /dev/null +++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/ITracer.java @@ -0,0 +1,100 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 org.apache.hyracks.util.trace; + +public interface ITracer { + + enum Phase { + // Duration Events + B, // begin + E, // end + // Complete Events + X, + // Instant Events + i, + // Counter Events + C, + // Async Events + b, // nestable start + n, // nestable instant + e, // nestable end + // Flow Events + s, // start + t, // step + f, // end + // Object Events + N, // created + O, // snapshot + D // destroyed + } + + enum Scope { + g, // Global scope + p, // Process scope + t // Thread scope + } + + ITracer NONE = new ITracer() { + @Override + public String getName() { + return null; + } + + @Override + public boolean isEnabled() { + return false; + } + + @Override + public long durationB(String name, String cat, String args) { + return -1; + } + + @Override + public void durationE(long tid, String args) { + // nothing to do here + } + + @Override + public void instant(String name, String cat, Scope scope, String args) { + // nothing to do here + } + }; + + static ITracer check(ITracer tracer) { + if (tracer == null) { + throw new IllegalArgumentException("Tracer cannot be null"); + } + return tracer.isEnabled() ? tracer : NONE; + } + + String getName(); + + boolean isEnabled(); + + long durationB(String name, String cat, String args); + + void durationE(long tid, String args); + + void instant(String name, String cat, Scope scope, String args); + + @Override + String toString(); +} http://git-wip-us.apache.org/repos/asf/asterixdb/blob/8c43f62b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java index cd152a2..00991e4 100644 --- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java +++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java @@ -31,7 +31,9 @@ import org.apache.hyracks.util.PidHelper; /** * https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/edit */ -public class Tracer { +public class Tracer implements ITracer { + + public static final Logger LOGGER = Logger.getLogger(Tracer.class.getName()); protected static final Level TRACE_LOG_LEVEL = Level.INFO; protected static final String CAT = "Tracer"; @@ -42,80 +44,51 @@ public class Tracer { protected static final int pid = PidHelper.getPid(); - public enum Phase { - // Duration Events - B, // begin - E, // end - // Complete Events - X, - // Instant Events - i, - // Counter Events - C, - // Async Events - b, // nestable start - n, // nestable instant - e, // nestable end - // Flow Events - s, // start - t, // step - f, // end - // Object Events - N, // created - O, // snapshot - D // destroyed - } - - public enum Scope { - g, // Global scope - p, // Process scope - t // Thread scope - } - public Tracer(String name, String[] categories) { - this.traceLog = Logger.getLogger(Tracer.class.getName() + "@" + name); + final String traceLoggerName = Tracer.class.getName() + "@" + name; + LOGGER.info("Initialize Tracer " + traceLoggerName + " " + Arrays.toString(categories)); + this.traceLog = Logger.getLogger(traceLoggerName); this.categories = categories; instant("Trace-Start", CAT, Scope.p, dateTimeStamp()); } public static String dateTimeStamp() { synchronized (DATE_FORMAT) { - return DATE_FORMAT.format(new Date()); + return "{\"datetime\":\"" + DATE_FORMAT.format(new Date()) + "\"}"; } } - public static Tracer none() { - return new Tracer("None", new String[0]); - } - - public static Tracer all() { - return new Tracer("All", new String[] { "*" }); - } + public static final Tracer ALL = new Tracer("All", new String[] { "*" }); @Override public String toString() { return getName() + Arrays.toString(categories) + (isEnabled() ? "enabled" : "disabled"); } + @Override public String getName() { return traceLog.getName(); } + @Override public boolean isEnabled() { return categories.length > 0; } + @Override public long durationB(String name, String cat, String args) { Event e = Event.create(name, cat, Phase.B, pid, Thread.currentThread().getId(), null, args); traceLog.log(TRACE_LOG_LEVEL, e.toJson()); return e.tid; } + @Override public void durationE(long tid, String args) { Event e = Event.create(null, null, Phase.E, pid, tid, null, args); traceLog.log(TRACE_LOG_LEVEL, e.toJson()); } + @Override public void instant(String name, String cat, Scope scope, String args) { Event e = Event.create(name, cat, Phase.i, pid, Thread.currentThread().getId(), scope, args); traceLog.log(TRACE_LOG_LEVEL, e.toJson());