SolarDB : Towards a Shared-Everything Database on Distributed Log-Structured Storage 39

Efficient transaction processing over large databases is a key requirement for manymission-critical applications. Thoughmodern databases have achieved good performance through horizontal partitioning, their performance deteriorates when cross-partition distributed transactions have to be executed. This paper presents SolarDB, a distributed relational database system that has been successfully tested at a large commercial bank. The key features of SolarDB include: 1) a shared-everything architecture based on a two-layer log-structured merge-tree; 2) a new concurrency control algorithm that works with the log-structured storage, which ensures efficient and non-blocking transaction processing even when the storage layer is compacting data among nodes in the background; 3) fine-grained data access to effectively minimize and balance network communication within the cluster. According to our empirical evaluations on TPC-C, Smallbank and a real-world workload, SolarDB outperforms the existing shared-nothing systems by up to 50x when there are close to or more than 5% distributed transactions.

[1]  Haibo Chen,et al.  Replication-driven Live Reconfiguration for Fast Distributed Transaction Processing , 2017, USENIX Annual Technical Conference.

[2]  Ittai Abraham,et al.  vCorfu: A Cloud-Scale Object Store on a Shared Log , 2017, NSDI.

[3]  Kian-Lee Tan,et al.  Transaction Healing: Scaling Optimistic Concurrency Control on Multicores , 2016, SIGMOD Conference.

[4]  Haibo Chen,et al.  Scaling Multicore Databases via Constrained Parallel Execution , 2016, SIGMOD Conference.

[5]  Alvin Cheung,et al.  Leveraging Lock Contention to Improve OLTP Application Performance , 2016, Proc. VLDB Endow..

[6]  Fast in-memory transaction processing using RDMA and HTM , 2015, SOSP.

[7]  Miguel Castro,et al.  No compromises: distributed transactions with consistency, availability, and performance , 2015, SOSP.

[8]  Peter Bumbulis,et al.  Towards Scalable Real-time Analytics: An Architecture for Scale-out of OLxP Workloads , 2015, Proc. VLDB Endow..

[9]  Donald Kossmann,et al.  On the Design and Scalability of Distributed Shared-Data Databases , 2015, SIGMOD Conference.

[10]  Philip A. Bernstein,et al.  Optimizing Optimistic Concurrency Control for Tree-Structured, Log-Structured Databases , 2015, SIGMOD Conference.

[11]  Alfons Kemper,et al.  High-Speed Query Processing over High-Speed Networks , 2015, Proc. VLDB Endow..

[12]  Sudipta Sengupta,et al.  High Performance Transactions in Deuteronomy , 2015, CIDR.

[13]  Michael Stonebraker,et al.  E-Store: Fine-Grained Elastic Partitioning for Distributed Transaction Processing , 2014, Proc. VLDB Endow..

[14]  Yang Zhang,et al.  Extracting More Concurrency from Distributed Transactions , 2014, OSDI.

[15]  Ashraf Aboulnaga,et al.  Accordion: Elastic Scalability for Database Systems Supporting Distributed Transactions , 2014, Proc. VLDB Endow..

[16]  Haibo Chen,et al.  Using restricted transactional memory to build a scalable in-memory database , 2014, EuroSys '14.

[17]  Miguel Castro,et al.  FaRM: Fast Remote Memory , 2014, NSDI.

[18]  Eddie Kohler,et al.  Speedy transactions in multicore in-memory databases , 2013, SOSP.

[19]  Craig Freedman,et al.  Hekaton: SQL server's memory-optimized OLTP engine , 2013, SIGMOD '13.

[20]  Michael Stonebraker,et al.  The VoltDB Main Memory DBMS , 2013, IEEE Data Eng. Bull..

[21]  Gang Chen,et al.  LogBase: A Scalable Log-structured Database System in the Cloud , 2012, Proc. VLDB Endow..

[22]  Daniel J. Abadi,et al.  Calvin: fast distributed transactions for partitioned database systems , 2012, SIGMOD Conference.

[23]  Alfons Kemper,et al.  HyPer: A hybrid OLTP&OLAP main memory database system based on virtual memory snapshots , 2011, 2011 IEEE 27th International Conference on Data Engineering.

[24]  Scott Shenker,et al.  Spark: Cluster Computing with Working Sets , 2010, HotCloud.

[25]  Prashant Malik,et al.  Cassandra: a decentralized structured storage system , 2010, OPSR.

[26]  Parag Agrawal,et al.  The case for RAMClouds: scalable high-performance storage entirely in DRAM , 2010, OPSR.

[27]  Patrick E. O'Neil,et al.  The log-structured merge-tree (LSM-tree) , 1996, Acta Informatica.

[28]  Michael Stonebraker,et al.  H-store: a high-performance, distributed main memory transaction processing system , 2008, Proc. VLDB Endow..

[29]  Wilson C. Hsieh,et al.  Bigtable: A Distributed Storage System for Structured Data , 2006, TOCS.

[30]  Werner Vogels,et al.  Dynamo: amazon's highly available key-value store , 2007, SOSP.

[31]  Michael Stonebraker,et al.  The End of an Architectural Era (It's Time for a Complete Rewrite) , 2007, VLDB.

[32]  Sashikanth Chandrasekaran,et al.  Shared cache - the future of parallel databases , 2003, Proceedings 19th International Conference on Data Engineering (Cat. No.03CH37405).

[33]  Mike Hibler,et al.  An integrated experimental environment for distributed systems and networks , 2002, OSDI '02.

[34]  C. Mohan,et al.  DB2's Use of the Coupling Facility for Data Sharing , 1997, IBM Syst. J..

[35]  Jim Gray,et al.  A critique of ANSI SQL isolation levels , 1995, SIGMOD '95.

[36]  Gottfried Vossen,et al.  Database Transaction Models , 1995, Computer Science Today.

[37]  Ken Kennedy,et al.  Maximizing Loop Parallelism and Improving Data Locality via Loop Fusion and Distribution , 1993, LCPC.

[38]  J. T. Robinson,et al.  On optimistic methods for concurrency control , 1979, TODS.