HyperDex

HyperDex is a next generation key-value store with a wide array of features. HyperDex may be a good fit for you if your application needs to:

HyperDex's key features -- namely its rich API, strong consistency, and fault tolerance -- provide strong guarantees to applications that are not matched by other NoSQL systems.

Easy to Use

HyperDex is easy to setup and use. You can literally setup a cluster in 30 seconds, as follows. On one server, setup the coordinator for the cluster:

$ hyperdex coordinator --listen IP

Then, on possibly another server, run the daemon using this new coordinator:

$ hyperdex daemon --coordinator IP

To add more servers in order to scale horizontally, run the above command again on another server. HyperDex will automatically integrate the new server into the cluster.

Rich API

HyperDex provides one of the richest APIs in the NoSQL space.

The API supports a wide range of datatypes including strings, integers, floats, lists, maps, and sets. The system provides a range of operations suitable for each type, including string append/prepend, full range of atomic math operations on integers and floats, list lpush/rpush, set intersection/union, and a wide range of operations on maps and their contents.

The API also supports asynchronous operations, where a client can pipeline large numbers of operations into the cluster and get notifications as they complete, thereby maximizing throughput.

Finally, the API supports efficient operations on collections of objects. The basic search operation enables retrieval of objects by secondary attributes. A count operation can efficiently compute a count without retrieving every object, sorted_search enables efficient retrieval of the top N matching results, and group_del can efficiently remove items that match a search.

HyperDex currently provides bindings for C, C++, Java, Python and Ruby. Our user community is actively working on bindings for other languages.

Consistency

HyperDex provides the strongest consistency properties of any open-source NoSQL system. Specifically, HyperDex guarantees that key operations are linearizable All key operations are totally ordered and will be seen in the same order by all clients.

HyperDex ensures that every key-based operation is consistent every time. The consistency properties of the system are easy to understand and communicate without reference to the internal operation of the system. There is no need to understand complex consistency models, with poorly articulated edge-cases. Data consistency is guaranteed even through failovers.

A novel replication protocol called value-dependent chaining is responsible for these strong guarantees. While we defer to our relevant publications for an in-depth explanation of the implementation, the key idea is that nodes are arranged in a chain that passes through all replicas for an object. Consistency is guaranteed because the linear nature of the chain makes it easy to reason about the state of the system at all times.

Fault Tolerance

HyperDex ensures that data is replicated to withstand a user-configurable threshold of failures. The replication protocol ensures that no operation is acknowledged until it has been processed by every replica. It automatically detects, and reconfigures, the system to recover after a failure.

The system guarantees seamless operation and automatic failover, no matter what the cause of the failures may be. It assures recovery from a threshold of both node and network failures as well as partitions.

HyperDex's fault tolerance stems from its innovative replication protocol. Since such protocols are subtle and require expertise, we defer the description to relevant peer-reviewed publications

Open Source

HyperDex is open source and developed under a 3-clause BSD license. Download the code, change it all you like, and deploy it in production for free. We've even begun to give back to projects we use, such as the LevelDB project.

We're happy to accept patches that improve the system, expand the documentation, or fix bugs! Check us out on GitHub.

ACID Transactions

HyperDex Warp, a commercial extension to HyperDex, combines NoSQL performance with ACID transactions.

Warp makes it easier than ever to write applications that operate transactionally over multiple objects. HyperDex Warp uses a one-of-a-kind transaction protocol that improves performance by reducing transactional overhead and improves scalability by removing bottlenecks inherent to other transactional systems. On standard benchmarks, Warp transactions introduce just 1.8% overhead compared to the same workload without transactional guarantees.

Performance

HyperDex achieves high performance and is typically a factor of 2 to 10X faster than MongoDB. Performance benchmarks provide the details.

Academic publications describe the magic sauce behind the high performance and strong guarantees that HyperDex provides.

Get Started

We offer binary packages for common Linux distributions to make installing HyperDex a snap. Head on over to the downloads page to get your copy of HyperDex today.

Our extensive documentation provides comprehensive tutorials for running HyperDex in different language environments.