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

[1/3] incubator-usergrid git commit: Fixes issue with atomically moving indexes

Repository: incubator-usergrid
Updated Branches:
  refs/heads/two-dot-o b53cb07f3 -> aa044cf76


Fixes issue with atomically moving indexes


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

Branch: refs/heads/two-dot-o
Commit: c16bb003931e273dd8d5e57e833c82dac1927fed
Parents: 0334119
Author: Todd Nine <tn...@apigee.com>
Authored: Wed Mar 18 10:05:55 2015 -0600
Committer: Todd Nine <tn...@apigee.com>
Committed: Wed Mar 18 10:05:55 2015 -0600

----------------------------------------------------------------------
 .../index/impl/EsEntityIndexImpl.java           | 83 +++++++++-----------
 1 file changed, 35 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c16bb003/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 16f4b3f..cae9cb0 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
@@ -56,6 +56,8 @@ import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest;
 import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
 import org.elasticsearch.action.admin.cluster.tasks.PendingClusterTasksRequest;
 import org.elasticsearch.action.admin.cluster.tasks.PendingClusterTasksResponse;
+import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequestBuilder;
+import org.elasticsearch.action.admin.indices.alias.IndicesAliasesResponse;
 import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
 import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
@@ -110,8 +112,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
     private final IndexBufferProducer indexBatchBufferProducer;
     private final IndexFig indexFig;
     private final Timer addTimer;
