Till Westmann has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/2050
Change subject: WIP - tracing alternative
......................................................................
WIP - tracing alternative
Change-Id: I1d41d9cf74f481ba26882cf2ca318d0d2b9607f7
---
M
hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/INCServiceContext.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMIndex.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/TracedIOOperation.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/impls/LSMInvertedIndex.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java
M
hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/test/support/TestNCServiceContext.java
M
hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeExamplesTest.java
M
hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeModificationOperationCallbackTest.java
M
hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeSearchOperationCallbackTest.java
M
hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeUpdateInPlaceTest.java
M
hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/multithread/LSMBTreeMultiThreadTest.java
M
hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/perf/LSMTreeRunner.java
M
hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/util/LSMBTreeTestContext.java
M
hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java
A
hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/ITracer.java
M
hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java
19 files changed, 148 insertions(+), 80 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/50/2050/1
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.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 @@
*
* @return a Tracer
*/
- Tracer getTracer();
+ ITracer getTracer();
/**
* Set the handler for state dumps.
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 1920592..2b304a1 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
@@ -76,6 +76,7 @@
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.ITracer;
import org.apache.hyracks.util.trace.Tracer;
public class LSMBTree extends AbstractLSMIndex implements ITreeIndex {
@@ -107,7 +108,7 @@
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);
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.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 @@
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);
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 fe6d20f..165df54 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
@@ -63,6 +63,7 @@
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.ITracer;
import org.apache.hyracks.util.trace.Tracer;
public abstract class AbstractLSMIndex implements ILSMIndex {
@@ -91,14 +92,14 @@
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;
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 1fc702c..6b34b1c 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
@@ -53,8 +53,8 @@
import org.apache.hyracks.storage.am.lsm.common.api.LSMOperationType;
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());
@@ -65,10 +65,10 @@
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;
@@ -250,9 +250,8 @@
}
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
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 d801a44..4916b65 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
@@ -26,8 +26,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.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 {
@@ -35,17 +35,17 @@
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,
@@ -98,7 +98,7 @@
class ComparableTracedIOOperation extends TracedIOOperation implements
Comparable<ILSMIOOperation> {
- protected ComparableTracedIOOperation(ILSMIOOperation ioOp, Tracer trace) {
+ protected ComparableTracedIOOperation(ILSMIOOperation ioOp, ITracer trace)
{
super(ioOp, trace);
}
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 7994bf0..66ea311 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.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 @@
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;
@@ -219,7 +219,7 @@
if (ctx.getIndexTuple() != null) {
ctx.getIndexTuple().reset(tuple);
indexTuple = ctx.getIndexTuple();
-
((InMemoryInvertedIndexAccessor)(ctx.getCurrentMutableInvIndexAccessors())).resetLogTuple(tuple);
+ ((InMemoryInvertedIndexAccessor)
(ctx.getCurrentMutableInvIndexAccessors())).resetLogTuple(tuple);
} else {
indexTuple = tuple;
}
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 eb03696..33b242d 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.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 @@
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),
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.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 @@
}
@Override
- public Tracer getTracer() {
- return Tracer.none();
+ public ITracer getTracer() {
+ return ITracer.NONE;
}
@Override
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..ad40122 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,6 +37,8 @@
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.ITracer;
+import org.apache.hyracks.util.trace.NoneTracer;
import org.apache.hyracks.util.trace.Tracer;
import org.junit.After;
import org.junit.Before;
@@ -54,7 +56,7 @@
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
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.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 @@
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
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.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 @@
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
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.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 @@
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
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.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 @@
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
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.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 @@
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
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.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 @@
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;
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 4a46c19..4572002 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
@@ -18,7 +18,7 @@
*/
package org.apache.hyracks.util.trace;
-import org.apache.hyracks.util.trace.Tracer.Scope;
+import org.apache.hyracks.util.trace.ITracer.Scope;
final class Event {
public final String name;
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..f8f211b
--- /dev/null
+++
b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/ITracer.java
@@ -0,0 +1,95 @@
+/*
+ * 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) {
+ }
+
+ @Override
+ public void instant(String name, String cat, Scope scope, String args)
{
+ }
+ };
+
+ static ITracer check(ITracer tracer) {
+ return tracer != null && 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();
+}
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 4dc2394..8487b5e 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
@@ -28,7 +28,7 @@
/**
*
https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/edit
*/
-public class Tracer {
+public class Tracer implements ITracer {
protected static final Level TRACE_LOG_LEVEL = Level.INFO;
@@ -37,73 +37,42 @@
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);
this.categories = categories;
}
- public static Tracer none() {
- return new Tracer("None", new String[0]);
- }
-
- public static Tracer all() {
- return new Tracer("All", new String[] { "*" });
- }
+ public static 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());
--
To view, visit https://asterix-gerrit.ics.uci.edu/2050
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1d41d9cf74f481ba26882cf2ca318d0d2b9607f7
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Till Westmann <[email protected]>