Chapter 1
Introduction

1.1 Why HyperDex?

HyperDex is the next-generation key-value store, designed from the ground up to provide a convenient user interface without sacrificing reliability, robustness, or performance. First and foremost, HyperDex enables developers to create new applications quickly and with strong correctness guarantees. HyperDex features:

Performance:
HyperDex achieves lower latency and higher throughput than many other key-value stores. Deploy fewer machines to support your application, and save on operational costs.
Consistency:
HyperDex provides strongly-consistent reads, writes, and atomic operations, making strong guarantees to your application. Other key-value stores promise eventual consistency, leaving your application to pick up the slack. HyperDex solves the tough problems, enabling you to write correct applications quickly with less effort.
Fault Tolerance:
HyperDex employs a unique, built-in fault-tolerance mechanism to safe-guard your data. Simply tell HyperDex how many failures your cluster is likely to experience, and HyperDex ensures that your data is replicated to withstand at least that many failures. Where other systems require you to fully understand the replication internals to bring fault-tolerance your data, HyperDex’s fault-tolerance mechanism is simple to understand and straightforward to use.
Scalability:
HyperDex automatically scales as more machines are added to the system. Add additional servers to your HyperDex cluster to increase storage capacity and achievable throughput.
Easy-to-Use:
HyperDex is easy to use in both development and production environments. Set up a HyperDex cluster quickly, and scale out to multiple machines without any application-level changes. Other systems may require that your application know about internals of the deployment, such as cluster membership, replication options, and sharding configurations. HyperDex internally and automatically manages your cluster so your application doesn’t have to.

1.2 About this Book

This book is the definitive HyperDex reference manual for users, administrators, and developers. The HyperDex developers update this manual in tandem with each release to ensure that the book serves as the best reference for HyperDex.

This book is divided into four parts, each of which is directed to a different audience. Part I, “For Developers”, provides an introduction to HyperDex suitable for developers looking to build applications on top of HyperDex. The “For Developers” part of this book is written as a series of tutorials that acquaint you with HyperDex’s API and describe many of the features available within HyperDex.

Part II, “For Administrators”, describes the day-to-day maintenance of a HyperDex cluster. The “For Administrators” portion of this book is written as a series of small, isolated recipes that provide instruction for maintaining and monitoring HyperDex clusters.

Finally, Part III provides an API reference for HyperDex. This section serves primarily as a reference of the developer-visible, and operations-visible, components of HyperDex and should probably be used for reference rather than read in its entirety.

This book is a continuous work in progress, and newer versions are available at the HyperDex website. The book’s sources are maintained alongside the HyperDex source code as the de-facto documentation for HyperDex. Patches, suggestions, and feedback about this book are welcome and may be submitted using the contact information in the next section.

1.3 Help and Support

If you run into trouble while working with HyperDex, don’t panic! The HyperDex team have put together many support avenues to assist you with HyperDex. Many of the available resources are freely available online. When you need more support than that, the HyperDex team is on standby with commercial support options that ensure that you’re never left in the dark.

1.3.1 Online and Free Resources

The HyperDex team have assembled several free online resources to help you make the most of HyperDex:

1.3.2 Commercial Support

The HyperDex team provides commercial support for HyperDex, which includes around-the-clock email support and consulting services. If you’re in need of support, you can contact the HyperDex developers directly at support@hyperdex.org.