-    private final Timer addWriteAliasTimer;
-    private final Timer addReadAliasTimer;
+    private final Timer updateAliasTimer;
     private final Timer searchTimer;
 
     /**
@@ -142,7 +143,6 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
     private static final MatchAllQueryBuilder MATCH_ALL_QUERY_BUILDER = QueryBuilders.matchAllQuery();
 
     private EsIndexCache aliasCache;
-    private Timer removeAliasTimer;
     private Timer mappingTimer;
     private Timer refreshTimer;
     private Timer cursorTimer;
@@ -171,12 +171,8 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
         this.aliasCache = indexCache;
         this.addTimer = metricsFactory
             .getTimer( EsEntityIndexImpl.class, "add.timer" );
-        this.removeAliasTimer = metricsFactory
-            .getTimer( EsEntityIndexImpl.class, "remove.alias.timer" );
-        this.addReadAliasTimer = metricsFactory
-            .getTimer( EsEntityIndexImpl.class, "add.read.alias.timer" );
-        this.addWriteAliasTimer = metricsFactory
-            .getTimer( EsEntityIndexImpl.class, "add.write.alias.timer" );
+        this.updateAliasTimer = metricsFactory
+            .getTimer( EsEntityIndexImpl.class, "update.alias.timer" );
         this.mappingTimer = metricsFactory
             .getTimer( EsEntityIndexImpl.class, "create.mapping.timer" );
         this.refreshTimer = metricsFactory
@@ -261,60 +257,51 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
 
     @Override
     public void addAlias(final String indexSuffix) {
+
+        final Timer.Context timeRemoveAlias = updateAliasTimer.time();
         try {
-            Boolean isAck;
-            String indexName = indexIdentifier.getIndex(indexSuffix);
-            final AdminClient adminClient = esProvider.getClient().admin();
 
-            String[] indexNames = getIndexes(AliasType.Write);
 
-            for ( String currentIndex : indexNames ) {
+            String indexName = indexIdentifier.getIndex(indexSuffix);
+            final AdminClient adminClient = esProvider.getClient().admin();
 
-                final Timer.Context timeRemoveAlias = removeAliasTimer.time();
+            String[] indexNames = getIndexesFromEs( AliasType.Write );
 
-                try {
-                    //Added For Graphite Metrics
 
-                    isAck = adminClient.indices().prepareAliases().removeAlias( currentIndex, alias.getWriteAlias() )
-                                       .execute().actionGet().isAcknowledged();
+            final IndicesAliasesRequestBuilder aliasesRequestBuilder = adminClient.indices().prepareAliases();
 
-                    logger.info( "Removed Index Name [{}] from Alias=[{}] ACK=[{}]", currentIndex, alias, isAck );
-                }
-                catch ( AliasesMissingException aie ) {
-                    logger.info( "Alias does not exist Index Name [{}] from Alias=[{}] ACK=[{}]", currentIndex, alias,
-                        aie.getMessage() );
-                    continue;
-                }
-                catch ( InvalidAliasNameException iane ) {
-                    logger.info( "Alias does not exist Index Name [{}] from Alias=[{}] ACK=[{}]", currentIndex, alias,
-                        iane.getMessage() );
-                    continue;
-                }
-                finally {
-                    timeRemoveAlias.stop();
-                }
+            //remove the write alias from it's target
+            for ( String currentIndex : indexNames ) {
+                aliasesRequestBuilder.removeAlias( currentIndex, alias.getWriteAlias() );
+                logger.info("Removing existing write Alias Name [{}] from Index [{}]", alias.getReadAlias(), currentIndex);
             }
 
             //Added For Graphite Metrics
-            Timer.Context timeAddReadAlias = addReadAliasTimer.time();
+
             // add read alias
-            isAck = adminClient.indices().prepareAliases().addAlias(
-                    indexName, alias.getReadAlias()).execute().actionGet().isAcknowledged();
-            timeAddReadAlias.stop();
-            logger.info("Created new read Alias Name [{}] ACK=[{}]", alias.getReadAlias(), isAck);
+            aliasesRequestBuilder.addAlias(  indexName, alias.getReadAlias());
+            logger.info("Created new read Alias Name [{}] on Index [{}]", alias.getReadAlias(), indexName);
+
 
-            //Added For Graphite Metrics
-            Timer.Context timeAddWriteAlias = addWriteAliasTimer.time();
             //add write alias
-            isAck = adminClient.indices().prepareAliases().addAlias(
-                    indexName, alias.getWriteAlias()).execute().actionGet().isAcknowledged();
-            timeAddWriteAlias.stop();
-            logger.info("Created new write Alias Name [{}] ACK=[{}]", alias.getWriteAlias(), isAck);
+            aliasesRequestBuilder.addAlias( indexName, alias.getWriteAlias() );
 
-            aliasCache.invalidate(alias);
+            logger.info("Created new write Alias Name [{}] on Index [{}]", alias.getWriteAlias(), indexName);
+
+            final IndicesAliasesResponse result = aliasesRequestBuilder.execute().actionGet();
 
-        } catch (Exception e) {
-            logger.warn("Failed to create alias ", e);
+            final boolean isAcknowledged = result.isAcknowledged();
+
+            if(!isAcknowledged){
+                throw new RuntimeException( "Unable to add aliases to the new index " + indexSuffix );
+            }
+
+        }
+        finally{
+            //invalidate the alias
+            aliasCache.invalidate(alias);
+            //stop the timer
+            timeRemoveAlias.stop();
         }
     }
 


[3/3] incubator-usergrid git commit: Merge branch 'USERGRID-490' into two-dot-o

Posted by gr...@apache.org.
Merge branch 'USERGRID-490' into two-dot-o

* USERGRID-490:
  Fixes incorrect logging statement
  Fixes issue with atomically moving indexes


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

Branch: refs/heads/two-dot-o
Commit: aa044cf761cd3a3460ed5d91efbc7cf691aab330
Parents: b53cb07 e6fb121
Author: GERey <gr...@apigee.com>
Authored: Wed Mar 18 10:04:43 2015 -0700
Committer: GERey <gr...@apigee.com>
Committed: Wed Mar 18 10:04:43 2015 -0700

----------------------------------------------------------------------
 .../index/impl/EsEntityIndexImpl.java           | 83 +++++++++-----------
 1 file changed, 35 insertions(+), 48 deletions(-)
----------------------------------------------------------------------



[2/3] incubator-usergrid git commit: Fixes incorrect logging statement

Posted by gr...@apache.org.
Fixes incorrect logging statement


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

Branch: refs/heads/two-dot-o
Commit: e6fb121a8eeabb2ed0aa10b036c2dd0bd1e3f0b4
Parents: c16bb00
Author: Todd Nine <tn...@apigee.com>
Authored: Wed Mar 18 10:59:31 2015 -0600
Committer: Todd Nine <tn...@apigee.com>
Committed: Wed Mar 18 10:59:31 2015 -0600

----------------------------------------------------------------------
 .../usergrid/persistence/index/impl/EsEntityIndexImpl.java       | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e6fb121a/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 cae9cb0..cecd297 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
@@ -273,14 +273,14 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
             //remove the write alias from it's target
             for ( String currentIndex : indexNames ) {
                 aliasesRequestBuilder.removeAlias( currentIndex, alias.getWriteAlias() );
-                logger.info("Removing existing write Alias Name [{}] from Index [{}]", alias.getReadAlias(), currentIndex);
+                logger.info("Removing existing write Alias Name [{}] from Index [{}]", alias.getWriteAlias(), currentIndex);
             }
 
             //Added For Graphite Metrics
 
             // add read alias
             aliasesRequestBuilder.addAlias(  indexName, alias.getReadAlias());
-            logger.info("Created new read Alias Name [{}] on Index [{}]", alias.getReadAlias(), indexName);
+            logger.info( "Created new read Alias Name [{}] on Index [{}]", alias.getReadAlias(), indexName);
 
 
             //add write alias