Techniques and systems for scalable request handling in data processing systems
First Claim
Patent Images
1. A computer-implemented method, comprising:
- in response to receiving a plurality of data storage requests for data to be stored in a plurality of volumes of durable storage of a data storage system, processing the data storage requests by at least;
obtaining events associated with each of the plurality of data storage requests;
assigning the events to one or more specified database tables, wherein the one or more database tables are rotated for assignment of the events, the database tables being configured so as to include an entry for each of the assigned events in both;
a primary index table that utilizes a pseudorandomly generated primary key for each of the assigned events; and
a secondary index table that uses information in the primary index table as its primary key, the information being different from the pseudorandomly generated primary key;
storing, asynchronous from receiving the plurality of the data storage requests, the data into the plurality of volumes in accordance with the events assigned to the one or more database tables, the data stored by at least;
applying a redundancy code to the data associated with the data storage requests to generate a set of shards representative of the data;
storing the shards on the plurality of volumes; and
updating entries corresponding to the events assigned to the one or more database tables; and
responding, synchronous from receiving the plurality of the data storage requests, to status requests regarding pendency of the events associated with each of the plurality of data storage requests by at least using the primary key of the secondary index table.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer system, such as a data storage system, implements techniques for managing unpredictable and/or bursty system demand. For example, a database service implements a schema and/or a database table rotation that allows for events to be allocated substantially evenly across the available keyspace. In some embodiments, asynchronous and synchronous components of a data processing system are accordingly isolated so as to improve the operational efficiency and utilization of both.
241 Citations
19 Claims
-
1. A computer-implemented method, comprising:
in response to receiving a plurality of data storage requests for data to be stored in a plurality of volumes of durable storage of a data storage system, processing the data storage requests by at least; obtaining events associated with each of the plurality of data storage requests; assigning the events to one or more specified database tables, wherein the one or more database tables are rotated for assignment of the events, the database tables being configured so as to include an entry for each of the assigned events in both; a primary index table that utilizes a pseudorandomly generated primary key for each of the assigned events; and a secondary index table that uses information in the primary index table as its primary key, the information being different from the pseudorandomly generated primary key; storing, asynchronous from receiving the plurality of the data storage requests, the data into the plurality of volumes in accordance with the events assigned to the one or more database tables, the data stored by at least; applying a redundancy code to the data associated with the data storage requests to generate a set of shards representative of the data; storing the shards on the plurality of volumes; and updating entries corresponding to the events assigned to the one or more database tables; and responding, synchronous from receiving the plurality of the data storage requests, to status requests regarding pendency of the events associated with each of the plurality of data storage requests by at least using the primary key of the secondary index table. - View Dependent Claims (2, 3)
-
4. A system, comprising:
at least one computing device configured to implement one or more services, wherein the one or more services are configured to; in response to receiving a plurality of data processing requests, process the plurality of requests by at least; assigning events associated with each request of the plurality of requests to a subset of a series of database tables, wherein the subset of the series of database tables is cycled for assignment of the events, each of the assigned events being associated with a respective identifier, the identifier generated stochastically, and the assigning of events causing each event of the assigned event to be allocated to a processing partition based on a value of the respective identifier; and in response to an update related to an allocated event, using a respective processing partition to execute the update. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11)
-
12. A non-transitory computer-readable storage medium storing thereon executable instructions that, when executed by one or more processors of a computer system, cause the computer system to at least:
-
in response to receiving a data processing request, populate a database table with information relating to a plurality of events associated with the data processing request, the information including an identifier for each event of the plurality of events, the database table being configured to use the identifier as its primary key, the identifier being generated so as to decorrelate the events from other events when the events are assigned; assign each event of the plurality of events to one of a plurality of processing partitions based at least in part on a value of the identifier, each processing partition of the plurality of processing partitions having a portion of overall processing capacity of a database service configured to service the plurality of events; and cause the database service to service the event using the processing partition. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
Specification