zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hanm <...@git.apache.org>
Subject [GitHub] zookeeper pull request #590: [ZOOKEEPER-1177] Add the memory optimized watch...
Date Sat, 22 Sep 2018 04:38:36 GMT
Github user hanm commented on a diff in the pull request:

    https://github.com/apache/zookeeper/pull/590#discussion_r219660065
  
    --- 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
    +                keep the size small to make sure it doesn't cost too much in memory,
there is a tradeoff between memory
    --- End diff --
    
    space between `trade` and `off`.


---

Mime
View raw message