Github user hanm commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/590#discussion_r219660094
--- Diff: zookeeper-docs/src/documentation/content/xdocs/zookeeperAdmin.xml
---
@@ -1025,6 +1025,102 @@ server.3=zoo3:2888:3888</programlisting>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term>watchManaggerName</term>
+
+ <listitem>
+ <para>(Java system property only: <emphasis
+
role="bold">zookeeper.watchManaggerName</emphasis>)</para>
+
+ <para><emphasis role="bold">New in 3.6.0:</emphasis> Added in
+ <ulink
url="https://issues.apache.org/jira/browse/ZOOKEEPER-1179">ZOOKEEPER-1179</ulink>
New watcher
+ manager WatchManagerOptimized is added to optimize the
memory overhead in heavy watch use cases. This
+ config is used define which watch manager to be used.
Currently, we only support WatchManager and
+ WatchManagerOptimized.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>watcherCleanThreadsNum</term>
+
+ <listitem>
+ <para>(Java system property only: <emphasis
+
role="bold">zookeeper.watcherCleanThreadsNum</emphasis>)</para>
+
+ <para><emphasis role="bold">New in 3.6.0:</emphasis> Added in
+ <ulink
url="https://issues.apache.org/jira/browse/ZOOKEEPER-1179">ZOOKEEPER-1179</ulink>
The new watcher
+ manager WatchManagerOptimized will clean up the dead
watchers lazily, this config is used to decide how
+ many thread is used in the WatcherCleaner. More thread
usually means larger clean up throughput. The
+ default value is 2, which is good enough even for heavy
and continuous session closing/receating cases.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>watcherCleanThreshold</term>
+
+ <listitem>
+ <para>(Java system property only: <emphasis
+
role="bold">zookeeper.watcherCleanThreshold</emphasis>)</para>
+
+ <para><emphasis role="bold">New in 3.6.0:</emphasis> Added in
+ <ulink
url="https://issues.apache.org/jira/browse/ZOOKEEPER-1179">ZOOKEEPER-1179</ulink>
The new watcher
+ manager WatchManagerOptimized will clean up the dead
watchers lazily, the clean up process is relatively
+ heavy, batch processing will reduce the cost and improve
the performance. This setting is used to decide
+ the batch size. The default one is 1000, we don't need to
change it if there is no memory or clean up
+ speed issue.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>watcherCleanIntervalInSeconds</term>
+
+ <listitem>
+ <para>(Java system property only: <emphasis
+
role="bold">zookeeper.watcherCleanIntervalInSeconds</emphasis>)</para>
+
+ <para><emphasis role="bold">New in 3.6.0:</emphasis> Added in
+ <ulink
url="https://issues.apache.org/jira/browse/ZOOKEEPER-1179">ZOOKEEPER-1179</ulink>
The new watcher
+ manager WatchManagerOptimized will clean up the dead
watchers lazily, the clean up process is relatively
+ heavy, batch processing will reduce the cost and improve
the performance. Besides watcherCleanThreshold,
+ this setting is used to clean up the dead watchers after
certain time even the dead watchers are not larger
+ than watcherCleanThreshold, so that we won't leave the
dead watchers there for too long. The default setting
+ is 10 minutes, which usually don't need to be
changed.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>maxInProcessingDeadWatchers</term>
+
+ <listitem>
+ <para>(Java system property only: <emphasis
+
role="bold">zookeeper.maxInProcessingDeadWatchers</emphasis>)</para>
+
+ <para><emphasis role="bold">New in 3.6.0:</emphasis> Added in
+ <ulink
url="https://issues.apache.org/jira/browse/ZOOKEEPER-1179">ZOOKEEPER-1179</ulink>
This is used
+ to control how many backlog can we have in the
WatcherCleaner, when it reaches this number, it will
+ slow down adding the dead watcher to WatcherCleaner, which
will in turn slow down adding and closing
+ watchers, so that we can avoid OOM issue. By default there
is no limit, you can set it to values like
+ watcherCleanThreshold * 1000.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>bitHashCacheSize</term>
+
+ <listitem>
+ <para>(Java system property only: <emphasis
+
role="bold">zookeeper.bitHashCacheSize</emphasis>)</para>
+
+ <para><emphasis role="bold">New 3.6.0:</emphasis> Added in
+ <ulink
url="https://issues.apache.org/jira/browse/ZOOKEEPER-1179">ZOOKEEPER-1179</ulink>
This is the
+ settin used to decide the HashSet cache size in the
BitHashSet implementation. Without HashSet, we
+ need to to use O(N) time to get the elements, N is the bit
numbers in elementBits. But we need to
--- End diff --
`need to` instead of `need to to`
---