You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by el...@apache.org on 2014/10/23 20:58:23 UTC
[6/9] git commit: ACCUMULO-3249 Create work only when there is work
to be done for the status.
ACCUMULO-3249 Create work only when there is work to be done for the status.
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/6cbc5863
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/6cbc5863
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/6cbc5863
Branch: refs/heads/master
Commit: 6cbc58630d3507cadf641d8c2309ee15452aa4db
Parents: 48f94bd
Author: Josh Elser <el...@apache.org>
Authored: Wed Oct 22 15:05:17 2014 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Thu Oct 23 11:18:59 2014 -0400
----------------------------------------------------------------------
.../java/org/apache/accumulo/master/replication/WorkMaker.java | 5 ++++-
.../org/apache/accumulo/master/replication/WorkMakerTest.java | 5 +++--
2 files changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/6cbc5863/server/master/src/main/java/org/apache/accumulo/master/replication/WorkMaker.java
----------------------------------------------------------------------
diff --git a/server/master/src/main/java/org/apache/accumulo/master/replication/WorkMaker.java b/server/master/src/main/java/org/apache/accumulo/master/replication/WorkMaker.java
index 0eefca3..eabcc84 100644
--- a/server/master/src/main/java/org/apache/accumulo/master/replication/WorkMaker.java
+++ b/server/master/src/main/java/org/apache/accumulo/master/replication/WorkMaker.java
@@ -103,7 +103,7 @@ public class WorkMaker {
continue;
}
- // Don't create the record if we have nothing to do
+ // Don't create the record if we have nothing to do.
// TODO put this into a filter on serverside
if (!shouldCreateWork(status)) {
continue;
@@ -155,6 +155,9 @@ public class WorkMaker {
* @return Should a Work entry be created for this status
*/
protected boolean shouldCreateWork(Status status) {
+ // Only creating work when there is work to do (regardless of closed status) is safe
+ // as long as the ReplicaSystem implementation is correctly observing
+ // that a file is completely replicated only when the file is closed
return StatusUtil.isWorkRequired(status);
}
http://git-wip-us.apache.org/repos/asf/accumulo/blob/6cbc5863/server/master/src/test/java/org/apache/accumulo/master/replication/WorkMakerTest.java
----------------------------------------------------------------------
diff --git a/server/master/src/test/java/org/apache/accumulo/master/replication/WorkMakerTest.java b/server/master/src/test/java/org/apache/accumulo/master/replication/WorkMakerTest.java
index 9bc3102..d486ded 100644
--- a/server/master/src/test/java/org/apache/accumulo/master/replication/WorkMakerTest.java
+++ b/server/master/src/test/java/org/apache/accumulo/master/replication/WorkMakerTest.java
@@ -50,7 +50,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
/**
- *
+ *
*/
public class WorkMakerTest {
@@ -207,6 +207,7 @@ public class WorkMakerTest {
Assert.assertFalse(workMaker.shouldCreateWork(StatusUtil.fileCreated(System.currentTimeMillis())));
Assert.assertTrue(workMaker.shouldCreateWork(StatusUtil.ingestedUntil(1000)));
- Assert.assertTrue(workMaker.shouldCreateWork(Status.newBuilder().setBegin(Long.MAX_VALUE).setEnd(0).setInfiniteEnd(true).setClosed(true).build()));
+ // We don't need to re-create work for something that's already replicated.
+ Assert.assertFalse(workMaker.shouldCreateWork(Status.newBuilder().setBegin(Long.MAX_VALUE).setEnd(0).setInfiniteEnd(true).setClosed(true).build()));
}
}