Repository: usergrid Updated Branches: refs/heads/release-2.1.1 802416899 -> 57089ee7d
Add additional logging around read repair to assist in troubleshooting. Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/57089ee7 Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/57089ee7 Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/57089ee7 Branch: refs/heads/release-2.1.1 Commit: 57089ee7d0484b3849c95d2d91203b04097e8657 Parents: 8024168 Author: Michael Russo <[email protected]> Authored: Wed Jun 15 21:35:45 2016 -0700 Committer: Michael Russo <[email protected]> Committed: Wed Jun 15 21:35:45 2016 -0700 ---------------------------------------------------------------------- .../usergrid/corepersistence/CpEntityManager.java | 10 ++++++++++ .../collection/impl/EntityCollectionManagerImpl.java | 15 +++++++++++++++ 2 files changed, 25 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/57089ee7/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 fd31cf6..a2813ef 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 @@ -600,6 +600,11 @@ public class CpEntityManager implements EntityManager { } } catch ( WriteUniqueVerifyException wuve ) { + + if(logger.isTraceEnabled()){ + logger.trace("WriteUniqueVerifyException encountered during update of entity with id {}", + cpEntity.getId().getUuid()); + } handleWriteUniqueVerifyException( entity, wuve ); } @@ -2824,6 +2829,11 @@ public class CpEntityManager implements EntityManager { } catch ( WriteUniqueVerifyException wuve ) { + + if(logger.isTraceEnabled()){ + logger.trace("WriteUniqueVerifyException encountered during batchCreate of entity with id {}", + cpEntity.getId().getUuid()); + } handleWriteUniqueVerifyException( entity, wuve ); } http://git-wip-us.apache.org/repos/asf/usergrid/blob/57089ee7/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 fcf1c6b..cc72e73 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 @@ -371,6 +371,15 @@ public class EntityCollectionManagerImpl implements EntityCollectionManager { //bad unique value, delete this, it's inconsistent if ( entity == null || !entity.getEntity().isPresent() ) { + + if(logger.isTraceEnabled()) { + logger.trace("Unique value [{}={}] does not have corresponding entity, executing " + + "read repair to remove stale unique value entry", + expectedUnique.getField().getName(), + expectedUnique.getField().getValue().toString() + ); + } + final MutationBatch valueDelete = uniqueValueSerializationStrategy.delete( applicationScope, expectedUnique ); @@ -389,11 +398,17 @@ public class EntityCollectionManagerImpl implements EntityCollectionManager { deleteBatch.execute(); + // optionally sleep after read repair as some tasks immediately try to write after the delete if ( serializationFig.getReadRepairDelay() > 0 ){ try { + if(logger.isTraceEnabled()) { + logger.trace("Sleeping {}ms after unique value read repair execution", + serializationFig.getReadRepairDelay()); + } + Thread.sleep(Math.min(serializationFig.getReadRepairDelay(), 200L)); } catch (InterruptedException e) {
