{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,8]],"date-time":"2025-09-08T06:50:40Z","timestamp":1757314240835,"version":"3.37.3"},"reference-count":48,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2020,7,23]],"date-time":"2020-07-23T00:00:00Z","timestamp":1595462400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2020,7,23]],"date-time":"2020-07-23T00:00:00Z","timestamp":1595462400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100004106","name":"East China Normal University","doi-asserted-by":"publisher","award":["200062"],"award-info":[{"award-number":["200062"]}],"id":[{"id":"10.13039\/501100004106","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["J Cloud Comp"],"published-print":{"date-parts":[[2020,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>The two-phase commit (2PC) protocol is a key technique for achieving distributed transactions in storage systems such as relational databases and distributed databases. 2PC is a strongly consistent and centralized atomic commit protocol that ensures the serialization of the transaction execution order. However, it does not scale well to large and high-throughput systems, especially for applications with many transactional conflicts, such as microservices and cloud computing. Therefore, 2PC has a performance bottleneck for distributed transaction control across multiple microservices. In this paper, we propose 2PC*, a novel concurrency control protocol for distributed transactions that outperforms 2PC, allowing greater concurrency across multiple microservices. 2PC* can greatly reduce overhead because locks are held throughout the transaction process. Moreover, we improve the fault-tolerance mechanism of 2PC* using transaction compensation. We also implement a middleware solution for transactions in microservice support using 2PC*. We compare 2PC* to 2PC by applying both to Ctrip MSECP, and 2PC* outperforms 2PC in workloads with varying degrees of contention. When the contention becomes high, the experimental results show that 2PC* achieves at most a 3.3x improvement in throughput and a 67% reduction in latency, which proves that our scheme can easily support distributed transactions with multi-microservice modules. Finally, we embed our middleware scheme in the PaaS cloud platform and demonstrate its strong applicability to cloud computing through long-term analysis of the monitoring results in the cloud platform.<\/jats:p>","DOI":"10.1186\/s13677-020-00183-w","type":"journal-article","created":{"date-parts":[[2020,7,23]],"date-time":"2020-07-23T09:03:53Z","timestamp":1595495033000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":9,"title":["2PC*: a distributed transaction concurrency control protocol of multi-microservice based on cloud computing platform"],"prefix":"10.1186","volume":"9","author":[{"given":"Pan","family":"Fan","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jing","family":"Liu","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Wei","family":"Yin","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hui","family":"Wang","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Xiaohong","family":"Chen","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Haiying","family":"Sun","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2020,7,23]]},"reference":[{"issue":"3","key":"183_CR1","doi-asserted-by":"publisher","first-page":"96","DOI":"10.1109\/MS.2018.2141030","volume":"35","author":"X Larrucea","year":"2018","unstructured":"Larrucea X, Santamaria I, Colomo-Palacios R, Ebert C (2018) Microservices. IEEE Softw 35(3):96\u2013100. https:\/\/doi.org\/10.1109\/MS.2018.2141030","journal-title":"IEEE Softw"},{"issue":"3","key":"183_CR2","doi-asserted-by":"publisher","first-page":"8","DOI":"10.1145\/2491245","volume":"31","author":"JC Corbett","year":"2013","unstructured":"Corbett JC, Dean J, Epstein M, Fikes A, Frost C, Furman J, Ghemawat S, Gubarev A, Heiser C, Hochs-child P et al (2013) Spanner: googles globally distributed data-base. ACM Transact Comput Syst (TOCS) 31(3):8. https:\/\/doi.org\/10.1145\/2491245","journal-title":"ACM Transact Comput Syst (TOCS)"},{"doi-asserted-by":"publisher","unstructured":"Zhang G, Ren K, Ahn JS et al (2019) GRIT: consistent distributed transactions across polyglot microservices with multiple databases[C]. In: 2019 IEEE 35th international conference on data engineering (ICDE). IEEE. https:\/\/doi.org\/10.1109\/ICDE.2019.00230","key":"183_CR3","DOI":"10.1109\/ICDE.2019.00230"},{"issue":"4","key":"183_CR4","doi-asserted-by":"publisher","first-page":"378","DOI":"10.1145\/7239.7266","volume":"11","author":"C Mohan","year":"1986","unstructured":"Mohan C, Lindsay B, Obermarck R (1986) Transaction management in the R* distributed database management system. ACM Trans Database Syst (TODS) 11(4):378\u2013396","journal-title":"ACM Trans Database Syst (TODS)"},{"doi-asserted-by":"publisher","unstructured":"Thomson A, Diamond T, Weng SC et al (2012) Calvin: fast distributed transactions for partitioned database systems[C]. In: Acm Sigmod international conference on management of data. ACM. https:\/\/doi.org\/10.1145\/2213836.2213838","key":"183_CR5","DOI":"10.1145\/2213836.2213838"},{"doi-asserted-by":"publisher","unstructured":"Hwang E, Kim S, Yoo TK et al (2015) Resource allocation policies for loosely coupled applications in heterogeneous computing systems[J]. IEEE Trans Parallel Distributed Syst:1\u20131. https:\/\/doi.org\/10.1109\/TPDS.2015.2461154","key":"183_CR6","DOI":"10.1109\/TPDS.2015.2461154"},{"key":"183_CR7","doi-asserted-by":"publisher","first-page":"343","DOI":"10.1109\/DSN.2014.42","volume-title":"Clock-RSM: low-latency inter-datacenter state machine replication using loosely synchronized physical clocks","author":"J Du","year":"2014","unstructured":"Du J, Sciascia D, Elnikety S, Zwaenepoel W, Pedone F (2014) Clock-RSM: low-latency inter-datacenter state machine replication using loosely synchronized physical clocks. 2014 44th annual IEEE\/IFIP international conference on dependable systems and networks, Atlanta, pp 343\u2013354. https:\/\/doi.org\/10.1109\/DSN.2014.42"},{"unstructured":"YugaByte. https:\/\/www.yugabyte.com\/. Accessed 10 May 2019.","key":"183_CR8"},{"unstructured":"FoundationDB. https:\/\/www.cockroachlabs.com\/. Accessed date 10 May 2019.","key":"183_CR9"},{"key":"183_CR10","doi-asserted-by":"publisher","DOI":"10.1109\/ICCA.2013.6564990","volume-title":"Control and automation (ICCA), 2013 10th IEEE international conference on. IEEE","author":"S Zhang","year":"2013","unstructured":"Zhang S, Zhu S (2013) Server structure based on netty framework for internet-based laboratory [C]. In: Control and automation (ICCA), 2013 10th IEEE international conference on. IEEE. https:\/\/doi.org\/10.1109\/ICCA.2013.6564990"},{"doi-asserted-by":"publisher","unstructured":"Bershad BN, Anderson TE, Lazowska ED, Levy HM Lightweight remote procedure call. ACM Trans Comput Syst 8(1):37\u201355. https:\/\/doi.org\/10.1145\/74850.74861","key":"183_CR11","DOI":"10.1145\/74850.74861"},{"key":"183_CR12","doi-asserted-by":"publisher","DOI":"10.1109\/ICISCE.2018.00120","volume-title":"5th international conference on information science and control Engin-eering (ICISCE)","author":"S He","year":"2018","unstructured":"He S, Zhao L, Pan M (2018) The Design of Inland River Ship Microservice Information System Based on spring cloud [C]. In: 5th international conference on information science and control Engin-eering (ICISCE). https:\/\/doi.org\/10.1109\/ICISCE.2018.00120"},{"unstructured":"Dubbo. http:\/\/dubbo.apache.org\/. Accessed 9 Mar 2019.","key":"183_CR13"},{"issue":"3","key":"183_CR14","doi-asserted-by":"publisher","first-page":"463","DOI":"10.1145\/78969.78972","volume":"12","author":"MP Herlihy","year":"1990","unstructured":"Herlihy MP, Wing JM (1990) Linearizability: a correctness condition for concurrent objects. ACM Transact Program Lang Syst (TOPLAS) 12(3):463\u2013492","journal-title":"ACM Transact Program Lang Syst (TOPLAS)"},{"doi-asserted-by":"publisher","unstructured":"Herlihy M Apologizing versus asking permission: optimistic concurrency control for abstract data types [J]. ACM Trans Database Syst 15(1):96\u2013124. https:\/\/doi.org\/10.1145\/77643.77647","key":"183_CR15","DOI":"10.1145\/77643.77647"},{"key":"183_CR16","doi-asserted-by":"publisher","DOI":"10.1109\/TASE.2017.2771751","volume-title":"IEEE transactions on automation science and engineering","author":"T Nishi","year":"2017","unstructured":"Nishi T, Yushin et al (2017) An efficient deadlock prevention policy for noncyclic scheduling of multicluster tools [J]. In: IEEE transactions on automation science and engineering. https:\/\/doi.org\/10.1109\/TASE.2017.2771751"},{"key":"183_CR17","doi-asserted-by":"publisher","first-page":"181","DOI":"10.1007\/BF01231700","volume":"1","author":"Y Breitbart","year":"1992","unstructured":"Breitbart Y, Garcia-Molina H, Silberschatz A (1992) Overview of multidatabase transaction management. VLDB J 1:181\u2013239. https:\/\/doi.org\/10.1007\/BF01231700","journal-title":"VLDB J"},{"key":"183_CR18","doi-asserted-by":"publisher","DOI":"10.1109\/SRDS.2013.25","volume-title":"Non-monotonic snapshot isolation: scalable and strong consistency for geo-replicated transactional systems[C]","author":"MS Ardekani","year":"2013","unstructured":"Ardekani MS, Sutra P, Shapiro M (2013) Non-monotonic snapshot isolation: scalable and strong consistency for geo-replicated transactional systems[C]. https:\/\/doi.org\/10.1109\/SRDS.2013.25"},{"doi-asserted-by":"publisher","unstructured":"Attiya H, Ellen F, Morrison A Limitations of highly-available eventually-consistent data stores [J]. In: IEEE transactions on parallel and distributed systems, p 1. https:\/\/doi.org\/10.1109\/TPDS.2016.2556669","key":"183_CR19","DOI":"10.1109\/TPDS.2016.2556669"},{"doi-asserted-by":"publisher","unstructured":"Luo C, Okamura H, Dohi T (2013) Modeling and analysis of multi-version concurrent control [C]. In: 2013 IEEE 37th annual computer software and applications conference. IEEE. https:\/\/doi.org\/10.1109\/COMPSAC.2013.11","key":"183_CR20","DOI":"10.1109\/COMPSAC.2013.11"},{"unstructured":"snowflake. https:\/\/github.com\/twitterarchive\/snowflake. Accessed 11 June 2019.","key":"183_CR21"},{"doi-asserted-by":"publisher","unstructured":"Tarjan (2008) Depth-first search and linear graph algorithms [C]. In: Symposium on Switching & Automata Theory. IEEE. https:\/\/doi.org\/10.1109\/SWAT.1971.10","key":"183_CR22","DOI":"10.1109\/SWAT.1971.10"},{"key":"183_CR23","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-14808-8_3","volume-title":"The TLA+ proof system: building a heterogeneous verification platform [M]\/\/ theoretical aspects of computing \u2013 ICTAC 2010","author":"K Chaudhuri","year":"2010","unstructured":"Chaudhuri K, Doligez D, Lamport L et al (2010) The TLA+ proof system: building a heterogeneous verification platform [M]\/\/ theoretical aspects of computing \u2013 ICTAC 2010. Springer, Berlin Heidelberg. https:\/\/doi.org\/10.1007\/978-3-642-14808-8_3"},{"unstructured":"Github. https:\/\/github.com\/Leofan93\/2pc-star. Accessed 11 June 2019.","key":"183_CR24"},{"doi-asserted-by":"publisher","unstructured":"Taibi, Toufik Formal specification and validation of multi-agent behaviour using tla+ and tlc model checker. Int J Artificial Intel Soft Comput 1(1):99. https:\/\/doi.org\/10.1504\/ijaisc.2008.021266","key":"183_CR25","DOI":"10.1504\/ijaisc.2008.021266"},{"doi-asserted-by":"publisher","unstructured":"Huang X, Zhang Y, Xing C et al (2012) Paxos-based memory data replication in stock trading system [C]. In: IEEE computer software & applications conference. IEEE Computer Society. https:\/\/doi.org\/10.1109\/COMPSAC.2012.46","key":"183_CR26","DOI":"10.1109\/COMPSAC.2012.46"},{"unstructured":"CompletableFuture. https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/util\/concurrent\/CompletableFuture.html. Accessed 11 June 2019.","key":"183_CR27"},{"unstructured":"PlatformTransactionManager. https:\/\/docs.spring.io\/spring\/docs\/5.1.3.RELEASE\/spring-framework-reference\/data-access.html#transaction-strategies. Accessed 11 June 2019.","key":"183_CR28"},{"unstructured":"ReentrantLock. https:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/util\/concurrent\/locks\/ReentrantLock.html. Accessed 11 June 2019.","key":"183_CR29"},{"doi-asserted-by":"publisher","unstructured":"Artho C, Gros Q, Rousset G et al (2017) Model-based API testing of apache ZooKeeper [C]. In: 2017 IEEE international conference on software testing, verification and validation (ICST). IEEE. https:\/\/doi.org\/10.1109\/ICST.2017.33","key":"183_CR30","DOI":"10.1109\/ICST.2017.33"},{"unstructured":"Ngnix. https:\/\/www.nginx.com\/resources\/wiki\/. Accessed 15 June 2019","key":"183_CR31"},{"unstructured":"Eureka. https:\/\/spring.io\/projects\/spring-cloud-netflix. Accessed 15 June 2019.","key":"183_CR32"},{"key":"183_CR33","doi-asserted-by":"publisher","DOI":"10.1007\/s11036-019-01241-7","volume-title":"Mobile networks and applications","author":"Y Yin","year":"2019","unstructured":"Yin Y, Lu C, Xu Y, Wan J, Zhang H, Mai Z (2019) QoS prediction for service recommendation with deep feature learning in edge computing environment. In: Mobile networks and applications. https:\/\/doi.org\/10.1007\/s11036-019-01241-7"},{"issue":"1","key":"183_CR34","doi-asserted-by":"publisher","first-page":"90","DOI":"10.1109\/MCC.2014.25","volume":"1","author":"D Bernstein","year":"2014","unstructured":"Bernstein D (2014) Today\u2019s tidbit. VoltDB [J] 1(1):90\u201392. https:\/\/doi.org\/10.1109\/MCC.2014.25","journal-title":"VoltDB [J]"},{"key":"183_CR35","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2018.00164","volume-title":"IEEE 34th international conference on data engineering (ICDE)","author":"P Pedreira","year":"2018","unstructured":"Pedreira P, Lu Y, Pershin S (2018) Rethinking concurrency control for in-memory OLAP DBMSs. In: IEEE 34th international conference on data engineering (ICDE). https:\/\/doi.org\/10.1109\/ICDE.2018.00164"},{"key":"183_CR36","doi-asserted-by":"publisher","DOI":"10.1145\/2465351.2465363","volume-title":"Proceedings of the 8th ACM European conference on computer systems, EuroSys 2013","author":"T Kraska","year":"2012","unstructured":"Kraska T, Pang G, Franklin M, Madden S (2012) MDCC: multi-data center consistency. In: Proceedings of the 8th ACM European conference on computer systems, EuroSys 2013. https:\/\/doi.org\/10.1145\/2465351.2465363"},{"key":"183_CR37","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-69084-1_14","volume-title":"International symposium on stabilization, safety, and security of distributed systems","author":"M Pires","year":"2017","unstructured":"Pires M, Ravi S, Rodrigues R (2017) Generalized Paxos made byzantine (and less complex) [C]. In: International symposium on stabilization, safety, and security of distributed systems. https:\/\/doi.org\/10.1007\/978-3-319-69084-1_14"},{"doi-asserted-by":"publisher","unstructured":"Wei H, Huang Y, Lu J (2017) Parameterized and runtime-tunable snapshot isolation in distributed transactional key-value stores [C]. In: 2017 IEEE 36th symposium on reliable distributed systems (SRDS). IEEE. https:\/\/doi.org\/10.1109\/SRDS.2017.11","key":"183_CR38","DOI":"10.1109\/SRDS.2017.11"},{"issue":"6","key":"183_CR39","doi-asserted-by":"publisher","first-page":"862","DOI":"10.1109\/TSC.2015.2433914","volume":"9","author":"X Xu","year":"2017","unstructured":"Xu X, Tang M (2017) A new approach to the cloud-based heterogeneous MapReduce placement problem [J]. IEEE Trans Serv Comput 9(6):862\u2013871. https:\/\/doi.org\/10.1109\/TSC.2015.2433914","journal-title":"IEEE Trans Serv Comput"},{"doi-asserted-by":"publisher","unstructured":"Aguilera MK, Merchant A, Shah MA, Veitch AC, Karamanolis CT (2009) Sinfonia: a new paradigm for building scalable distributed systems. ACM Trans Comput Syst 27(3). https:\/\/doi.org\/10.1145\/1294261.1294278","key":"183_CR40","DOI":"10.1145\/1294261.1294278"},{"issue":"3","key":"183_CR41","doi-asserted-by":"publisher","first-page":"63","DOI":"10.1109\/MS.2017.440134612","volume":"35","author":"CF Furda","year":"2018","unstructured":"Furda CF, Zimmermann O, Kelly W, Barros A (2018) Migrating Enterprise legacy source code to microservices: on multitenancy, Statefulness, and data consistency. IEEE Softw 35(3):63\u201372. https:\/\/doi.org\/10.1109\/MS.2017.440134612","journal-title":"IEEE Softw"},{"issue":"1","key":"183_CR42","doi-asserted-by":"publisher","first-page":"49","DOI":"10.1109\/MCC.2018.011791714","volume":"5","author":"G Pardon","year":"2018","unstructured":"Pardon G, Pautasso C, Zimmermann O (2018) Consistent disaster recovery for microservices: the BAC theorem. IEEE Cloud Comput 5(1):49\u201359. https:\/\/doi.org\/10.1109\/MCC.2018.011791714","journal-title":"IEEE Cloud Comput"},{"doi-asserted-by":"publisher","unstructured":"Gao H, Duan Y, Shao L, Sun X (2019) Transformation-based processing of typed resources for multimedia sources in the IoT environment. Wirel Netw. https:\/\/doi.org\/10.1007\/s11276-019-02200-6","key":"183_CR43","DOI":"10.1007\/s11276-019-02200-6"},{"doi-asserted-by":"publisher","unstructured":"Gao H, Xu Y, Yin Y, Zhang W, Li R, Wang X (2019) Context-aware QoS prediction with neural collaborative filtering for internet-of-things services. IEEE Internet Things J. https:\/\/doi.org\/10.1109\/JIOT.2019.2956827","key":"183_CR44","DOI":"10.1109\/JIOT.2019.2956827"},{"issue":"3","key":"183_CR45","doi-asserted-by":"publisher","first-page":"94","DOI":"10.1109\/MS.2016.68","volume":"33","author":"C Ebert","year":"2016","unstructured":"Ebert C, Gallardo G, Hernantes J et al (2016) DevOps [J]. IEEE Softw 33(3):94\u2013100. https:\/\/doi.org\/10.1109\/MS.2016.68","journal-title":"IEEE Softw"},{"issue":"2","key":"183_CR46","doi-asserted-by":"publisher","first-page":"57","DOI":"10.1109\/MCC.2014.32","volume":"1","author":"D Bernstein","year":"2014","unstructured":"Bernstein D (2014) Cloud foundry aims to become the OpenStack of PaaS. Cloud Comput IEEE 1(2):57\u201360. https:\/\/doi.org\/10.1109\/MCC.2014.32","journal-title":"Cloud Comput IEEE"},{"key":"183_CR47","doi-asserted-by":"publisher","first-page":"83682","DOI":"10.1109\/ACCESS.2019.2923459","volume":"7","author":"Y Yin","year":"2019","unstructured":"Yin Y, Xia J, Yu L, Xu Y, Xu W, Yu L (2019) Group-wise itinerary planning in temporary Mobile social network. IEEE Access 7:83682\u201383693. https:\/\/doi.org\/10.1109\/ACCESS.2019.2923459","journal-title":"IEEE Access"},{"key":"183_CR48","doi-asserted-by":"publisher","DOI":"10.1109\/TITS.2020.2983835","volume-title":"IEEE transactions on intelligent transportation systems(T-ITS)","author":"H Gao","year":"2020","unstructured":"Gao H, Liu C, Li Y, Yang X (2020) V2VR: reliable hybrid-network-oriented V2V data transmission and routing considering RSUs and connectivity probability. In: IEEE transactions on intelligent transportation systems(T-ITS). https:\/\/doi.org\/10.1109\/TITS.2020.2983835"}],"container-title":["Journal of Cloud Computing"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1186\/s13677-020-00183-w.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1186\/s13677-020-00183-w\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1186\/s13677-020-00183-w.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,7,22]],"date-time":"2021-07-22T23:11:09Z","timestamp":1626995469000},"score":1,"resource":{"primary":{"URL":"https:\/\/journalofcloudcomputing.springeropen.com\/articles\/10.1186\/s13677-020-00183-w"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,7,23]]},"references-count":48,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2020,12]]}},"alternative-id":["183"],"URL":"https:\/\/doi.org\/10.1186\/s13677-020-00183-w","relation":{},"ISSN":["2192-113X"],"issn-type":[{"type":"electronic","value":"2192-113X"}],"subject":[],"published":{"date-parts":[[2020,7,23]]},"assertion":[{"value":"30 January 2020","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"23 June 2020","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"23 July 2020","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"The authors declare that they have no competing interests.","order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Competing interests"}}],"article-number":"40"}}