YCSB++: benchmarking and performance debugging advanced features in scalable table stores

Inspired by Google's BigTable, a variety of scalable, semi-structured, weak-semantic table stores have been developed and optimized for different priorities such as query speed, ingest speed, availability, and interactivity. As these systems mature, performance benchmarking will advance from measuring the rate of simple workloads to understanding and debugging the performance of advanced features such as ingest speed-up techniques and function shipping filters from client to servers. This paper describes YCSB++, a set of extensions to the Yahoo! Cloud Serving Benchmark (YCSB) to improve performance understanding and debugging of these advanced features. YCSB++ includes multi-tester coordination for increased load and eventual consistency measurement, multi-phase workloads to quantify the consequences of work deferment and the benefits of anticipatory configuration optimization such as B-tree pre-splitting or bulk loading, and abstract APIs for explicit incorporation of advanced features in benchmark tests. To enhance performance debugging, we customized an existing cluster monitoring tool to gather the internal statistics of YCSB++, table stores, system services like HDFS, and operating systems, and to offer easy post-test correlation and reporting of performance behaviors. YCSB++ features are illustrated in case studies of two BigTable-like table stores, Apache HBase and Accumulo, developed to emphasize high ingest rates and finegrained security.

[1]  Harumi A. Kuno,et al.  Fast Loads and Queries , 2010, Trans. Large Scale Data Knowl. Centered Syst..

[2]  Jeffrey Dean,et al.  Designs, Lessons and Advice from Building Large Distributed Systems , 2009 .

[3]  Michael Stonebraker,et al.  C-Store: A Column-oriented DBMS , 2005, VLDB.

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

[5]  Abdelkader Hameurlain,et al.  Transactions on Large-Scale Data- and Knowledge-Centered Systems II , 2010, Trans. Large-Scale Data- and Knowledge-Centered Systems.

[6]  Christos Faloutsos,et al.  Active Disks for Large-Scale Data Processing , 2001, Computer.

[7]  G Pohl,et al.  Munin: Graphisches Netzwerk- und System-Monitoring , 2008 .

[8]  Garth Gibson,et al.  Otus: resource attribution in data-intensive clusters , 2011, MapReduce '11.

[9]  Werner Vogels,et al.  Building reliable distributed systems at a worldwide scale demands trade-offs between consistency and availability. , 2022 .

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

[11]  Eric A. Brewer,et al.  Towards robust distributed systems (abstract) , 2000, PODC '00.

[12]  Alan Fekete,et al.  Consistency Models for Replicated Data , 2010, Replication.

[13]  Gustavo Alonso,et al.  Consistency Rationing in the Cloud: Pay only when it matters , 2009, Proc. VLDB Endow..

[14]  Mendel Rosenblum,et al.  The design and implementation of a log-structured file system , 1991, SOSP '91.

[15]  Adam Silberstein,et al.  Benchmarking cloud serving systems with YCSB , 2010, SoCC '10.

[16]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[17]  Xiaozhou Li,et al.  Consistability: Describing Usually Consistent Systems , 2008, HotDep.

[18]  Kevin Lee,et al.  Data Consistency Properties and the Trade-offs in Commercial Cloud Storage: the Consumers' Perspective , 2011, CIDR.

[19]  Rick Cattell,et al.  Scalable SQL and NoSQL data stores , 2011, SGMD.

[20]  Sanjay Ghemawat,et al.  MapReduce: simplified data processing on large clusters , 2008, CACM.

[21]  Amit A. Levy,et al.  Comet: An active distributed key-value store , 2010, OSDI.

[22]  Goetz Graefe Partitioned B-trees - a user's guide , 2003, BTW.

[23]  Margo I. Seltzer,et al.  Beyond Relational Databases , 2005, ACM Queue.

[24]  Mahadev Konar,et al.  ZooKeeper: Wait-free Coordination for Internet-scale Systems , 2010, USENIX ATC.

[25]  Xiaowei Yang,et al.  Comparing Public-Cloud Providers , 2011, IEEE Internet Computing.

[26]  Nancy A. Lynch,et al.  Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services , 2002, SIGA.

[27]  Goetz Graefe,et al.  B-tree indexes for high update rates , 2006, SIGMOD Rec..

[28]  David E. Culler,et al.  The ganglia distributed monitoring system: design, implementation, and experience , 2004, Parallel Comput..

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

[30]  Gennaro Boggia,et al.  Parallel bulk insertion for large-scale analytics applications , 2010, LADIS '10.

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

[32]  Xiaowei Yang,et al.  CloudCmp: comparing public cloud providers , 2010, IMC '10.

[33]  Wilson C. Hsieh,et al.  Data management projects at Google , 2006, SIGMOD Conference.

[34]  David J. DeWitt,et al.  Parallel database systems: the future of high performance database systems , 1992, CACM.

[35]  Raghu Ramakrishnan,et al.  Efficient bulk insertion into a distributed ordered table , 2008, SIGMOD Conference.