I’m excited to read that Netflix is getting even more involved in the open source world and the team there is starting to open source some of the tools developed internally. As some of you may already know, Netflix has been experimenting with quite a few and it is a heavy user of NoSQL databases running the majority of they services in the cloud.
The first project announced and available already on GitHub is Curator,a ZooKeeper client wrapper and rich ZooKeeper framework (nb: ZooKeeper just released version 3.4.0).
Curator deals with ZooKeeper complexity in the following ways:
- Retry Mechanism: Curator supports a pluggable retry mechanism. All ZooKeeper operations that generate a recoverable error get retried per the configured retry policy. Curator comes bundled with several standard retry policies (e.g. exponential backoff).
- Connection State Monitoring: Curator constantly monitors the ZooKeeper connection. Curator users can listen for state changes in the connection and respond accordingly.
- ZooKeeper Instance Management: Curator manages the actual connection to the ZooKeeper cluster using the standard ZooKeeper class. However, the instance is managed internally (though you can access it if needed) and recreated as needed. Thus, Curator provides a reliable handle to the ZooKeeper cluster (unlike the built-in implementation).
- Correct, Reliable Recipes: Curator comes bundled with implementations of most of the important ZooKeeper recipes (and some additional recipes as well). The implementations are written using ZooKeeper best practices and take account of all known edge cases (as mentioned above).
- Curator’s focus on recipes makes your code more resilient as you can focus strictly on the ZooKeeper feature you’re interested in without worrying about correctly implementing ZooKeeper housekeeping requirements.
Next on the list of open source projects from Netflix:
- Astyanax - The Netflix Cassandra Client
- Priam - Co-Process for backup/recovery, Token Management, and Centralized Configuration management for Cassandra
- CassJMeter - JMeter plugin to run cassandra tests
Original title and link: Netflix Open Sources Curator ZooKeeper Library ( ©myNoSQL)