Deferred assignments in journal-based storage systems
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-007/00
G06F-017/00
G06F-017/30
출원번호
US-0833000
(2015-08-21)
등록번호
US-10108658
(2018-10-23)
발명자
/ 주소
Cole, Timothy Daniel
Deardeuff, Michael Benjamin
Danilov, Artem
Morkel, John Michael
Certain, Tate Andrew
Jacques De Kadt, Christopher Richard
Freshwater, Aaron Gifford
Vermeulen, Allan Henry
Ross, Andrew Wayne
출원인 / 주소
Amazon Technologies, Inc.
대리인 / 주소
Kowert, Robert C.
인용정보
피인용 횟수 :
0인용 특허 :
18
초록▼
A data store manager of a multi-data-store journal-based database performs a sequential analysis of committed transaction entries of a journal. A particular entry includes a directive to determine a value of an attribute of a data object based on a result obtained from a value generator, and does no
A data store manager of a multi-data-store journal-based database performs a sequential analysis of committed transaction entries of a journal. A particular entry includes a directive to determine a value of an attribute of a data object based on a result obtained from a value generator, and does not specify the value of the attribute. The data store manager determines the value using a local version of the value generator, and stores the value in a materialized version of the data object. In response to a programmatic read request, the data store manager provides the materialized version of the data object.
대표청구항▼
1. A system, comprising: a journal manager implemented at one or more computing devices of a multi-data-store database, wherein the multi-data-store database comprises a first data store manager of a first data store;wherein the journal manager is configured to: receive a transaction request from a
1. A system, comprising: a journal manager implemented at one or more computing devices of a multi-data-store database, wherein the multi-data-store database comprises a first data store manager of a first data store;wherein the journal manager is configured to: receive a transaction request from a client-side component of the multi-data-store storage system, wherein the transaction request includes a first directive to set a value of a particular attribute of a data object to a result to be obtained from a deterministic value generator after commit analysis of the transaction request is completed, wherein the result is not included in the transaction request;append, after a commit analysis of the transaction request using a read set of the transaction request and respective write sets of one or more committed transactions, a committed transaction entry, wherein the committed transaction entry includes the directive and does not include the result;wherein the first data store manager is configured to: examine the committed transaction entry as part of a sequential analysis of the journal;obtain, based at least in part on the directive, the result using a particular replica of a deterministic value generator, wherein the particular replica is designated for exclusive use by the first data store manager, and wherein the particular replica does not require concurrency control; andstore, in a materialized version of the data object, the result as the value of the particular attribute. 2. The system as recited in claim 1, wherein the particular attribute represents at least a portion of a unique identifier of an entity represented in the multi-data-store database. 3. The system as recited in claim 1, wherein a specification of the deterministic value generator is included in a journal schema of the multi-data-store database, wherein the journal schema indicates a data-store-independent transaction language to be used to prepare transaction requests, and wherein the specification indicates one or more of: (a) a data type of a result of the deterministic value generator (b) one or more techniques to be employed at the deterministic value generator to generate a result. 4. The system as recited in claim 1, wherein the transaction request includes a second directive to set a value of a different attribute based at least in part on another result to be obtained from another deterministic value generator of the multi-data-store storage system. 5. The system as recited in claim 1, wherein the transaction request includes a second directive to set a value of a different attribute based at least in part on the result to be obtained from the deterministic value generator. 6. A method, comprising: receiving, by a journal manager implemented at one or more computing devices of a multi-data-store storage system, a first transaction request, wherein the first transaction request includes a first directive to set a value of a particular attribute of a data object to a result to be obtained from a deterministic value generator, wherein the result is not included in the transaction request;appending, by the journal manager, after a commit analysis of the first transaction request, a committed transaction entry to the journal, wherein the committed transaction entry includes the directive and does not include the result to be obtained from the deterministic value generator;examining, by a first data store manager implemented at one or more computing devices of a first data store of the multi-data-store storage system, the committed transaction entry; andstoring, as the value of the particular attribute by the first data store manager in a materialized version of the data object, a particular result obtained from the deterministic value generator after said examining. 7. The method as recited in claim 6, wherein the particular attribute represents at least a portion of a unique identifier of an entity represented in the multi-data-store storage system. 8. The method as recited in claim 6, wherein a specification of the deterministic value generator is included in a journal schema of the multi-data-store storage system, wherein the journal schema indicates a data-store-independent transaction language to be used to prepare transaction requests, and wherein the specification indicates one or more of: (a) a data type of a result of the deterministic value generator (b) one or more techniques to be employed at the deterministic value generator to generate a result. 9. The method as recited in claim 8, wherein the multi-data-store storage system includes a second data store with a second data store manager, further comprising: receiving, at the journal manager, a second transaction request requesting a creation of a second deterministic value generator; andappending, by the journal manager to the journal after verifying that respective approvals of a modification of the journal schema have been indicated by the first data store manager and the second data store manager, wherein the modification indicates a specification of the second deterministic value generator, a second committed transaction entry indicating the modification to the journal schema. 10. The method as recited in claim 8, wherein the specification indicates a symbol to be provided as output by the deterministic value generator to indicate that the deterministic value generator has exhausted a particular set of result values. 11. The method as recited in claim 6, wherein the first transaction request includes a second directive to set a value of a different attribute of the data object based at least in part on another result to be obtained from another deterministic value generator of the multi-data-store storage system. 12. The method as recited in claim 6, wherein the first transaction request includes a second directive to set a value of a different attribute of a different data object based at least in part on the result to be obtained from the deterministic value generator. 13. The method as recited in claim 6, further comprising: obtaining, by a client-side component from the first data store manager via a programmatic interface, at least a portion of the materialized version of the data object;extracting, by the client-side component from the portion of the materialized version, the particular result stored as the value of the particular attribute, wherein an identifier of a particular entity represented in the multi-data-store storage system comprises the value of the particular attribute; andsubmitting, by the client-side component, a different transaction request to the journal manager, wherein the different transaction request includes the identifier to indicate a target of a proposed state change of the particular entity. 14. The method as recited in claim 6, wherein the deterministic value generator comprises an integer counter, further comprising: obtaining, from the integer counter at the first data store manager, at least a portion of the particular result. 15. The method as recited in claim 6, wherein the deterministic value generator comprises a pseudo-random bit sequence generator, further comprising: obtaining, from the pseudo-random bit sequence generator at the first data store manager, at least a portion of the particular result. 16. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implements a first data store manager of a first data store of a multi-data-store storage system, wherein the first data store manager is configured to: identify, as part of a sequential analysis of a plurality of committed transaction entries of a journal of the multi-data-store storage system, wherein individual ones of the committed transaction entries include respective indications of writes to be materialized at the first data store, a particular committed transaction entry which includes a first directive to determine a value of an attribute of a data object based at least in part on a result obtained from a value generator of the multi-data-store storage system, wherein the particular committed transaction entry does not include the value of the attribute;determine, using a local version of the value generator, the value of the attribute;store, in a materialized version of the data object, the value of the attribute; andprovide, in response to a read request received via a programmatic interface, the materialized version of the data object. 17. The non-transitory computer-accessible storage medium as recited in claim 16, wherein the attribute represents at least a portion of a unique identifier of an entity represented in the multi-data-store storage system. 18. The non-transitory computer-accessible storage medium as recited in claim 16, wherein the first data store manager is configured to: store a materialized version of a journal schema of the multi-data-store storage system, wherein the journal schema includes a specification of the value generator, and wherein the specification indicates a computation to be performed at the value generator to generate a result. 19. The non-transitory computer-accessible storage medium as recited in claim 16, wherein the particular committed transaction entry includes a second directive to set a value of a different attribute based at least in part on another result to be obtained from another value generator of the multi-data-store storage system. 20. The non-transitory computer-accessible storage medium as recited in claim 16, wherein the first directive indicates a transformation function to be applied to a result obtained from the value generator, wherein the value of the attribute is to be set to a result of the transformation function. 21. A system, comprising: a journal manager implemented at one or more computing devices of a multi-data-store database, wherein the multi-data-store database comprises a first data store manager of a first data store;wherein the journal manager is configured to: receive a first transaction request, wherein the first transaction request includes a first directive to set a value of a particular attribute of a data object to a result to be obtained from a deterministic value generator, wherein the result is not included in the first transaction request;obtain, from a version of the deterministic value generator implemented at the journal manager, the result; andappend, after a commit analysis of the proposed transaction using a read set of the proposed transaction and respective write sets of one or more committed transactions, a committed transaction entry to the journal, wherein the committed transaction entry indicates the result; andwherein the first data store manager is configured to: examine the committed transaction entry as part of a sequential analysis of the journal; andstore, in a materialized version of the data object, the result as the value of the particular attribute. 22. The system as recited in claim 21, wherein the journal manager is configured to: receive a second transaction request, wherein the second transaction request includes (a) a second directive to set a value of another attribute to a result to be obtained from a second deterministic value generator and (b) a commit condition to be evaluated based at least in part on the result obtained from the second deterministic value generator;obtain, from a version of the second deterministic value generator implemented at the journal manager, a particular result;in response to determining, using the particular result, that the commit condition has not been met, reject the second transaction request.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (18)
Corbin, Scott Roger; Shepherd, Joel; Pareek, Alok; McAllister, Chris, Apparatus and method for log based replication of distributed transactions using globally acknowledged commits.
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는 부적절한 답변을 할 수 있습니다.