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/02/25 19:38:09 UTC

incubator-usergrid git commit: change future implementation

Repository: incubator-usergrid
Updated Branches:
  refs/heads/USERGRID-273-indexbuffer 9d7c1bb6c -> 9bd88e6f6


change future implementation


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

Branch: refs/heads/USERGRID-273-indexbuffer
Commit: 9bd88e6f6a5c3845b5a55660204d771f4cbc4de4
Parents: 9d7c1bb
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Feb 25 11:38:05 2015 -0700
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Feb 25 11:38:05 2015 -0700

----------------------------------------------------------------------
 .../corepersistence/CpEntityManager.java        |  5 ++-
 .../corepersistence/CpRelationManager.java      |  4 +-
 .../results/FilteringLoader.java                | 40 ++++++++++----------
 .../batch/job/AbstractSchedulerRuntimeIT.java   |  4 +-
 .../persistence/core/future/BetterFuture.java   |  7 ++--
 5 files changed, 31 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9bd88e6f/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
index 721ac80..ce1b611 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManager.java
@@ -33,6 +33,7 @@ import java.util.TreeMap;
 import java.util.TreeSet;
 import java.util.UUID;
 
+import org.apache.usergrid.persistence.core.future.BetterFuture;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.Assert;
@@ -975,11 +976,11 @@ public class CpEntityManager implements EntityManager {
         } );
 
 
-        ei.createBatch().index( defaultIndexScope, cpEntity ).execute();
-
+        BetterFuture future = ei.createBatch().index( defaultIndexScope, cpEntity ).execute();
         // update in all containing collections and connection indexes
         CpRelationManager rm = ( CpRelationManager ) getRelationManager( entityRef );
         rm.updateContainingCollectionAndCollectionIndexes( cpEntity );
+        future.get();
     }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9bd88e6f/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
index 00ba390..f8c51a1 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpRelationManager.java
@@ -442,7 +442,7 @@ public class CpRelationManager implements RelationManager {
                 } ).count().toBlocking().lastOrDefault( 0 );
 
 
-        entityIndexBatch.execute().get();
+        entityIndexBatch.execute();
 
         logger.debug( "updateContainingCollectionsAndCollections() updated {} indexes", count );
     }
