added IFileMappingProviderProvider for use in btree ops
git-svn-id: https://hyracks.googlecode.com/svn/trunk/hyracks@130 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks-examples/hyracks-integration-tests/src/test/java/edu/uci/ics/hyracks/tests/btree/BTreeOperatorsTest.java b/hyracks-examples/hyracks-integration-tests/src/test/java/edu/uci/ics/hyracks/tests/btree/BTreeOperatorsTest.java
index 38c2899..0869b10 100644
--- a/hyracks-examples/hyracks-integration-tests/src/test/java/edu/uci/ics/hyracks/tests/btree/BTreeOperatorsTest.java
+++ b/hyracks-examples/hyracks-integration-tests/src/test/java/edu/uci/ics/hyracks/tests/btree/BTreeOperatorsTest.java
@@ -59,10 +59,11 @@
import edu.uci.ics.hyracks.storage.am.btree.dataflow.BTreeRegistryProvider;
import edu.uci.ics.hyracks.storage.am.btree.dataflow.BTreeSearchOperatorDescriptor;
import edu.uci.ics.hyracks.storage.am.btree.dataflow.BufferCacheProvider;
-import edu.uci.ics.hyracks.storage.am.btree.dataflow.FileMappingProvider;
+import edu.uci.ics.hyracks.storage.am.btree.dataflow.FileMappingProviderProvider;
import edu.uci.ics.hyracks.storage.am.btree.dataflow.FrameTupleReferenceFactory;
import edu.uci.ics.hyracks.storage.am.btree.dataflow.IBTreeRegistryProvider;
import edu.uci.ics.hyracks.storage.am.btree.dataflow.IBufferCacheProvider;
+import edu.uci.ics.hyracks.storage.am.btree.dataflow.IFileMappingProviderProvider;
import edu.uci.ics.hyracks.storage.am.btree.dataflow.ITupleReferenceFactory;
import edu.uci.ics.hyracks.storage.am.btree.frames.MetaDataFrame;
import edu.uci.ics.hyracks.storage.am.btree.frames.NSMInteriorFrameFactory;
@@ -75,7 +76,6 @@
import edu.uci.ics.hyracks.storage.common.buffercache.IBufferCache;
import edu.uci.ics.hyracks.storage.common.file.FileInfo;
import edu.uci.ics.hyracks.storage.common.file.FileManager;
-import edu.uci.ics.hyracks.storage.common.file.IFileMappingProvider;
import edu.uci.ics.hyracks.tests.integration.AbstractIntegrationTest;
public class BTreeOperatorsTest extends AbstractIntegrationTest {
@@ -118,7 +118,7 @@
IBufferCacheProvider bufferCacheProvider = new BufferCacheProvider();
IBTreeRegistryProvider btreeRegistryProvider = new BTreeRegistryProvider();
- IFileMappingProvider fileMappingProvider = new FileMappingProvider();
+ IFileMappingProviderProvider fileMappingProviderProvider = new FileMappingProviderProvider();
int fieldCount = 3;
int keyFieldCount = 1;
@@ -127,7 +127,7 @@
int[] fieldPermutation = { 0, 4, 5 };
- BTreeBulkLoadOperatorDescriptor btreeBulkLoad = new BTreeBulkLoadOperatorDescriptor(spec, ordersSplitProvider, ordersDesc, bufferCacheProvider, btreeRegistryProvider, "btreetest.bin", fileMappingProvider, interiorFrameFactory, leafFrameFactory, fieldCount, comparatorFactories, fieldPermutation, 0.7f);
+ BTreeBulkLoadOperatorDescriptor btreeBulkLoad = new BTreeBulkLoadOperatorDescriptor(spec, ordersSplitProvider, ordersDesc, bufferCacheProvider, btreeRegistryProvider, "btreetest.bin", fileMappingProviderProvider, interiorFrameFactory, leafFrameFactory, fieldCount, comparatorFactories, fieldPermutation, 0.7f);
PartitionConstraint btreePartitionConstraintA = new ExplicitPartitionConstraint(new LocationConstraint[] { new AbsoluteLocationConstraint(NC1_ID) });
btreeBulkLoad.setPartitionConstraint(btreePartitionConstraintA);
@@ -225,18 +225,17 @@
IBufferCacheProvider bufferCacheProvider = new BufferCacheProvider();
IBTreeRegistryProvider btreeRegistryProvider = new BTreeRegistryProvider();
- IFileMappingProvider fileMappingProvider = new FileMappingProvider();
+ IFileMappingProviderProvider fileMappingProviderProvider = new FileMappingProviderProvider();
RecordDescriptor recDesc = new RecordDescriptor(
new ISerializerDeserializer[] { UTF8StringSerializerDeserializer.INSTANCE, UTF8StringSerializerDeserializer.INSTANCE, UTF8StringSerializerDeserializer.INSTANCE });
// TODO: hacky, manually adding file
- String ncDataPath = System.getProperty("NodeControllerDataPath");
- String fileName = ncDataPath + "btreetest.bin";
- int blubb = fileMappingProvider.mapNameToFileId(fileName, true);
- System.out.println("BLUBB: " + blubb + " " + fileName);
+ //String ncDataPath = System.getProperty("NodeControllerDataPath");
+ //String fileName = ncDataPath + "btreetest.bin";
+ //int blubb = fileMappingProviderProvider.getFileMappingProvider().mapNameToFileId(fileName, true);
- BTreeSearchOperatorDescriptor btreeSearchOp = new BTreeSearchOperatorDescriptor(spec, splitProvider, recDesc, bufferCacheProvider, btreeRegistryProvider, "btreetest.bin", fileMappingProvider, interiorFrameFactory, leafFrameFactory, fieldCount, comparatorFactories, true, searchKeys, comparatorFactories.length);
+ BTreeSearchOperatorDescriptor btreeSearchOp = new BTreeSearchOperatorDescriptor(spec, splitProvider, recDesc, bufferCacheProvider, btreeRegistryProvider, "btreetest.bin", fileMappingProviderProvider, interiorFrameFactory, leafFrameFactory, fieldCount, comparatorFactories, true, searchKeys, comparatorFactories.length);
//BTreeDiskOrderScanOperatorDescriptor btreeSearchOp = new BTreeDiskOrderScanOperatorDescriptor(spec, splitProvider, recDesc, bufferCacheProvider, btreeRegistryProvider, 0, "btreetest.bin", interiorFrameFactory, leafFrameFactory, cmp);
PartitionConstraint btreePartitionConstraint = new ExplicitPartitionConstraint(new LocationConstraint[] { new AbsoluteLocationConstraint(NC1_ID) });
@@ -325,10 +324,10 @@
IBufferCache bufferCache = bufferCacheProvider.getBufferCache();
BTreeRegistry btreeRegistry = btreeRegistryProvider.getBTreeRegistry();
FileManager fileManager = bufferCacheProvider.getFileManager();
- IFileMappingProvider fileMappingProvider = new FileMappingProvider();
+ IFileMappingProviderProvider fileMappingProviderProvider = new FileMappingProviderProvider();
// primary index
- int fileIdA = fileMappingProvider.mapNameToFileId("/tmp/btreetestA.ix", true);
+ int fileIdA = fileMappingProviderProvider.getFileMappingProvider().mapNameToFileId("/tmp/btreetestA.ix", true);
File fA = new File("/tmp/btreetestA.ix");
RandomAccessFile rafA = new RandomAccessFile(fA, "rw");
FileInfo fiA = new FileInfo(fileIdA, rafA);
@@ -339,7 +338,7 @@
btreeRegistry.register(fileIdA, btreeA);
// first secondary index
- int fileIdB = fileMappingProvider.mapNameToFileId("/tmp/btreetestB.ix", true);
+ int fileIdB = fileMappingProviderProvider.getFileMappingProvider().mapNameToFileId("/tmp/btreetestB.ix", true);
File fB = new File("/tmp/btreetestB.ix");
RandomAccessFile rafB = new RandomAccessFile(fB, "rw");
FileInfo fiB = new FileInfo(fileIdB, rafB);
@@ -350,7 +349,7 @@
btreeRegistry.register(fileIdB, btreeB);
// second secondary index
- int fileIdC = fileMappingProvider.mapNameToFileId("/tmp/btreetestC.ix", true);
+ int fileIdC = fileMappingProviderProvider.getFileMappingProvider().mapNameToFileId("/tmp/btreetestC.ix", true);
File fC = new File("/tmp/btreetestC.ix");
RandomAccessFile rafC = new RandomAccessFile(fC, "rw");
FileInfo fiC = new FileInfo(fileIdC, rafC);
@@ -364,19 +363,19 @@
// primary index
int[] fieldPermutationA = { 0,1,2,3,4,5 };
- BTreeInsertUpdateDeleteOperatorDescriptor insertOpA = new BTreeInsertUpdateDeleteOperatorDescriptor(spec, ordersSplitProvider, ordersDesc, bufferCacheProvider, btreeRegistryProvider, "btreetestA.ix", fileMappingProvider, interiorFrameFactory, leafFrameFactory, primaryFieldCount, primaryComparatorFactories, fieldPermutationA, BTreeOp.BTO_INSERT);
+ BTreeInsertUpdateDeleteOperatorDescriptor insertOpA = new BTreeInsertUpdateDeleteOperatorDescriptor(spec, ordersSplitProvider, ordersDesc, bufferCacheProvider, btreeRegistryProvider, "btreetestA.ix", fileMappingProviderProvider, interiorFrameFactory, leafFrameFactory, primaryFieldCount, primaryComparatorFactories, fieldPermutationA, BTreeOp.BTO_INSERT);
PartitionConstraint insertPartitionConstraintA = new ExplicitPartitionConstraint(new LocationConstraint[] { new AbsoluteLocationConstraint(NC1_ID) });
insertOpA.setPartitionConstraint(insertPartitionConstraintA);
// first secondary index
int[] fieldPermutationB = { 3, 0 };
- BTreeInsertUpdateDeleteOperatorDescriptor insertOpB = new BTreeInsertUpdateDeleteOperatorDescriptor(spec, ordersSplitProvider, ordersDesc, bufferCacheProvider, btreeRegistryProvider, "btreetestB.ix", fileMappingProvider, interiorFrameFactory, leafFrameFactory, secondaryFieldCount, secondaryComparatorFactories, fieldPermutationB, BTreeOp.BTO_INSERT);
+ BTreeInsertUpdateDeleteOperatorDescriptor insertOpB = new BTreeInsertUpdateDeleteOperatorDescriptor(spec, ordersSplitProvider, ordersDesc, bufferCacheProvider, btreeRegistryProvider, "btreetestB.ix", fileMappingProviderProvider, interiorFrameFactory, leafFrameFactory, secondaryFieldCount, secondaryComparatorFactories, fieldPermutationB, BTreeOp.BTO_INSERT);
PartitionConstraint insertPartitionConstraintB = new ExplicitPartitionConstraint(new LocationConstraint[] { new AbsoluteLocationConstraint(NC1_ID) });
insertOpB.setPartitionConstraint(insertPartitionConstraintB);
// second secondary index
int[] fieldPermutationC = { 4, 0 };
- BTreeInsertUpdateDeleteOperatorDescriptor insertOpC = new BTreeInsertUpdateDeleteOperatorDescriptor(spec, ordersSplitProvider, ordersDesc, bufferCacheProvider, btreeRegistryProvider, "btreetestC.ix", fileMappingProvider, interiorFrameFactory, leafFrameFactory, secondaryFieldCount, secondaryComparatorFactories, fieldPermutationC, BTreeOp.BTO_INSERT);
+ BTreeInsertUpdateDeleteOperatorDescriptor insertOpC = new BTreeInsertUpdateDeleteOperatorDescriptor(spec, ordersSplitProvider, ordersDesc, bufferCacheProvider, btreeRegistryProvider, "btreetestC.ix", fileMappingProviderProvider, interiorFrameFactory, leafFrameFactory, secondaryFieldCount, secondaryComparatorFactories, fieldPermutationC, BTreeOp.BTO_INSERT);
PartitionConstraint insertPartitionConstraintC = new ExplicitPartitionConstraint(new LocationConstraint[] { new AbsoluteLocationConstraint(NC1_ID) });
insertOpC.setPartitionConstraint(insertPartitionConstraintC);
diff --git a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/AbstractBTreeOperatorDescriptor.java b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/AbstractBTreeOperatorDescriptor.java
index 8200c82..ccc229c 100644
--- a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/AbstractBTreeOperatorDescriptor.java
+++ b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/AbstractBTreeOperatorDescriptor.java
@@ -29,7 +29,7 @@
private static final long serialVersionUID = 1L;
protected String btreeFileName;
- protected IFileMappingProvider fileMappingProvider;
+ protected IFileMappingProviderProvider fileMappingProviderProvider;
protected int fieldCount;
protected IBinaryComparatorFactory[] comparatorFactories;
@@ -40,10 +40,10 @@
protected IBufferCacheProvider bufferCacheProvider;
protected IBTreeRegistryProvider btreeRegistryProvider;
- public AbstractBTreeOperatorDescriptor(JobSpecification spec, int inputArity, int outputArity, IFileSplitProvider fileSplitProvider, RecordDescriptor recDesc, IBufferCacheProvider bufferCacheProvider, IBTreeRegistryProvider btreeRegistryProvider, String btreeFileName, IFileMappingProvider fileMappingProvider, IBTreeInteriorFrameFactory interiorFactory, IBTreeLeafFrameFactory leafFactory, int fieldCount, IBinaryComparatorFactory[] comparatorFactories) {
+ public AbstractBTreeOperatorDescriptor(JobSpecification spec, int inputArity, int outputArity, IFileSplitProvider fileSplitProvider, RecordDescriptor recDesc, IBufferCacheProvider bufferCacheProvider, IBTreeRegistryProvider btreeRegistryProvider, String btreeFileName, IFileMappingProviderProvider fileMappingProviderProvider, IBTreeInteriorFrameFactory interiorFactory, IBTreeLeafFrameFactory leafFactory, int fieldCount, IBinaryComparatorFactory[] comparatorFactories) {
super(spec, inputArity, outputArity);
this.btreeFileName = btreeFileName;
- this.fileMappingProvider = fileMappingProvider;
+ this.fileMappingProviderProvider = fileMappingProviderProvider;
this.bufferCacheProvider = bufferCacheProvider;
this.btreeRegistryProvider = btreeRegistryProvider;
this.interiorFrameFactory = interiorFactory;
@@ -57,8 +57,8 @@
return btreeFileName;
}
- public IFileMappingProvider getFileMappingProvider() {
- return fileMappingProvider;
+ public IFileMappingProviderProvider getFileMappingProviderProvider() {
+ return fileMappingProviderProvider;
}
public IBinaryComparatorFactory[] getComparatorFactories() {
diff --git a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeBulkLoadOperatorDescriptor.java b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeBulkLoadOperatorDescriptor.java
index 13ded9a..c101a48 100644
--- a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeBulkLoadOperatorDescriptor.java
+++ b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeBulkLoadOperatorDescriptor.java
@@ -25,7 +25,6 @@
import edu.uci.ics.hyracks.dataflow.std.file.IFileSplitProvider;
import edu.uci.ics.hyracks.storage.am.btree.api.IBTreeInteriorFrameFactory;
import edu.uci.ics.hyracks.storage.am.btree.api.IBTreeLeafFrameFactory;
-import edu.uci.ics.hyracks.storage.common.file.IFileMappingProvider;
public class BTreeBulkLoadOperatorDescriptor extends AbstractBTreeOperatorDescriptor {
@@ -38,12 +37,12 @@
IFileSplitProvider fileSplitProvider, RecordDescriptor recDesc,
IBufferCacheProvider bufferCacheProvider,
IBTreeRegistryProvider btreeRegistryProvider,
- String btreeFileName, IFileMappingProvider fileMappingProvider, IBTreeInteriorFrameFactory interiorFactory,
+ String btreeFileName, IFileMappingProviderProvider fileMappingProviderProvider, IBTreeInteriorFrameFactory interiorFactory,
IBTreeLeafFrameFactory leafFactory, int fieldCount,
IBinaryComparatorFactory[] comparatorFactories,
int[] fieldPermutation, float fillFactor) {
super(spec, 1, 0, fileSplitProvider, recDesc, bufferCacheProvider,
- btreeRegistryProvider, btreeFileName, fileMappingProvider, interiorFactory,
+ btreeRegistryProvider, btreeFileName, fileMappingProviderProvider, interiorFactory,
leafFactory, fieldCount, comparatorFactories);
this.fieldPermutation = fieldPermutation;
this.fillFactor = fillFactor;
diff --git a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeDiskOrderScanOperatorDescriptor.java b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeDiskOrderScanOperatorDescriptor.java
index 9d1247f..fa6dba3 100644
--- a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeDiskOrderScanOperatorDescriptor.java
+++ b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeDiskOrderScanOperatorDescriptor.java
@@ -35,11 +35,11 @@
IFileSplitProvider fileSplitProvider, RecordDescriptor recDesc,
IBufferCacheProvider bufferCacheProvider,
IBTreeRegistryProvider btreeRegistryProvider,
- String btreeFileName, IFileMappingProvider fileMappingProvider, IBTreeInteriorFrameFactory interiorFactory,
+ String btreeFileName, IFileMappingProviderProvider fileMappingProviderProvider, IBTreeInteriorFrameFactory interiorFactory,
IBTreeLeafFrameFactory leafFactory,
int fieldCount, IBinaryComparatorFactory[] comparatorFactories) {
super(spec, 0, 1, fileSplitProvider, recDesc, bufferCacheProvider,
- btreeRegistryProvider, btreeFileName, fileMappingProvider, interiorFactory,
+ btreeRegistryProvider, btreeFileName, fileMappingProviderProvider, interiorFactory,
leafFactory, fieldCount, comparatorFactories);
}
diff --git a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeDropOperatorDescriptor.java b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeDropOperatorDescriptor.java
index d597530..fa3a72f 100644
--- a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeDropOperatorDescriptor.java
+++ b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeDropOperatorDescriptor.java
@@ -30,15 +30,15 @@
private String btreeFileName;
private IBufferCacheProvider bufferCacheProvider;
private IBTreeRegistryProvider btreeRegistryProvider;
- private IFileMappingProvider fileMappingProvider;
+ private IFileMappingProviderProvider fileMappingProviderProvider;
public BTreeDropOperatorDescriptor(JobSpecification spec,
IBufferCacheProvider bufferCacheProvider,
IBTreeRegistryProvider btreeRegistryProvider,
- String btreeFileName, IFileMappingProvider fileMappingProvider) {
+ String btreeFileName, IFileMappingProviderProvider fileMappingProviderProvider) {
super(spec, 0, 0);
this.btreeFileName = btreeFileName;
- this.fileMappingProvider = fileMappingProvider;
+ this.fileMappingProviderProvider = fileMappingProviderProvider;
this.bufferCacheProvider = bufferCacheProvider;
this.btreeRegistryProvider = btreeRegistryProvider;
}
@@ -48,6 +48,6 @@
IOperatorEnvironment env,
IRecordDescriptorProvider recordDescProvider, int partition,
int nPartitions) {
- return new BTreeDropOperatorNodePushable(bufferCacheProvider, btreeRegistryProvider, btreeFileName, fileMappingProvider);
+ return new BTreeDropOperatorNodePushable(bufferCacheProvider, btreeRegistryProvider, btreeFileName, fileMappingProviderProvider);
}
}
diff --git a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeDropOperatorNodePushable.java b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeDropOperatorNodePushable.java
index d0b8c40..9903cdf 100644
--- a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeDropOperatorNodePushable.java
+++ b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeDropOperatorNodePushable.java
@@ -7,18 +7,17 @@
import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
import edu.uci.ics.hyracks.storage.common.file.FileManager;
-import edu.uci.ics.hyracks.storage.common.file.IFileMappingProvider;
public class BTreeDropOperatorNodePushable implements IOperatorNodePushable {
private String btreeFileName;
private IBTreeRegistryProvider btreeRegistryProvider;
private IBufferCacheProvider bufferCacheProvider;
- private IFileMappingProvider fileMappingProvider;
+ private IFileMappingProviderProvider fileMappingProviderProvider;
- public BTreeDropOperatorNodePushable(IBufferCacheProvider bufferCacheProvider, IBTreeRegistryProvider btreeRegistryProvider, String btreeFileName, IFileMappingProvider fileMappingProvider) {
+ public BTreeDropOperatorNodePushable(IBufferCacheProvider bufferCacheProvider, IBTreeRegistryProvider btreeRegistryProvider, String btreeFileName, IFileMappingProviderProvider fileMappingProviderProvider) {
this.btreeFileName = btreeFileName;
- this.fileMappingProvider = fileMappingProvider;
+ this.fileMappingProviderProvider = fileMappingProviderProvider;
this.bufferCacheProvider = bufferCacheProvider;
this.btreeRegistryProvider = btreeRegistryProvider;
}
@@ -46,7 +45,7 @@
String ncDataPath = System.getProperty("NodeControllerDataPath");
String fileName = ncDataPath + btreeFileName;
- int btreeFileId = fileMappingProvider.mapNameToFileId(fileName, false);
+ int btreeFileId = fileMappingProviderProvider.getFileMappingProvider().mapNameToFileId(fileName, false);
// unregister btree instance
btreeRegistry.lock();
@@ -63,6 +62,9 @@
if (f.exists()) {
f.delete();
}
+
+ // remove name to id mapping
+ fileMappingProviderProvider.getFileMappingProvider().unmapName(fileName);
}
@Override
diff --git a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeInsertUpdateDeleteOperatorDescriptor.java b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeInsertUpdateDeleteOperatorDescriptor.java
index 9118b96..a33fbc7 100644
--- a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeInsertUpdateDeleteOperatorDescriptor.java
+++ b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeInsertUpdateDeleteOperatorDescriptor.java
@@ -40,12 +40,13 @@
IFileSplitProvider fileSplitProvider, RecordDescriptor recDesc,
IBufferCacheProvider bufferCacheProvider,
IBTreeRegistryProvider btreeRegistryProvider,
- String btreeFileName, IFileMappingProvider fileMappingProvider, IBTreeInteriorFrameFactory interiorFactory,
+ String btreeFileName, IFileMappingProviderProvider fileMappingProviderProvider,
+ IBTreeInteriorFrameFactory interiorFactory,
IBTreeLeafFrameFactory leafFactory, int fieldCount,
IBinaryComparatorFactory[] comparatorFactories,
int[] fieldPermutation, BTreeOp op) {
super(spec, 1, 1, fileSplitProvider, recDesc, bufferCacheProvider,
- btreeRegistryProvider, btreeFileName, fileMappingProvider, interiorFactory,
+ btreeRegistryProvider, btreeFileName, fileMappingProviderProvider, interiorFactory,
leafFactory, fieldCount, comparatorFactories);
this.fieldPermutation = fieldPermutation;
this.op = op;
diff --git a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeOpHelper.java b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeOpHelper.java
index 64cec29..62d4811 100644
--- a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeOpHelper.java
+++ b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeOpHelper.java
@@ -38,7 +38,6 @@
import edu.uci.ics.hyracks.storage.common.buffercache.IBufferCache;
import edu.uci.ics.hyracks.storage.common.file.FileInfo;
import edu.uci.ics.hyracks.storage.common.file.FileManager;
-import edu.uci.ics.hyracks.storage.common.file.IFileMappingProvider;
final class BTreeOpHelper {
private IBTreeInteriorFrame interiorFrame;
@@ -62,12 +61,12 @@
IBufferCache bufferCache = opDesc.getBufferCacheProvider().getBufferCache();
FileManager fileManager = opDesc.getBufferCacheProvider().getFileManager();
- IFileMappingProvider fileMappingProvider = opDesc.getFileMappingProvider();
+ IFileMappingProviderProvider fileMappingProviderProvider = opDesc.getFileMappingProviderProvider();
String ncDataPath = System.getProperty("NodeControllerDataPath");
String fileName = ncDataPath + opDesc.getBtreeFileName();
- btreeFileId = fileMappingProvider.mapNameToFileId(fileName, createBTree);
+ btreeFileId = fileMappingProviderProvider.getFileMappingProvider().mapNameToFileId(fileName, createBTree);
File f = new File(fileName);
if(!f.exists()) {
diff --git a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorDescriptor.java b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorDescriptor.java
index 1e21510..240776c 100644
--- a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorDescriptor.java
+++ b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorDescriptor.java
@@ -35,8 +35,8 @@
private ITupleReferenceFactory[] searchKeys; // create tuples for low and high keys
private int searchKeyFieldCount;
- public BTreeSearchOperatorDescriptor(JobSpecification spec, IFileSplitProvider fileSplitProvider, RecordDescriptor recDesc, IBufferCacheProvider bufferCacheProvider, IBTreeRegistryProvider btreeRegistryProvider, String btreeFileName, IFileMappingProvider fileMappingProvider, IBTreeInteriorFrameFactory interiorFactory, IBTreeLeafFrameFactory leafFactory, int fieldCount, IBinaryComparatorFactory[] comparatorFactories, boolean isForward, ITupleReferenceFactory[] searchKeys, int searchKeyFields) {
- super(spec, 0, 1, fileSplitProvider, recDesc, bufferCacheProvider, btreeRegistryProvider, btreeFileName, fileMappingProvider, interiorFactory, leafFactory, fieldCount, comparatorFactories);
+ public BTreeSearchOperatorDescriptor(JobSpecification spec, IFileSplitProvider fileSplitProvider, RecordDescriptor recDesc, IBufferCacheProvider bufferCacheProvider, IBTreeRegistryProvider btreeRegistryProvider, String btreeFileName, IFileMappingProviderProvider fileMappingProviderProvider, IBTreeInteriorFrameFactory interiorFactory, IBTreeLeafFrameFactory leafFactory, int fieldCount, IBinaryComparatorFactory[] comparatorFactories, boolean isForward, ITupleReferenceFactory[] searchKeys, int searchKeyFields) {
+ super(spec, 0, 1, fileSplitProvider, recDesc, bufferCacheProvider, btreeRegistryProvider, btreeFileName, fileMappingProviderProvider, interiorFactory, leafFactory, fieldCount, comparatorFactories);
this.isForward = isForward;
this.searchKeys = searchKeys;
this.searchKeyFieldCount = searchKeyFields;
diff --git a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/FileMappingProvider.java b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/FileMappingProvider.java
index 0d1b9c1..995ed23 100644
--- a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/FileMappingProvider.java
+++ b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/FileMappingProvider.java
@@ -28,4 +28,9 @@
return val; // just return value
}
}
+
+ @Override
+ public void unmapName(String name) {
+ map.remove(name);
+ }
}
diff --git a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/FileMappingProviderProvider.java b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/FileMappingProviderProvider.java
new file mode 100644
index 0000000..edf1898
--- /dev/null
+++ b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/FileMappingProviderProvider.java
@@ -0,0 +1,17 @@
+package edu.uci.ics.hyracks.storage.am.btree.dataflow;
+
+import edu.uci.ics.hyracks.storage.common.file.IFileMappingProvider;
+
+public class FileMappingProviderProvider implements IFileMappingProviderProvider {
+ private static final long serialVersionUID = 1L;
+
+ private static IFileMappingProvider fileMappingProvider = null;
+
+ @Override
+ public IFileMappingProvider getFileMappingProvider() {
+ if(fileMappingProvider == null) {
+ fileMappingProvider = new FileMappingProvider();
+ }
+ return fileMappingProvider;
+ }
+}
diff --git a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/IFileMappingProviderProvider.java b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/IFileMappingProviderProvider.java
new file mode 100644
index 0000000..b88e058
--- /dev/null
+++ b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/IFileMappingProviderProvider.java
@@ -0,0 +1,9 @@
+package edu.uci.ics.hyracks.storage.am.btree.dataflow;
+
+import java.io.Serializable;
+
+import edu.uci.ics.hyracks.storage.common.file.IFileMappingProvider;
+
+public interface IFileMappingProviderProvider extends Serializable {
+ public IFileMappingProvider getFileMappingProvider();
+}