changes to add a partition flag to inverted index local metadata which is used to create invertedIndex instance during recocvery

git-svn-id: https://asterixdb.googlecode.com/svn/branches/asterix_lsm_stabilization@1452 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/file/SecondaryInvertedIndexCreator.java b/asterix-app/src/main/java/edu/uci/ics/asterix/file/SecondaryInvertedIndexCreator.java
index 62a92cc..0bf379d 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/file/SecondaryInvertedIndexCreator.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/file/SecondaryInvertedIndexCreator.java
@@ -153,7 +153,7 @@
         //prepare a LocalResourceMetadata which will be stored in NC's local resource repository
         ILocalResourceMetadata localResourceMetadata = new LSMInvertedIndexLocalResourceMetadata(invListsTypeTraits,
                 primaryComparatorFactories, tokenTypeTraits, tokenComparatorFactories, tokenizerFactory,
-                GlobalConfig.DEFAULT_INDEX_MEM_PAGE_SIZE, GlobalConfig.DEFAULT_INDEX_MEM_NUM_PAGES);
+                GlobalConfig.DEFAULT_INDEX_MEM_PAGE_SIZE, GlobalConfig.DEFAULT_INDEX_MEM_NUM_PAGES, isPartitioned);
         ILocalResourceFactoryProvider localResourceFactoryProvider = new PersistentLocalResourceFactoryProvider(
                 localResourceMetadata, LocalResource.LSMInvertedIndexResource);
 
diff --git a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadata.java b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadata.java
index e71d370..894fc16 100644
--- a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadata.java
+++ b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/resource/LSMInvertedIndexLocalResourceMetadata.java
@@ -27,11 +27,12 @@
     private final IBinaryTokenizerFactory tokenizerFactory;
     private final int memPageSize;
     private final int memNumPages;
+    private final boolean isPartitioned;
 
     public LSMInvertedIndexLocalResourceMetadata(ITypeTraits[] invListTypeTraits,
             IBinaryComparatorFactory[] invListCmpFactories, ITypeTraits[] tokenTypeTraits,
             IBinaryComparatorFactory[] tokenCmpFactories, IBinaryTokenizerFactory tokenizerFactory, int memPageSize,
-            int memNumPages) {
+            int memNumPages, boolean isPartitioned) {
         this.invListTypeTraits = invListTypeTraits;
         this.invListCmpFactories = invListCmpFactories;
         this.tokenTypeTraits = tokenTypeTraits;
@@ -39,6 +40,7 @@
         this.tokenizerFactory = tokenizerFactory;
         this.memPageSize = memPageSize;
         this.memNumPages = memNumPages;
+        this.isPartitioned = isPartitioned;
     }
 
     @Override
@@ -51,13 +53,23 @@
         IInMemoryFreePageManager memFreePageManager = new DualIndexInMemoryFreePageManager(memNumPages,
                 metaDataFrameFactory);
         try {
-            return InvertedIndexUtils.createLSMInvertedIndex(memBufferCache, memFreePageManager,
-                    runtimeContextProvider.getFileMapManager(), invListTypeTraits, invListCmpFactories,
-                    tokenTypeTraits, tokenCmpFactories, tokenizerFactory, runtimeContextProvider.getBufferCache(),
-                    runtimeContextProvider.getIOManager(), filePath, runtimeContextProvider.getLSMMergePolicy(),
-                    runtimeContextProvider.getLSMInvertedIndexOperationTrackerFactory(),
-                    runtimeContextProvider.getLSMIOScheduler(),
-                    runtimeContextProvider.getLSMInvertedIndexIOOperationCallbackProvider(), partition);
+            if (isPartitioned) {
+                return InvertedIndexUtils.createPartitionedLSMInvertedIndex(memBufferCache, memFreePageManager,
+                        runtimeContextProvider.getFileMapManager(), invListTypeTraits, invListCmpFactories,
+                        tokenTypeTraits, tokenCmpFactories, tokenizerFactory, runtimeContextProvider.getBufferCache(),
+                        runtimeContextProvider.getIOManager(), filePath, runtimeContextProvider.getLSMMergePolicy(),
+                        runtimeContextProvider.getLSMInvertedIndexOperationTrackerFactory(),
+                        runtimeContextProvider.getLSMIOScheduler(),
+                        runtimeContextProvider.getLSMInvertedIndexIOOperationCallbackProvider(), partition);
+            } else {
+                return InvertedIndexUtils.createLSMInvertedIndex(memBufferCache, memFreePageManager,
+                        runtimeContextProvider.getFileMapManager(), invListTypeTraits, invListCmpFactories,
+                        tokenTypeTraits, tokenCmpFactories, tokenizerFactory, runtimeContextProvider.getBufferCache(),
+                        runtimeContextProvider.getIOManager(), filePath, runtimeContextProvider.getLSMMergePolicy(),
+                        runtimeContextProvider.getLSMInvertedIndexOperationTrackerFactory(),
+                        runtimeContextProvider.getLSMIOScheduler(),
+                        runtimeContextProvider.getLSMInvertedIndexIOOperationCallbackProvider(), partition);
+            }
         } catch (IndexException e) {
             throw new HyracksDataException(e);
         }