Author: mahadev
Date: Tue Dec 23 13:29:28 2008
New Revision: 729131

URL: http://svn.apache.org/viewvc?rev=729131&view=rev
Log:
ZOOKEEPER-214. add new "stat reset" command to server admin port. (pat via 
mahadev)

Modified:
    hadoop/zookeeper/trunk/CHANGES.txt
    hadoop/zookeeper/trunk/docs/zookeeperAdmin.html
    hadoop/zookeeper/trunk/docs/zookeeperAdmin.pdf
    
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml
    
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java
    
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerCnxn.java
    
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerStats.java

Modified: hadoop/zookeeper/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=729131&r1=729130&r2=729131&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/CHANGES.txt (original)
+++ hadoop/zookeeper/trunk/CHANGES.txt Tue Dec 23 13:29:28 2008
@@ -91,6 +91,9 @@
    ZOOKEEPER-256. support use of JMX to manage log4j configuration at runtime.
 (pat via mahadev)
 
+   ZOOKEEPER-214. add new "stat reset" command to server admin port. (pat via
+mahadev)
+
 Release 3.0.0 - 2008-10-21
 
 Non-backward compatible changes:

Modified: hadoop/zookeeper/trunk/docs/zookeeperAdmin.html
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/docs/zookeeperAdmin.html?rev=729131&r1=729130&r2=729131&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/docs/zookeeperAdmin.html (original)
+++ hadoop/zookeeper/trunk/docs/zookeeperAdmin.html Tue Dec 23 13:29:28 2008
@@ -1123,6 +1123,14 @@
 
         
 <dt>
+<term>srst</term>
+</dt>
+<dd>
+<p>Reset statistics returned by stat command.</p>
+</dd>
+
+        
+<dt>
 <term>stat</term>
 </dt>
 <dd>
@@ -1136,7 +1144,7 @@
 <pre class="code">$ echo ruok | nc 127.0.0.1 5111
 imok
 </pre>
-<a name="N10388"></a><a name="sc_dataFileManagement"></a>
+<a name="N1038F"></a><a name="sc_dataFileManagement"></a>
 <h3 class="h4">Data File Management</h3>
 <p>ZooKeeper stores its data in a data directory and its transaction
       log in a transaction log directory. By default these two directories are
@@ -1144,7 +1152,7 @@
       transaction log files in a separate directory than the data files.
       Throughput increases and latency decreases when transaction logs reside
       on a dedicated log devices.</p>
-<a name="N10391"></a><a name="The+Data+Directory"></a>
+<a name="N10398"></a><a name="The+Data+Directory"></a>
 <h4>The Data Directory</h4>
 <p>This directory has two files in it:</p>
 <ul>
@@ -1190,14 +1198,14 @@
         idempotent nature of its updates. By replaying the transaction log
         against fuzzy snapshots ZooKeeper gets the state of the system at the
         end of the log.</p>
-<a name="N103CD"></a><a name="The+Log+Directory"></a>
+<a name="N103D4"></a><a name="The+Log+Directory"></a>
 <h4>The Log Directory</h4>
 <p>The Log Directory contains the ZooKeeper transaction logs.
         Before any update takes place, ZooKeeper ensures that the transaction
         that represents the update is written to non-volatile storage. A new
         log file is started each time a snapshot is begun. The log file's
         suffix is the first zxid written to that log.</p>
-<a name="N103D7"></a><a name="File+Management"></a>
+<a name="N103DE"></a><a name="File+Management"></a>
 <h4>File Management</h4>
 <p>The format of snapshot and log files does not change between
         standalone ZooKeeper servers and different configurations of
@@ -1214,7 +1222,7 @@
         needs the latest complete fuzzy snapshot and the log files from the
         start of that snapshot. The PurgeTxnLog utility implements a simple
         retention policy that administrators can use.</p>
-<a name="N103E8"></a><a name="sc_commonProblems"></a>
+<a name="N103EF"></a><a name="sc_commonProblems"></a>
 <h3 class="h4">Things to Avoid</h3>
 <p>Here are some common problems you can avoid by configuring
       ZooKeeper correctly:</p>
@@ -1268,7 +1276,7 @@
 </dd>
       
 </dl>
-<a name="N1040C"></a><a name="sc_bestPractices"></a>
+<a name="N10413"></a><a name="sc_bestPractices"></a>
 <h3 class="h4">Best Practices</h3>
 <p>For best results, take note of the following list of good
       Zookeeper practices. <em>[tbd...]</em>

Modified: hadoop/zookeeper/trunk/docs/zookeeperAdmin.pdf
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/docs/zookeeperAdmin.pdf?rev=729131&r1=729130&r2=729131&view=diff
==============================================================================
Binary files - no diff available.

Modified: 
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml?rev=729131&r1=729130&r2=729131&view=diff
==============================================================================
--- 
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml
 (original)
+++ 
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml
 Tue Dec 23 13:29:28 2008
@@ -810,6 +810,14 @@
         </varlistentry>
 
         <varlistentry>
+          <term>srst</term>
+
+          <listitem>
+            <para>Reset statistics returned by stat command.</para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
           <term>stat</term>
 
           <listitem>

Modified: 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java?rev=729131&r1=729130&r2=729131&view=diff
==============================================================================
--- 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java
 (original)
+++ 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java
 Tue Dec 23 13:29:28 2008
