ZooKeeper is a service for coordinating processes within distributed systems. Stress test of the tool was applied. Reliable Multicast and Dynamic LogBack system Configuration management were implemented with ZooKeeper.
More details: http://proskurnia.in.ua/wiki/zookeeper_research
3. Key features
ZooKeeper is: Features are:
•Service for coordinating •High Throughput
processes in distributed
applications. •Low Latency
•Key/value table. •Highly Available
•No locks service. •Strictly ordered access to the
nodes
3
7. Key Points
• Wait-free protocol
• No Locks • But...
• Support Applications: • State Based System
• Configuration Management • Last changes visible
• Leader Election • Limited total size of data
• Group Membership
7
8. Installation
To install you need to: Sample Configuration File:
•Install Java tickTime=2000
initLimit=10
•Download and extract syncLimit=5
clientPort=2181
ZooKeeper dataDir=/home/ubuntu/zoodata
•Write a configuration file server.1=10.227.206.23:2888:3888
•Write node ID in data server.2=10.58.190.233:2888:3888
server.3=10.234.121.38:2888:3888
directory (filename myid)
•Start ZooKeeper
8
15. Reliable Multicast:
Interesting Cases
• New client connects while a message is multicasted
• Recipient fails before receiving a message
• Leader fails
15
16. Stress Tests
• Done with zk-latencies Python script
• Run with the following configuration
./zk-latencies.py --servers "CONNECTION_STRING" --znode_count=ZNODE_COUNT
--znode_size=100 --timeout=5000 --watch_multiple=2
16
20. Conclusions
• ZooKeeper is: • WeShowed Several
Examples:
• Coordination Service
• Configuration Management
• Highly Available
• Reliable Multicast
• Low Latency
• Wait-Free
• Stress Tests Shows:
• Prefer more servers for high availability and
higher reads/write ratio
• With more servers it is still low latency
20