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/03 19:33:33 UTC

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.

Repository: usergrid
Updated Branches:
  refs/heads/release-2.1.1 e0a5d9811 -> 02e1619cb


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/release-2.1.1
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 -> {