-
Notifications
You must be signed in to change notification settings - Fork 93
Home
Dyno is the Netflix home grown java client for Dynomite.
Dynomite adds sharding and replication on top of Redis and Memcached as underlying datastores and the dynomite server implements the underlying datastore protocol and presents that as it’s public interface. Hence, one can just use popular java clients like Jedis, Redisson and SpyMemcached to directly speak to Dynomite.
At Netflix, we see the benefit in encapsulating client side complexity and best practices in one place instead of having every application repeat the same engineering effort, e.g., topology aware routing, effective failover, load shedding with exponential backoff, etc.
We have learned much from authoring and operating Astyanax (Cassandra client at Netflix) over the years and Dyno implements patterns inspired by Astyanax on top of popular clients like Jedis, Redisson and SpyMemcached.
- Connection pooling of persistent connections - this helps reduce connection churn on the Dynomite server with client connection reuse.
- Topology aware load balancing (Token Aware) for avoiding any intermediate hops to a Dynomite coordinator node that is not the owner of the specified data.
- Application specific local rack affinity based request routing to Dynomite nodes.
- Application resilience by intelligently failing over to remote racks when local Dynomite rack nodes fail.
- Application resilience against network glitches by constantly monitoring connection health and recycling unhealthy connections.
- Capability of surgically routing traffic away from any nodes that need to be taken offline for maintenance.
- Flexible retry policies such as exponential backoff etc
- Insight into connection pool metrics
- Highly configurable and pluggable connection pool components for implementing your advanced features.
A Netflix Original Production
Tech Blog | Twitter @NetflixOSS | Jobs