Dynamic assignment of logical partitions according to query predicate evaluations
AssigneeAmazon Technologies, Inc.
InventorsAndrew Edward Caldwell, Michail Petropoulos, Anurag Windlass Gupta
Life of this patent
Estimating the term…
Abstract
A data store may implement dynamically assign storage locations to logical partitions according to query predicate indexes. Query predicate indexes may be maintained for individual storage locations in a data store that indicate whether storage locations store data values that do not satisfy a query predicate. The query predicate indexes may be evaluated to assign the storage locations to one or multiple logical partitions. The logical partitions may then be utilized to provide access to data stored in the data store. In some embodiments, a logical partition may be a remote storage partition that identifies data in storage locations to copy to a remote data store.
Claims20
A system, comprising:
- at least one block-based persistent storage device that comprises a plurality of data blocks maintaining respective portions of data as part of a data store;
- at least one processor;
- a system memory that comprises program instructions that when executed by the at least one processor cause the at least one processor to:
- track query predicate evaluations for individual ones of the plurality of data blocks to update a respective query predicate index for the individual data blocks, wherein the respective query predicate index indicates data values not stored in an individual data block as evaluated according to one or more query predicates included in a previous query directed to the data store;
- evaluate the query predicate indexes for the individual data blocks to assign the individual data blocks to one or more logical partitions of the data store;
- receive a query directed to the data store for particular data;
- in response to the receipt of the query:
- identify one or more of the logical partitions to access;
- and
- read the individual data blocks assigned to the identified one or more logical partitions to service the query.
A method, comprising:
- performing, by one or more computing devices:
- maintaining respective query predicate indexes for individual storage locations that store a portion of data maintained as part of a data store that indicate data values not stored in an individual storage location as evaluated according to query predicates included in a previously received query;
- evaluating the query predicate indexes for the individual storage locations to assign the individual storage locations to at least one logical partition of the data store;
- and
- receiving a query directed to the data store;
- and
- in response to receiving the query, providing access to the data store according to the at least one logical partition of the data store.
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:
- tracking query predicate evaluations for individual storage locations that store a portion of data maintained as part of a data store to update a respective query predicate index for the individual storage locations, wherein the respective query predicate index indicates data values not stored in an individual storage location according to one or more query predicates included in a previously received query;
- evaluating the query predicate indexes for the individual storage locations to assign the individual storage locations to at least one logical partition of the data store;
- and
- receiving a query directed to the data store;
- and
- in response to receiving the query, processing the request according to one or more logical partitions identified for servicing the query.
Dependencies are inferred from the claim text.