You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ma...@apache.org on 2008/12/23 22:29:28 UTC
svn commit: r729131 - in /hadoop/zookeeper/trunk: ./ docs/
src/docs/src/documentation/content/xdocs/
src/java/main/org/apache/zookeeper/server/
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();
+ }
}