US 11,921,701 B2
Global distributed transactions across microservices
Guogen Zhang, San Jose, CA (US); Kun Ren, San Jose, CA (US); and Sami Ben-Romdhane, Los Altos, CA (US)
Assigned to eBay Inc., San Jose, CA (US)
Filed by eBay Inc., San Jose, CA (US)
Filed on May 1, 2019, as Appl. No. 16/400,364.
Claims priority of provisional application 62/804,319, filed on Feb. 12, 2019.
Prior Publication US 2020/0257676 A1, Aug. 13, 2020
Int. Cl. G06F 16/23 (2019.01); G06F 9/46 (2006.01); G06F 12/0804 (2016.01); G06F 12/0866 (2016.01); G06F 12/128 (2016.01)
CPC G06F 16/2379 (2019.01) [G06F 12/0804 (2013.01); G06F 16/2365 (2019.01); G06F 2212/1008 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method comprising:
receiving a transaction request of a transaction for a plurality of database services of microservices, the plurality of database services of the microservices each including a local transaction manager;
receiving a local commit decision of a local commit request from each local transaction manager of the plurality of database services of the microservices, the local commit requests corresponding to the transaction request for each database service of the plurality of database services and being processed by each local transaction manager to generate the local commit decision for each database service of the plurality of database services, each respective local transaction manager:
persisting a log of logically committed transactions that involve a database service managed by the respective local transaction manager in a local cache in an order of transaction logical commit; and
processing a respective local commit request by performing conflict checking, using an optimistic concurrency control protocol, on the log of logically committed transactions persisted in the local cache of the respective local transaction manager;
generating a physical commit request to each of the local transaction managers based on the local commit decisions and a global commit decision, the global commit decision being generated based on the local commit decisions; and
submitting, by each of the local transaction managers, the physical commit request to respective database servers of respective database services corresponding to the transaction request by deterministically applying the logically committed transactions from respective logs to the respective database servers in the order of the respective logs.