Allowed the LSM-RTree to use on in-memory buffer cache for both the r-tree and b-tree

git-svn-id: https://hyracks.googlecode.com/svn/branches/hyracks_lsm_tree@975 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks-storage-am-lsmtree-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/common/impls/InMemoryBufferCache.java b/hyracks-storage-am-lsmtree-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/common/impls/InMemoryBufferCache.java
index 72ab9c4..25891dc 100644
--- a/hyracks-storage-am-lsmtree-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/common/impls/InMemoryBufferCache.java
+++ b/hyracks-storage-am-lsmtree-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/common/impls/InMemoryBufferCache.java
@@ -16,7 +16,7 @@
 	
 	private final int pageSize;
 	private final int numPages;
-    private final CachedPage[] cachedPages;
+    protected final CachedPage[] cachedPages;
 
 	//Constructor
 	public InMemoryBufferCache(ICacheMemoryAllocator allocator, int pageSize, int numPages){
diff --git a/hyracks-storage-am-lsmtree-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/common/impls/InMemoryFreePageManager.java b/hyracks-storage-am-lsmtree-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/common/impls/InMemoryFreePageManager.java
index 1f43bc8..5bafedf 100644
--- a/hyracks-storage-am-lsmtree-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/common/impls/InMemoryFreePageManager.java
+++ b/hyracks-storage-am-lsmtree-common/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/common/impls/InMemoryFreePageManager.java
@@ -6,81 +6,79 @@
 import edu.uci.ics.hyracks.storage.am.common.api.ITreeIndexMetaDataFrameFactory;
 import edu.uci.ics.hyracks.storage.am.common.api.PageAllocationException;
 
-public class InMemoryFreePageManager implements IFreePageManager{
-	private final int maxCapacity;
-	private int currentCapacity;
-	private final ITreeIndexMetaDataFrameFactory metaDataFrameFactory;
-	
-	public InMemoryFreePageManager(int maxCapacity, ITreeIndexMetaDataFrameFactory metaDataFrameFactory) {
-		this.maxCapacity = maxCapacity-1; // Since the range of CacheArray in InMemoryBufferCache is 0 ~ maxCapacity-1
-		currentCapacity = 1;
-		this.metaDataFrameFactory = metaDataFrameFactory;
-	}
+public class InMemoryFreePageManager implements IFreePageManager {
+    private final int maxCapacity;
+    protected int currentCapacity;
+    private final ITreeIndexMetaDataFrameFactory metaDataFrameFactory;
 
-	public int getCurrentCapacity() {
-		return currentCapacity;
-	}
-	
-	@Override
-	public synchronized int getFreePage(ITreeIndexMetaDataFrame metaFrame)
-			throws HyracksDataException, PageAllocationException {
-		
-		if(currentCapacity == maxCapacity) {
-			throw new PageAllocationException("In-mem tree capacity reaches max capacity");	
-		}
-		currentCapacity++;
-		return currentCapacity;
-	}
-	
+    public InMemoryFreePageManager(int maxCapacity, ITreeIndexMetaDataFrameFactory metaDataFrameFactory) {
+        this.maxCapacity = maxCapacity - 1; // Since the range of CacheArray in
+                                            // InMemoryBufferCache is 0 ~
+                                            // maxCapacity-1
+        currentCapacity = 1;
+        this.metaDataFrameFactory = metaDataFrameFactory;
+    }
 
-	@Override
-	public void addFreePage(ITreeIndexMetaDataFrame metaFrame, int freePage)
-			throws HyracksDataException {
-		System.out.println("InMemoryFreePageManager.addFreePage()");
-	}
+    public int getCurrentCapacity() {
+        return currentCapacity;
+    }
 
-	@Override
-	public int getMaxPage(ITreeIndexMetaDataFrame metaFrame)
-			throws HyracksDataException {
-		return currentCapacity;
-	}
+    @Override
+    public synchronized int getFreePage(ITreeIndexMetaDataFrame metaFrame) throws HyracksDataException,
+            PageAllocationException {
 
-	@Override
-	public void init(ITreeIndexMetaDataFrame metaFrame, int currentMaxPage)
-			throws HyracksDataException {
-		currentCapacity = 1;
-	}
+        if (currentCapacity == maxCapacity) {
+            throw new PageAllocationException("In-mem tree capacity reaches max capacity");
+        }
+        currentCapacity++;
+        return currentCapacity;
+    }
 
-	@Override
-	public ITreeIndexMetaDataFrameFactory getMetaDataFrameFactory() {
-		return metaDataFrameFactory;
-	}
+    @Override
+    public void addFreePage(ITreeIndexMetaDataFrame metaFrame, int freePage) throws HyracksDataException {
+        System.out.println("InMemoryFreePageManager.addFreePage()");
+    }
 
-	@Override
-	public byte getMetaPageLevelIndicator() {
-		System.out.println("InMemoryFreePageManager.getMetaPageLevelIndicator()");
-		return 0;
-	}
+    @Override
+    public int getMaxPage(ITreeIndexMetaDataFrame metaFrame) throws HyracksDataException {
+        return currentCapacity;
+    }
 
-	@Override
-	public byte getFreePageLevelIndicator() {
-		System.out.println("InMemoryFreePageManager.getFreePageLevelIndicator()");
-		return 0;
-	}
+    @Override
+    public void init(ITreeIndexMetaDataFrame metaFrame, int currentMaxPage) throws HyracksDataException {
+        currentCapacity = 1;
+    }
 
-	@Override
-	public boolean isMetaPage(ITreeIndexMetaDataFrame metaFrame) {
-		System.out.println("InMemoryFreePageManager.isMetaPage()");
-		return false;
-	}
+    @Override
+    public ITreeIndexMetaDataFrameFactory getMetaDataFrameFactory() {
+        return metaDataFrameFactory;
+    }
 
-	@Override
-	public boolean isFreePage(ITreeIndexMetaDataFrame metaFrame) {
-		System.out.println("InMemoryFreePageManager.isFreePage()");
-		return false;
-	}
-	
-	public void reset(){
-		currentCapacity = 1;
-	}
+    @Override
+    public byte getMetaPageLevelIndicator() {
+        System.out.println("InMemoryFreePageManager.getMetaPageLevelIndicator()");
+        return 0;
+    }
+
+    @Override
+    public byte getFreePageLevelIndicator() {
+        System.out.println("InMemoryFreePageManager.getFreePageLevelIndicator()");
+        return 0;
+    }
+
+    @Override
+    public boolean isMetaPage(ITreeIndexMetaDataFrame metaFrame) {
+        System.out.println("InMemoryFreePageManager.isMetaPage()");
+        return false;
+    }
+
+    @Override
+    public boolean isFreePage(ITreeIndexMetaDataFrame metaFrame) {
+        System.out.println("InMemoryFreePageManager.isFreePage()");
+        return false;
+    }
+
+    public void reset() {
+        currentCapacity = 1;
+    }
 }
diff --git a/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTree.java b/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTree.java
index 4583bdc..7fd915f 100644
--- a/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTree.java
+++ b/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTree.java
@@ -43,8 +43,7 @@
     private int btreeFileId;
     private boolean created;
 
-    private final IFreePageManager rtreeMemFreePageManager;
-    private final IFreePageManager btreeMemFreePageManager;
+    private final IFreePageManager memFreePageManager;
     private final ITreeIndexFrameFactory rtreeInteriorFrameFactory;
     private final ITreeIndexFrameFactory btreeInteriorFrameFactory;
     private final ITreeIndexFrameFactory rtreeLeafFrameFactory;
@@ -63,8 +62,8 @@
     private int threadReferenceCounter;
     private boolean flushFlag;
 
-    public LSMRTree(IBufferCache rtreeMemCache, IBufferCache btreeMemCache, IBufferCache bufferCache, int fieldCount, MultiComparator cmp,
-            IFreePageManager rtreeMemFreePageManager, IFreePageManager btreeMemFreePageManager, ITreeIndexFrameFactory rtreeInteriorFrameFactory,
+    public LSMRTree(IBufferCache rtreeMemCache, IBufferCache bufferCache, int fieldCount, MultiComparator cmp,
+            IFreePageManager memFreePageManager, ITreeIndexFrameFactory rtreeInteriorFrameFactory,
             ITreeIndexFrameFactory btreeInteriorFrameFactory, ITreeIndexFrameFactory rtreeLeafFrameFactory,
             ITreeIndexFrameFactory btreeLeafFrameFactory, RTreeFactory rTreeFactory, BTreeFactory bTreeFactory,
             IFileMapManager fileMapManager) {
@@ -74,8 +73,7 @@
         this.btreeInteriorFrameFactory = btreeInteriorFrameFactory;
         this.rtreeLeafFrameFactory = rtreeLeafFrameFactory;
         this.btreeLeafFrameFactory = btreeLeafFrameFactory;
-        this.rtreeMemFreePageManager = rtreeMemFreePageManager;
-        this.btreeMemFreePageManager = btreeMemFreePageManager;
+        this.memFreePageManager = memFreePageManager;
         this.rTreeFactory = rTreeFactory;
         this.bTreeFactory = bTreeFactory;
         this.inDiskRTreeList = new LinkedList<ITreeIndex>();
@@ -99,9 +97,9 @@
             e.printStackTrace();
         }
 
-        memRTree = new RTree(rtreeMemCache, fieldCount, cmp, rtreeMemFreePageManager, rtreeInteriorFrameFactory,
+        memRTree = new RTree(rtreeMemCache, fieldCount, cmp, memFreePageManager, rtreeInteriorFrameFactory,
                 rtreeLeafFrameFactory);
-        memBTree = new BTree(btreeMemCache, fieldCount, cmp, btreeMemFreePageManager, btreeInteriorFrameFactory,
+        memBTree = new BTree(rtreeMemCache, fieldCount, cmp, memFreePageManager, btreeInteriorFrameFactory,
                 btreeLeafFrameFactory);
     }
 
@@ -227,7 +225,8 @@
         // TODO: Close the RTree during cleanup.
         inDiskRTree.open(newDiskRTreeId);
 
-        // // BulkLoad the tuples from the in-memory tree into the new disk RTree.
+        // // BulkLoad the tuples from the in-memory tree into the new disk
+        // RTree.
         IIndexBulkLoadContext rtreeBulkLoadCtx = inDiskRTree.beginBulkLoad(1.0f);
 
         int i = 0;
@@ -244,8 +243,8 @@
         inDiskRTree.endBulkLoad(rtreeBulkLoadCtx);
 
         // scan the BTree
-        ITreeIndexCursor btreeScanCursor = new BTreeRangeSearchCursor((IBTreeLeafFrame) btreeLeafFrameFactory.createFrame(),
-                false);
+        ITreeIndexCursor btreeScanCursor = new BTreeRangeSearchCursor(
+                (IBTreeLeafFrame) btreeLeafFrameFactory.createFrame(), false);
         RangePredicate nullPred = new RangePredicate(true, null, null, true, true, null, null);
         ITreeIndexAccessor memBTreeAccessor = memBTree.createAccessor();
         memBTreeAccessor.search(btreeScanCursor, nullPred);
@@ -295,8 +294,7 @@
     }
 
     public void resetInMemoryTrees() throws HyracksDataException {
-        ((InMemoryFreePageManager) rtreeMemFreePageManager).reset();
-        ((InMemoryFreePageManager) btreeMemFreePageManager).reset();
+        ((InMemoryFreePageManager) memFreePageManager).reset();
         memRTree.create(rtreeFileId);
         memBTree.create(btreeFileId);
     }
@@ -459,10 +457,10 @@
 
         return new LSMTreeOpContext(new LSMRTreeOpContext((RTree.RTreeAccessor) memRTree.createAccessor(),
                 (IRTreeLeafFrame) rtreeLeafFrameFactory.createFrame(),
-                (IRTreeInteriorFrame) rtreeInteriorFrameFactory.createFrame(), rtreeMemFreePageManager
+                (IRTreeInteriorFrame) rtreeInteriorFrameFactory.createFrame(), memFreePageManager
                         .getMetaDataFrameFactory().createFrame(), 8), new LSMBTreeOpContext(
                 (BTree.BTreeAccessor) memBTree.createAccessor(), btreeLeafFrameFactory, btreeInteriorFrameFactory,
-                btreeMemFreePageManager.getMetaDataFrameFactory().createFrame(), cmp));
+                memFreePageManager.getMetaDataFrameFactory().createFrame(), cmp));
     }
 
     private class LSMRTreeAccessor implements ITreeIndexAccessor {
diff --git a/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTreeInMemoryBufferCache.java b/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTreeInMemoryBufferCache.java
new file mode 100644
index 0000000..85c73ae
--- /dev/null
+++ b/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTreeInMemoryBufferCache.java
@@ -0,0 +1,26 @@
+package edu.uci.ics.hyracks.storage.am.lsmtree.rtree.impls;
+
+import edu.uci.ics.hyracks.storage.am.lsmtree.common.impls.InMemoryBufferCache;
+import edu.uci.ics.hyracks.storage.common.buffercache.ICacheMemoryAllocator;
+import edu.uci.ics.hyracks.storage.common.buffercache.ICachedPage;
+import edu.uci.ics.hyracks.storage.common.file.BufferedFileHandle;
+
+public class LSMRTreeInMemoryBufferCache extends InMemoryBufferCache {
+
+    public LSMRTreeInMemoryBufferCache(ICacheMemoryAllocator allocator, int pageSize, int numPages) {
+        super(allocator, pageSize, numPages);
+    }
+
+    @Override
+    public ICachedPage pin(long dpid, boolean newPage) {
+        int pageId = BufferedFileHandle.getPageId(dpid);
+        int fileId = BufferedFileHandle.getFileId(dpid);
+
+        if (pageId == 0 || pageId == 1) {
+            return cachedPages[pageId + 2 * fileId];
+        } else {
+            return cachedPages[pageId];
+        }
+    }
+
+}
diff --git a/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTreeInMemoryBufferCacheFactory.java b/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTreeInMemoryBufferCacheFactory.java
new file mode 100644
index 0000000..ed652d6
--- /dev/null
+++ b/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTreeInMemoryBufferCacheFactory.java
@@ -0,0 +1,26 @@
+package edu.uci.ics.hyracks.storage.am.lsmtree.rtree.impls;
+
+import edu.uci.ics.hyracks.storage.common.buffercache.HeapBufferAllocator;
+import edu.uci.ics.hyracks.storage.common.buffercache.IBufferCache;
+import edu.uci.ics.hyracks.storage.common.buffercache.ICacheMemoryAllocator;
+
+public class LSMRTreeInMemoryBufferCacheFactory {
+	
+	private IBufferCache bufferCache;
+    private final int pageSize;
+    private final int numPages;
+	
+    public LSMRTreeInMemoryBufferCacheFactory(int pageSize, int numPages) {
+    	this.pageSize = pageSize;
+    	this.numPages = numPages;
+        bufferCache = null;
+    }
+    
+    public synchronized IBufferCache createInMemoryBufferCache() {
+        if (bufferCache == null) {
+            ICacheMemoryAllocator allocator = new HeapBufferAllocator();
+            bufferCache = new LSMRTreeInMemoryBufferCache(allocator, pageSize, numPages);
+        }
+        return bufferCache;
+    }
+}
diff --git a/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTreeInMemoryFreePageManager.java b/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTreeInMemoryFreePageManager.java
new file mode 100644
index 0000000..fe68f38
--- /dev/null
+++ b/hyracks-storage-am-lsmtree-rtree/src/main/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/impls/LSMRTreeInMemoryFreePageManager.java
@@ -0,0 +1,23 @@
+package edu.uci.ics.hyracks.storage.am.lsmtree.rtree.impls;
+
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.storage.am.common.api.ITreeIndexMetaDataFrame;
+import edu.uci.ics.hyracks.storage.am.common.api.ITreeIndexMetaDataFrameFactory;
+import edu.uci.ics.hyracks.storage.am.lsmtree.common.impls.InMemoryFreePageManager;
+
+public class LSMRTreeInMemoryFreePageManager extends InMemoryFreePageManager {
+
+    public LSMRTreeInMemoryFreePageManager(int maxCapacity, ITreeIndexMetaDataFrameFactory metaDataFrameFactory) {
+        super(maxCapacity, metaDataFrameFactory);
+        currentCapacity = 3;
+    }
+
+    @Override
+    public void init(ITreeIndexMetaDataFrame metaFrame, int currentMaxPage) throws HyracksDataException {
+        currentCapacity = 3;
+    }
+
+    public void reset() {
+        currentCapacity = 3;
+    }
+}
diff --git a/hyracks-tests/hyracks-storage-am-lsmtree-rtree-test/src/test/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/LSMRTreeTest.java b/hyracks-tests/hyracks-storage-am-lsmtree-rtree-test/src/test/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/LSMRTreeTest.java
index 33349e0..55eed29 100644
--- a/hyracks-tests/hyracks-storage-am-lsmtree-rtree-test/src/test/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/LSMRTreeTest.java
+++ b/hyracks-tests/hyracks-storage-am-lsmtree-rtree-test/src/test/java/edu/uci/ics/hyracks/storage/am/lsmtree/rtree/LSMRTreeTest.java
@@ -33,13 +33,12 @@
 import edu.uci.ics.hyracks.storage.am.common.api.ITreeIndexMetaDataFrameFactory;
 import edu.uci.ics.hyracks.storage.am.common.api.TreeIndexException;
 import edu.uci.ics.hyracks.storage.am.common.frames.LIFOMetaDataFrameFactory;
-import edu.uci.ics.hyracks.storage.am.common.freepage.LinkedListFreePageManager;
 import edu.uci.ics.hyracks.storage.am.common.ophelpers.MultiComparator;
 import edu.uci.ics.hyracks.storage.am.lsmtree.common.impls.FreePageManagerFactory;
-import edu.uci.ics.hyracks.storage.am.lsmtree.common.impls.InMemoryBufferCacheFactory;
-import edu.uci.ics.hyracks.storage.am.lsmtree.common.impls.InMemoryFreePageManager;
 import edu.uci.ics.hyracks.storage.am.lsmtree.rtree.impls.BTreeFactory;
 import edu.uci.ics.hyracks.storage.am.lsmtree.rtree.impls.LSMRTree;
+import edu.uci.ics.hyracks.storage.am.lsmtree.rtree.impls.LSMRTreeInMemoryBufferCacheFactory;
+import edu.uci.ics.hyracks.storage.am.lsmtree.rtree.impls.LSMRTreeInMemoryFreePageManager;
 import edu.uci.ics.hyracks.storage.am.lsmtree.rtree.impls.LSMTypeAwareTupleWriterFactory;
 import edu.uci.ics.hyracks.storage.am.lsmtree.rtree.impls.RTreeFactory;
 import edu.uci.ics.hyracks.storage.am.rtree.frames.RTreeNSMInteriorFrameFactory;
@@ -54,7 +53,7 @@
 public class LSMRTreeTest extends AbstractLSMTreeTest {
 
     private static final int PAGE_SIZE = 256;
-    private static final int NUM_PAGES = 10000;
+    private static final int NUM_PAGES = 100;
     private static final int MAX_OPEN_FILES = 100;
     private static final int HYRACKS_FRAME_SIZE = 128;
     private IHyracksTaskContext ctx = TestUtils.create(HYRACKS_FRAME_SIZE);
@@ -72,12 +71,9 @@
         bufferCache.openFile(fileId);
 
         // in memory
-        InMemoryBufferCacheFactory rtreeInMemBufferCacheFactory = new InMemoryBufferCacheFactory(PAGE_SIZE, NUM_PAGES);
-        IBufferCache rtreeMemBufferCache = rtreeInMemBufferCacheFactory.createInMemoryBufferCache();
-
-        // in memory
-        InMemoryBufferCacheFactory btreeInMemBufferCacheFactory = new InMemoryBufferCacheFactory(PAGE_SIZE, NUM_PAGES);
-        IBufferCache btreeMemBufferCache = btreeInMemBufferCacheFactory.createInMemoryBufferCache();
+        LSMRTreeInMemoryBufferCacheFactory inMemBufferCacheFactory = new LSMRTreeInMemoryBufferCacheFactory(PAGE_SIZE,
+                NUM_PAGES);
+        IBufferCache memBufferCache = inMemBufferCacheFactory.createInMemoryBufferCache();
 
         // declare keys
         int keyFieldCount = 4;
@@ -117,8 +113,7 @@
 
         ITreeIndexMetaDataFrameFactory metaFrameFactory = new LIFOMetaDataFrameFactory();
 
-        IFreePageManager rtreeMemFreePageManager = new InMemoryFreePageManager(100, metaFrameFactory);
-        IFreePageManager btreeMemFreePageManager = new InMemoryFreePageManager(100, metaFrameFactory);
+        IFreePageManager memFreePageManager = new LSMRTreeInMemoryFreePageManager(100, metaFrameFactory);
 
         FreePageManagerFactory freePageManagerFactory = new FreePageManagerFactory(bufferCache, metaFrameFactory);
 
@@ -127,9 +122,9 @@
         BTreeFactory bTreeFactory = new BTreeFactory(bufferCache, freePageManagerFactory, cmp, fieldCount,
                 btreeInteriorFrameFactory, btreeLeafFrameFactory);
 
-        LSMRTree lsmrtree = new LSMRTree(rtreeMemBufferCache, btreeMemBufferCache, bufferCache, fieldCount, cmp,
-                rtreeMemFreePageManager, btreeMemFreePageManager, rtreeInteriorFrameFactory, btreeInteriorFrameFactory,
-                rtreeLeafFrameFactory, btreeLeafFrameFactory, rTreeFactory, bTreeFactory, (IFileMapManager) fmp);
+        LSMRTree lsmrtree = new LSMRTree(memBufferCache, bufferCache, fieldCount, cmp, memFreePageManager,
+                rtreeInteriorFrameFactory, btreeInteriorFrameFactory, rtreeLeafFrameFactory, btreeLeafFrameFactory,
+                rTreeFactory, bTreeFactory, (IFileMapManager) fmp);
 
         lsmrtree.create(fileId);
         lsmrtree.open(fileId);
@@ -240,10 +235,10 @@
             tuple.reset(accessor, 0);
 
             if (LOGGER.isLoggable(Level.INFO)) {
-                //if (i % 1000 == 0) {
-                    LOGGER.info("DELETING " + i + " " + Math.min(p1x, p2x) + " " + Math.min(p1y, p2y) + " "
-                            + Math.max(p1x, p2x) + " " + Math.max(p1y, p2y));
-                //}
+                // if (i % 1000 == 0) {
+                LOGGER.info("DELETING " + i + " " + Math.min(p1x, p2x) + " " + Math.min(p1y, p2y) + " "
+                        + Math.max(p1x, p2x) + " " + Math.max(p1y, p2y));
+                // }
             }
 
             try {
@@ -256,8 +251,7 @@
 
         lsmrtree.close();
         bufferCache.closeFile(fileId);
-        rtreeMemBufferCache.close();
-        btreeMemBufferCache.close();
+        memBufferCache.close();
     }
 
 }