@@ -526,13 +526,20 @@
             // We take advantage of the limited size of the length to look
             // for cmds. They are all 4-bytes which fits inside of an int
             if (len == ruokCmd) {
+                LOG.info("Processing ruok command from " 
+                        + sock.socket().getRemoteSocketAddress());
+
                 sendBuffer(imok.duplicate());
                 sendBuffer(NIOServerCnxn.closeConn);
                 k.interestOps(SelectionKey.OP_WRITE);
                 return;
             } else if (len == killCmd) {
+                LOG.info("Processing kill command from " 
+                        + sock.socket().getRemoteSocketAddress());
                 System.exit(0);
             } else if (len == getTraceMaskCmd) {
+                LOG.info("Processing getracemask command from " 
+                        + sock.socket().getRemoteSocketAddress());
                 long traceMask = ZooTrace.getTextTraceLevel();
                 ByteBuffer resp = ByteBuffer.allocate(8);
                 resp.putLong(traceMask);
@@ -542,6 +549,8 @@
                 k.interestOps(SelectionKey.OP_WRITE);
                 return;
             } else if (len == setTraceMaskCmd) {
+                LOG.info("Processing settracemask command from " 
+                        + sock.socket().getRemoteSocketAddress());
                 incomingBuffer = ByteBuffer.allocate(8);
 
                 int rc = sock.read(incomingBuffer);
@@ -560,6 +569,8 @@
                 k.interestOps(SelectionKey.OP_WRITE);
                 return;
             } else if (len == dumpCmd) {
+                LOG.info("Processing dump command from " 
+                        + sock.socket().getRemoteSocketAddress());
                 if (zk == null) {
                     sendBuffer(ByteBuffer.wrap("ZooKeeper not active \n"
                             .getBytes()));
@@ -574,6 +585,8 @@
                 k.interestOps(SelectionKey.OP_WRITE);
                 return;
             } else if (len == reqsCmd) {
+                LOG.info("Processing reqs command from " 
+                        + sock.socket().getRemoteSocketAddress());
                 StringBuffer sb = new StringBuffer();
                 sb.append("Requests:\n");
                 synchronized (outstanding) {
@@ -586,6 +599,8 @@
                 k.interestOps(SelectionKey.OP_WRITE);
                 return;
             } else if (len == statCmd) {
+                LOG.info("Processing stat command from " 
+                        + sock.socket().getRemoteSocketAddress());
                 StringBuffer sb = new StringBuffer();
                 if(zk!=null){
                     sb.append("Zookeeper version: 
").append(Version.getFullVersion())
@@ -607,6 +622,8 @@
                 k.interestOps(SelectionKey.OP_WRITE);
                 return;
             } else if (len == enviCmd) {
+                LOG.info("Processing envi command from " 
+                        + sock.socket().getRemoteSocketAddress());
                 StringBuffer sb = new StringBuffer();
                 
                 List<Environment.Entry> env = Environment.list();
@@ -620,6 +637,15 @@
                 sendBuffer(ByteBuffer.wrap(sb.toString().getBytes()));
                 k.interestOps(SelectionKey.OP_WRITE);
                 return;
+            } else if (len == srstCmd) {
+                LOG.info("Processing srst command from " 
+                        + sock.socket().getRemoteSocketAddress());
+                ServerStats stats = ServerStats.getInstance();
+                stats.reset();
+
+                sendBuffer(ByteBuffer.wrap("Stats reset.\n".getBytes()));
+                k.interestOps(SelectionKey.OP_WRITE);
+                return;
             }
         }
         if (len < 0 || len > BinaryInputArchive.maxBuffer) {

Modified: 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerCnxn.java
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerCnxn.java?rev=729131&r1=729130&r2=729131&view=diff
==============================================================================
--- 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerCnxn.java
 (original)
+++ 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerCnxn.java
 Tue Dec 23 13:29:28 2008
@@ -31,24 +31,31 @@
 import org.apache.zookeeper.proto.WatcherEvent;
 
 public interface ServerCnxn extends Watcher {
+    
+    /**
+     * See <a 
href="{...@docroot}/../../../docs/zookeeperAdmin.html#sc_zkCommands">
+     * Zk Admin</a>. this link is for all the commands.
+     */
     final static int killCmd = ByteBuffer.wrap("kill".getBytes()).getInt();
-
+    
     final static int ruokCmd = ByteBuffer.wrap("ruok".getBytes()).getInt();
 
     final static int dumpCmd = ByteBuffer.wrap("dump".getBytes()).getInt();
-
+    
     final static int statCmd = ByteBuffer.wrap("stat".getBytes()).getInt();
-
+    
     final static int reqsCmd = ByteBuffer.wrap("reqs".getBytes()).getInt();
 
     final static int setTraceMaskCmd = ByteBuffer.wrap("stmk".getBytes())
             .getInt();
-
+    
     final static int getTraceMaskCmd = ByteBuffer.wrap("gtmk".getBytes())
             .getInt();
-
+    
     final static int enviCmd = ByteBuffer.wrap("envi".getBytes()).getInt();
-
+    
+    final static int srstCmd = ByteBuffer.wrap("srst".getBytes()).getInt();
+    
     final static ByteBuffer imok = ByteBuffer.wrap("imok".getBytes());
 
     public abstract int getSessionTimeout();

Modified: 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerStats.java
URL: 
http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerStats.java?rev=729131&r1=729130&r2=729131&view=diff
==============================================================================
--- 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerStats.java
 (original)
+++ 
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerStats.java
 Tue Dec 23 13:29:28 2008
@@ -136,5 +136,10 @@
     synchronized public void resetRequestCounters(){
         packetsReceived=packetsSent=0;
     }
+    
+    synchronized public void reset() {
+        resetLatency();
+        resetRequestCounters();
+    }
 
 }


Reply via email to