1 Introduction
 1.1 Why HyperDex?
 1.2 About this Book
 1.3 Help and Support
  1.3.1 Online and Free Resources
  1.3.2 Commercial Support
2 Installing HyperDex
 2.1 Installing Binary Packages
  2.1.1 Debian
  2.1.2 Ubuntu
  2.1.3 Fedora
  2.1.4 Package Names
 2.2 Installing Source Tarballs
  2.2.1 Prerequisites
  2.2.2 Configuring
  2.2.3 Installing
 2.3 Installing from Git
  2.3.1 Troubleshooting
 2.4 Verifying Installation
 2.5 Upgrading to 1.3
 2.6 Upgrading to 1.2
I  For Developers
3 Quick Start
 3.1 High-Level Overview
 3.2 Starting the Coordinator
 3.3 Starting HyperDex Daemons
 3.4 Creating a new Space
 3.5 Interacting with the “phonebook” Space
 3.6 Cleaning Up
4 Data Types
 4.1 Setup
 4.2 Strings
 4.3 Integers
 4.4 Floats
 4.5 Lists
 4.6 Sets
 4.7 Maps
5 Asynchronous Operations
 5.1 Setup
 5.2 Asynchronous Operations
 5.3 Potential Pitfalls
 5.4 A Common Window Pattern
6 Atomic Operations
 6.1 Setup
 6.2 Atomic Operations
 6.3 A Comprehensive Walk
7 Document Storage
 7.1 Setup
 7.2 Working with Documents
 7.3 Indexing Documents
8 Transactions
 8.1 Setup
 8.2 Using Transactions
 8.3 Rich API
 8.4 Summary
II  For Administrators
9 Fault Tolerance
 9.1 Coordinator
 9.2 HyperDex Daemons
 9.3 Fault Tolerance Thresholds
 9.4 Shutting Down and Restoring a Cluster
10 Tuning HyperDex
 10.1 Filesystem
  10.1.1 Access Time
  10.1.2 Open Files
11 Cluster Membership
 11.1 Tutorial
 11.2 State Transitions
 11.3 Command Reference
III  API Reference
12 C API
 12.1 Client Library
  12.1.1 Building the HyperDex C Binding
  12.1.2 Compiling and Linking Your Application
  12.1.3 Hello World
  12.1.4 Asynchronous Patterns
  12.1.5 Creating a Client
  12.1.6 Data Structures
  12.1.7 Attributes
  12.1.8 Map Attributes
  12.1.9 Predicates
  12.1.10 Error Handling
  12.1.11 Operations
  12.1.12 Working with Signals
  12.1.13 Working with Threads
 12.2 Admin Library
  12.2.1 Operations
13 Java API
 13.1 Client Library
  13.1.1 Building the HyperDex Java Binding
  13.1.2 Using Java Within Your Application
  13.1.3 Hello World
  13.1.4 Asynchronous Operations
  13.1.5 Data Structures
  13.1.6 Attributes
  13.1.7 Map Attributes
  13.1.8 Predicates
  13.1.9 Error Handling
  13.1.10 Operations
  13.1.11 Working with Signals
  13.1.12 Working with Threads
14 Node API
 14.1 Client Library
  14.1.1 Building the HyperDex Node.js Binding
  14.1.2 Using Node.js Within Your Application
  14.1.3 Hello World
  14.1.4 Asynchronous Operations
  14.1.5 Data Structures
  14.1.6 Attributes
  14.1.7 Operations
  14.1.8 Working with Signals
  14.1.9 Working with Events
15 Ruby API
 15.1 Client Library
  15.1.1 Building the HyperDex Ruby Binding
  15.1.2 Using Ruby Within Your Application
  15.1.3 Hello World
  15.1.4 Asynchronous Operations
  15.1.5 Data Structures
  15.1.6 Attributes
  15.1.7 Map Attributes
  15.1.8 Predicates
  15.1.9 Error Handling
  15.1.10 Operations
  15.1.11 Working with Signals
  15.1.12 Working with Threads