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 2015/11/16 17:34:04 UTC
usergrid git commit: Add back in shard meta removal.
Repository: usergrid
Updated Branches:
refs/heads/2.1-release 8ed1bc784 -> afffdf278
Add back in shard meta removal.
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/afffdf27
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/afffdf27
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/afffdf27
Branch: refs/heads/2.1-release
Commit: afffdf278242ccb6e309cff220af371f32a0c0e4
Parents: 8ed1bc7
Author: Michael Russo <mi...@gmail.com>
Authored: Mon Nov 16 08:34:01 2015 -0800
Committer: Michael Russo <mi...@gmail.com>
Committed: Mon Nov 16 08:34:01 2015 -0800
----------------------------------------------------------------------
.../impl/shard/impl/ShardGroupDeletionImpl.java | 168 +++++++++----------
1 file changed, 84 insertions(+), 84 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/afffdf27/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupDeletionImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupDeletionImpl.java b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupDeletionImpl.java
index 4d6be1b..d289f30 100644
--- a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupDeletionImpl.java
+++ b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupDeletionImpl.java
@@ -125,90 +125,90 @@ public class ShardGroupDeletionImpl implements ShardGroupDeletion {
final ShardEntryGroup shardEntryGroup,
final Iterator<MarkedEdge> edgeIterator ) {
- //TEMPORARILY Removed until further testing
- return DeleteResult.NO_OP;
-
-// logger.trace( "Beginning audit of shard group {}", shardEntryGroup );
-//
-// /**
-// * Compaction is pending, we cannot check it
-// */
-// if ( shardEntryGroup.isCompactionPending() ) {
-// logger.trace( "Shard group {} is compacting, not auditing group", shardEntryGroup );
-// return DeleteResult.COMPACTION_PENDING;
-// }
-//
-//
-// final long currentTime = timeService.getCurrentTime();
-//
-// if ( shardEntryGroup.isNew( currentTime ) ) {
-// logger.trace( "Shard group {} contains a shard that is is too new, not auditing group", shardEntryGroup );
-// return DeleteResult.TOO_NEW;
-// }
-//
-// /**
-// * We have edges, and therefore cannot delete them
-// */
-// if ( edgeIterator.hasNext() ) {
-// logger.trace( "Shard group {} has edges, not deleting", shardEntryGroup );
-//
-// return DeleteResult.CONTAINS_EDGES;
-// }
-//
-//
-// //now we can proceed based on the shard meta state and we don't have any edge
-//
-// DeleteResult result = DeleteResult.NO_OP;
-//
-// MutationBatch rollup = null;
-//
-// for ( final Shard shard : shardEntryGroup.getReadShards() ) {
-//
-// //skip the min shard
-// if(shard.isMinShard()){
-// logger.trace( "Shard {} in group {} is the minimum, not deleting", shard, shardEntryGroup );
-// continue;
-// }
-//
-// //The shard is not compacted, we cannot remove it. This should never happen, a bit of an "oh shit" scenario.
-// //the isCompactionPending should return false in this case
-// if(!shard.isCompacted()){
-// logger.warn( "Shard {} in group {} is not compacted yet was checked. Short circuiting", shard, shardEntryGroup );
-// return DeleteResult.NO_OP;
-// }
-//
-//
-// final MutationBatch shardRemovalMutation =
-// edgeShardSerialization.removeShardMeta( applicationScope, shard, directedEdgeMeta );
-//
-// if ( rollup == null ) {
-// rollup = shardRemovalMutation;
-// }
-//
-// else {
-// rollup.mergeShallow( shardRemovalMutation );
-// }
-//
-// result = DeleteResult.DELETED;
-//
-// logger.trace( "Removing shard {} in group {}", shard, shardEntryGroup );
-// }
-//
-//
-// if( rollup != null) {
-//
-// try {
-// rollup.execute();
-// }
-// catch ( ConnectionException e ) {
-// logger.error( "Unable to execute shard deletion", e );
-// throw new RuntimeException( "Unable to execute shard deletion", e );
-// }
-// }
-//
-// logger.trace( "Completed auditing shard group {}", shardEntryGroup );
-//
-// return result;
+ //Use ths to TEMPORARILY remove deletes from occurring
+ //return DeleteResult.NO_OP;
+
+ logger.trace( "Beginning audit of shard group {}", shardEntryGroup );
+
+ /**
+ * Compaction is pending, we cannot check it
+ */
+ if ( shardEntryGroup.isCompactionPending() ) {
+ logger.trace( "Shard group {} is compacting, not auditing group", shardEntryGroup );
+ return DeleteResult.COMPACTION_PENDING;
+ }
+
+
+ final long currentTime = timeService.getCurrentTime();
+
+ if ( shardEntryGroup.isNew( currentTime ) ) {
+ logger.trace( "Shard group {} contains a shard that is is too new, not auditing group", shardEntryGroup );
+ return DeleteResult.TOO_NEW;
+ }
+
+ /**
+ * We have edges, and therefore cannot delete them
+ */
+ if ( edgeIterator.hasNext() ) {
+ logger.trace( "Shard group {} has edges, not deleting", shardEntryGroup );
+
+ return DeleteResult.CONTAINS_EDGES;
+ }
+
+
+ //now we can proceed based on the shard meta state and we don't have any edge
+
+ DeleteResult result = DeleteResult.NO_OP;
+
+ MutationBatch rollup = null;
+
+ for ( final Shard shard : shardEntryGroup.getReadShards() ) {
+
+ //skip the min shard
+ if(shard.isMinShard()){
+ logger.trace( "Shard {} in group {} is the minimum, not deleting", shard, shardEntryGroup );
+ continue;
+ }
+
+ //The shard is not compacted, we cannot remove it. This should never happen, a bit of an "oh shit" scenario.
+ //the isCompactionPending should return false in this case
+ if(!shard.isCompacted()){
+ logger.warn( "Shard {} in group {} is not compacted yet was checked. Short circuiting", shard, shardEntryGroup );
+ return DeleteResult.NO_OP;
+ }
+
+
+ final MutationBatch shardRemovalMutation =
+ edgeShardSerialization.removeShardMeta( applicationScope, shard, directedEdgeMeta );
+
+ if ( rollup == null ) {
+ rollup = shardRemovalMutation;
+ }
+
+ else {
+ rollup.mergeShallow( shardRemovalMutation );
+ }
+
+ result = DeleteResult.DELETED;
+
+ logger.info( "Removing shard {} in group {}", shard, shardEntryGroup );
+ }
+
+
+ if( rollup != null) {
+
+ try {
+ rollup.execute();
+ }
+ catch ( ConnectionException e ) {
+ logger.error( "Unable to execute shard deletion", e );
+ throw new RuntimeException( "Unable to execute shard deletion", e );
+ }
+ }
+
+ logger.trace( "Completed auditing shard group {}", shardEntryGroup );
+
+ return result;
}