Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

AUTOGR: automated geo-replication with fast system performance and preserved application semantics

Published: 01 May 2021 Publication History

Abstract

Geo-replication is essential for providing low latency response and quality Internet services. However, designing fast and correct geo-replicated services is challenging due to the complex trade-off between performance and consistency semantics in optimizing the expensive cross-site coordination. State-of-the-art solutions rely on programmers to derive sufficient application-specific invariants and code specifications, which is both time-consuming and error-prone. In this paper, we propose an end-to-end geo-replication deployment framework AUTOGR (AUTOmated Geo-Replication) to free programmers from such label-intensive tasks. AutoGR enables the geo-replication features for non-replicated, serializable applications in an automated way with optimized performance and correct application semantics. Driven by a novel static analyzer RIGI, AUTOGR can extract application invariants by verifying whether their geo-replicated versions obey the serializable semantics of the non-replicated application. RIGI takes application codes as inputs and infers a set of side effects and path conditions possibly leading to consistency violations. RIGI employs the Z3 theorem prover to identify pairs of conflicting side effects and feed them to a geo-replication framework for automated across-site deployment. We evaluate AUTOGR by transforming four serializable and originally non-replicated DB-compliant applications to geo-replicated ones across 3 sites. Compared with state-of-the-art human-intervention-free automated approaches (e.g., strong consistency), AUTOGR reduces up to 61.8% latency and achieves up to 2.12X higher peak throughput. Compared with state-of-the-art approaches relying on a manual analysis (e.g., PoR), AUTOGR can quickly enable the geo-replication feature with zero human intervention while offering similarly low latency and high throughput.

References

