Abstract

Distributed storage systems run transactions across machines to ensure serializability in single-service architecture. Traditional protocols for distributed transactions are based on two-phase commit (2PC) or multi-version concurrency control (MVCC). 2PC serializes transactions as soon as they conflict and MVCC resorts to aborts, leaving many opportunities for con-currency on the distributed storage system. In the micro-service architecture, service nodes are deployed in heterogeneous distributed systems. 2PC and MVCC are struggling to break through the performance limitations of their existence. This paper presents 2PC+, a novel concurrency control protocol for distributed transactions that outperforms 2PC allowing more concurrency in micro-service architecture. 2PC+ is based on the traditional 2PC and MVCC, combined with transaction thread synchronization blocking optimization algorithm SAOLA. Then, we verify the algorithm SAOLA using the temporal logic of action TLA+ language. Finally, we compare 2PC+ to 2PC applying a case of Ctrip MSECP. When concurrent threads of the service call reach a certain threshold, 2PC+’s RT performance is improved by 2.87 times to 3.77 times compared with 2PC, and 2PC+’s TPS performance is 323.7% to 514.4% higher than 2PC.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call