You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2015/06/11 22:02:46 UTC

[5/5] incubator-usergrid git commit: add bucket strategy

add bucket strategy


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/fb33e946
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/fb33e946
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/fb33e946

Branch: refs/heads/USERGRID-739
Commit: fb33e94618fb7641b2c3dc8379cef8e0f825cfb7
Parents: effa5d5
Author: Shawn Feldman <sf...@apache.org>
Authored: Thu Jun 11 14:02:17 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Thu Jun 11 14:02:17 2015 -0600

----------------------------------------------------------------------
 .../usergrid/corepersistence/CoreModule.java    |  1 +
 .../index/ApplicationIndexBucketLocator.java    | 67 ++++++++++++++++++++
 .../index/ApplicationIndexLocationStrategy.java | 44 ++++++++-----
 .../corepersistence/index/CoreIndexFig.java     |  9 +++
 .../index/ManagementIndexLocationStrategy.java  |  2 +-
 .../corepersistence/index/IndexNamingTest.java  | 12 ++--
 .../usergrid/persistence/index/EntityIndex.java |  2 +-
 .../index/IndexLocationStrategy.java            |  2 +-
 .../index/impl/EsEntityIndexBatchImpl.java      | 12 ++--
 .../index/impl/EsEntityIndexImpl.java           | 14 ++--
 .../index/impl/TestIndexIdentifier.java         |  2 +-
 11 files changed, 127 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/fb33e946/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java
