Test framework for applications using journal-based databases
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-017/30
G06F-011/36
출원번호
US-0868275
(2015-09-28)
등록번호
US-10198346
(2019-02-05)
발명자
/ 주소
Cole, Timothy Daniel
Morkel, John Michael
Ross, Andrew Wayne
Certain, Tate Andrew
Danilov, Artem
Jacques De Kadt, Christopher Richard
Vermeulen, Allan Henry
출원인 / 주소
Amazon Technologies, Inc.
대리인 / 주소
Kowert, Robert C.
인용정보
피인용 횟수 :
0인용 특허 :
19
초록▼
A test coordinator for an application whose data is to be stored at a journal-based multi-data-store database using an optimistic concurrency control protocol identifies a test descriptor. The test descriptor indicates a particular order of a plurality of events associated with the application's dat
A test coordinator for an application whose data is to be stored at a journal-based multi-data-store database using an optimistic concurrency control protocol identifies a test descriptor. The test descriptor indicates a particular order of a plurality of events associated with the application's data, such as reads from various data stores and propagations of committed writes from the database journal to the data stores. The test coordinator uses a set of control mechanisms to cause the events to occur in a selected execution environment in the particular order, and stores an indication of a state reached by the application in response to the events.
대표청구항▼
1. A system, comprising: a test coordinator implemented at one or more computing devices, wherein the test coordinator is configured to: identify one or more test descriptors for a particular application, wherein at least a portion of a data set accessed by the application is to be stored at a multi
1. A system, comprising: a test coordinator implemented at one or more computing devices, wherein the test coordinator is configured to: identify one or more test descriptors for a particular application, wherein at least a portion of a data set accessed by the application is to be stored at a multi-data-store database at which an optimistic concurrency control protocol is implemented using a journal, wherein a first test descriptor of the one or more test descriptors indicates a particular order of a plurality of events associated with the data set, wherein individual ones of the events comprise one or more of: (a) a read operation directed to a data store of a plurality of data stores of the database, (b) a submission of a transaction request indicating a write operation directed to a data store of the plurality of data stores, or (c) a propagation of a write indicated in a committed transaction entry of the journal to a data store of the plurality of data stores;instantiate, in a selected execution environment, at least (a) a journal manager configured to implement the optimistic concurrency control protocol at least by appending to the journal new committed transaction entries that indicate state changes of the data set in response to detection that a read-write conflict does not exist between read sets of respective transaction requests and one or more existing committed transaction entries of the journal, (b) a test version of the application, and (c) one or more write appliers, wherein a particular write applier of the one or more write appliers is configured to propagate one or more writes indicated in committed transaction entries of the journal to a destination representing a particular data store of the plurality of data stores;cause, using a set of control mechanisms of the selected execution environment, the plurality of events indicated in the first test descriptor to occur in the selected execution environment in the particular order indicated in the first test descriptor; andstore an indication of a state reached by the test version of the application in response to the plurality of events. 2. The system as recited in claim 1, wherein individual ones of the entries in the journal comprise respective sequence numbers indicative of the order in which respective commit decisions corresponding to the entries are made by the journal manager, and wherein the set of control mechanisms comprises a particular control mechanism to set, with respect to the particular write applier, a target sequence number, such that the particular write applier is to propagate, to the destination representing the particular data store, writes indicated in journal entries with sequence numbers no greater than the target sequence number. 3. The system as recited in claim 1, wherein the set of control mechanisms comprises a particular control mechanism to defer, by the particular write applier, propagation of respective writes indicated in one or more journal entries to the destination representing the particular data store. 4. The system as recited in claim 3, wherein the set of control mechanisms comprises another control mechanism to resume, by the particular write applier, propagation of one or more writes whose propagation was deferred using the particular control mechanism. 5. The system as recited in claim 1, wherein the first test descriptor indicates an expected output of the test version of the application in response to a particular event of the plurality of events, wherein the test coordinator is configured to: store an indication of an actual output of the test version of the application in response to the particular event. 6. A method, comprising: identifying, by a test coordinator implemented at one or more computing devices, one or more test descriptors for a particular application, wherein at least a portion of a data set accessed by the application is to be stored at a multi-data-store storage system at which an optimistic concurrency control protocol is implemented using a journal, wherein a first test descriptor of the one or more test descriptors indicates a particular order of a plurality of events associated with the data set, wherein individual ones of the events comprise one or more of: (a) a read operation directed to a data store of a plurality of data stores of the storage system, (b) an insertion into the journal of a committed transaction entry indicating a write operation directed to a data store of the plurality of data stores, or (c) a propagation of a write indicated in a committed transaction entry of the journal to a data store of the plurality of data stores;causing, by the test coordinator using a set of control mechanisms of a selected execution environment, wherein the selected execution environment includes a journal manager configured to implement the optimistic concurrency control protocol at least by appending to the journal new committed transaction entries that indicate state changes of the data set in response to detecting that a read-write conflict does not exist between read sets of respective transaction requests and one or more existing committed transaction entries of the journal, the plurality of events indicated in the first test descriptor to occur in the selected execution environment in the particular order; andstoring, by the test coordinator, an indication of a state reached by a test version of the application in response to the plurality of events. 7. The method as recited in claim 6, further comprising: instantiating, by the test coordinator in the selected execution environment, the journal manager, the test version of the application, and one or more write appliers, wherein a particular write applier of the one or more write appliers is configured to propagate one or more writes indicated in committed transaction entries of the journal to a destination representing a particular data store of the plurality of data stores. 8. The method as recited in claim 7, wherein the selected execution environment comprises a particular computing device, and wherein one or more of: (a) the journal manager, (b) the test version of the application or (c) a particular write applier of the one or more write appliers is instantiated using a particular thread of execution of the particular computing device. 9. The method as recited in claim 7, wherein the destination representing the particular data store comprises a portion of a volatile memory device. 10. The method as recited in claim 7, wherein individual ones of the entries in the journal comprise respective sequence numbers indicative of the order in which respective commit decisions corresponding to the entries are made by the journal manager, and wherein the set of control mechanisms comprises a particular control mechanism to set, with respect to the particular write applier, a target sequence number, such that the particular write applier is to propagate, to the destination representing the particular data store, writes indicated in journal entries with sequence numbers no greater than the target sequence number. 11. The method as recited in claim 7, wherein the set of control mechanisms comprises a particular control mechanism to defer, by the particular write applier, propagation of respective writes indicated in one or more journal entries to the destination representing the particular data store. 12. The method as recited in claim 11, wherein the set of control mechanisms comprises another control mechanism to resume, by the particular write applier, propagation of one or more writes whose propagation was deferred using the particular control mechanism. 13. The method as recited in claim 6, wherein the first test descriptor indicates an expected output of the test version of the application in response to a particular event of the plurality of events, further comprising: storing, by the test coordinator, an indication of an actual output of the test version of the application in response to the particular event. 14. The method as recited in claim 6, wherein the order of the plurality of events indicated in the first test descriptor results in a rejection, based at least in part on a read-write conflict detection analysis performed by the journal manager, of a transaction request associated with the application. 15. The method as recited in claim 14, wherein the one or more test descriptors include a second test descriptor, wherein the second descriptor indicates a different order of the plurality of events, wherein the different order results in an acceptance of the transaction request. 16. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implement a test coordinator for an application whose data is to be managed using a journal-based database employing optimistic concurrency control, wherein the test coordinator is configured to: identify one or more test descriptors for the application, wherein a first test descriptor of the one or more test descriptors indicates a particular order of a plurality of events associated with the data of the application, wherein individual ones of the events comprise one or more of: (a) a read operation directed to a data store of a plurality of data stores of the database, (b) an insertion into the journal of a committed transaction entry indicating a write operation directed to a data store of the plurality of data stores, or (c) a propagation of a write indicated in a committed transaction entry of the journal to a data store of the plurality of data stores;cause, using a set of control mechanisms of a selected execution environment, wherein the selected execution environment includes a journal manager configured to implement the optimistic concurrency control protocol at least by appending to the journal new committed transaction entries that indicate state changes of the data in response to detection that a read-write conflict does not exist between read sets of respective transaction requests and one or more existing committed transaction entries of the journal, the plurality of events indicated in the first test descriptor to occur in the selected execution environment in the particular order; andstore, by the test coordinator, an indication of a state reached by a test version of the application in response to the plurality of events. 17. The non-transitory computer-accessible storage medium as recited in claim 16, wherein the test coordinator is configured to: instantiate, in the selected execution environment, the journal manager, the test version of the application, and one or more write appliers, wherein a particular write applier of the one or more write appliers is configured to propagate one or more writes indicated in committed transaction entries of the journal to a destination representing a particular data store of the plurality of data stores. 18. The non-transitory computer-accessible storage medium as recited in claim 17, wherein the selected execution environment comprises a particular computing device, and wherein one or more of: (a) the journal manager, (b) the test version of the application or (c) a particular write applier of the one or more write appliers is instantiated using a particular thread of execution of the particular computing device. 19. The non-transitory computer-accessible storage medium as recited in claim 17, wherein the destination representing the particular data store comprises a portion of a volatile memory device. 20. The non-transitory computer-accessible storage medium as recited in claim 17, wherein individual ones of the entries in the journal comprise respective sequence numbers indicative of the order in which respective commit decisions corresponding to the entries are made by the journal manager, and wherein the set of control mechanisms comprises a particular control mechanism to set, with respect to the particular write applier, a target sequence number, such that the particular write applier is to propagate, to the destination representing the particular data store, writes indicated in journal entries with sequence numbers no greater than the target sequence number.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (19)
Corbin, Scott Roger; Shepherd, Joel; Pareek, Alok; McAllister, Chris, Apparatus and method for log based replication of distributed transactions using globally acknowledged commits.
Demers Alan J. (Boulder Creek CA) Petersen Karin (Menlo Park CA) Spreitzer Michael J. (Tracy CA) Terry Douglas B. (San Carlos CA) Theimer Marvin M. (Mountain View CA) Welch Brent B. (Mountain View CA, Application-specific conflict detection for weakly consistent replicated databases.
Wang, Rui; Byrne, Peter; Stewart, Leigh M.; Dhamankar, Robin D.; Guo, Qun; Habben, Michael E.; Jiang, Xiaowei, Data change ordering in multi-log based replication.
Lampson Butler (Cambridge MA) Lomet David B. (Westford MA), Distributed transaction processing using two-phase commit protocol with presumed-commit without log force.
O'Loughlin, Keith; Harrison, David; Darby, Niall; Cummins, Padraig; Moore, Lorraine, System and method for providing a distributed workflow through a plurality of handheld devices.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.