Real-time Transactionally Consistent Change Notifications
US-2017344596-A1 · Nov 30, 2017 · US
US11126610B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-11126610-B1 |
| Application number | US-201715821658-A |
| Country | US |
| Kind code | B1 |
| Filing date | Nov 22, 2017 |
| Priority date | Nov 22, 2017 |
| Publication date | Sep 21, 2021 |
| Grant date | Sep 21, 2021 |
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 technology is provided for conflict resolution in a data proxy for a mutation. A mutation may be received at a data proxy from an application, and the data proxy is in a service provider environment. The mutation may be sent to be processed by a data store via a data access resolver. A conflict message may be received at the data proxy via the data access resolver for a conflict mutation at the data store for the mutation. The conflict may be resolved at the data proxy using a conflict resolution function in the data proxy.
Opening claim text (preview).
What is claimed is: 1. A non-transitory machine readable storage medium comprising instructions embodied thereon, the instructions when executed cause a processor to perform processing, comprising: receiving a mutation at a data proxy from an application executing at a client, wherein the data proxy is hosted by a service provider environment; sending the mutation to a data access resolver to enable the mutation to be processed by a data store; receiving a conflict message at the data proxy via the data access resolver for a conflict associated with the mutation at the data store; launching a conflict resolution function on a code function service, as initiated by the data proxy in response to receiving the conflict message, wherein the conflict resolution function is a segment of program code, and the conflict resolution function is one of a plurality of code blocks of pre-defined functions for resolving conflicts; resolving the conflict at the data proxy using the conflict resolution function initiated by the data proxy, wherein the conflict resolution function comprises three modes, the three modes including a no conflict detected mode, a conflict detected mode, and a custom handling logic mode; after resolving the conflict at the data proxy, determining whether to apply the mutation to the data store via the data access resolver associated with the data proxy; and after resolving the conflict at the data proxy, flushing the conflict resolution function from memory. 2. The non-transitory machine readable storage medium of claim 1 , wherein resolving the conflict comprises rejecting the mutation at the data proxy and notifying the client of the rejection. 3. The non-transitory machine readable storage medium of claim 1 comprising further instructions embodied thereon, the further instructions when executed cause the processor to perform further processing, comprising sending values associated with the conflict message to the client for presentation, and receiving a selection of a value to write to the data store. 4. The non-transitory machine readable storage medium of claim 1 comprising further instructions embodied thereon, the further instructions when executed cause the processor to perform further processing, comprising sending a message about the mutation, after the mutation is written to the data store, to devices having a subscription associated with the mutation. 5. A method, comprising: receiving a mutation at a data proxy from an application; sending the mutation via a data access resolver to be processed by a data source; receiving a conflict message at the data proxy via the data access resolver for a conflict at the data source for the mutation; launching a conflict resolution function on a code function service, as initiated by the data proxy in response to receiving the conflict message, wherein the conflict resolution function is a segment of program code, and the conflict resolution function is one of a plurality of code blocks of pre-defined functions for resolving conflicts; resolving the conflict at the data proxy using a resolution from the conflict resolution function, wherein the conflict resolution function comprises three modes, the three modes including a no conflict detected mode, a conflict detected mode, and a custom handling logic mode; and after resolving the conflict at the data proxy, flushing the conflict resolution function from memory. 6. The method of claim 5 , further comprising, after resolving the conflict at the data proxy, sending the mutation to the data source via a data access resolver associated with the data proxy. 7. The method of claim 5 , wherein resolving the conflict comprises rejecting the mutation at the data proxy. 8. The method of claim 5 , further comprising the conflict resolution function presenting values associated with the conflict message to a client and allowing a selection of a value to write to the data source. 9. The method of claim 5 , wherein resolving the conflict comprises ignoring the conflict message and applying the mutation at the data source to overwrite data already in the data source. 10. The method of claim 5 , further comprising sending a message about the mutation, after the mutation is written to the data source, to devices with a subscription associated with results of the mutation. 11. The method of claim 10 , further comprising using the subscription to send the message via a topic created using a subscription field name and subscription arguments. 12. The method of claim 5 , wherein the mutation is one of a plurality of mutations stored in a cache at a client while the client was offline, and the mutation is sent to the data proxy after the client connects to the data proxy. 13. The method of claim 5 , wherein the data source is a data store and is selected from a group of data stores consisting of: an object data store, a key-value data store, a relational database, and a search service. 14. The method of claim 5 , wherein the data source is a code function that is a segment of program code executing on the code function service. 15. The method of claim 5 , further comprising dividing fields of the mutation and sending the fields of the mutation to a plurality of data sources. 16. The method of claim 5 , wherein the data proxy includes more than one version of a data schema, and the mutation is handled by the data proxy using one of the versions of the data schema requested by a client. 17. The method of claim 5 , further comprising: using a per session identity and permission lists to manage multiple users accessing queries and mutations via the data proxy, wherein the multiple users are authorized to access the data proxy using the permission lists. 18. A system, comprising: a data proxy comprising: at least one processor; and a memory device including instructions that, when executed by the at least one processor, cause the data proxy to: receive a mutation at the data proxy from an application executing at a client, wherein the data proxy is associated with a service provider environment; send a mutation to a data access resolver to enable the mutation to be processed by a data store wherein the data access resolver is a code function that launches in a container on a computing instance in the service provider environment; receive a conflict message at the data proxy from the data access resolver for a conflict associated with the mutation at the data store; launch a conflict resolution function on a code function service, as initiated by the data proxy in response to receiving the conflict message, wherein the conflict resolution function is a segment of program code, the conflict resolution function is one of a plurality of code blocks of pre-defined functions for resolving conflicts, and the conflict resolution function comprises three modes, the three modes including a no conflict detected mode, a conflict detected mode, and a custom handling logic mode; send resolution options to the client using the conflict resolution function that presents values associated with the conflict message to the client; receive a selection of a value from the client; and apply a modified mutation to the data store based the selection of the value; and after applying the modified mutation to the data store, flush the conflict resolution function from memory. 19. The system of claim 18 , wherein the data source is a segment of program code executing on the code function service. 20. The system of claim 18 ,
of access to content, e.g. by caching · CPC title
Ensuring data consistency and integrity · CPC title
Updates performed during online database operations; commit processing · CPC title
Optimistic concurrency control · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.