Contents

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.2.1 Java Bindings
   2.2.2.2 Python Bindings
   2.2.2.3 Yahoo! Cloud Serving Benchmark
   2.2.2.4 Changing the Installation Directory
  2.2.3 Installing
 2.3 Installing from Git
 2.4 Verifying Installation
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
II  For Administrators
7 Fault Tolerance
 7.1 Coordinator
 7.2 HyperDex Daemons
 7.3 Fault Tolerance Thresholds
 7.4 Shutting Down and Restoring a Cluster
8 Tuning HyperDex
 8.1 Filesystem
  8.1.1 Access Time
  8.1.2 Open Files
9 Cluster Membership
 9.1 Tutorial
 9.2 State Transitions
 9.3 Command Reference
III  API Reference
10 C API
 10.1 Client Library
  10.1.1 Building the HyperDex C Binding
  10.1.2 Compiling and Linking Your Application
  10.1.3 Hello World
  10.1.4 Asynchronous Patterns
  10.1.5 Creating a Client
  10.1.6 Data Structures
   10.1.6.1 enum hyperdatatype
   10.1.6.2 Bytestring Format
   10.1.6.3 Serialization API
   10.1.6.4 Deserialization API
   10.1.6.5 Memory Management Utilties
  10.1.7 Attributes
  10.1.8 Map Attributes
  10.1.9 Predicates
  10.1.10 Error Handling
  10.1.11 Operations
  10.1.12 Working with Signals
  10.1.13 Working with Threads
11 Ruby API
 11.1 Client Library
  11.1.1 Building the HyperDex Ruby Binding
  11.1.2 Using Ruby Within Your Application
  11.1.3 Hello World
  11.1.4 Asynchronous Operations
  11.1.5 Data Structures
   11.1.5.1 Examples
  11.1.6 Attributes
  11.1.7 Map Attributes
  11.1.8 Predicates
  11.1.9 Error Handling
  11.1.10 Operations
  11.1.11 Working with Signals
  11.1.12 Working with Threads
Index
References