Repository: asterixdb
Updated Branches:
  refs/heads/master f94fdcc20 -> 2f934e312


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerFactory.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerFactory.java
 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerFactory.java
index febcac2..7586980 100644
--- 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerFactory.java
+++ 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexOperationTrackerFactory.java
@@ -18,12 +18,13 @@
  */
 package org.apache.asterix.transaction.management.opcallbacks;
 
-import org.apache.asterix.common.api.INcApplicationContext;
 import org.apache.asterix.common.api.IDatasetLifecycleManager;
+import org.apache.asterix.common.api.INcApplicationContext;
 import org.apache.asterix.common.context.BaseOperationTracker;
 import org.apache.hyracks.api.application.INCServiceContext;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker;
 import 
org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory;
+import org.apache.hyracks.storage.common.IResource;
 
 public class SecondaryIndexOperationTrackerFactory implements 
ILSMOperationTrackerFactory {
 
@@ -36,7 +37,7 @@ public class SecondaryIndexOperationTrackerFactory implements 
ILSMOperationTrack
     }
 
     @Override
-    public ILSMOperationTracker getOperationTracker(INCServiceContext ctx) {
+    public ILSMOperationTracker getOperationTracker(INCServiceContext ctx, 
IResource resource) {
         IDatasetLifecycleManager dslcManager =
                 ((INcApplicationContext) 
ctx.getApplicationContext()).getDatasetLifecycleManager();
         return new BaseOperationTracker(datasetID, 
dslcManager.getDatasetInfo(datasetID));

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/UpsertOperationCallbackFactory.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/UpsertOperationCallbackFactory.java
 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/UpsertOperationCallbackFactory.java
index 1449a1b..8f7d445 100644
--- 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/UpsertOperationCallbackFactory.java
+++ 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/UpsertOperationCallbackFactory.java
@@ -68,7 +68,7 @@ public class UpsertOperationCallbackFactory extends 
AbstractOperationCallbackFac
             IModificationOperationCallback modCallback = new 
UpsertOperationCallback(new DatasetId(datasetId),
                     primaryKeyFields, txnCtx, txnSubsystem.getLockManager(), 
txnSubsystem, resource.getId(),
                     aResource.getPartition(), resourceType, indexOp);
-            txnCtx.register(resource.getId(), index, modCallback, true);
+            txnCtx.register(resource.getId(), aResource.getPartition(), index, 
modCallback, true);
             return modCallback;
         } catch (ACIDException e) {
             throw new HyracksDataException(e);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/DatasetLocalResourceFactory.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/DatasetLocalResourceFactory.java
 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/DatasetLocalResourceFactory.java
index 8724128..9ce5843 100644
--- 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/DatasetLocalResourceFactory.java
+++ 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/DatasetLocalResourceFactory.java
@@ -37,9 +37,8 @@ public class DatasetLocalResourceFactory implements 
IResourceFactory {
 
     @Override
     public IResource createResource(FileReference fileRef) {
-        IResource resource = resourceFactory.createResource(fileRef);
-        // Currently, we get the partition number from the relative path
         int partition = 
StoragePathUtil.getPartitionNumFromRelativePath(fileRef.getRelativePath());
+        IResource resource = resourceFactory.createResource(fileRef);
         return new DatasetLocalResource(datasetId, partition, resource);
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java
 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java
index bc487fe..a630caa 100644
--- 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java
+++ 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java
@@ -222,7 +222,7 @@ public class LogBuffer implements ILogBuffer {
                         txnCtx = 
txnSubsystem.getTransactionManager().getTransactionContext(reusableTxnId);
                         
txnSubsystem.getLockManager().unlock(reusableDatasetId, 
logRecord.getPKHashValue(),
                                 LockMode.ANY, txnCtx);
-                        txnCtx.notifyEntityCommitted();
+                        
txnCtx.notifyEntityCommitted(logRecord.getResourcePartition());
                         if 
(txnSubsystem.getTransactionProperties().isCommitProfilerEnabled()) {
                             txnSubsystem.incrementEntityCommitCount();
                         }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AbstractTransactionContext.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AbstractTransactionContext.java
 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AbstractTransactionContext.java
index 43fe266..b3d5e49 100644
--- 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AbstractTransactionContext.java
+++ 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AbstractTransactionContext.java
@@ -118,7 +118,7 @@ public abstract class AbstractTransactionContext implements 
ITransactionContext
     }
 
     @Override
-    public void register(long resourceId, ILSMIndex index, 
IModificationOperationCallback callback,
+    public void register(long resourceId, int partition, ILSMIndex index, 
IModificationOperationCallback callback,
             boolean primaryIndex) {
         synchronized (txnOpTrackers) {
             if (!txnOpTrackers.containsKey(resourceId)) {

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AtomicTransactionContext.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AtomicTransactionContext.java
 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AtomicTransactionContext.java
index 1d132a8..219cf07 100644
--- 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AtomicTransactionContext.java
+++ 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AtomicTransactionContext.java
@@ -44,9 +44,9 @@ public class AtomicTransactionContext extends 
AbstractTransactionContext {
     }
 
     @Override
-    public void register(long resourceId, ILSMIndex index, 
IModificationOperationCallback callback,
+    public void register(long resourceId, int partition, ILSMIndex index, 
IModificationOperationCallback callback,
             boolean primaryIndex) {
-        super.register(resourceId, index, callback, primaryIndex);
+        super.register(resourceId, partition, index, callback, primaryIndex);
         synchronized (txnOpTrackers) {
             if (primaryIndex && !opTrackers.containsKey(resourceId)) {
                 opTrackers.put(resourceId, index.getOperationTracker());
@@ -67,7 +67,7 @@ public class AtomicTransactionContext extends 
AbstractTransactionContext {
     }
 
     @Override
-    public void notifyEntityCommitted() {
+    public void notifyEntityCommitted(int partition) {
         throw new IllegalStateException("Unexpected entity commit in atomic 
transaction");
     }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/EntityLevelTransactionContext.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/EntityLevelTransactionContext.java
 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/EntityLevelTransactionContext.java
index e195451..9d2f54b 100644
--- 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/EntityLevelTransactionContext.java
+++ 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/EntityLevelTransactionContext.java
@@ -18,11 +18,15 @@
  */
 package org.apache.asterix.transaction.management.service.transaction;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.asterix.common.context.PrimaryIndexOperationTracker;
 import org.apache.asterix.common.exceptions.ACIDException;
 import org.apache.asterix.common.transactions.TxnId;
+import org.apache.hyracks.algebricks.common.utils.Pair;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex;
 import org.apache.hyracks.storage.am.lsm.common.api.LSMOperationType;
@@ -32,30 +36,36 @@ import org.apache.hyracks.util.annotations.ThreadSafe;
 @ThreadSafe
 public class EntityLevelTransactionContext extends AbstractTransactionContext {
 
-    private PrimaryIndexOperationTracker primaryIndexOpTracker;
-    private IModificationOperationCallback primaryIndexCallback;
-    private final AtomicInteger pendingOps;
+    private final Map<Integer, Pair<PrimaryIndexOperationTracker, 
IModificationOperationCallback>> primaryIndexTrackers;
+    private final Map<Long, AtomicInteger> resourcePendingOps;
+    private final Map<Integer, AtomicInteger> partitionPendingOps;
 
     public EntityLevelTransactionContext(TxnId txnId) {
         super(txnId);
-        pendingOps = new AtomicInteger(0);
+        this.primaryIndexTrackers = new HashMap<>();
+        this.resourcePendingOps = new HashMap<>();
+        this.partitionPendingOps = new HashMap<>();
     }
 
     @Override
-    public void register(long resourceId, ILSMIndex index, 
IModificationOperationCallback callback,
+    public void register(long resourceId, int partition, ILSMIndex index, 
IModificationOperationCallback callback,
             boolean primaryIndex) {
-        super.register(resourceId, index, callback, primaryIndex);
+        super.register(resourceId, partition, index, callback, primaryIndex);
         synchronized (txnOpTrackers) {
-            if (primaryIndex && primaryIndexOpTracker == null) {
-                primaryIndexCallback = callback;
-                primaryIndexOpTracker = (PrimaryIndexOperationTracker) 
index.getOperationTracker();
+            AtomicInteger pendingOps = 
partitionPendingOps.computeIfAbsent(partition, p -> new AtomicInteger(0));
+            resourcePendingOps.put(resourceId, pendingOps);
+            if (primaryIndex) {
+                Pair<PrimaryIndexOperationTracker, 
IModificationOperationCallback> pair =
+                        new Pair<PrimaryIndexOperationTracker, 
IModificationOperationCallback>(
+                                (PrimaryIndexOperationTracker) 
index.getOperationTracker(), callback);
+                primaryIndexTrackers.put(partition, pair);
             }
         }
     }
 
     @Override
     public void beforeOperation(long resourceId) {
-        pendingOps.incrementAndGet();
+        resourcePendingOps.get(resourceId).incrementAndGet();
     }
 
     @Override
@@ -64,9 +74,11 @@ public class EntityLevelTransactionContext extends 
AbstractTransactionContext {
     }
 
     @Override
-    public void notifyEntityCommitted() {
+    public void notifyEntityCommitted(int partition) {
         try {
-            primaryIndexOpTracker.completeOperation(null, 
LSMOperationType.MODIFICATION, null, primaryIndexCallback);
+            Pair<PrimaryIndexOperationTracker, IModificationOperationCallback> 
pair =
+                    primaryIndexTrackers.get(partition);
+            pair.first.completeOperation(null, LSMOperationType.MODIFICATION, 
null, pair.second);
         } catch (HyracksDataException e) {
             throw new ACIDException(e);
         }
@@ -74,13 +86,15 @@ public class EntityLevelTransactionContext extends 
AbstractTransactionContext {
 
     @Override
     public void afterOperation(long resourceId) {
-        pendingOps.decrementAndGet();
+        resourcePendingOps.get(resourceId).decrementAndGet();
     }
 
     @Override
     protected void cleanupForAbort() {
-        if (primaryIndexOpTracker != null) {
-            
primaryIndexOpTracker.cleanupNumActiveOperationsForAbortedJob(pendingOps.get());
+        for (Entry<Integer, Pair<PrimaryIndexOperationTracker, 
IModificationOperationCallback>> e : primaryIndexTrackers
+                .entrySet()) {
+            AtomicInteger pendingOps = partitionPendingOps.get(e.getKey());
+            
e.getValue().first.cleanupNumActiveOperationsForAbortedJob(pendingOps.get());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResource.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResource.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResource.java
index 673bd3b..445f363 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResource.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResource.java
@@ -57,11 +57,11 @@ public class ExternalBTreeLocalResource extends 
LSMBTreeLocalResource {
     public ILSMIndex createInstance(INCServiceContext serviceCtx) throws 
HyracksDataException {
         IIOManager ioManager = serviceCtx.getIoManager();
         FileReference file = ioManager.resolve(path);
-        ioOpCallbackFactory.initialize(serviceCtx);
+        ioOpCallbackFactory.initialize(serviceCtx, this);
         return LSMBTreeUtil.createExternalBTree(ioManager, file, 
storageManager.getBufferCache(serviceCtx), typeTraits,
                 cmpFactories, bloomFilterKeyFields, 
bloomFilterFalsePositiveRate,
                 mergePolicyFactory.createMergePolicy(mergePolicyProperties, 
serviceCtx),
-                opTrackerProvider.getOperationTracker(serviceCtx), 
ioSchedulerProvider.getIoScheduler(serviceCtx),
+                opTrackerProvider.getOperationTracker(serviceCtx, this), 
ioSchedulerProvider.getIoScheduler(serviceCtx),
                 ioOpCallbackFactory, durable, metadataPageManagerFactory, 
serviceCtx.getTracer());
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResource.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResource.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResource.java
index 7e44c63..acdb09e 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResource.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResource.java
@@ -60,11 +60,11 @@ public class ExternalBTreeWithBuddyLocalResource extends 
LSMBTreeLocalResource {
     public ILSMIndex createInstance(INCServiceContext serviceCtx) throws 
HyracksDataException {
         IIOManager ioManager = serviceCtx.getIoManager();
         FileReference file = ioManager.resolve(path);
-        ioOpCallbackFactory.initialize(serviceCtx);
+        ioOpCallbackFactory.initialize(serviceCtx, this);
         return LSMBTreeUtil.createExternalBTreeWithBuddy(ioManager, file, 
storageManager.getBufferCache(serviceCtx),
                 typeTraits, cmpFactories, bloomFilterFalsePositiveRate,
                 mergePolicyFactory.createMergePolicy(mergePolicyProperties, 
serviceCtx),
-                opTrackerProvider.getOperationTracker(serviceCtx), 
ioSchedulerProvider.getIoScheduler(serviceCtx),
+                opTrackerProvider.getOperationTracker(serviceCtx, this), 
ioSchedulerProvider.getIoScheduler(serviceCtx),
                 ioOpCallbackFactory, bloomFilterKeyFields, durable, 
metadataPageManagerFactory, serviceCtx.getTracer());
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResource.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResource.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResource.java
index 1988736..f0b86d2 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResource.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResource.java
@@ -70,13 +70,13 @@ public class LSMBTreeLocalResource extends LsmResource {
         IIOManager ioManager = serviceCtx.getIoManager();
         FileReference file = ioManager.resolve(path);
         List<IVirtualBufferCache> vbcs = 
vbcProvider.getVirtualBufferCaches(serviceCtx, file);
-        ioOpCallbackFactory.initialize(serviceCtx);
+        ioOpCallbackFactory.initialize(serviceCtx, this);
         //TODO: enable updateAwareness for secondary LSMBTree indexes
         boolean updateAware = false;
         return LSMBTreeUtil.createLSMTree(ioManager, vbcs, file, 
storageManager.getBufferCache(serviceCtx), typeTraits,
                 cmpFactories, bloomFilterKeyFields, 
bloomFilterFalsePositiveRate,
                 mergePolicyFactory.createMergePolicy(mergePolicyProperties, 
serviceCtx),
-                opTrackerProvider.getOperationTracker(serviceCtx), 
ioSchedulerProvider.getIoScheduler(serviceCtx),
+                opTrackerProvider.getOperationTracker(serviceCtx, this), 
ioSchedulerProvider.getIoScheduler(serviceCtx),
                 ioOpCallbackFactory, isPrimary, filterTypeTraits, 
filterCmpFactories, btreeFields, filterFields,
                 durable, metadataPageManagerFactory, updateAware, 
serviceCtx.getTracer());
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java
index 280803d..92d74d9 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java
@@ -94,7 +94,8 @@ public class ExternalBTree extends LSMBTree implements 
ITwoPCIndex {
             ILSMDiskComponentFactory bulkLoadComponentFactory, 
ILSMDiskComponentFactory transactionComponentFactory,
             double bloomFilterFalsePositiveRate, IBinaryComparatorFactory[] 
cmpFactories, ILSMMergePolicy mergePolicy,
             ILSMOperationTracker opTracker, ILSMIOOperationScheduler 
ioScheduler,
-            ILSMIOOperationCallbackFactory ioOpCallbackFactory, boolean 
durable, ITracer tracer) {
+            ILSMIOOperationCallbackFactory ioOpCallbackFactory, boolean 
durable, ITracer tracer)
+            throws HyracksDataException {
         super(ioManager, insertLeafFrameFactory, deleteLeafFrameFactory, 
bufferCache, fileManager, componentFactory,
                 bulkLoadComponentFactory, bloomFilterFalsePositiveRate, 
cmpFactories, mergePolicy, opTracker,
                 ioScheduler, ioOpCallbackFactory, false, durable, tracer);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java
index 5f04c0a..6993013 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java
@@ -89,8 +89,8 @@ public class ExternalBTreeWithBuddy extends AbstractLSMIndex 
implements ITreeInd
             ILSMDiskComponentFactory bulkLoadComponentFactory, double 
bloomFilterFalsePositiveRate,
             ILSMMergePolicy mergePolicy, ILSMOperationTracker opTracker, 
ILSMIOOperationScheduler ioScheduler,
             ILSMIOOperationCallbackFactory ioOpCallbackFactory, 
IBinaryComparatorFactory[] btreeCmpFactories,
-            IBinaryComparatorFactory[] buddyBtreeCmpFactories, int[] 
buddyBTreeFields, boolean durable,
-            ITracer tracer) {
+            IBinaryComparatorFactory[] buddyBtreeCmpFactories, int[] 
buddyBTreeFields, boolean durable, ITracer tracer)
+            throws HyracksDataException {
         super(ioManager, diskBufferCache, fileManager, 
bloomFilterFalsePositiveRate, mergePolicy, opTracker,
                 ioScheduler, ioOpCallbackFactory, componentFactory, 
bulkLoadComponentFactory, durable, tracer);
         this.btreeCmpFactories = btreeCmpFactories;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/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 0593ad5..b4990d6 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
@@ -125,7 +125,7 @@ public class LSMBTree extends AbstractLSMIndex implements 
ITreeIndex {
             double bloomFilterFalsePositiveRate, IBinaryComparatorFactory[] 
cmpFactories, ILSMMergePolicy mergePolicy,
             ILSMOperationTracker opTracker, ILSMIOOperationScheduler 
ioScheduler,
             ILSMIOOperationCallbackFactory ioOpCallbackFactory, boolean 
needKeyDupCheck, boolean durable,
-            ITracer tracer) {
+            ITracer tracer) throws HyracksDataException {
         super(ioManager, bufferCache, fileManager, 
bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler,
                 ioOpCallbackFactory, componentFactory, 
bulkLoadComponentFactory, durable, tracer);
         this.insertLeafFrameFactory = insertLeafFrameFactory;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/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 4706faa..cc10a98 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
@@ -135,7 +135,7 @@ public class LSMBTreeUtil {
             int[] bloomFilterKeyFields, double bloomFilterFalsePositiveRate, 
ILSMMergePolicy mergePolicy,
             ILSMOperationTracker opTracker, ILSMIOOperationScheduler 
ioScheduler,
             ILSMIOOperationCallbackFactory ioOpCallbackFactory, boolean 
durable,
-            IMetadataPageManagerFactory freePageManagerFactory, ITracer 
tracer) {
+            IMetadataPageManagerFactory freePageManagerFactory, ITracer 
tracer) throws HyracksDataException {
         LSMBTreeTupleWriterFactory insertTupleWriterFactory =
                 new LSMBTreeTupleWriterFactory(typeTraits, 
cmpFactories.length, false, false);
         LSMBTreeTupleWriterFactory deleteTupleWriterFactory =
@@ -187,8 +187,8 @@ public class LSMBTreeUtil {
             IBufferCache diskBufferCache, ITypeTraits[] typeTraits, 
IBinaryComparatorFactory[] cmpFactories,
             double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, 
ILSMOperationTracker opTracker,
             ILSMIOOperationScheduler ioScheduler, 
ILSMIOOperationCallbackFactory ioOpCallbackFactory,
-            int[] buddyBTreeFields, boolean durable, 
IMetadataPageManagerFactory freePageManagerFactory,
-            ITracer tracer) {
+            int[] buddyBTreeFields, boolean durable, 
IMetadataPageManagerFactory freePageManagerFactory, ITracer tracer)
+            throws HyracksDataException {
         ITypeTraits[] buddyBtreeTypeTraits = new 
ITypeTraits[buddyBTreeFields.length];
         IBinaryComparatorFactory[] buddyBtreeCmpFactories = new 
IBinaryComparatorFactory[buddyBTreeFields.length];
         for (int i = 0; i < buddyBtreeTypeTraits.length; i++) {

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMComponentIdGeneratorFactory.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMComponentIdGeneratorFactory.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMComponentIdGeneratorFactory.java
index c0f530b..4ec82c1 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMComponentIdGeneratorFactory.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMComponentIdGeneratorFactory.java
@@ -21,9 +21,11 @@ package org.apache.hyracks.storage.am.lsm.common.api;
 import java.io.Serializable;
 
 import org.apache.hyracks.api.application.INCServiceContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.common.IResource;
 
 @FunctionalInterface
 public interface ILSMComponentIdGeneratorFactory extends Serializable {
-
-    ILSMComponentIdGenerator getComponentIdGenerator(INCServiceContext 
serviceCtx);
+    ILSMComponentIdGenerator getComponentIdGenerator(INCServiceContext 
serviceCtx, IResource resource)
+            throws HyracksDataException;
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationCallbackFactory.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationCallbackFactory.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationCallbackFactory.java
index a9dc50e..e8742b5 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationCallbackFactory.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMIOOperationCallbackFactory.java
@@ -21,14 +21,16 @@ package org.apache.hyracks.storage.am.lsm.common.api;
 import java.io.Serializable;
 
 import org.apache.hyracks.api.application.INCServiceContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.common.IResource;
 
 public interface ILSMIOOperationCallbackFactory extends Serializable {
     /**
-     * Initialize the callback factory with the given ncCtx
+     * Initialize the callback factory with the given ncCtx and resource
      *
      * @param ncCtx
      */
-    void initialize(INCServiceContext ncCtx);
+    void initialize(INCServiceContext ncCtx, IResource resource);
 
-    ILSMIOOperationCallback createIoOpCallback(ILSMIndex index);
+    ILSMIOOperationCallback createIoOpCallback(ILSMIndex index) throws 
HyracksDataException;
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerFactory.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerFactory.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerFactory.java
index 217f794..ef22620 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerFactory.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMOperationTrackerFactory.java
@@ -21,8 +21,10 @@ package org.apache.hyracks.storage.am.lsm.common.api;
 import java.io.Serializable;
 
 import org.apache.hyracks.api.application.INCServiceContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.common.IResource;
 
 @FunctionalInterface
 public interface ILSMOperationTrackerFactory extends Serializable {
-    ILSMOperationTracker getOperationTracker(INCServiceContext ctx);
+    ILSMOperationTracker getOperationTracker(INCServiceContext ctx, IResource 
resource) throws HyracksDataException;
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/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 6c1ef55..5a95af0 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
@@ -112,7 +112,7 @@ public abstract class AbstractLSMIndex implements ILSMIndex 
{
             ILSMIOOperationCallbackFactory ioOpCallbackFactory, 
ILSMDiskComponentFactory componentFactory,
             ILSMDiskComponentFactory bulkLoadComponentFactory, 
ILSMComponentFilterFrameFactory filterFrameFactory,
             LSMComponentFilterManager filterManager, int[] filterFields, 
boolean durable,
-            IComponentFilterHelper filterHelper, int[] treeFields, ITracer 
tracer) {
+            IComponentFilterHelper filterHelper, int[] treeFields, ITracer 
tracer) throws HyracksDataException {
         this.ioManager = ioManager;
         this.virtualBufferCaches = virtualBufferCaches;
         this.diskBufferCache = diskBufferCache;
@@ -146,7 +146,7 @@ public abstract class AbstractLSMIndex implements ILSMIndex 
{
             double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, 
ILSMOperationTracker opTracker,
             ILSMIOOperationScheduler ioScheduler, 
ILSMIOOperationCallbackFactory ioOpCallbackFactory,
             ILSMDiskComponentFactory componentFactory, 
ILSMDiskComponentFactory bulkLoadComponentFactory,
-            boolean durable, ITracer tracer) {
+            boolean durable, ITracer tracer) throws HyracksDataException {
         this.ioManager = ioManager;
         this.diskBufferCache = diskBufferCache;
         this.fileManager = fileManager;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentIdGeneratorFactory.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentIdGeneratorFactory.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentIdGeneratorFactory.java
index 728c90a..d288ec8 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentIdGeneratorFactory.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMComponentIdGeneratorFactory.java
@@ -22,6 +22,7 @@ package org.apache.hyracks.storage.am.lsm.common.impls;
 import org.apache.hyracks.api.application.INCServiceContext;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentIdGenerator;
 import 
org.apache.hyracks.storage.am.lsm.common.api.ILSMComponentIdGeneratorFactory;
+import org.apache.hyracks.storage.common.IResource;
 
 /**
  * A default implementation of {@link ILSMComponentIdGeneratorFactory}.
@@ -32,7 +33,7 @@ public class LSMComponentIdGeneratorFactory implements 
ILSMComponentIdGeneratorF
     private static final long serialVersionUID = 1L;
 
     @Override
-    public ILSMComponentIdGenerator getComponentIdGenerator(INCServiceContext 
serviceCtx) {
+    public ILSMComponentIdGenerator getComponentIdGenerator(INCServiceContext 
serviceCtx, IResource resource) {
         return new LSMComponentIdGenerator();
     }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpIOOperationCallbackFactory.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpIOOperationCallbackFactory.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpIOOperationCallbackFactory.java
index 3a58c19..eec2dca 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpIOOperationCallbackFactory.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpIOOperationCallbackFactory.java
@@ -29,6 +29,7 @@ import 
org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallback;
 import 
org.apache.hyracks.storage.am.lsm.common.api.ILSMIOOperationCallbackFactory;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndex;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMMemoryComponent;
+import org.apache.hyracks.storage.common.IResource;
 
 public enum NoOpIOOperationCallbackFactory implements 
ILSMIOOperationCallbackFactory {
     INSTANCE;
@@ -39,7 +40,7 @@ public enum NoOpIOOperationCallbackFactory implements 
ILSMIOOperationCallbackFac
     }
 
     @Override
-    public void initialize(INCServiceContext ncCtx) {
+    public void initialize(INCServiceContext ncCtx, IResource resource) {
         // No op
     }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerFactory.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerFactory.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerFactory.java
index 55a2164..8d8e763 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerFactory.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/NoOpOperationTrackerFactory.java
@@ -25,6 +25,7 @@ import 
org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker;
 import 
org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory;
 import org.apache.hyracks.storage.am.lsm.common.api.LSMOperationType;
 import org.apache.hyracks.storage.common.IModificationOperationCallback;
+import org.apache.hyracks.storage.common.IResource;
 import org.apache.hyracks.storage.common.ISearchOperationCallback;
 
 /**
@@ -43,7 +44,7 @@ public class NoOpOperationTrackerFactory implements 
ILSMOperationTrackerFactory
     }
 
     @Override
-    public ILSMOperationTracker getOperationTracker(INCServiceContext ctx) {
+    public ILSMOperationTracker getOperationTracker(INCServiceContext ctx, 
IResource resource) {
         return tracker;
     }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerFactory.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerFactory.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerFactory.java
index d01e7ba..6c17ee8 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerFactory.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/ThreadCountingOperationTrackerFactory.java
@@ -21,6 +21,7 @@ package org.apache.hyracks.storage.am.lsm.common.impls;
 import org.apache.hyracks.api.application.INCServiceContext;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTracker;
 import 
org.apache.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerFactory;
+import org.apache.hyracks.storage.common.IResource;
 
 public class ThreadCountingOperationTrackerFactory implements 
ILSMOperationTrackerFactory {
 
@@ -32,7 +33,7 @@ public class ThreadCountingOperationTrackerFactory implements 
ILSMOperationTrack
     }
 
     @Override
-    public ILSMOperationTracker getOperationTracker(INCServiceContext ctx) {
+    public ILSMOperationTracker getOperationTracker(INCServiceContext ctx, 
IResource resource) {
         return new ThreadCountingTracker();
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexLocalResource.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexLocalResource.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexLocalResource.java
index a45f006..4eb7728 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexLocalResource.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/LSMInvertedIndexLocalResource.java
@@ -87,19 +87,19 @@ public class LSMInvertedIndexLocalResource extends 
LsmResource {
         IBufferCache bufferCache = storageManager.getBufferCache(serviceCtx);
         ILSMMergePolicy mergePolicy = 
mergePolicyFactory.createMergePolicy(mergePolicyProperties, serviceCtx);
         ILSMIOOperationScheduler ioScheduler = 
ioSchedulerProvider.getIoScheduler(serviceCtx);
-        ioOpCallbackFactory.initialize(serviceCtx);
+        ioOpCallbackFactory.initialize(serviceCtx, this);
         if (isPartitioned) {
             return 
InvertedIndexUtils.createPartitionedLSMInvertedIndex(ioManager, 
virtualBufferCaches, typeTraits,
                     cmpFactories, tokenTypeTraits, tokenCmpFactories, 
tokenizerFactory, bufferCache,
                     file.getAbsolutePath(), bloomFilterFalsePositiveRate, 
mergePolicy,
-                    opTrackerProvider.getOperationTracker(serviceCtx), 
ioScheduler, ioOpCallbackFactory,
+                    opTrackerProvider.getOperationTracker(serviceCtx, this), 
ioScheduler, ioOpCallbackFactory,
                     invertedIndexFields, filterTypeTraits, filterCmpFactories, 
filterFields,
                     filterFieldsForNonBulkLoadOps, 
invertedIndexFieldsForNonBulkLoadOps, durable,
                     metadataPageManagerFactory);
         } else {
             return InvertedIndexUtils.createLSMInvertedIndex(ioManager, 
virtualBufferCaches, typeTraits, cmpFactories,
                     tokenTypeTraits, tokenCmpFactories, tokenizerFactory, 
bufferCache, file.getAbsolutePath(),
-                    bloomFilterFalsePositiveRate, mergePolicy, 
opTrackerProvider.getOperationTracker(serviceCtx),
+                    bloomFilterFalsePositiveRate, mergePolicy, 
opTrackerProvider.getOperationTracker(serviceCtx, this),
                     ioScheduler, ioOpCallbackFactory, invertedIndexFields, 
filterTypeTraits, filterCmpFactories,
                     filterFields, filterFieldsForNonBulkLoadOps, 
invertedIndexFieldsForNonBulkLoadOps, durable,
                     metadataPageManagerFactory);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeLocalResource.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeLocalResource.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeLocalResource.java
index 9960590..f72e17c 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeLocalResource.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/ExternalRTreeLocalResource.java
@@ -66,13 +66,13 @@ public class ExternalRTreeLocalResource extends 
LSMRTreeLocalResource {
     public IIndex createInstance(INCServiceContext ncServiceCtx) throws 
HyracksDataException {
         IIOManager ioManager = ncServiceCtx.getIoManager();
         FileReference fileRef = ioManager.resolve(path);
-        ioOpCallbackFactory.initialize(ncServiceCtx);
+        ioOpCallbackFactory.initialize(ncServiceCtx, this);
         return LSMRTreeUtils.createExternalRTree(ioManager, fileRef, 
storageManager.getBufferCache(ncServiceCtx),
                 typeTraits, cmpFactories, btreeCmpFactories, 
valueProviderFactories, rtreePolicyType,
                 bloomFilterFalsePositiveRate, 
mergePolicyFactory.createMergePolicy(mergePolicyProperties, ncServiceCtx),
-                opTrackerProvider.getOperationTracker(ncServiceCtx), 
ioSchedulerProvider.getIoScheduler(ncServiceCtx),
-                ioOpCallbackFactory, linearizeCmpFactory, buddyBTreeFields, 
durable, isPointMBR,
-                metadataPageManagerFactory, ncServiceCtx.getTracer());
+                opTrackerProvider.getOperationTracker(ncServiceCtx, this),
+                ioSchedulerProvider.getIoScheduler(ncServiceCtx), 
ioOpCallbackFactory, linearizeCmpFactory,
+                buddyBTreeFields, durable, isPointMBR, 
metadataPageManagerFactory, ncServiceCtx.getTracer());
 
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeLocalResource.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeLocalResource.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeLocalResource.java
index f6396cf..634504b 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeLocalResource.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeLocalResource.java
@@ -83,13 +83,14 @@ public class LSMRTreeLocalResource extends LsmResource {
         IIOManager ioManager = ncServiceCtx.getIoManager();
         FileReference fileRef = ioManager.resolve(path);
         List<IVirtualBufferCache> virtualBufferCaches = 
vbcProvider.getVirtualBufferCaches(ncServiceCtx, fileRef);
-        ioOpCallbackFactory.initialize(ncServiceCtx);
+        ioOpCallbackFactory.initialize(ncServiceCtx, this);
         return LSMRTreeUtils.createLSMTree(ioManager, virtualBufferCaches, 
fileRef,
                 storageManager.getBufferCache(ncServiceCtx), typeTraits, 
cmpFactories, btreeCmpFactories,
                 valueProviderFactories, rtreePolicyType, 
bloomFilterFalsePositiveRate,
                 mergePolicyFactory.createMergePolicy(mergePolicyProperties, 
ncServiceCtx),
-                opTrackerProvider.getOperationTracker(ncServiceCtx), 
ioSchedulerProvider.getIoScheduler(ncServiceCtx),
-                ioOpCallbackFactory, linearizeCmpFactory, rtreeFields, 
buddyBTreeFields, filterTypeTraits,
-                filterCmpFactories, filterFields, durable, isPointMBR, 
metadataPageManagerFactory);
+                opTrackerProvider.getOperationTracker(ncServiceCtx, this),
+                ioSchedulerProvider.getIoScheduler(ncServiceCtx), 
ioOpCallbackFactory, linearizeCmpFactory, rtreeFields,
+                buddyBTreeFields, filterTypeTraits, filterCmpFactories, 
filterFields, durable, isPointMBR,
+                metadataPageManagerFactory);
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeWithAntiMatterLocalResource.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeWithAntiMatterLocalResource.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeWithAntiMatterLocalResource.java
index f586d51..f91a5f7 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeWithAntiMatterLocalResource.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/dataflow/LSMRTreeWithAntiMatterLocalResource.java
@@ -78,12 +78,12 @@ public class LSMRTreeWithAntiMatterLocalResource extends 
LsmResource {
         IIOManager ioManager = serviceCtx.getIoManager();
         FileReference file = ioManager.resolve(path);
         List<IVirtualBufferCache> virtualBufferCaches = 
vbcProvider.getVirtualBufferCaches(serviceCtx, file);
-        ioOpCallbackFactory.initialize(serviceCtx);
+        ioOpCallbackFactory.initialize(serviceCtx, this);
         return LSMRTreeUtils.createLSMTreeWithAntiMatterTuples(ioManager, 
virtualBufferCaches, file,
                 storageManager.getBufferCache(serviceCtx), typeTraits, 
cmpFactories, btreeComparatorFactories,
                 valueProviderFactories, rtreePolicyType,
                 mergePolicyFactory.createMergePolicy(mergePolicyProperties, 
serviceCtx),
-                opTrackerProvider.getOperationTracker(serviceCtx), 
ioSchedulerProvider.getIoScheduler(serviceCtx),
+                opTrackerProvider.getOperationTracker(serviceCtx, this), 
ioSchedulerProvider.getIoScheduler(serviceCtx),
                 ioOpCallbackFactory, linearizeCmpFactory, rtreeFields, 
filterTypeTraits, filterCmpFactories,
                 filterFields, durable, isPointMBR, metadataPageManagerFactory);
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/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 aac8905..ee37043 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
@@ -127,7 +127,7 @@ public abstract class AbstractLSMRTree extends 
AbstractLSMIndex implements ITree
             ILinearizeComparatorFactory linearizer, int[] comparatorFields, 
IBinaryComparatorFactory[] linearizerArray,
             double bloomFilterFalsePositiveRate, ILSMMergePolicy mergePolicy, 
ILSMOperationTracker opTracker,
             ILSMIOOperationScheduler ioScheduler, 
ILSMIOOperationCallbackFactory ioOpCallbackFactory, boolean durable,
-            boolean isPointMBR, ITracer tracer) {
+            boolean isPointMBR, ITracer tracer) throws HyracksDataException {
         super(ioManager, diskBufferCache, fileManager, 
bloomFilterFalsePositiveRate, mergePolicy, opTracker,
                 ioScheduler, ioOpCallbackFactory, componentFactory, 
componentFactory, durable, tracer);
         this.rtreeInteriorFrameFactory = rtreeInteriorFrameFactory;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java
index e23a83e..f29bffc 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java
@@ -87,7 +87,7 @@ public class ExternalRTree extends LSMRTree implements 
ITwoPCIndex {
             int[] comparatorFields, IBinaryComparatorFactory[] 
linearizerArray, ILSMMergePolicy mergePolicy,
             ILSMOperationTracker opTracker, ILSMIOOperationScheduler 
ioScheduler,
             ILSMIOOperationCallbackFactory ioOpCallbackFactory, int[] 
buddyBTreeFields, boolean durable,
-            boolean isPointMBR, ITracer tracer) {
+            boolean isPointMBR, ITracer tracer) throws HyracksDataException {
         super(ioManager, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, 
btreeInteriorFrameFactory,
                 btreeLeafFrameFactory, diskBufferCache, fileNameManager, 
componentFactory, bloomFilterFalsePositiveRate,
                 rtreeCmpFactories, btreeCmpFactories, linearizer, 
comparatorFields, linearizerArray, mergePolicy,

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
index 123b38d..7172b74 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
@@ -100,7 +100,7 @@ public class LSMRTree extends AbstractLSMRTree {
             int[] comparatorFields, IBinaryComparatorFactory[] 
linearizerArray, ILSMMergePolicy mergePolicy,
             ILSMOperationTracker opTracker, ILSMIOOperationScheduler 
ioScheduler,
             ILSMIOOperationCallbackFactory ioOpCallbackFactory, int[] 
buddyBTreeFields, boolean durable,
-            boolean isPointMBR, ITracer tracer) {
+            boolean isPointMBR, ITracer tracer) throws HyracksDataException {
         super(ioManager, rtreeInteriorFrameFactory, rtreeLeafFrameFactory, 
btreeInteriorFrameFactory,
                 btreeLeafFrameFactory, diskBufferCache, fileNameManager, 
componentFactory, rtreeCmpFactories,
                 btreeCmpFactories, linearizer, comparatorFields, 
linearizerArray, bloomFilterFalsePositiveRate,

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/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 1af6779..9f17efa 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
@@ -49,7 +49,7 @@ public class LSMBTreeModificationOperationCallbackTest 
extends AbstractModificat
                 harness.getFileReference(), harness.getDiskBufferCache(), 
SerdeUtils.serdesToTypeTraits(keySerdes),
                 SerdeUtils.serdesToComparatorFactories(keySerdes, 
keySerdes.length), bloomFilterKeyFields,
                 harness.getBoomFilterFalsePositiveRate(), 
harness.getMergePolicy(),
-                
NoOpOperationTrackerFactory.INSTANCE.getOperationTracker(null), 
harness.getIOScheduler(),
+                NoOpOperationTrackerFactory.INSTANCE.getOperationTracker(null, 
null), harness.getIOScheduler(),
                 harness.getIOOperationCallbackFactory(), true, null, null, 
null, null, true,
                 harness.getMetadataPageManagerFactory(), false, ITracer.NONE);
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/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 0904806..77d52bb 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
@@ -59,7 +59,7 @@ public class LSMBTreeSearchOperationCallbackTest extends 
AbstractSearchOperation
                 harness.getFileReference(), harness.getDiskBufferCache(), 
SerdeUtils.serdesToTypeTraits(keySerdes),
                 SerdeUtils.serdesToComparatorFactories(keySerdes, 
keySerdes.length), bloomFilterKeyFields,
                 harness.getBoomFilterFalsePositiveRate(), 
harness.getMergePolicy(),
-                
NoOpOperationTrackerFactory.INSTANCE.getOperationTracker(null), 
harness.getIOScheduler(),
+                NoOpOperationTrackerFactory.INSTANCE.getOperationTracker(null, 
null), harness.getIOScheduler(),
                 harness.getIOOperationCallbackFactory(), true, null, null, 
null, null, true,
                 harness.getMetadataPageManagerFactory(), false, ITracer.NONE);
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/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 ccbaa9c..d42c3b6 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
@@ -71,7 +71,7 @@ public class LSMBTreeUpdateInPlaceTest extends 
AbstractOperationCallbackTest {
                 harness.getFileReference(), harness.getDiskBufferCache(), 
SerdeUtils.serdesToTypeTraits(keySerdes),
                 SerdeUtils.serdesToComparatorFactories(keySerdes, 
keySerdes.length), bloomFilterKeyFields,
                 harness.getBoomFilterFalsePositiveRate(), 
harness.getMergePolicy(),
-                
NoOpOperationTrackerFactory.INSTANCE.getOperationTracker(null), 
harness.getIOScheduler(),
+                NoOpOperationTrackerFactory.INSTANCE.getOperationTracker(null, 
null), harness.getIOScheduler(),
                 harness.getIOOperationCallbackFactory(), true, null, null, 
null, null, true,
                 harness.getMetadataPageManagerFactory(), true, ITracer.NONE);
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2f934e31/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeLocalResource.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/TestLsmBtreeLocalResource.java
 
b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeLocalResource.java
index 9b53120..3ce24b0 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeLocalResource.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeLocalResource.java
@@ -67,11 +67,11 @@ public class TestLsmBtreeLocalResource extends 
LSMBTreeLocalResource {
                 vbcs.add(i, new TestVirtualBufferCache(vbc));
             }
         }
-        ioOpCallbackFactory.initialize(serviceCtx);
+        ioOpCallbackFactory.initialize(serviceCtx, this);
         return TestLsmBtreeUtil.createLSMTree(ioManager, vbcs, file, 
storageManager.getBufferCache(serviceCtx),
                 typeTraits, cmpFactories, bloomFilterKeyFields, 
bloomFilterFalsePositiveRate,
                 mergePolicyFactory.createMergePolicy(mergePolicyProperties, 
serviceCtx),
-                opTrackerProvider.getOperationTracker(serviceCtx), 
ioSchedulerProvider.getIoScheduler(serviceCtx),
+                opTrackerProvider.getOperationTracker(serviceCtx, this), 
ioSchedulerProvider.getIoScheduler(serviceCtx),
                 ioOpCallbackFactory, isPrimary, filterTypeTraits, 
filterCmpFactories, btreeFields, filterFields,
                 durable, metadataPageManagerFactory, false, 
serviceCtx.getTracer());
     }

Reply via email to