Atomic transactions in a NOSQL database
US-9734187-B2 · Aug 15, 2017 · US
US11222003B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-11222003-B1 |
| Application number | US-201615279335-A |
| Country | US |
| Kind code | B1 |
| Filing date | Sep 28, 2016 |
| Priority date | Sep 28, 2016 |
| Publication date | Jan 11, 2022 |
| Grant date | Jan 11, 2022 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A transaction directed to a hierarchy of data objects stored in a non-transactional data store may be executed. The transaction may be received and description of the transaction stored in a parent data object of the hierarchy. Upon storing the description of the transaction, the transaction may be acknowledged as committed. Access requests for the hierarchy of data objects may be serviced by accessing the description of the transaction and applying to child data objects in the hierarchy returned for servicing a query directed to the hierarchy. A new transaction that is received may initiate application of the transaction according to the description in the parent data object with respect to child data objects.
Opening claim text (preview).
What is claimed is: 1. A system, comprising: at least one processor; and a memory, storing program instructions that when executed by the at least one processor cause the system to implement a transaction engine on behalf of a client of a non-relational data store, wherein the non-relational data store maintains a hierarchy of data objects that comprise a parent data object and a plurality of child data objects; the transaction engine, configured to: receive, from the client, a request to submit a transaction to the non-relational data store that directs one or more updates to one or more of the child data objects of the non-relational data store; send a request to the non-relational data store to store a description of the transaction as part of the parent data object, wherein the description of the transaction describes the one or more updates to be applied to the non-relational data store as part of the transaction, and directs the one or more updates to the one or more child data objects; receive an acknowledgment from the non-relational data store that indicates that the description of the transaction that directs the one or more updates to the one or more child data objects is successfully stored as part of the parent data object; return an indication to the client that the transaction is committed to the hierarchy of data objects; subsequent to the return of the indication to the client that the transaction is committed to the hierarchy of data objects of the non-relational data store, evaluate the description of the transaction in the parent data object of the non-relational data store to provide a consistent view of the hierarchy of data objects responsive to a query directed to the hierarchy of data objects, wherein the evaluation determines whether the transaction is applicable to a child data object of the plurality child data objects in the non-relational data store accessed by the query; and subsequent to the evaluation of the description of the transaction in the parent data object of the non-relational data store to provide the consistent view of the hierarchy of data objects responsive to the query directed to the hierarchy of data objects, send one or more requests to the non-relational data store to apply at least one of the one or more updates, that are directed by the transaction whose description is stored as part of the parent data object of the non-relational data store, to at least one child data object of the one or more child data objects of the non-relational data store. 2. The system of claim 1 , wherein to evaluate the description of the transaction in the parent data object of the non-relational data store to provide a consistent view of the hierarchy of data objects responsive to a query directed to the hierarchy of data objects the transaction engine is configured to: obtain the one child data object from the non-relational data store that satisfies the query; identify one or more changes in the transaction description applicable the one child data object; and wherein the transaction engine is further configured to: apply the one or more changes to the one child data object; and return a result for the query based on the obtained child data objects including the one or more changes to the at least one child data object. 3. The system of claim 1 , wherein the transaction engine performs the send of the one or more requests to the non-relational data store to apply the one or more updates to the at least one child data object as part of a background process to flush the transaction from the parent data object. 4. The system of claim 1 , wherein the transaction engine is further configured to: receive, from the client or a different client, a request to submit another transaction directed to the hierarchy of data objects; send a request to the non-relational data store to store a description of the other transaction as part of the parent data object; receive a failure indication from the non-relational data store for the request to store the description of the other transaction; and return a failure indication for the other transaction to the client or the different client. 5. A method, comprising: performing, by one or more computing devices: receiving a transaction directed to a hierarchy of data objects maintained at a non-transactional data store, wherein the hierarchy of data objects comprises a parent data object and a plurality of child data objects, and wherein the transaction comprises directing one or more updates to one or more of the plurality of child data objects of the non-transactional data store; storing a description of the transaction as part of the parent data object of the non-transactional data store, wherein the description of the transaction describes the one or more updates to be applied to the hierarchy of data objects as part of the transaction, and comprises directing the one or more updates to the one or more child data objects of the non-transactional data store; acknowledging the transaction as committed to the hierarchy of data objects; subsequent to the acknowledging of the transaction as committed to the hierarchy of data objects of the non-relational data store, evaluating the description of the transaction, that comprises directing the one or more updates to the one or more child data objects of the non-relational data store, in the parent data object of the non-relational data store to provide a consistent view of the hierarchy of data objects responsive to a query directed to the hierarchy of data objects; and subsequent to evaluating the description of the transaction in the parent data object of the non-relational data store to provide the consistent view of the hierarchy of data objects responsive to the query directed to the hierarchy of data objects, applying at least one of the one or more updates to at least one child data object of the one or more child data objects of the non-relational data store. 6. The method of claim 5 , wherein the transaction comprises an insertion of a new child data object into the hierarchy of data objects, and wherein the method further comprises: prior to storing the description of the transaction, creating the new child data object in the non-transactional data store, wherein the new child data object is identified as uncommitted; subsequent to the acknowledgment of the transaction as committed, updating the new child data object to be identified as committed. 7. The method of claim 5 , further comprising: receiving another transaction directed to the hierarchy of data objects: applying the transaction to the hierarchy of data objects according to the description of the transaction read from the parent data object. 8. The method of claim 5 , further comprising performing the transaction with respect to the hierarchy of data objects according to the description of the transaction in the parent data object as part of a background process to flush the transaction from the parent data object. 9. The method of claim 5 , further comprising: receiving another transaction directed to the hierarchy of data objects; attempting to apply the transaction to the hierarchy of data objects according to the description of the transaction read from the parent data object; and determining that the attempt to apply the transaction to the hierarchy of data objects failed; and returning an indication that the other transaction failed. 10. The method of claim 5 , wherein evaluating the description of the transaction in the parent data object of the non-relational data store to provide the consistent view of the hierarchy of data objects responsive to the query directed to the hierarchy of da
Ensuring data consistency and integrity · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.