Scalable SQL and NoSQL Data Stores

Scalable SQL and NoSQL Data Stores

Originally published in 2010, last revised December 2011 | Rick Cattell
This paper examines various SQL and "NoSQL" data stores designed to scale simple OLTP-style applications across multiple servers. These systems, originally motivated by Web 2.0 applications, are designed to handle thousands or millions of users performing updates and reads, contrasting traditional DBMSs and data warehouses. The paper contrasts these systems on their data models, consistency mechanisms, storage mechanisms, durability guarantees, availability, query support, and other dimensions. NoSQL systems typically sacrifice some features, such as database-wide transaction consistency, to achieve others, like higher availability and scalability. The paper covers key-value stores, document stores, extensible record stores, and scalable relational systems. Key-value stores like Voldemort, Riak, Redis, Scalaris, Tokyo Cabinet, Memcached, Membrain, and Membase support simple operations and provide scalability through key distribution. Document stores like SimpleDB, CouchDB, MongoDB, and Terrastore support more complex data models and secondary indexes but do not provide ACID transactions. Extensible record stores, inspired by Google's BigTable, split rows and columns across nodes for scalability. Scalable relational systems like MySQL Cluster, VoltDB, Clustrix, ScaleDB, ScaleBase, NimbusDB, and Megastore aim to combine the benefits of SQL and ACID transactions with horizontal scalability. The paper concludes by discussing the trade-offs and use cases for each type of data store, emphasizing that no single system is best for all applications. Users must prioritize features based on their specific needs.This paper examines various SQL and "NoSQL" data stores designed to scale simple OLTP-style applications across multiple servers. These systems, originally motivated by Web 2.0 applications, are designed to handle thousands or millions of users performing updates and reads, contrasting traditional DBMSs and data warehouses. The paper contrasts these systems on their data models, consistency mechanisms, storage mechanisms, durability guarantees, availability, query support, and other dimensions. NoSQL systems typically sacrifice some features, such as database-wide transaction consistency, to achieve others, like higher availability and scalability. The paper covers key-value stores, document stores, extensible record stores, and scalable relational systems. Key-value stores like Voldemort, Riak, Redis, Scalaris, Tokyo Cabinet, Memcached, Membrain, and Membase support simple operations and provide scalability through key distribution. Document stores like SimpleDB, CouchDB, MongoDB, and Terrastore support more complex data models and secondary indexes but do not provide ACID transactions. Extensible record stores, inspired by Google's BigTable, split rows and columns across nodes for scalability. Scalable relational systems like MySQL Cluster, VoltDB, Clustrix, ScaleDB, ScaleBase, NimbusDB, and Megastore aim to combine the benefits of SQL and ACID transactions with horizontal scalability. The paper concludes by discussing the trade-offs and use cases for each type of data store, emphasizing that no single system is best for all applications. Users must prioritize features based on their specific needs.
Reach us at info@study.space
[slides and audio] Scalable SQL and NoSQL data stores