US 12,380,083 B1
Indexing sub-tables for performant access requests
Akhilesh Mritunjai, Seattle, WA (US); Cameron Ryan Alberts, Seattle, WA (US); Yosseff Levanoni, Redmond, WA (US); Vivek Srivastava, Bellevue, WA (US); and Dolev Ish am, Kirkland, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Mar. 30, 2020, as Appl. No. 16/835,044.
Int. Cl. G06F 16/22 (2019.01); G06F 16/21 (2019.01); G06F 16/27 (2019.01)
CPC G06F 16/2282 (2019.01) [G06F 16/211 (2019.01); G06F 16/2272 (2019.01); G06F 16/27 (2019.01); G06F 16/278 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A system, comprising:
at least one processor;
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 that stores a database;
wherein the database stores a table, wherein the table comprises a plurality of different sub-tables respectively created in the table responsive to one or more requests to create the plurality of different sub-tables, wherein the table is logically divided into the plurality of different sub-tables according to respective identifiers for the plurality of different sub-tables, wherein the plurality of different sub-tables includes sub-tables comprising respective pluralities of items, wherein the respective pluralities of items are distributed across more than one of a plurality of partitions that store the table according to different, respective distribution schemes corresponding to individual ones of the sub-tables that are used to select which ones of the plurality of partitions to store different ones of the respective pluralities of items when the different ones of the respective plurality of items are received in respective requests that identify respective ones of the plurality of different sub-tables to store the different ones of the respective plurality of items, wherein the different, respective distribution schemes are respectively determined for the plurality of different sub-tables as part of performing the one or more requests to create the plurality of different sub-tables, and wherein the different, respective distribution schemes balance the respective pluralities of items of individual ones of the sub-tables across the plurality of partitions such that a first item of two items included in two different ones of the sub-tables with a same value is stored in a first partition according to a first one of the different, respective distributions schemes corresponding to a first one of the two different ones of the sub-tables and such that a second item of the two items included in the two different ones of the sub-tables with the same value is stored in a second partition according to a second one of the different, respective distribution schemes corresponding to a second one of the two different ones of the sub-tables;
wherein the database system is configured to:
receive a request to store an item in a table of the database, wherein the request identifies one of a plurality of different sub-tables, and wherein the request specifies that the item is to be in the one sub-table;
update an index as part of storing the item in the table of the database according to an indexing scheme that co-locates items of the one of the plurality of different sub-tables respectively within the index;
receive a request to access the item that specifies the one of the plurality of different sub-tables; and
search the updated index that co-locates items of the specified sub-table to locate and perform the request to access the item.