You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Gunnar Wagenknecht (JIRA)" <ji...@apache.org> on 2011/07/01 14:08:28 UTC

[jira] [Commented] (ZOOKEEPER-442) need a way to remove watches that are no longer of interest

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13058513#comment-13058513 ] 

Gunnar Wagenknecht commented on ZOOKEEPER-442:
----------------------------------------------

This is getting critical in our environment. From a heap dump we recognized that the {{HashMap}} with all the values was very large and consumed ~70% of the heap (~3 million entries, collected over just a few days, ~8 million capacity). 

Our usage patter might be wrong, though. I'm setting an exists watch in order to wait for a node to be deleted within a certain timeout. The watch contains a CountDownLatch which allows me to sleep until the watch triggers or the timeout triggers. in the latter case I really need to remove the watch.

A workaround would be to not set a watch at all and just sleep for a while and check in a loop. However, that would increase the read traffic to ZooKeeper dramatically.

Any ideas?

> need a way to remove watches that are no longer of interest
> -----------------------------------------------------------
>
>                 Key: ZOOKEEPER-442
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-442
>             Project: ZooKeeper
>          Issue Type: Improvement
>            Reporter: Benjamin Reed
>
> currently the only way a watch cleared is to trigger it. we need a way to enumerate the outstanding watch objects, find watch events the objects are watching for, and remove interests in an event.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira