Incremental out-of-place updates for index structures
First Claim
1. A system, comprising:
- one or more block-based persistent storage devices, configured to maintain an index structure for a data store and a log of index updates to the index structure, wherein the index structure is maintained according to an indexing schema for the data store, wherein the log of index updates is not maintained according to the indexing schema, wherein the index structure and the log of index updates are searched in response to access requests received for the data store;
at least one processor;
a memory, comprising program instructions that when executed cause the at least one processor to execute a storage manager to;
select a portion of the log of index updates to incrementally update the index structure;
generate a sub-index structure for the selected portion of the log of index updates according to the indexing schema;
in response to the generation of the sub-index structure, make the sub-index structure available for performing searches such that the sub-index structure is searched in response to access requests received for the data store;
merge the sub-index structure with a current portion of the index structure to generate an updated version of the current portion of the index structure according to the index schema, wherein the updated version of the current portion of the index structure is generated in a different one or more storage locations at the one or more block-based persistent storage devices than a respective one or more storage locations of the current portion of the index structure at the one or more block-based persistent storage devices; and
replace the current portion of the index structure with the updated version of the index structure such that subsequent searches performed on the index structure evaluate the updated version of the current portion of the index structure and the log of index updates.
1 Assignment
0 Petitions
Accused Products
Abstract
Incremental, out-of-place updates may be implemented for index structures maintained for data stores. Portions of the index structure may be selected for updating, and an updated version of the portion of the index structure generated in another storage location different than a current storage location for the index structure such that the index structure may be searched in order to perform access requests. Updating the portion of the index structure may include compacting the portion of the index structure and/or merging the portion of the index structure with a sub-index structure generated from a portion of a log of index updates that may be maintained. The current portion of the index structure may then be replaced with the updated version of the current portion so that the updated version may be evaluated when searches of the index structure are performed.
-
Citations
20 Claims
-
1. A system, comprising:
-
one or more block-based persistent storage devices, configured to maintain an index structure for a data store and a log of index updates to the index structure, wherein the index structure is maintained according to an indexing schema for the data store, wherein the log of index updates is not maintained according to the indexing schema, wherein the index structure and the log of index updates are searched in response to access requests received for the data store; at least one processor; a memory, comprising program instructions that when executed cause the at least one processor to execute a storage manager to; select a portion of the log of index updates to incrementally update the index structure; generate a sub-index structure for the selected portion of the log of index updates according to the indexing schema; in response to the generation of the sub-index structure, make the sub-index structure available for performing searches such that the sub-index structure is searched in response to access requests received for the data store; merge the sub-index structure with a current portion of the index structure to generate an updated version of the current portion of the index structure according to the index schema, wherein the updated version of the current portion of the index structure is generated in a different one or more storage locations at the one or more block-based persistent storage devices than a respective one or more storage locations of the current portion of the index structure at the one or more block-based persistent storage devices; and replace the current portion of the index structure with the updated version of the index structure such that subsequent searches performed on the index structure evaluate the updated version of the current portion of the index structure and the log of index updates. - View Dependent Claims (2, 3, 4)
-
-
5. A method, comprising:
performing, by one or more computing devices; storing an index structure for a data store in at least one block-based persistent storage device according to an indexing schema for the data store; storing a log of index updates to the index structure, wherein the log of index updates is not maintained according to the indexing schema, and wherein the index structure and the log of index updates are searched in response to access requests received for the data store; incrementally updating the index structure, wherein the index structure is available for searches during the updating, and wherein updating the index structure comprises; selecting a current portion of the index structure to update; generating an updated version of the current portion of the index structure as a result of one or more updates received for the data store according to the indexing schema for the data store, wherein the updated version of the current portion of the index structure is generated in a different one or more storage locations than a respective one or more storage locations maintaining the current portion of the index structure; and replacing the current portion of the index structure with the updated version of the index structure such that subsequent searches performed on the index structure evaluate the updated version of the current portion of the index structure and the log of index updates. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13)
-
14. A non-transitory, computer-readable storage medium, storing program instructions that when executed by one or more computing devices cause the one or more computing devices to implement:
-
maintaining a log of index updates to an index structure maintained for a data store in at least one block-based persistent storage device, wherein the index structure is maintained according to an indexing schema for the data store, wherein the log of index updates is not maintained according to the indexing schema, wherein the index structure and the log of index updates are searched in response to access requests received for the data store; selecting a portion of the log of index updates to incrementally update the index structure; generating a sub-index structure for the selected portion of the log of index updates according to the indexing schema; in response to generating the sub-index structure, making the sub-index structure available for performing searches such that the sub-index structure is searched in response to access requests received for the data store; merging the sub-index structure with a current portion of the index structure to generate an updated version of the current portion of the index structure according to the index schema, wherein the updated version of the current portion of the index structure is generated in a different one or more storage locations than a respective one or more storage locations maintaining the current portion of the index structure; and replacing the current portion of the index structure with the updated version of the index structure such that subsequent searches performed on the index structure evaluate the updated version of the current portion of the index structure and the log of index updates. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification