fix collections it
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/735eedb2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/735eedb2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/735eedb2 Branch: refs/heads/USERGRID-347 Commit: 735eedb2c25d6149f58728cbde74ca0dbf7d9283 Parents: 70fe285 Author: Shawn Feldman <[email protected]> Authored: Thu Mar 19 17:24:32 2015 -0600 Committer: Shawn Feldman <[email protected]> Committed: Thu Mar 19 17:24:32 2015 -0600 ---------------------------------------------------------------------- .../corepersistence/CpEntityManager.java | 7 ---- .../corepersistence/CpEntityManagerFactory.java | 6 +-- .../usergrid/corepersistence/CpSetup.java | 6 ++- .../usergrid/persistence/EntityManager.java | 5 --- .../cassandra/EntityManagerImpl.java | 6 --- .../corepersistence/StaleIndexCleanupTest.java | 39 ++++++++++++++++---- .../usergrid/persistence/CollectionIT.java | 14 ++++--- .../index/impl/EsEntityIndexImpl.java | 4 ++ 8 files changed, 53 insertions(+), 34 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/735eedb2/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 a9f00b4..64f0257 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 @@ -2893,13 +2893,6 @@ public class CpEntityManager implements EntityManager { @Override - public void createIndex() { - ei.initializeIndex(); - } - - - - @Override public void flushManagerCaches() { managerCache.invalidate(); } http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/735eedb2/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java ---------------------------------------------------------------------- diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java index f3d18d0..134886f 100644 --- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java +++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java @@ -160,8 +160,8 @@ public class CpEntityManagerFactory implements EntityManagerFactory, Application em.getApplication(); } - em.createIndex(); - em.refreshIndex(); + entityIndex.initializeIndex(); + entityIndex.refresh(); } catch (Exception ex) { @@ -723,7 +723,7 @@ public class CpEntityManagerFactory implements EntityManagerFactory, Application EntityManager em = getEntityManager( appId ); //explicitly invoke create index, we don't know if it exists or not in ES during a rebuild. - em.createIndex(); + entityIndex.initializeIndex(); em.reindex(po); em.reindex( po ); http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/735eedb2/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpSetup.java ---------------------------------------------------------------------- diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpSetup.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpSetup.java index d70c16c..a9e6cee 100644 --- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpSetup.java +++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpSetup.java @@ -19,6 +19,8 @@ package org.apache.usergrid.corepersistence; import java.util.UUID; +import com.google.inject.Binding; +import org.apache.usergrid.persistence.index.EntityIndex; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -64,6 +66,7 @@ public class CpSetup implements Setup { private final CassandraService cass; private final EntityManagerFactory emf; + private final EntityIndex entityIndex; /** @@ -75,6 +78,7 @@ public class CpSetup implements Setup { this.emf = emf; this.cass = cassandraService; this.injector = injector; + this.entityIndex = injector.getInstance(EntityIndex.class); } @@ -95,7 +99,7 @@ public class CpSetup implements Setup { setupStaticKeyspace(); //force the EMF creation of indexes before creating the default applications - emf.refreshIndex(); + entityIndex.initializeIndex(); injector.getInstance( DataMigrationManager.class ).migrate(); http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/735eedb2/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java ---------------------------------------------------------------------- diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java b/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java index 71dcd07..89a5384 100644 --- a/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java +++ b/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManager.java @@ -690,11 +690,6 @@ public interface EntityManager { */ void refreshIndex(); - /** - * Create the index, should ONLY ever be called the first time an application is created - */ - void createIndex(); - public void init( EntityManagerFactory emf, EntityIndex entityIndex, UUID applicationId); http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/735eedb2/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java ---------------------------------------------------------------------- diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java index 803512b..112b684 100644 --- a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java +++ b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/EntityManagerImpl.java @@ -2890,12 +2890,6 @@ public class EntityManagerImpl implements EntityManager { } - @Override - public void createIndex() { - //no op - } - - @Override public EntityRef getGroupRoleRef( UUID ownerId, String roleName) throws Exception { http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/735eedb2/stack/core/src/test/java/org/apache/usergrid/corepersistence/StaleIndexCleanupTest.java ---------------------------------------------------------------------- diff --git a/stack/core/src/test/java/org/apache/usergrid/corepersistence/StaleIndexCleanupTest.java b/stack/core/src/test/java/org/apache/usergrid/corepersistence/StaleIndexCleanupTest.java index fdd230c..450f44b 100644 --- a/stack/core/src/test/java/org/apache/usergrid/corepersistence/StaleIndexCleanupTest.java +++ b/stack/core/src/test/java/org/apache/usergrid/corepersistence/StaleIndexCleanupTest.java @@ -120,7 +120,14 @@ public class StaleIndexCleanupTest extends AbstractCoreIT { assertTrue( "New version is greater than old", UUIDComparator.staticCompare( newVersion, oldVersion ) > 0 ); - assertEquals( 2, queryCollectionCp( "things", "thing", "select *" ).size() ); + CandidateResults results; + do{ + results = queryCollectionCp( "things", "thing", "select *" ); + if(results.size()!=2){ + Thread.sleep(200); + } + }while(results.size()!=2); + assertEquals( 2, results.size() ); } @@ -151,24 +158,42 @@ public class StaleIndexCleanupTest extends AbstractCoreIT { UUID newVersion = getCpEntity( thing ).getVersion(); + CandidateResults candidateResults = null; + + do{ + candidateResults = queryCollectionCp("things", "thing", "select * order by ordinal desc"); + if(candidateResults.size()!=2){ + Thread.sleep(200); + } + }while(candidateResults.size()<2); - assertEquals(2, queryCollectionCp("things", "thing", "select * order by ordinal desc").size()); + assertEquals(2, candidateResults.size()); //now run enable events and ensure we clean up System.setProperty(EVENTS_DISABLED, "false"); - final Results results = queryCollectionEm("things", "select * order by ordinal desc"); - + Results results = null; + do{ + results = queryCollectionEm("things", "select * order by ordinal desc");; + if(results.size()!=1){ + Thread.sleep(200); + } + }while(results.size()<1); assertEquals( 1, results.size() ); assertEquals(1, results.getEntities().get( 0 ).getProperty( "ordinal" )); em.refreshIndex(); //ensure it's actually gone - final CandidateResults candidates = queryCollectionCp( "things", "thing", "select * order by ordinal desc" ); - assertEquals(1, candidates.size()); + do{ + candidateResults = queryCollectionCp( "things", "thing", "select * order by ordinal desc" ); + if(candidateResults.size()!=1){ + Thread.sleep(200); + } + }while(candidateResults.size()!=1); + assertEquals(1, candidateResults.size()); - assertEquals(newVersion, candidates.get(0).getVersion()); + assertEquals(newVersion, candidateResults.get(0).getVersion()); } http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/735eedb2/stack/core/src/test/java/org/apache/usergrid/persistence/CollectionIT.java ---------------------------------------------------------------------- diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/CollectionIT.java b/stack/core/src/test/java/org/apache/usergrid/persistence/CollectionIT.java index 641d3ad..aa75a9a 100644 --- a/stack/core/src/test/java/org/apache/usergrid/persistence/CollectionIT.java +++ b/stack/core/src/test/java/org/apache/usergrid/persistence/CollectionIT.java @@ -1227,11 +1227,15 @@ public class CollectionIT extends AbstractCoreIT { Query query = new Query(); query.addEqualityFilter( "rootprop1", "simpleprop" ); - - Results results = em.searchCollection( em.getApplicationRef(), "tests", query ); - - Entity entity = results.getEntitiesMap().get( saved.getUuid() ); - + Entity entity; + Results results; + do { + results = em.searchCollection(em.getApplicationRef(), "tests", query); + entity = results.getEntitiesMap().get(saved.getUuid()); + if (entity == null) { + Thread.sleep(200); + } + }while(entity == null); assertNotNull( entity ); // query on the nested int value http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/735eedb2/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 e92e133..04fde6a 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 @@ -18,6 +18,7 @@ package org.apache.usergrid.persistence.index.impl; +import com.codahale.metrics.Meter; import com.codahale.metrics.Timer; import com.google.common.collect.ImmutableMap; import com.google.inject.Inject; @@ -105,6 +106,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex { private EsIndexCache aliasCache; private Timer mappingTimer; private Timer refreshTimer; + private Meter refreshIndexMeter; // private final Timer indexTimer; @@ -131,6 +133,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex { .getTimer(EsEntityIndexImpl.class, "create.mapping.timer"); this.refreshTimer = metricsFactory .getTimer(EsEntityIndexImpl.class, "refresh.timer"); + this.refreshIndexMeter = metricsFactory.getMeter(EsEntityIndexImpl.class,"refresh.meter"); } @@ -323,6 +326,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex { public void refresh() { + refreshIndexMeter.mark(); BetterFuture future = indexBatchBufferProducer.put(new IndexOperationMessage()); future.get();
