Testing Database Applications with Polygraph

Diverse applications implement read and write transactions using a data store. It is challenging to evaluate whether transactions that constitute an application provide strong consistency. It requires an end-to-end testing as an application may consist of several components that impact the consistency of data. Polygraph is a conceptual plug-n-play framework to quantify the amount of anomalies produced by an application. We show several use cases of Polygraph for two major application classes: e-commerce and cloud. One long-term objective of Polygraph is to reduce the cost and time required to test a data driven application, so that developers may focus more time and effort on applications' features and requirements.

[1]  Ricardo Bianchini,et al.  Resource Central: Understanding and Predicting Workloads for Improved Resource Management in Large Cloud Platforms , 2017, SOSP.

[2]  Michael Stonebraker,et al.  10 rules for scalable performance in 'simple operation' datastores , 2011, Commun. ACM.

[3]  Sanjeev Kumar,et al.  Existential consistency: measuring and understanding consistency at Facebook , 2015, SOSP.

[4]  Shahram Ghandeharizadeh,et al.  RangeQC: A Framework for Caching Range Predicate Query Results , 2018, SoCC.

[5]  L. Miles,et al.  2000 , 2000, RDH.

[6]  Martin Arlitt,et al.  A workload characterization study of the 1998 World Cup Web site , 2000, IEEE Netw..

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

[8]  Shahram Ghandeharizadeh,et al.  Polygraph: A Plug-n-Play Framework to Quantify Application Anomalies , 2021, IEEE Transactions on Knowledge and Data Engineering.

[9]  Bettina Kemme,et al.  Consistency anomalies in multi-tier architectures: automatic detection and prevention , 2013, The VLDB Journal.

[10]  Shahram Ghandeharizadeh,et al.  Strong consistency in cache augmented SQL systems , 2014, Middleware.

[11]  Tony Tung,et al.  Scaling Memcache at Facebook , 2013, NSDI.

[12]  Carlo Curino,et al.  OLTP-Bench: An Extensible Testbed for Benchmarking Relational Databases , 2013, Proc. VLDB Endow..

[13]  Philip A. Bernstein SQL Isolation Levels , 2009, Encyclopedia of Database Systems.

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

[15]  A. Azzouz 2011 , 2020, City.

[16]  S. M. García,et al.  2014: , 2020, A Party for Lazarus.

[17]  Andrew Pavlo,et al.  What Are We Doing With Our Lives?: Nobody Cares About Our Concurrency Control Research , 2017, SIGMOD Conference.

[18]  Leslie Lamport,et al.  Model Checking TLA+ Specifications , 1999, CHARME.

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

[20]  Christopher Frost,et al.  Spanner: Google's Globally-Distributed Database , 2012, OSDI.

[21]  Shahram Ghandeharizadeh,et al.  Rejig: A Scalable Online Algorithm for Cache Server Configuration Changes , 2018, SoCC.

[22]  Shahram Ghandeharizadeh,et al.  Polygraph: A Plug-n-Play Framework to Quantify Anomalies , 2018, 2018 IEEE 34th International Conference on Data Engineering (ICDE).

[23]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[24]  Shahram Ghandeharizadeh,et al.  BG: A Benchmark to Evaluate Interactive Social Networking Actions , 2013, CIDR.

[25]  Andrea C. Arpaci-Dusseau,et al.  Correlated Crash Vulnerabilities , 2016, OSDI.

[26]  Shahram Ghandeharizadeh,et al.  Gemini: A Distributed Crash Recovery Protocol for Persistent Caches , 2018, Middleware.

[27]  Christos H. Papadimitriou,et al.  The serializability of concurrent database updates , 1979, JACM.