DynomiteDB

A high performance, linearly scalable, highly available (HA) and distributed open-source database with support for pluggable persistent and in-memory storage engines.

THIS PROJECT IS NO LONGER MAINTAINED. Please use the upstream repo from Netflix.

https://github.com/Netflix/dynomite

DynomiteDB is a high performance Dynamo layer that adds data replication and sharding to Redis and other single-server storage engines, plus the ability to scale linearly, high availability via a shared nothing architecture with no single point of failure (SPOF), and support for 1000+ node clusters that span multiple data centers.

DynomiteDB cluster w/detailed server view

Architecture

DynomiteDB has three components:

  • Dynomite: A high performance Dynamo layer that provides high availability (HA), linearly scalability, sharding, and replication to a variety of pluggable backends. Dynomite supports in-memory and persistent storage engines.
  • Backend: The backend is the storage engine used by Dynomite. When combined with Redis Dynomite operates as a big data cache. When combined with a persistent backend Dynomite operates as a big data database.
  • Dyno: A Java client that communicates with Dynomite using the Redis protocol.

View on GitHub: Dynomite | Dyno | Redis

Redis

Redis provides DynomiteDB with a high performance backend and is the primary API supported by Dynomite. You can use any Redis client in your favorite programming language to build high performance, scalable applications with DynomiteDB.

Dynomite

Dynomite enables you to scale Redis across 10s, 100s or 1000s of servers. It provides a Dynamo-inspired, linearly scalable cluster with no single point of failure. Dynomite clusters can span multiple data centers and are ideal for cloud or on-premise deployments.

Dyno

The Dyno Java client reduces the complexity of developing applications. Dyno provides connection pooling, load shedding with exponential backoff, efficient request routing and a suite of features that simplify application development.