You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@distributedlog.apache.org by si...@apache.org on 2016/12/21 08:00:14 UTC
[06/29] incubator-distributedlog git commit: Remove watcher only when
it registered watcher
Remove watcher only when it registered watcher
(reduce the annoying logging from zookeeper client about "Failed to find watcher!"
RB_ID=837073
Project: http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/commit/98dc9ab2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/tree/98dc9ab2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/diff/98dc9ab2
Branch: refs/heads/merge/DL-98
Commit: 98dc9ab2df8af7af26ca68dbe93be3d420cda417
Parents: b571d3b
Author: Sijie Guo <si...@twitter.com>
Authored: Thu May 26 17:06:31 2016 -0700
Committer: Sijie Guo <si...@twitter.com>
Committed: Mon Dec 12 16:37:27 2016 -0800
----------------------------------------------------------------------
.../main/java/com/twitter/distributedlog/BKLogHandler.java | 7 -------
.../java/com/twitter/distributedlog/BKLogReadHandler.java | 7 ++++++-
.../java/com/twitter/distributedlog/BKLogWriteHandler.java | 6 +++++-
.../com/twitter/distributedlog/readahead/ReadAheadWorker.java | 2 +-
.../java/com/twitter/distributedlog/zk/ZKWatcherManager.java | 4 ++--
.../com/twitter/distributedlog/zk/TestZKWatcherManager.java | 2 +-
6 files changed, 15 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/98dc9ab2/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogHandler.java
----------------------------------------------------------------------
diff --git a/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogHandler.java b/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogHandler.java
index 9aa3465..a6ec318 100644
--- a/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogHandler.java
+++ b/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogHandler.java
@@ -702,13 +702,6 @@ public abstract class BKLogHandler implements Watcher, AsyncCloseable, AsyncAbor
}
@Override
- public Future<Void> asyncClose() {
- // No-op
- this.zooKeeperClient.getWatcherManager().unregisterChildWatcher(logMetadata.getLogSegmentsPath(), this);
- return Future.Void();
- }
-
- @Override
public Future<Void> asyncAbort() {
return asyncClose();
}
http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/98dc9ab2/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogReadHandler.java
----------------------------------------------------------------------
diff --git a/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogReadHandler.java b/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogReadHandler.java
index 0bf6b84..6a8f90e 100644
--- a/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogReadHandler.java
+++ b/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogReadHandler.java
@@ -311,7 +311,12 @@ class BKLogReadHandler extends BKLogHandler {
if (null != handleCache) {
handleCache.clear();
}
- return BKLogReadHandler.super.asyncClose();
+ // No-op
+ zooKeeperClient.getWatcherManager().unregisterChildWatcher(
+ logMetadata.getLogSegmentsPath(),
+ BKLogReadHandler.this,
+ true);
+ return Future.Void();
}
});
}
http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/98dc9ab2/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogWriteHandler.java
----------------------------------------------------------------------
diff --git a/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogWriteHandler.java b/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogWriteHandler.java
index 573679a..4665ed5 100644
--- a/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogWriteHandler.java
+++ b/distributedlog-core/src/main/java/com/twitter/distributedlog/BKLogWriteHandler.java
@@ -1263,7 +1263,11 @@ class BKLogWriteHandler extends BKLogHandler {
).flatMap(new AbstractFunction1<Void, Future<Void>>() {
@Override
public Future<Void> apply(Void result) {
- return BKLogWriteHandler.super.asyncClose();
+ zooKeeperClient.getWatcherManager().unregisterChildWatcher(
+ logMetadata.getLogSegmentsPath(),
+ BKLogWriteHandler.this,
+ false);
+ return Future.Void();
}
});
}
http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/98dc9ab2/distributedlog-core/src/main/java/com/twitter/distributedlog/readahead/ReadAheadWorker.java
----------------------------------------------------------------------
diff --git a/distributedlog-core/src/main/java/com/twitter/distributedlog/readahead/ReadAheadWorker.java b/distributedlog-core/src/main/java/com/twitter/distributedlog/readahead/ReadAheadWorker.java
index a3fd239..5c15009 100644
--- a/distributedlog-core/src/main/java/com/twitter/distributedlog/readahead/ReadAheadWorker.java
+++ b/distributedlog-core/src/main/java/com/twitter/distributedlog/readahead/ReadAheadWorker.java
@@ -359,7 +359,7 @@ public class ReadAheadWorker implements ReadAheadCallback, Runnable, Watcher, As
running = false;
this.zkc.getWatcherManager()
- .unregisterChildWatcher(this.logMetadata.getLogSegmentsPath(), this);
+ .unregisterChildWatcher(this.logMetadata.getLogSegmentsPath(), this, true);
// Aside from unfortunate naming of variables, this allows
// the currently active long poll to be interrupted and completed
http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/98dc9ab2/distributedlog-core/src/main/java/com/twitter/distributedlog/zk/ZKWatcherManager.java
----------------------------------------------------------------------
diff --git a/distributedlog-core/src/main/java/com/twitter/distributedlog/zk/ZKWatcherManager.java b/distributedlog-core/src/main/java/com/twitter/distributedlog/zk/ZKWatcherManager.java
index a24b560..03b2841 100644
--- a/distributedlog-core/src/main/java/com/twitter/distributedlog/zk/ZKWatcherManager.java
+++ b/distributedlog-core/src/main/java/com/twitter/distributedlog/zk/ZKWatcherManager.java
@@ -139,7 +139,7 @@ public class ZKWatcherManager implements Watcher {
return this;
}
- public void unregisterChildWatcher(String path, Watcher watcher) {
+ public void unregisterChildWatcher(String path, Watcher watcher, boolean removeFromServer) {
Set<Watcher> watchers = childWatches.get(path);
if (null == watchers) {
logger.warn("No watchers found on path {} while unregistering child watcher {}.",
@@ -155,7 +155,7 @@ public class ZKWatcherManager implements Watcher {
if (watchers.isEmpty()) {
// best-efforts to remove watches
try {
- if (null != zkc) {
+ if (null != zkc && removeFromServer) {
zkc.get().removeWatches(path, this, WatcherType.Children, true, new AsyncCallback.VoidCallback() {
@Override
public void processResult(int rc, String path, Object ctx) {
http://git-wip-us.apache.org/repos/asf/incubator-distributedlog/blob/98dc9ab2/distributedlog-core/src/test/java/com/twitter/distributedlog/zk/TestZKWatcherManager.java
----------------------------------------------------------------------
diff --git a/distributedlog-core/src/test/java/com/twitter/distributedlog/zk/TestZKWatcherManager.java b/distributedlog-core/src/test/java/com/twitter/distributedlog/zk/TestZKWatcherManager.java
index 6f269c3..3ad181d 100644
--- a/distributedlog-core/src/test/java/com/twitter/distributedlog/zk/TestZKWatcherManager.java
+++ b/distributedlog-core/src/test/java/com/twitter/distributedlog/zk/TestZKWatcherManager.java
@@ -72,7 +72,7 @@ public class TestZKWatcherManager {
assertEquals(event2, events.get(1));
// unregister watcher
- watcherManager.unregisterChildWatcher(path, watcher);
+ watcherManager.unregisterChildWatcher(path, watcher, true);
assertEquals(0, watcherManager.childWatches.size());
}