@@ -1068,8 +1068,6 @@ public class CpRelationManager implements RelationManager {
         batchUpdateEntityConnection( m, false, connection, UUIDGenerator.newTimeUUID() );
         batchExecute( m, CassandraService.RETRY_COUNT );
 
-        future.get();
-
         return connection;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9bd88e6f/stack/core/src/main/java/org/apache/usergrid/corepersistence/results/FilteringLoader.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/results/FilteringLoader.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/results/FilteringLoader.java
index dca59e0..1826e7f 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/results/FilteringLoader.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/results/FilteringLoader.java
@@ -71,10 +71,10 @@ public class FilteringLoader implements ResultsLoader {
      * @param applicationScope The application scope to perform the load
      * @param indexScope The index scope used in the search
      */
-    protected FilteringLoader( 
-            final ManagerCache managerCache, 
-            final ResultsVerifier resultsVerifier,  
-            final ApplicationScope applicationScope, 
+    protected FilteringLoader(
+            final ManagerCache managerCache,
+            final ResultsVerifier resultsVerifier,
+            final ApplicationScope applicationScope,
             final IndexScope indexScope ) {
 
         this.managerCache = managerCache;
@@ -103,25 +103,25 @@ public class FilteringLoader implements ResultsLoader {
         // Maps the entity ids to our candidates
         final Map<Id, CandidateResult> maxCandidateMapping = new HashMap<>( crs.size() );
 
-        // Groups all candidate results by types.  When search connections there will be multiple 
+        // Groups all candidate results by types.  When search connections there will be multiple
         // types, so we want to batch fetch them more efficiently
-        
-        final HashMultimap<String, CandidateResult> groupedByScopes = 
+
+        final HashMultimap<String, CandidateResult> groupedByScopes =
                 HashMultimap.create( crs.size(), crs.size() );
 
         final Iterator<CandidateResult> iter = crs.iterator();
 
 
-        // TODO, in this case we're "optimizing" due to the limitations of collection scope.  
+        // TODO, in this case we're "optimizing" due to the limitations of collection scope.
         // Perhaps  we should change the API to just be an application, then an "owner" scope?
 
-        // Go through the candidates and group them by scope for more efficient retrieval.  
+        // Go through the candidates and group them by scope for more efficient retrieval.
         // Also remove duplicates before we even make a network call
         for ( int i = 0; iter.hasNext(); i++ ) {
 
             final CandidateResult currentCandidate = iter.next();
 
-            final String collectionType = CpNamingUtils.getCollectionScopeNameFromEntityType( 
+            final String collectionType = CpNamingUtils.getCollectionScopeNameFromEntityType(
                     currentCandidate.getId().getType() );
 
             final Id entityId = currentCandidate.getId();
@@ -147,11 +147,11 @@ public class FilteringLoader implements ResultsLoader {
             if ( UUIDComparator.staticCompare( currentVersion, previousMaxVersion ) > 0 ) {
 
                 //de-index it
-                logger.debug( "Stale version of Entity uuid:{} type:{}, stale v:{}, latest v:{}", 
-                    new Object[] { 
-                        entityId.getUuid(), 
-                        entityId.getType(), 
-                        previousMaxVersion, 
+                logger.debug( "Stale version of Entity uuid:{} type:{}, stale v:{}, latest v:{}",
+                    new Object[] {
+                        entityId.getUuid(),
+                        entityId.getType(),
+                        previousMaxVersion,
                         currentVersion } );
 
                 //deindex this document, and remove the previous maxVersion
@@ -170,7 +170,7 @@ public class FilteringLoader implements ResultsLoader {
         }
 
 
-        //now everything is ordered, and older versions are removed.  Batch fetch versions to verify 
+        //now everything is ordered, and older versions are removed.  Batch fetch versions to verify
         // existence and correct versions
 
         final TreeMap<Integer, Id> sortedResults = new TreeMap<>();
@@ -193,10 +193,10 @@ public class FilteringLoader implements ResultsLoader {
 
             //now using the scope, load the collection
 
-            // Get the collection scope and batch load all the versions.  We put all entities in 
-            // app/app for easy retrieval/ unless persistence changes, we never want to read from 
+            // Get the collection scope and batch load all the versions.  We put all entities in
+            // app/app for easy retrieval/ unless persistence changes, we never want to read from
             // any scope other than the app, app, scope name scope
-            final CollectionScope collScope = new CollectionScopeImpl( 
+            final CollectionScope collScope = new CollectionScopeImpl(
                 applicationScope.getApplication(), applicationScope.getApplication(), scopeName);
 
             final EntityCollectionManager ecm = managerCache.getEntityCollectionManager( collScope);
@@ -225,7 +225,7 @@ public class FilteringLoader implements ResultsLoader {
         }
 
 
-         // NOTE DO NOT execute the batch here.  
+         // NOTE DO NOT execute the batch here.
         // It changes the results and we need consistent paging until we aggregate all results
         return resultsVerifier.getResults( sortedResults.values() );
     }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9bd88e6f/stack/core/src/test/java/org/apache/usergrid/batch/job/AbstractSchedulerRuntimeIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/batch/job/AbstractSchedulerRuntimeIT.java b/stack/core/src/test/java/org/apache/usergrid/batch/job/AbstractSchedulerRuntimeIT.java
index 8825497..e48d652 100644
--- a/stack/core/src/test/java/org/apache/usergrid/batch/job/AbstractSchedulerRuntimeIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/batch/job/AbstractSchedulerRuntimeIT.java
@@ -19,6 +19,7 @@ package org.apache.usergrid.batch.job;
 
 import java.util.Properties;
 
+import com.google.common.util.concurrent.Service;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -96,7 +97,8 @@ public class AbstractSchedulerRuntimeIT {
         JobSchedulerService jobScheduler = springResource.getBean( JobSchedulerService.class );
         jobScheduler.setJobListener( listener );
         if ( jobScheduler.state() != State.RUNNING ) {
-            jobScheduler.startAndWait();
+            Service service = jobScheduler.startAsync();
+            service.awaitRunning();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9bd88e6f/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/future/BetterFuture.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/future/BetterFuture.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/future/BetterFuture.java
index 926003c..201fa9a 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/future/BetterFuture.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/future/BetterFuture.java
@@ -22,7 +22,7 @@ import java.util.concurrent.FutureTask;
 /**
  * Future without the exception nastiness
  */
-public  class BetterFuture<T> extends FutureTask<T>{
+public  class BetterFuture<T> extends FutureTask<T> {
     public BetterFuture(Callable<T> callable){
         super(callable);
     }
@@ -31,12 +31,13 @@ public  class BetterFuture<T> extends FutureTask<T>{
         run();
     }
 
-    @Override
     public T get(){
         try {
-            return get();
+            return super.get();
         }catch (Exception e){
             throw new RuntimeException(e);
         }
     }
+
+
 }