IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0833008
(2015-08-21)
|
등록번호 |
US-10235407
(2019-03-19)
|
발명자
/ 주소 |
- Morkel, John Michael
- Cole, Timothy Daniel
- Ross, Andrew Wayne
- Danilov, Artem
- Vermeulen, Allan Henry
- Certain, Tate Andrew
- De Kadt, Christopher Richard Jacques
|
출원인 / 주소 |
- Amazon Technologies, Inc.
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
0 인용 특허 :
18 |
초록
▼
A forking coordinator of a journal-based multi-data-store database determines that a forking criterion for a first journal has been met. The coordinator stores an indication that processing of transaction requests directed to a particular subset of the database is suspended. The coordinator instanti
A forking coordinator of a journal-based multi-data-store database determines that a forking criterion for a first journal has been met. The coordinator stores an indication that processing of transaction requests directed to a particular subset of the database is suspended. The coordinator instantiates a second journal for storing committed transaction entries for the particular subset. Metadata of the second journal indicates that transaction entries with sequence numbers in a particular range are stored in the first journal. The coordinator stores an indication that transaction processing associated with the particular subset of the system is to be resumed using the second journal.
대표청구항
▼
1. A method, comprising: determining, by a forking coordinator implemented at one or more computing devices of a multi-data-store database, that a forking criterion has been met with respect to a first journal of the multi-data-store database, wherein the first journal includes a plurality of commit
1. A method, comprising: determining, by a forking coordinator implemented at one or more computing devices of a multi-data-store database, that a forking criterion has been met with respect to a first journal of the multi-data-store database, wherein the first journal includes a plurality of committed transaction entries indicating respective approved state changes of the multi-data-store database, and wherein individual ones of the committed transaction entries include respective sequence numbers indicative of an order in which corresponding commit decisions were made by a first journal manager implementing an optimistic concurrency control protocol;storing, by the forking coordinator, one or more metadata records to indicate that processing of transaction requests comprising writes directed to a particular subset of the multi-data-store database is suspended, wherein the one or more metadata records are accessible to at least a client-side component authorized to submit transaction requests;selecting, by the forking coordinator, a fork-transition sequence number corresponding to a particular committed transaction entry of the first journal;instantiating, by the forking coordinator, a second journal, wherein the second journal indicates that committed transaction entries with sequence numbers smaller than the fork-transition sequence number are stored at the first journal;updating, by the forking coordinator, the one or more metadata records to indicate that (a) transaction requests comprising writes directed to the particular subset are to be transmitted to a second journal manager of the second journal, and (b) processing of transaction requests comprising writes directed to the particular subset is to be resumed; andappending, by the second journal manager, based at least in part on a result of a conflict detection operation corresponding to a new transaction request received from the client-side component after said updating, a new committed transaction entry to the second journal, wherein the new committed transaction entry indicates a write directed to the particular subset. 2. The method as recited in claim 1, further comprising: receiving, by the forking coordinator via a programmatic interface, a fork request indicating that the forking criterion has been met. 3. The method as recited in claim 1, wherein the multi-data-store database comprises a plurality of records, wherein individual ones of the plurality of records comprise values of one or more attributes, and wherein the particular subset of the multi-data-store database comprises one or more records identified from the plurality of records based at least in part on a value of a particular attribute of the one or more attributes. 4. The method as recited in claim 1, further comprising: determining, by a first write applier associated with the particular subset, based at least in part on examining the one or more metadata records, that processing of transaction requests comprising writes directed to the particular subset is suspended; anddeferring, by the first write applier, an examination of at least one committed transaction entry of the first journal. 5. The method as recited in claim 1, further comprising: processing, by the first journal manager, a particular transaction request directed at a different subset of the multi-data-store database, wherein said processing is performed (a) after said storing, by the forking coordinator, the one or more metadata records to indicate that processing of transaction requests comprising writes directed to the particular subset is suspended and (b) before said updating, by the forking coordinator, the one or more metadata records to indicate that processing of transaction requests comprising writes directed to the particular subset is to be resumed; andappending, to the first journal by the first journal manager, a committed transaction entry corresponding to the particular transaction request. 6. A system, comprising: a forking coordinator implemented by one or more processors and memory at one or more computing devices associated with a multi-data-store database, wherein the forking coordinator is configured to: determine that a forking criterion has been met with respect to a first journal of the multi-data-store database, wherein the first journal includes a plurality of committed transaction entries indicating respective approved state changes of the multi-data-store database, and wherein individual ones of the committed transaction entries include respective sequence numbers indicative of an order in which corresponding commit decisions were made by a first journal manager;store an indication that processing of transaction requests comprising writes directed to a particular subset of the multi-data-store database is suspended;instantiate a second journal to store committed transaction entries corresponding to the particular subset of the multi-data-store database, wherein metadata associated with the second journal indicates that committed transaction entries with sequence numbers smaller than a selected fork-transition sequence number are stored at the first journal; andstore an indication that (a) transaction requests directed to the particular subset of the multi-data-store database are to be directed to a second journal manager of the second journal and (b) processing of transaction requests comprising writes directed to the particular subset of the multi-data-store database has been resumed. 7. The system as recited in claim 6, wherein the forking coordinator is further configured to: implement a programmatic interface enabling clients of the multi-data-store database to submit a fork request, wherein a receipt of a particular fork request from a particular client via the programmatic interface indicates that the forking criterion has been met. 8. The system as recited in claim 6, wherein the multi-data-store database comprises a plurality of records, wherein individual ones of the plurality of records comprise values of one or more attributes, and wherein the particular subset of the multi-data-store database comprises one or more records selected from the plurality of records based at least in part on a value of a particular attribute of the one or more attributes. 9. The system as recited in claim 6, further comprising a client-side component of the multi-data-store database, wherein the client-side component is authorized to submit transaction requests to the multi-data-store database, wherein the client-side component is configured to: examine metadata of the multi-data-store database to obtain the indication that processing of transaction requests comprising writes directed to the particular subset of the multi-data-store database is suspended; anddefer submitting at least one transaction request based on the metadata. 10. The system as recited in claim 6, further comprising a first write applier associated with the particular subset of the multi-data-store database, wherein the first write applier is configured to: examine metadata of the multi-data-store database to obtain the indication that processing of transaction requests comprising writes directed to the particular subset of the multi-data-store database is suspended; anddefer an examination of at least one committed transaction entry of the first journal based on the metadata. 11. The system as recited in claim 6, wherein after the forking coordinator stores the indication that processing of transaction requests comprising writes directed to the particular subset of the multi-data-store database is suspended, and before the forking coordinator stores the indication that processing of transaction requests comprising writes directed to the particular subset of the multi-data-store database has been resumed, the first journal manager is configured to: process a particular transaction request directed at a different subset of the multi-data-store database; andappend, to the first journal, a committed transaction entry corresponding to the particular transaction request. 12. The system as recited in claim 6, wherein the second journal manager is configured to: examine, to perform conflict detection for a particular transaction request in accordance with an optimistic concurrency control protocol, at least one committed transaction entry of the first journal, and at least one committed transaction entry of the second journal. 13. The system as recited in claim 6, wherein after the forking coordinator stores the indication that processing of transaction requests comprising writes directed to the particular subset of the multi-data-store database is suspended, the first journal manager is configured to: in response to receiving a particular transaction request directed to the particular subset of the multi-data-store database, reject the particular transaction request. 14. The system as recited in claim 6, wherein at least a first subset of the committed transaction entries of the first journal and a second collection of the committed transaction entries of the second journal are formatted in accordance with a data-store-independent transaction language indicated in a particular version of a journal schema, further comprising a snapshot manager implemented at one or more computing devices associated with the multi-data-store database, wherein the snapshot manager is configured to: receive a request to generate a compact snapshot of at least the particular subset of the multi-data-store database, wherein the compact snapshot is to include a plurality of entries formatted in the data-store independent transaction language; andexamine at least one committed transaction entry of the first journal, and at least one committed transaction entry of the second journal, to generate the compact snapshot. 15. The system recited in claim 6, wherein at least a first subset of the committed transaction entries of the first journal and a second subset of the committed transaction entries of the second journal are formatted in accordance with a data-store-independent transaction language indicated in a particular version of a journal schema, further comprising a snapshot manager implemented at one or more computing devices associated with the multi-data-store database, wherein the snapshot manager is configured to: generate, in response to an indication that the second journal has been instantiated, a particular compact snapshot representing state changes indicated in committed transaction entries with sequence numbers no greater than the selected fork-transition sequence number, wherein the particular compact snapshot comprises a plurality of entries formatted in the data-store independent transaction language; andprepare, based at least in part on an analysis of (a) the particular compact snapshot and (b) one or more committed transaction entries of the second journal, a different compact snapshot corresponding to the particular subset of the multi-data-store database. 16. The system as recited in claim 6, wherein the second journal manager is configured to: insert, into the second journal, a first committed transaction entry indicative of a modification of a journal schema of the multi-data-store database, wherein the journal schema indicates a data-store-independent transaction language used for transaction requests, wherein the first committed transaction entry includes a particular sequence number, and wherein the second journal does not include a committed transaction entry with a sequence number smaller than the particular sequence number; anddetermine, in response to receiving a particular transaction request, a first sequence number indicating a state of the multi-data-store database observed by a client-side component to prepare the particular transaction request; andreject the particular transaction request based at least in part on detecting that the first sequence number is smaller than the particular sequence number. 17. The system as recited in claim 6, wherein at least a first subset of the committed transaction entries of the first journal are formatted in accordance with a first version of a journal schema, wherein at least a first subset of the committed transaction entries of the second journal are formatted in accordance with the first version of the journal schema, wherein the second journal manager is configured to: append, to the second journal, a journal schema modification entry indicating a second version of the journal schema to be used to prepare transaction requests directed to the particular subset of the multi-data-store database, wherein a corresponding journal schema modification entry is not appended by the first journal manager to the first journal. 18. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implement one or more control plane components of a multi-data-store database, wherein the one or more control plane components are configured to: determine that a forking criterion has been met with respect to a first journal of the multi-data-store database, wherein the first journal includes a plurality of committed transaction entries indicating respective approved state changes of the multi-data-store database, and wherein individual ones of the committed transaction entries include respective sequence numbers indicative of an order in which corresponding commit decisions were made by a first journal manager;store an indication that processing of transaction requests comprising writes directed to a particular subset of the multi-data-store database is suspended;instantiate a second journal to store committed transaction entries corresponding to the particular subset of the multi-data-store database, wherein metadata associated with the second journal indicates that committed transaction entries with sequence numbers smaller than a selected fork-transition sequence number are stored at the first journal; andstore an indication that (a) transaction requests directed to the particular subset of the multi-data-store database are to be directed to a second journal manager of the second journal and (b) processing of transaction requests comprising writes directed to the particular subset of the multi-data-store database has been resumed. 19. The non-transitory computer-accessible storage medium as recited in claim 18, wherein the one or more control plane components are configured to: implement a programmatic interface enabling submission of fork requests, wherein a receipt of a particular fork request from a particular client via the programmatic interface indicates that the forking criterion has been met. 20. The non-transitory computer-accessible storage medium as recited in claim 19, wherein the fork request indicates the particular subset of the multi-data-store database. 21. The non-transitory computer-accessible storage medium as recited in claim 18, wherein to determine that the forking criterion has been met, the one or more control plane components are configured to examine one or more of (a) a performance metric of the first journal, or (b) a size metric of the first journal. 22. The non-transitory computer-accessible storage medium as recited in claim 18, wherein the one or more control plane components are configured to: after instantiating a third journal for processing transaction requests associated with the portion of the multi-data-store database which is not included in the particular subset, disable the first journal manager.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.