US 11,880,385 B1
Ordering updates to secondary indexes using conditional operations
Sharatkumar Nagesh Kuppahally, Issaquah, WA (US); Peter Zhivkov, Seattle, WA (US); Somasundaram Perianayagam, Seattle, WA (US); James Christopher Sorenson, III, Seattle, WA (US); Amit Gupta, Redmond, WA (US); Shishir Agrawal, Seattle, WA (US); Sagar Mundra, Seattle, WA (US); Vaibhav Jain, Karnataka (IN); Ajay Kumar, Karnataka (IN); Aman Gupta, Madhya Pradesh (IN); and Ankur Tyagi, Uttar Pradesh (IN)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Sep. 29, 2020, as Appl. No. 17/037,507.
Int. Cl. G06F 16/00 (2019.01); G06F 16/27 (2019.01); G06F 16/22 (2019.01); G06F 11/14 (2006.01); G06F 16/23 (2019.01)
CPC G06F 16/273 (2019.01) [G06F 11/1407 (2013.01); G06F 16/2228 (2019.01); G06F 16/2282 (2019.01); G06F 16/23 (2019.01); G06F 16/2329 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A system, comprising:
at least one processor; and
a memory, storing program instructions that when executed by the at least one processor cause the at least one processor to implement a database system, the database system configured to:
perform an update, received from a client of the database system, to a database stored as part of the database system;
evaluate the update according to a schema for a secondary index for the database that projects a subset of data from the database to the secondary index, wherein the evaluation determines that the update is to be replicated to the secondary index and wherein the secondary index is stored separately from the database; and
send a request to conditionally perform the update to the secondary index, wherein the request specifies a second version identifier, wherein the update is performed according to the request after a comparison of a first version identifier associated with the update and the second version identifier associated with the secondary index indicates that performance of the update is consistent with a sequential ordering of different updates performed to the database, and wherein a given update is not performed after a comparison indicates that the given update is not consistent with the sequential ordering of different updates performed to the database.