Abstract

An elastic and highly available data store is a key component of many cloud applications. Existing data stores with strong consistency guarantees are designed and optimized for small updates, key-value access, and (if supported) small range queries over a predefined key column. This raises performance and availability problems for applications which inherently require large updates, non-key access, and large range queries. This paper presents a solution to these problems: Crescando/RB; a distributed, scan-based, main memory, relational data store (single table) with robust performance and high availability. The system addresses a real, large-scale industry use case: the Amadeus travel management system. This paper focuses on the distribution layer of Crescando/RB, the problem and theory behind it, the rationale underlying key design decisions, and the novel multicast protocol and replication framework it is composed of. Highlighting the key features of the distribution layer, we present experimental results showing that even under permanent node failures and large-scale data repartitioning, Crescando/RB remains fully available and capable of sustaining a heavy query and update load.

Highlights

  • The popularity of the cloud as a deployment platform and the extreme requirements of some enterprise and cloud applications have sparked a proliferation of so-called NoSQL systems

  • Over the last few years, several NoSQL systems have implemented strong consistency guarantees [8,24,39,60,66,68,77,78], targeting OLTP and Web workloads which traditionally relied on a standard relational database

  • We focus on the five areas most germane to the paper: NoSQL data stores, push-based query processing, scan-only query processing, state-machine replication, group communication

Read more

Summary

Introduction

The popularity of the cloud as a deployment platform and the extreme requirements of some enterprise and cloud applications have sparked a proliferation of so-called NoSQL systems. As shown in a previous paper [74], Crescando is much less sensitive to the combination and selectivity of selection predicates than a conventional relational database This makes the engine especially suited for real-time business intelligence workloads such as our use case, where key-value stores are too restrictive in their consistency and/or data model, and relational databases lack the required performance, elasticity, availability, and robustness. Crescando/RB’s scan-only, two-stage execution model enables arbitrary, relational queries and updates, where key-value stores provide atomic access only for individual keys or (small) key ranges. We further show that even under node failures and large-scale repartitioning, the system remains available and can sustain a heavy read and write load

Contributions
Outline
Use case
Crescando
Background and related work
NoSQL data stores
State-machine replication
Scan-only query processing
Group communication
E-cast
Motivation
Protocol overview
Application process algorithm
Router process algorithm
Implementation
Rubberband
Process types
Data placement
Message routing with E-cast
Asynchronous reconfiguration
Reconfiguration as an optimization problem
Consistency versus robustness versus scalability
Read isolation levels
Experimental evaluation
Platform
Workload and configuration
Write scalability
Read scalability
Hash partitioning
Random partitioning
Range reads and range writes
Elasticity
Throughput
Transaction duration
Elasticity on EC2
Tolerance to storage process failures
Tolerance to router process failures
Other results
Conclusions
System model
Predicates over message sequences
Problem statement
Dynamic partial replication as stateful routing
Findings
10 Appendix 2
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call