[1]
2008. Using Web Services in a 3-tier architecture. https://weblogs.asp.net/fredriknormen/using-web-services-in-a-3-tier-architecture. [Online; accessed Sep-2020].
[2]
2011. Why Web Performance Matters : Is Your Site Driving Customers Away? http://www.mcrinc.com/Documents/Newsletters/201110_why_web_performance_matters.pdf. [Online; accessed May-2020].
[3]
2012. Ebay website. http://www.ebay.com/. [Online; accessed May-2020].
[4]
2012. Sharding & IDs at Instagram. https://instagram-engineering.com/sharding-ids-at-instagram-1cf5a71e5a5c. [Online; accessed Feb-2021].
[5]
2014. Performance is User Experience. http://designingforperformance.com/performance-is-ux/. [Online; accessed May-2020].
[6]
2018. HealthPlus Git repository. https://github.com/heshanera/HealthPlus. [Online; accessed Mar-2021].
[7]
2018. Olisipo Code Repository. https://github.com/pandaworrior/VascoRepo. [Online; accessed May-2020].
[8]
2019. The Source Code Repository of SQL Parser. https://github.com/JSQLParser/JSqlParser. [Online; accessed May-2020].
[9]
2019. The Web Page of JavaParser. http://javaparser.github.io/javaparser/. [Online; accessed May-2020].
[10]
2019. Three Tier Architecture for Web Applications in AWS. https://www.techtruffle.com/blog/aws/three-tier-architecture/. [Online; accessed Sep-2020].
[11]
2020. Balancing Strong and Eventual Consistency with Google Cloud Datastore. https://cloud.google.com/datastore/docs/articles/balancing-strong-and-eventual-consistency-with-google-cloud-datastore/. [Online; accessed May-2020].
[12]
2020. Code examples. https://github.com/3tdy2tsw/code-examples. [Online; accessed May-2021].
[13]
2020. Programming languages used in most popular websites. https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites. [Online; accessed Sep-2020].
[14]
2020. Redis: Diving into CRDTs. https://redislabs.com/blog/diving-into-crdts/. [Online; accessed Feb-2021].
[15]
2020. Welcome to Azure Cosmos DB. https://docs.microsoft.com/en-us/azure/cosmos-db/introduction. [Online; accessed May-2020].
[16]
2021. RIAK DISTRIBUTED DATA TYPES. https://riak.com/products/riak-kv/riak-distributed-data-types/index.html. [Online; accessed Feb-2021].
[17]
Peter Bailis, Alan Fekete, Michael J. Franklin, Ali Ghodsi, Joseph M. Hellerstein, and Ion Stoica. 2014. Coordination Avoidance in Database Systems. Proc. VLDB Endow. 8, 3 (Nov. 2014), 185--196.
[18]
Valter Balegas, Sérgio Duarte, Carla Ferreira, Rodrigo Rodrigues, Nuno Preguiça, Mahsa Najafzadeh, and Marc Shapiro. 2015. Putting consistency back into eventual consistency. In Proceedings of the Tenth European Conference on Computer Systems. 1--16.
[19]
Valter Balegas, Sérgio Duarte, Carla Ferreira, Rodrigo Rodrigues, and Nuno Preguiça. 2018. IPA: Invariant-preserving Applications for Weakly Consistent Replicated Databases. Proc. VLDB Endow. 12, 4 (Dec. 2018), 404--418.
[20]
Valter Balegas, Sérgio Duarte, Carla Ferreira, Rodrigo Rodrigues, Nuno Preguiça, Mahsa Najafzadeh, and Marc Shapiro. 2015. Putting Consistency Back into Eventual Consistency. In Proceedings of the Tenth European Conference on Computer Systems (Bordeaux, France) (EuroSys '15). ACM, New York, NY, USA, Article 6, 16 pages.
[21]
Philip A. Bernstein, Vassco Hadzilacos, and Nathan Goodman. 1987. Concurrency Control and Recovery in Database Systems.
[22]
Alysson Bessani, João Sousa, and Eduardo E. P. Alchieri. 2014. State Machine Replication for the Masses with BFT-SMART. In Proceedings of the 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN '14). IEEE Computer Society, Washington, DC, USA, 355--362.
[23]
Nathan Bronson, Zach Amsden, George Cabrera, Prasad Chakka, Peter Dimov, Hui Ding, Jack Ferris, Anthony Giardullo, Sachin Kulkarni, Harry Li, Mark Marchukov, Dmitri Petrov, Lovro Puzar, Yee Jiun Song, and Venkat Venkataramani. 2013. TAO: Facebook's Distributed Data Store for the Social Graph. In Proceedings of the 2013 USENIX Conference on Annual Technical Conference (San Jose, CA) (USENIX ATC'13). USENIX Association, Berkeley, CA, USA, 49--60. http://dl.acm.org/citation.cfm?id=2535461.2535468
[24]
Brad Calder, Ju Wang, Aaron Ogus, Niranjan Nilakantan, Arild Skjolsvold, Sam McKelvie, Yikang Xu, Shashwat Srivastav, Jiesheng Wu, Huseyin Simitci, Jaidev Haridas, Chakravarthy Uddaraju, Hemal Khatri, Andrew Edwards, Vaman Bedekar, Shane Mainali, Rafay Abbasi, Arpit Agarwal, Mian Fahim ul Haq, Muhammad Ikram ul Haq, Deepali Bhardwaj, Sowmya Dayanand, Anitha Adusumilli, Marvin McNett, Sriram Sankaran, Kavitha Manivannan, and Leonidas Rigas. 2011. Windows Azure Storage: A Highly Available Cloud Storage Service with Strong Consistency. In Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles (Cascais, Portugal) (SOSP '11). ACM, New York, NY, USA, 143--157.
[25]
Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich, Robert T. Morris, and Eddie Kohler. 2013. The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (Farminton, Pennsylvania) (SOSP '13). ACM, New York, NY, USA, 1--17.
[26]
James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost, J. J. Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson Hsieh, Sebastian Kanthak, Eugene Kogan, Hongyi Li, Alexander Lloyd, Sergey Melnik, David Mwaura, David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak, Christopher Taylor, Ruth Wang, and Dale Woodford. 2012. Spanner: Google's Globally-distributed Database. In Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementation (Hollywood, CA, USA) (OSDI'12). USENIX Association, Berkeley, CA, USA, 251--264. http://dl.acm.org/citation.cfm?id=2387880.2387905
[27]
Leonardo De Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In Proceedings of the Theory and Practice of Software, 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (Budapest, Hungary) (TACAS'08/ETAPS'08). Springer-Verlag, Berlin, Heidelberg, 337--340. http://dl.acm.org/citation.cfm?id=1792734.1792766
[28]
Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, and Werner Vogels. 2007. Dynamo: Amazon's Highly Available Key-value Store. In Proceedings of Twenty-first ACM SIGOPS Symposium on Operating Systems Principles (Stevenson, Washington, USA) (SOSP '07). ACM, New York, NY, USA, 205--220.
[29]
Cecchet Emmanuel and Marguerite Julie. 2009. RUBiS: Rice University Bidding System. http://rubis.ow2.org/. [Online; accessed May-2020].
[30]
Alexey Gotsman, Hongseok Yang, Carla Ferreira, Mahsa Najafzadeh, and Marc Shapiro. 2016. 'Cause I'm strong enough: reasoning about consistency choices in distributed systems. In Proceedings of the 42nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '16). ACM, New York, NY, USA.
[31]
Farzin Houshmand and Mohsen Lesani. 2019. Hamsaz: Replication Coordination Analysis and Synthesis. Proc. ACM Program. Lang. 3, POPL, Article 74 (Jan. 2019), 32 pages.
[32]
Rivka Ladin, Barbara Liskov, Liuba Shrira, and Sanjay Ghemawat. 1992. Providing High Availability Using Lazy Replication. ACM Trans. Comput. Syst. 10, 4 (Nov. 1992), 360--391.
[33]
Avinash Lakshman and Prashant Malik. 2010. Cassandra: A Decentralized Structured Storage System. SIGOPS Oper. Syst. Rev. 44, 2 (April 2010), 35--40.
[34]
Cheng Li, João Leitão, Allen Clement, Nuno Preguiça, Rodrigo Rodrigues, and Viktor Vafeiadis. 2014. Automating the Choice of Consistency Levels in Replicated Systems. In Proceedings of the 2014 USENIX Conference on USENIX Annual Technical Conference (Philadelphia, PA) (USENIX ATC'14). USENIX Association, Berkeley, CA, USA, 281--292. http://dl.acm.org/citation.cfm?id=2643634.2643664
[35]
Cheng Li, Daniel Porto, Allen Clement, Johannes Gehrke, Nuno Preguiça, and Rodrigo Rodrigues. 2012. Making Geo-replicated Systems Fast As Possible, Consistent when Necessary. In Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementation (Hollywood, CA, USA) (OSDI'12). USENIX Association, Berkeley, CA, USA, 265--278. http://dl.acm.org/citation.cfm?id=2387880.2387906
[36]
Cheng Li, Nuno Preguiça, and Rodrigo Rodrigues. 2018. Fine-grained consistency for geo-replicated systems. In 2018 USENIX Annual Technical Conference (USENIX ATC 18). USENIX Association, Boston, MA, 359--372. https://www.usenix.org/conference/atc18/presentation/li-cheng
[37]
Nuno P Lopes, David Menendez, Santosh Nagarakatte, and John Regehr. 2015. Provably correct peephole optimizations with alive. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation. 22--32.
[38]
Matthew Milano and Andrew C. Myers. 2018. MixT: A Language for Mixing Consistency in Geodistributed Transactions. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (Philadelphia, PA, USA) (PLDI 2018). ACM, New York, NY, USA, 226--241.
[39]
Iulian Moraru, David G. Andersen, and Michael Kaminsky. 2013. There is More Consensus in Egalitarian Parliaments. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (Farminton, Pennsylvania) (SOSP '13). ACM, New York, NY, USA, 358--372.
[40]
Subramanian Muralidhar, Wyatt Lloyd, Sabyasachi Roy, Cory Hill, Ernest Lin, Weiwen Liu, Satadru Pan, Shiva Shankar, Viswanath Sivakumar, Linpeng Tang, and Sanjeev Kumar. 2014. f4: Facebook's Warm BLOB Storage System. In 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14). USENIX Association, Broomfield, CO, 383--398. https://www.usenix.org/conference/osdi14/technical-sessions/presentation/muralidhar
[41]
Christos H. Papadimitriou. 1979. The Serializability of Concurrent Database Updates. J. ACM 26, 4 (Oct. 1979), 631--653.
[42]
Fernando Pedone and André Schiper. 1999. Generic Broadcast. In Proceedings of the 13th International Symposium on Distributed Computing (DISC '99).
[43]
Nuno Preguica, Joan Manuel Marques, Marc Shapiro, and Mihai Letia. 2009. A Commutative Replicated Data Type for Cooperative Editing. In Proceedings of the 2009 29th IEEE International Conference on Distributed Computing Systems (ICDCS '09). IEEE Computer Society, Washington, DC, USA, 395--403.
[44]
Nuno M. Preguiça. 2018. Conflict-free Replicated Data Types: An Overview. CoRR abs/1806.10254 (2018). arXiv:1806.10254 http://arxiv.org/abs/1806.10254
[45]
Sudip Roy, Lucja Kot, Gabriel Bender, Bailu Ding, Hossein Hojjat, Christoph Koch, Nate Foster, and Johannes Gehrke. 2015. The Homeostasis Protocol: Avoiding Transaction Coordination Through Program Analysis. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data (Melbourne, Victoria, Australia) (SIGMOD '15). ACM, New York, NY, USA, 1311--1326.
[46]
Sudip Roy, Lucja Kot, Nate Foster, Johannes Gehrke, Hossein Hojjat, and Christoph Koch. 2014. Writes that Fall in the Forest and Make no Sound: Semantics-Based Adaptive Data Consistency. CoRR abs/1403.2307 (2014).
[47]
Eric Schurman and Jake Brutlag. 2009. Performance Related Changes and their User Impact. http://slideplayer.com/slide/1402419/. Presented at Velocity Web Performance and Operations Conference. [Online; accessed May-2020].
[48]
Marc Shapiro, Nuno Preguiça, Carlos Baquero, and Marek Zawirski. 2011. A Comprehensive Study of Convergent and Commutative Replicated Data Types. Technical Report 7506. INRIA.
[49]
Qingkai Shi, Xiao Xiao, Rongxin Wu, Jinguo Zhou, Gang Fan, and Charles Zhang. 2018. Pinpoint: Fast and precise sparse value flow analysis for million lines of code. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation. 693--706.
[50]
Jason Sobel. 2008. Scaling Out. https://www.facebook.com/note.php?note_id=23844338919. [Online; accessed May-2020].
[51]
João Sousa, Eduardo Alchieri, and Alysson Bessani. [n.d.]. BFT-SMART Code Repository. https://github.com/bft-smart/library. [Online; accessed May-2020].
[52]
Yair Sovran, Russell Power, Marcos K. Aguilera, and Jinyang Li. 2011. Transactional Storage for Geo-replicated Systems. In Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles (Cascais, Portugal) (SOSP '11). ACM, New York, NY, USA, 385--400.
[53]
H-Store Team. 2013. Supported Benchmarks --- SmallBank Benchmark. https://github.com/apavlo/h-store/tree/master/src/benchmarks/edu/brown/benchmark/smallbank/. [Online; accessed May-2020].
[54]
H-Store Team. 2015. Supported Benchmarks --- Seat Reservation. https://github.com/apavlo/h-store/tree/master/src/benchmarks/edu/brown/benchmark/seats/. [Online; accessed May-2020].
[55]
W. E. Weihl. 1988. Commutativity-Based Concurrency Control for Abstract Data Types. IEEE Trans. Comput. (1988).
[56]
Irene Zhang, Naveen Kr. Sharma, Adriana Szekeres, Arvind Krishnamurthy, and Dan R. K. Ports. 2015. Building Consistent Transactions with Inconsistent Replication. In Proceedings of the 25th Symposium on Operating Systems Principles (Monterey, California) (SOSP '15). ACM, New York, NY, USA, 263--278.

Cited By

View all
  • (2024)Noctua: Towards Automated and Practical Fine-grained Consistency AnalysisProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629570(704-719)Online publication date: 22-Apr-2024
  • (2023)Anticipation of Method Execution in Mixed Consistency SystemsProceedings of the 38th ACM/SIGAPP Symposium on Applied Computing10.1145/3555776.3577725(1394-1401)Online publication date: 27-Mar-2023

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Proceedings of the VLDB Endowment
Proceedings of the VLDB Endowment  Volume 14, Issue 9
May 2021
249 pages
ISSN:2150-8097
Issue’s Table of Contents

Publisher

VLDB Endowment

Publication History

Published: 01 May 2021
Published in PVLDB Volume 14, Issue 9

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)30
  • Downloads (Last 6 weeks)3
Reflects downloads up to 13 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Noctua: Towards Automated and Practical Fine-grained Consistency AnalysisProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629570(704-719)Online publication date: 22-Apr-2024
  • (2023)Anticipation of Method Execution in Mixed Consistency SystemsProceedings of the 38th ACM/SIGAPP Symposium on Applied Computing10.1145/3555776.3577725(1394-1401)Online publication date: 27-Mar-2023

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media