You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by to...@apache.org on 2015/03/20 22:32:52 UTC

[19/31] incubator-usergrid git commit: adding refresh retry

adding refresh retry


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

Branch: refs/heads/USERGRID-486
Commit: f7e78f4a65cca60c4f4ba064a872331a0d820843
Parents: 51a38fc
Author: Shawn Feldman <sf...@apache.org>
Authored: Fri Mar 20 07:45:22 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Fri Mar 20 07:45:22 2015 -0600

----------------------------------------------------------------------
 .../test/resources/usergrid-custom-test.properties |  1 +
 .../persistence/index/impl/EsEntityIndexImpl.java  | 17 +++++++++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/f7e78f4a/stack/core/src/test/resources/usergrid-custom-test.properties
----------------------------------------------------------------------
diff --git a/stack/core/src/test/resources/usergrid-custom-test.properties b/stack/core/src/test/resources/usergrid-custom-test.properties
index 949b60e..fe528fd 100644
--- a/stack/core/src/test/resources/usergrid-custom-test.properties
+++ b/stack/core/src/test/resources/usergrid-custom-test.properties
@@ -24,4 +24,5 @@ cassandra.connections=1000
 #This is just way more efficient for a single node and the number of shards we're creating
 elasticsearch.number_shards=1
 elasticsearch.number_replicas=0
+elasticsearch.index_prefix=core_tests
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/f7e78f4a/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 1eb73d3..18c3d67 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
@@ -35,6 +35,7 @@ import org.apache.usergrid.persistence.model.util.UUIDGenerator;
 
 import org.elasticsearch.action.ActionFuture;
 
+import org.elasticsearch.action.ShardOperationFailedException;
 import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest;
 import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
 import org.elasticsearch.action.admin.cluster.tasks.PendingClusterTasksRequest;
@@ -47,6 +48,7 @@ import org.elasticsearch.action.admin.indices.alias.IndicesAliasesResponse;
 import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
 
+import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
 import org.elasticsearch.client.AdminClient;
 import org.elasticsearch.common.settings.ImmutableSettings;
 import org.elasticsearch.common.settings.Settings;
@@ -346,9 +348,20 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
                         return true;
                     }
                     //Added For Graphite Metrics
-                    esProvider.getClient().admin().indices().prepareRefresh( indexes ).execute().actionGet();
+                    RefreshResponse response = esProvider.getClient().admin().indices().prepareRefresh( indexes ).execute().actionGet();
+                    int failedShards = response.getFailedShards();
+                    int successfulShards = response.getSuccessfulShards();
+                    ShardOperationFailedException[] sfes = response.getShardFailures();
+                    if(sfes!=null) {
+                        for (ShardOperationFailedException sfe : sfes) {
+                            logger.error("Failed to refresh index:{} reason:{}", sfe.index(), sfe.reason());
+                        }
+                    }
+                    logger.debug("Refreshed indexes: {},success:{} failed:{} ", StringUtils.join(indexes, ", "),successfulShards,failedShards);
                     timeRefreshIndex.stop();
-                    logger.debug("Refreshed indexes: {}", StringUtils.join(indexes, ", "));
+                    if(failedShards>0){
+                        throw new RuntimeException("Failed to update all shards in refresh operation");
+                    }
                     return true;
                 }
                 catch ( IndexMissingException e ) {