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);
}
}
+
+
}