Fork me on GitHub

Warp Transactions for HyperDex

Warp is a HyperDex add-on that provides support for ACID transactions spanning multiple objects. Transactions in HyperDex Warp are one-copy serializable with ACID guarantees. Specifically, HyperDex Warp makes the following guarantees:

Transactional Interface

HyperDex Warp provides a true transactional interface. A Warp client has access to all of the datatypes and key-based operations that HyperDex offers. Clients can start any number of transactions concurrently, and issue, in any intermixed order, operations in each of those transactions. A client can access any number of objects within a transaction, and can modify any number of them. Warp transactions operate independently with full database isolation, their side-effects are not visible until the transaction commits. Transactions employ optimistic concurrency control, wherein conflicting transactions may abort, in which case they have no effect on the database. A successful commit takes place atomically, as if the set of modifications were applied on all objects involved in the transaction at the same time.

Warp Technology

What makes Warp possible is a novel technique called linear transactions. Linear transactions build on the value-dependent chaining technique pioneered by HyperDex. The nature of the chain makes it possible to provide ACID properties.

Linear transactions provide fault-tolerance naturally, building on the guarantees provided by value-dependent chaining. A node failure during a transaction will not leave the database in an undefined state. An acknowledgement from the system necessarily means that the data was committed at all f + 1 replicas. Unlike traditional two-phase commit protocols, failure of a client will not leave the database deadlocked or otherwise unable to continue.

HyperDex Warp transactions are fully distributed. The transactional chains technique coordinates between all servers involved in a transaction. There is no centralized component for ordering or applying transactions. Instead, a new protocol commits transactions in an ACID compliant manner. The inherently distributed nature of the protocol allows for greater scalability by eliminating the central bottleneck present in other distributed transaction protocols.

Want to learn more about the technology behind Warp?

We've written up a full description about the technology behind Warp in the the Warp Tech Report.

Get Warped!