index 8d98ae2..f419d5a 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java
@@ -135,6 +135,7 @@ public class CoreModule  extends AbstractModule {
 
         //bind the event handlers
         bind( EventBuilder.class).to( EventBuilderImpl.class );
+        bind(ApplicationIndexBucketLocator.class);
 
         //bind the queue provider
         bind( AsyncEventService.class ).toProvider( AsyncIndexProvider.class );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/fb33e946/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexBucketLocator.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexBucketLocator.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexBucketLocator.java
new file mode 100644
index 0000000..1f54e75
--- /dev/null
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexBucketLocator.java
@@ -0,0 +1,67 @@
+/*
+ *
+ *  * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  *  contributor license agreements.  The ASF licenses this file to You
+ *  * under the Apache License, Version 2.0 (the "License"); you may not
+ *  * use this file except in compliance with the License.
+ *  * You may obtain a copy of the License at
+ *  *
+ *  *     http://www.apache.org/licenses/LICENSE-2.0
+ *  *
+ *  * Unless required by applicable law or agreed to in writing, software
+ *  * distributed under the License is distributed on an "AS IS" BASIS,
+ *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  * See the License for the specific language governing permissions and
+ *  * limitations under the License.  For additional information regarding
+ *  * copyright in this work, please see the NOTICE file in the top level
+ *  * directory of this distribution.
+ *
+ */
+package org.apache.usergrid.corepersistence.index;
+
+import com.google.common.hash.Funnel;
+import com.google.common.hash.PrimitiveSink;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.core.shard.ExpandingShardLocator;
+import org.apache.usergrid.persistence.core.shard.StringHashUtils;
+
+/**
+ * Strategy for getting index buckets, needs to be held in memory
+ */
+@Singleton
+public class ApplicationIndexBucketLocator{
+
+    /**
+     * Number of buckets to hash across.
+     */
+    private final int[] numberOfBuckets ;
+    /**
+     * How to funnel keys for buckets
+     */
+    private final Funnel<String> mapKeyFunnel;
+    /**
+     * Locator to get us all buckets
+     */
+    private  final ExpandingShardLocator<String> bucketLocator ;
+    /**
+     * Startseed for buckets
+     */
+    private final int indexBucketSeed;
+
+    private final CoreIndexFig indexFig;
+
+    @Inject
+    public ApplicationIndexBucketLocator(CoreIndexFig indexFig){
+        this.indexFig = indexFig;
+        numberOfBuckets = new int[indexFig.getNumberOfIndexBuckets()];
+        mapKeyFunnel = (key, into) -> into.putString( key, StringHashUtils.UTF8 );
+        indexBucketSeed = indexFig.getBucketSeed();
+        bucketLocator = new ExpandingShardLocator<>(mapKeyFunnel, numberOfBuckets);
+    }
+
+    public int getBucket(ApplicationScope applicationScope){
+        return indexBucketSeed  + bucketLocator.getCurrentBucket(applicationScope.getApplication().getUuid().toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/fb33e946/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexLocationStrategy.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexLocationStrategy.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexLocationStrategy.java
index 8665b08..0c8a720 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexLocationStrategy.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ApplicationIndexLocationStrategy.java
@@ -19,8 +19,12 @@
  */
 package org.apache.usergrid.corepersistence.index;
 
+import com.google.common.hash.Funnel;
+import com.google.common.hash.PrimitiveSink;
 import org.apache.usergrid.persistence.core.astyanax.CassandraFig;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.core.shard.ExpandingShardLocator;
+import org.apache.usergrid.persistence.core.shard.StringHashUtils;
 import org.apache.usergrid.persistence.index.IndexAlias;
 import org.apache.usergrid.persistence.index.IndexFig;
 import org.apache.usergrid.persistence.index.IndexLocationStrategy;
@@ -33,32 +37,24 @@ class ApplicationIndexLocationStrategy implements IndexLocationStrategy {
     private final CassandraFig cassandraFig;
     private final IndexFig indexFig;
     private final ApplicationScope applicationScope;
+    private final ApplicationIndexBucketLocator applicationIndexBucketLocator;
     private final String indexName;
     private final IndexAlias alias;
 
     public ApplicationIndexLocationStrategy(final CassandraFig cassandraFig,
                                             final IndexFig indexFig,
-                                            final ApplicationScope applicationScope){
+                                            final ApplicationScope applicationScope,
+                                            final ApplicationIndexBucketLocator applicationIndexBucketLocator){
 
         this.cassandraFig = cassandraFig;
         this.indexFig = indexFig;
         this.applicationScope = applicationScope;
-        this.indexName = getPrefix();        //TODO: add hash buckets by app scope
-        this.alias =  new ApplicationIndexAlias(indexFig, applicationScope, indexName);
+        this.applicationIndexBucketLocator = applicationIndexBucketLocator;
+        String prefix = getPrefix();        //TODO: add hash buckets by app scope
+        this.alias =  new ApplicationIndexAlias(indexFig, applicationScope, prefix);
+        this.indexName = prefix + "_" + applicationIndexBucketLocator.getBucket(applicationScope);
     }
 
-    private String getPrefix() {
-        //remove usergrid
-        final String indexPrefixConfig = StringUtils.isNotEmpty(indexFig.getIndexPrefix())
-            ? indexFig.getIndexPrefix().toLowerCase()  ////use lowercase value
-            : ""; // default to something so its not null
-        final String keyspaceName = cassandraFig.getApplicationKeyspace().toLowerCase();
-        //check for repetition
-        final boolean removePrefix = indexPrefixConfig.length()==0 || keyspaceName.contains(indexPrefixConfig) ;
-        return !removePrefix
-            ? indexPrefixConfig + "_" + keyspaceName
-            : keyspaceName;
-    }
 
     /**
      * Get the alias name
@@ -76,7 +72,7 @@ class ApplicationIndexLocationStrategy implements IndexLocationStrategy {
      * @return
      */
     @Override
-    public String getIndex() {
+    public String getInitialIndexName() {
         return indexName;
     }
 
@@ -120,6 +116,20 @@ class ApplicationIndexLocationStrategy implements IndexLocationStrategy {
         return result;
     }
 
+    private String getPrefix() {
+        //remove usergrid
+        final String indexPrefixConfig = StringUtils.isNotEmpty(indexFig.getIndexPrefix())
+            ? indexFig.getIndexPrefix().toLowerCase()  ////use lowercase value
+            : ""; // default to something so its not null
+        final String keyspaceName = cassandraFig.getApplicationKeyspace().toLowerCase();
+        //check for repetition
+        final boolean removePrefix = indexPrefixConfig.length()==0 || keyspaceName.contains(indexPrefixConfig) ;
+        return !removePrefix
+            ? indexPrefixConfig + "_" + keyspaceName
+            : keyspaceName;
+    }
+
+
     public class ApplicationIndexAlias implements IndexAlias {
 
         private final String readAlias;
@@ -143,4 +153,6 @@ class ApplicationIndexLocationStrategy implements IndexLocationStrategy {
             return writeAlias;
         }
     }
+
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/fb33e946/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/CoreIndexFig.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/CoreIndexFig.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/CoreIndexFig.java
index f6dadfb..e31a39b 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/CoreIndexFig.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/CoreIndexFig.java
@@ -43,4 +43,13 @@ public interface CoreIndexFig extends GuicyFig {
     @Default( "usergrid_management" )
     @Key( "elasticsearch.managment_index" )
     String getManagementAppIndexName();
+
+    @Default( "5" )
+    @Key( "elasticsearch.index_bucket_count" )
+    int getNumberOfIndexBuckets();
+
+
+    @Default( "0" )
+    @Key( "elasticsearch.index_bucket_seed" )
+    int getBucketSeed();
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/fb33e946/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ManagementIndexLocationStrategy.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ManagementIndexLocationStrategy.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ManagementIndexLocationStrategy.java
index 962605e..5437bc0 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ManagementIndexLocationStrategy.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ManagementIndexLocationStrategy.java
@@ -52,7 +52,7 @@ class ManagementIndexLocationStrategy implements IndexLocationStrategy {
     }
 
     @Override
-    public String getIndex() {
+    public String getInitialIndexName() {
         return indexName;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/fb33e946/stack/core/src/test/java/org/apache/usergrid/corepersistence/index/IndexNamingTest.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/corepersistence/index/IndexNamingTest.java b/stack/core/src/test/java/org/apache/usergrid/corepersistence/index/IndexNamingTest.java
index ec49c79..094a0c2 100644
--- a/stack/core/src/test/java/org/apache/usergrid/corepersistence/index/IndexNamingTest.java
+++ b/stack/core/src/test/java/org/apache/usergrid/corepersistence/index/IndexNamingTest.java
@@ -25,12 +25,10 @@ import org.apache.usergrid.corepersistence.TestIndexModule;
 import org.apache.usergrid.corepersistence.util.CpNamingUtils;
 import org.apache.usergrid.persistence.core.astyanax.CassandraFig;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
-import org.apache.usergrid.persistence.core.scope.ApplicationScopeImpl;
 import org.apache.usergrid.persistence.core.test.UseModules;
 import org.apache.usergrid.persistence.index.IndexFig;
 import org.apache.usergrid.persistence.index.IndexLocationStrategy;
 import org.apache.usergrid.persistence.index.impl.EsRunner;
-import org.apache.usergrid.persistence.model.entity.SimpleId;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -76,17 +74,17 @@ public class IndexNamingTest {
     @Test
     public void managementNaming(){
         IndexLocationStrategy indexLocationStrategy = indexLocationStrategyFactory.getIndexLocationStrategy(managementApplicationScope);
-        assertEquals(indexLocationStrategy.getIndex(),managementLocationStrategy.getIndex());
-        assertEquals(indexLocationStrategy.getIndex(),indexProcessorFig.getManagementAppIndexName());
+        assertEquals(indexLocationStrategy.getInitialIndexName(),managementLocationStrategy.getInitialIndexName());
+        assertEquals(indexLocationStrategy.getInitialIndexName(),indexProcessorFig.getManagementAppIndexName());
 
     }
     @Test
     public void applicationNaming(){
         IndexLocationStrategy indexLocationStrategy = indexLocationStrategyFactory.getIndexLocationStrategy(applicationScope);
-        assertEquals(indexLocationStrategy.getIndex(),applicationLocationStrategy.getIndex());
+        assertEquals(indexLocationStrategy.getInitialIndexName(),applicationLocationStrategy.getInitialIndexName());
 
-        assertTrue(indexLocationStrategy.getIndex().contains(indexFig.getIndexPrefix()));
-        assertTrue(indexLocationStrategy.getIndex().contains(cassandraFig.getApplicationKeyspace().toLowerCase()));
+        assertTrue(indexLocationStrategy.getInitialIndexName().contains(indexFig.getIndexPrefix()));
+        assertTrue(indexLocationStrategy.getInitialIndexName().contains(cassandraFig.getApplicationKeyspace().toLowerCase()));
         assertTrue(indexLocationStrategy.getAlias().getReadAlias().contains(applicationScope.getApplication().getUuid().toString().toLowerCase()));
         assertTrue(indexLocationStrategy.getAlias().getWriteAlias().contains(applicationScope.getApplication().getUuid().toString().toLowerCase()));
         assertTrue(indexLocationStrategy.getAlias().getWriteAlias().contains("write"));

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/fb33e946/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/EntityIndex.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/EntityIndex.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/EntityIndex.java
index e4b1d13..282d162 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/EntityIndex.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/EntityIndex.java
@@ -121,7 +121,7 @@ public interface EntityIndex extends CPManager {
      * get all unique indexes
      * @return
      */
-    String[] getUniqueIndexes();
+    String[] getIndexes();
 
     /**
      * Add alias to index, will remove old index from write alias

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/fb33e946/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/IndexLocationStrategy.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/IndexLocationStrategy.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/IndexLocationStrategy.java
index edfcaec..0f2dc0c 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/IndexLocationStrategy.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/IndexLocationStrategy.java
@@ -34,7 +34,7 @@ public interface IndexLocationStrategy {
      * get index name from suffix
      * @return
      */
-    String getIndex( );
+    String getInitialIndexName();
 
     /**
      * return unique string

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/fb33e946/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java
index fce973b..87b2368 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexBatchImpl.java
@@ -40,7 +40,7 @@ public class EsEntityIndexBatchImpl implements EntityIndexBatch {
 
     private final IndexAlias alias;
 
-    private final IndexLocationStrategy indexIdentifier;
+    private final IndexLocationStrategy indexLocationStrategy;
     private final IndexBufferConsumer indexBatchBufferProducer;
 
     private final EntityIndex entityIndex;
@@ -52,13 +52,13 @@ public class EsEntityIndexBatchImpl implements EntityIndexBatch {
                                    final IndexBufferConsumer indexBatchBufferProducer,
                                    final EntityIndex entityIndex
     ) {
-        this.indexIdentifier = locationStrategy;
+        this.indexLocationStrategy = locationStrategy;
 
         this.indexBatchBufferProducer = indexBatchBufferProducer;
         this.entityIndex = entityIndex;
-        this.applicationScope = indexIdentifier.getApplicationScope();
+        this.applicationScope = indexLocationStrategy.getApplicationScope();
 
-        this.alias = indexIdentifier.getAlias();
+        this.alias = indexLocationStrategy.getAlias();
         //constrained
         this.container = new IndexOperationMessage();
     }
@@ -90,10 +90,10 @@ public class EsEntityIndexBatchImpl implements EntityIndexBatch {
         ValidationUtils.verifyIdentity( id );
         ValidationUtils.verifyVersion( version );
 
-        String[] indexes = entityIndex.getUniqueIndexes();
+        String[] indexes = entityIndex.getIndexes();
         //get the default index if no alias exists yet
         if ( indexes == null || indexes.length == 0 ) {
-            indexes = new String[] { indexIdentifier.getIndex(  ) };
+           throw new IllegalStateException("No indexes exist for " + indexLocationStrategy.getAlias().getWriteAlias());
         }
 
         if ( log.isDebugEnabled() ) {

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/fb33e946/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
index 17dcc9a..a31c62b 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
@@ -27,7 +27,6 @@ import com.google.common.io.Resources;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
-import com.google.inject.assistedinject.Assisted;
 import org.apache.usergrid.persistence.core.metrics.MetricsFactory;
 import org.apache.usergrid.persistence.core.migration.data.VersionedData;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
@@ -174,7 +173,7 @@ public class EsEntityIndexImpl implements EntityIndex,VersionedData {
     public void addIndex(final com.google.common.base.Optional<String> indexNameOverride, final int numberOfShards, final int numberOfReplicas, final String writeConsistency) {
         try {
             //get index name with suffix attached
-            final String indexName = indexNameOverride.or(indexLocationStrategy.getIndex()) ;
+            final String indexName = indexNameOverride.or(indexLocationStrategy.getInitialIndexName()) ;
 
             //Create index
             try {
@@ -233,7 +232,7 @@ public class EsEntityIndexImpl implements EntityIndex,VersionedData {
         Timer.Context timer = updateAliasTimer.time();
         try {
             Boolean isAck;
-            String indexName = indexLocationStrategy.getIndex();
+            String indexName = indexLocationStrategy.getInitialIndexName();
             final AdminClient adminClient = esProvider.getClient().admin();
 
             String[] indexNames = getIndexes(AliasType.Write);
@@ -356,12 +355,12 @@ public class EsEntityIndexImpl implements EntityIndex,VersionedData {
     public Observable<IndexRefreshCommand.IndexRefreshCommandInfo> refreshAsync() {
 
         refreshIndexMeter.mark();
-        return indexRefreshCommand.execute(alias,getUniqueIndexes());
+        return indexRefreshCommand.execute(alias, getIndexes());
     }
 
 
 
-    public String[] getUniqueIndexes() {
+    public String[] getIndexes() {
         Set<String> indexSet = new HashSet<>();
         List<String> reads =  Arrays.asList(getIndexes(AliasType.Read));
         List<String> writes = Arrays.asList(getIndexes(AliasType.Write));
@@ -569,7 +568,7 @@ public class EsEntityIndexImpl implements EntityIndex,VersionedData {
     public Observable deleteApplication() {
         String idString = applicationId( applicationScope.getApplication() );
         final TermQueryBuilder tqb = QueryBuilders.termQuery(APPLICATION_ID_FIELDNAME, idString);
-        final String[] indexes = getUniqueIndexes();
+        final String[] indexes = getIndexes();
         //Added For Graphite Metrics
         return Observable.from( indexes ).flatMap( index -> {
 
@@ -714,8 +713,9 @@ public class EsEntityIndexImpl implements EntityIndex,VersionedData {
     public Health getIndexHealth() {
 
         try {
+            String[] indexNames = this.getIndexes();
            final ActionFuture<ClusterHealthResponse> future =  esProvider.getClient().admin().cluster().health(
-               new ClusterHealthRequest( new String[] { indexLocationStrategy.getIndex(  ) } ) );
+               new ClusterHealthRequest( indexNames  ) );
 
             //only wait 2 seconds max
             ClusterHealthResponse chr = future.actionGet(2000);

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/fb33e946/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/TestIndexIdentifier.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/TestIndexIdentifier.java b/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/TestIndexIdentifier.java
index 39f6da0..5d4d3ae 100644
--- a/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/TestIndexIdentifier.java
+++ b/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/TestIndexIdentifier.java
@@ -71,7 +71,7 @@ public class TestIndexIdentifier implements IndexLocationStrategy {
      * @return
      */
     @Override
-    public String getIndex() {
+    public String getInitialIndexName() {
 
         return prefix;