US 11,914,571 B1
Optimistic concurrency for a multi-writer database
Xiaofeng Bao, Fremont, CA (US); Murali Brahmadesam, Woodinville, WA (US); Yi Ding, Los Altos, CA (US); Niket Goel, Seattle, WA (US); Anurag Windlass Gupta, Atherton, CA (US); Kamal Kant Gupta, Snoqualmie, WA (US); Changan Han, Bellevue, WA (US); Tiffany Jianto, Sunnyvale, CA (US); Tengiz Kharatishvili, Sammamish, WA (US); Saileshwar Krishnamurthy, Palo Alto, CA (US); Bohan Liu, Seattle, WA (US); Saleem Mohideen, Saratoga, CA (US); Punit Rajgaria, Sunnyvale, CA (US); Joseph Andrew Tucek, Palo Alto, CA (US); and Alexandre Olegovich Verbitski, Woodinville, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Mar. 20, 2018, as Appl. No. 15/926,983.
Claims priority of provisional application 62/590,231, filed on Nov. 22, 2017.
Int. Cl. G06F 16/23 (2019.01); G06F 16/17 (2019.01); G06F 16/176 (2019.01)
CPC G06F 16/2315 (2019.01) [G06F 16/1734 (2019.01); G06F 16/1767 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A system, comprising:
a memory to store program instructions which, if performed by at least one processor, cause the at least one processor to implement a first database engine head node configured to:
receive an access request from a client;
responsive to receiving the access request, send a first write request to a log-based data store for a database to perform the access request on behalf of the client, the first write request comprising an update to data of the database;
receive, from the log-based data store, a response to the first write request comprising one or more indications of a detected conflict at the log-based data store between the update to the data of the database of the first write request and another update to the data of the database of a second write request to the database sent to the log-based data store by a second database engine head node, the one or more indications of the detected conflict indicating that the first write request sent to the log-based data store conflicts with the second write request sent to the log-based data store;
request a resolution of the indicated conflict from a primary database engine head node for the database;
cause the log-based data store to commit the first write request instead of the second write request according to the resolution received from the primary database engine head node indicating the first write request is to be committed; and
acknowledge the access request to the client.