Locking item ranges for creating a secondary index from an online table
First Claim
1. A non-relational data store, comprising:
- one or more computing devices that implement a storage node for the non-relational data store;
the storage node, configured to;
create a secondary index for a table that includes a plurality of items stored at the storage node, wherein the table is available for servicing access requests received during the creation of the secondary index, wherein to create the secondary index the storage engine is configured to;
lock a range of the items such that access requests to update a portion of the table included in the range are not completed while the range is locked;
generate a portion of the secondary index from the range of items; and
upon completion of the generation, unlock the range of the items;
wherein the lock, the generation, and the unlock are performed for different ranges of the items until the secondary index is complete, wherein a request to update the table directed to at least one of the different ranges that is received while the at least one range is locked is performed subsequent to the unlock of the at least one range.
2 Assignments
0 Petitions
Accused Products
Abstract
A data storage system may implement locking item ranges for creating a secondary index of an online table. A secondary index may be generated for a table of items stored in a non-relational data store. Different ranges of items in the data store may be locked while a corresponding portion of the secondary index is generated. Upon generating the corresponding portion of the secondary index, a range of items may be unlocked. While generating the secondary index, the table may be made available for servicing access requests. For a request to update the table received during the generation of the secondary index, a determination may be made as to whether the update is included within a locked range of the table. If locked, the request may be delayed until the range is unlocked.
-
Citations
20 Claims
-
1. A non-relational data store, comprising:
-
one or more computing devices that implement a storage node for the non-relational data store; the storage node, configured to; create a secondary index for a table that includes a plurality of items stored at the storage node, wherein the table is available for servicing access requests received during the creation of the secondary index, wherein to create the secondary index the storage engine is configured to; lock a range of the items such that access requests to update a portion of the table included in the range are not completed while the range is locked; generate a portion of the secondary index from the range of items; and upon completion of the generation, unlock the range of the items; wherein the lock, the generation, and the unlock are performed for different ranges of the items until the secondary index is complete, wherein a request to update the table directed to at least one of the different ranges that is received while the at least one range is locked is performed subsequent to the unlock of the at least one range. - View Dependent Claims (2, 3, 4)
-
-
5. A method, comprising:
performing, by one or more computing devices; generating a secondary index for a table that includes a plurality of items stored in a non-relational data store, wherein the table is available for servicing access requests during the creation of the secondary index, wherein the generating comprises locking different ranges of the items until corresponding portions of the secondary index generated from the different ranges of items are complete; during the generating of the secondary index; receiving a request to update the table; determining that the update to the table is within one of the different ranges of the items locked for creating the secondary index; delaying the request for subsequent performance; and upon unlocking the one range of items, updating the table in accordance with the stored request. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13)
-
14. A system, comprising:
-
one or more storage devices that store data for a non-relational data store; at least one processor; a memory that comprises program instructions, wherein the program instructions cause the at least one processor to implement a storage engine for a non-relational data store; the storage engine, configured to; generate a secondary index for a table that includes a plurality of items stored in a non-relational data store, wherein the table is available for servicing access requests during the generation of the secondary index, wherein to create the secondary index, the storage engine is configured to lock different ranges of the items until corresponding portions of the secondary index generated from the different ranges of items are complete; during the generation of the secondary index; receive a request to update the table; determine that the update to the table is within one of the different ranges of the items locked for creating the secondary index; store the request for subsequent performance; and upon unlock of the range of items, update the table in accordance with the request. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification