<commit_before>h1. ZooKeeper Smoketest

*Author: "<NAME>":http://people.apache.org/~phunt/* (follow me on "twitter":http://twitter.com/phunt)

h2. Summary

"This project":http://github.com/phunt/zk-smoketest provides a simple smoketest client for a ZooKeeper ensemble. Useful for verifying new, updated, existing installations.

h3. What's Apache ZooKeeper?

From the "official site":http://hadoop.apache.org/zookeeper/: "ZooKeeper is a high-performance coordination service for distributed applications."

It exposes common services - such as naming, configuration management, synchronization, and group services - in a simple interface so you don't have to write them from scratch. You can use it off-the-shelf to implement consensus, group management, leader election, and presence protocols.

h2. Overview

This tool uses the ZooKeeper python binding to exercise the server. In general the script does the following:

# create a root znode for the test, i.e. /zk-smoketest
# attach a zk session to each server in the ensemble (the --servers list)
# each client will create ephemeral znodes and attach watches on znodes of the other clients
# each client will then delete the the ephemeral znodes it owns, all clients verify watches are triggered properly
# client then cleans up, removing /zk-smoketest znode

h2. Usage

<code>
PYTHONPATH=lib.linux-i686-2.6 LD_LIBRARY_PATH=lib.linux-i686-2.6 ./zk-smoketest.py --servers "host:port(,host:port)*"
</code>

*Note*: you may need to compile the zookeeper python binding yourself, this project includes only 32bit linux binaries. Additionally, the smoketest scripts rely on some changes to the zkpython binding that are not yet released, so if you do compile yourself you will need to compile zkpython from the Apache "ZooKeeper SVN trunk":http://hadoop.apache.org/zookeeper/version_control.html (this should be addressed as soon as ZooKeeper 3.3.0 is released).
<commit_msg>note that this is wip, ask for feedback<commit_after>h1. ZooKeeper Smoketest

*Author: "<NAME>":http://people.apache.org/~phunt/* (follow me on "twitter":http://twitter.com/phunt)

h2. Summary

"This project":http://github.com/phunt/zk-smoketest provides a simple smoketest client for a ZooKeeper ensemble. Useful for verifying new, updated, existing installations.

h3. What's Apache ZooKeeper?

From the "official site":http://hadoop.apache.org/zookeeper/: "ZooKeeper is a high-performance coordination service for distributed applications."

It exposes common services - such as naming, configuration management, synchronization, and group services - in a simple interface so you don't have to write them from scratch. You can use it off-the-shelf to implement consensus, group management, leader election, and presence protocols.

h2. Overview

This tool uses the ZooKeeper python binding to exercise the server. In general the script does the following:

# create a root znode for the test, i.e. /zk-smoketest
# attach a zk session to each server in the ensemble (the --servers list)
# each client will create ephemeral znodes and attach watches on znodes of the other clients
# each client will then delete the the ephemeral znodes it owns, all clients verify watches are triggered properly
# client then cleans up, removing /zk-smoketest znode

This project is a work in progress - so please don't hesitate to suggest ideas, complain about problems found, or contribute patches.

h2. Usage

<code>
PYTHONPATH=lib.linux-i686-2.6 LD_LIBRARY_PATH=lib.linux-i686-2.6 ./zk-smoketest.py --servers "host:port(,host:port)*"
</code>

*Note*: you may need to compile the zookeeper python binding yourself, this project includes only 32bit linux binaries. Additionally, the smoketest scripts rely on some changes to the zkpython binding that are not yet released, so if you do compile yourself you will need to compile zkpython from the Apache "ZooKeeper SVN trunk":http://hadoop.apache.org/zookeeper/version_control.html (this should be addressed as soon as ZooKeeper 3.3.0 is released).

{'fraction_non_alphanumeric': 0.0763282614118234, 'fraction_numerical': 0.009977550511349464, 'mean_word_length': 4.736766809728183, 'pattern_counts': {'":': 10, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3895434', 'n_tokens_mistral': 1185, 'n_tokens_neox': 1106, 'n_words': 512}