You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by mr...@apache.org on 2016/07/26 21:17:50 UTC

[11/50] usergrid git commit: Set consistency level to ALL for now on unique value serialization strategy as any cassandra inconsistencies will break the usage of the unique value index.

Set consistency level to ALL for now on unique value serialization strategy as any cassandra inconsistencies will break the usage of the unique value index.


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

Branch: refs/heads/apigee-sso-provider
Commit: 02e1619cbce1ada18d25048558ccdfc2a3341542
Parents: e0a5d98
Author: Michael Russo <mr...@apigee.com>
Authored: Sun Jul 3 12:32:25 2016 -0700
Committer: Michael Russo <mr...@apigee.com>
Committed: Sun Jul 3 12:32:25 2016 -0700

----------------------------------------------------------------------
 .../collection/impl/EntityCollectionManagerImpl.java            | 4 +++-
 .../collection/mvcc/stage/write/WriteUniqueVerify.java          | 5 +++--
 2 files changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/02e1619c/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
index 658c68c..5bdcf1d 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/impl/EntityCollectionManagerImpl.java
@@ -333,8 +333,10 @@ public class EntityCollectionManagerImpl implements EntityCollectionManager {
                 final UUID startTime = UUIDGenerator.newTimeUUID();
 
                 //Get back set of unique values that correspond to collection of fields
+                //Purposely use CL ALL as consistency is extremely important here, regardless of performance
                 UniqueValueSet set =
-                    uniqueValueSerializationStrategy.load( applicationScope, type, fields1 , uniqueIndexRepair);
+                    uniqueValueSerializationStrategy
+                        .load( applicationScope, ConsistencyLevel.CL_ALL, type, fields1 , uniqueIndexRepair);
 
                 //Short circuit if we don't have any uniqueValues from the given fields.
                 if ( !set.iterator().hasNext() ) {

http://git-wip-us.apache.org/repos/asf/usergrid/blob/02e1619c/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
index 53160dc..01e6621 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/mvcc/stage/write/WriteUniqueVerify.java
@@ -123,8 +123,9 @@ public class WriteUniqueVerify implements Action1<CollectionIoEvent<MvccEntity>>
 
                 // loading will retrieve the oldest unique value entry for the field
                 // don't use read repair on this pre-write check
-                UniqueValueSet set = uniqueValueStrat.load(scope, written.getEntityId().getType(),
-                    Collections.singletonList(written.getField()), false);
+                // use CL ALL as consistency is extremely important here, more so than performance
+                UniqueValueSet set = uniqueValueStrat.load(scope, ConsistencyLevel.CL_ALL,
+                    written.getEntityId().getType(), Collections.singletonList(written.getField()), false);
 
 
                 set.forEach(uniqueValue -> {