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.
HyperDex is easy to setup and use. Need a new cluster? You can literally setup a cluster in 30 seconds. 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
Need to add more servers to scale? Run the above command again on another server. HyperDex will automatically integrate the new server into the cluster.
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
search operation enables retrieval of objects by secondary attributes.
count operation can efficiently compute a count without retrieving every
sorted_search enables efficient retrieval of the top N matching
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.
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.
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
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.
Ready to give back? We're happy to accept patches that improve the system, expand the documentation, or fix bugs! Check us out on GitHub.
Want more? 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.
HyperDex achieves high performance on a variety of workloads. For more information, checkout our performance benchmarks.
Want to know more about HyperDex's performance? Checkout our academic publications for more details and even more performance benchmarks.
Want to get started right away? 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.
Once you've downloaded and installed HyperDex, checkout our documentation for comprehensive tutorials relating to HyperDex.