11023445

Optimistic Concurrency for Collaborative Applications

PublishedJune 1, 2021
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
18 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A system, comprising a server computer, wherein the server computer comprises a processor and a memory, the memory storing executable instructions that, when executed by the processor, cause the server computer to perform operations, the operations comprising: receiving an update to a data document from a client computing device via a computer network, wherein the update comprises a concurrency token and a description of a change to the data document; determining, using the description of the change to the data document, that a concurrency check, comprising comparing the concurrency token in the update to a current concurrency token for the data document, can be omitted when applying the update to the data document, wherein the data document comprises a description of a graphical layout of multiple objects and wherein the determining that the concurrency check can be omitted comprises determining that the update targets a property of the description of the graphical layout that can be updated according to a last-change-wins strategy; and applying the update to the data document without performing the concurrency check.

2

2. The system of claim 1 , wherein the determining that the concurrency check can be omitted comprises: identifying a property of the data document that is targeted by the update; and locating the identified property in a predefined list of concurrency-safe properties of the data document.

3

3. The system of claim 1 , wherein the operations further comprise: receiving a second update to the data document from the client computing device via the computer network, wherein the second update comprises the concurrency token and a description of another change to the data document; determining, using description of the another change to the data document, that a concurrency check is required when applying the second update to the data document; performing the concurrency check, wherein performing the concurrency check comprises comparing the concurrency token in the second update to a current concurrency token stored on the server computer; and applying the second update to the data document only if the concurrency token in the second update matches the current concurrency token stored on the server computer.

4

4. The system of claim 1 , wherein: the system further comprises a database storing the data document; and the operations further comprise: acquiring a database lock for the data document subsequent to receiving the update; and releasing the database lock for the data document subsequent to applying the update to the data document.

5

5. The system of claim 1 , wherein the operations further comprise: updating a current concurrency token associated with the data document; and transmitting a new version of the data document, comprising the applied update and the updated concurrency token, to the client computing device via the computer network.

6

6. The system of claim 1 , wherein: the data document comprises data stored in a Javascript Object Notation (JSON) format; and the description of the change to the data document in the update is organized using a JSON Patch format.

7

7. The system of claim 1 , further comprising the client computing device, wherein the client computing device is configured to: present a graphical representation of the data document via a graphical user interface of the client computing device; detect a change to the graphical representation of the data document made via the graphical user interface; and generate the update to the data document based on the detected change.

8

8. The system of claim 7 , wherein: the data document comprises a collection of multiple data items; the client computing device is further configured to: present an interactive view of the data document, comprising graphical representations of the multiple data items, via the graphical user interface, and detect a change to one of the data items; and the description of the change to the data document in the update comprises a description of the detected change to the one of the data items.

9

9. The system of claim 7 , wherein the client computing device is further configured to: receive a new version of the data document from the server computer; and present a graphical representation of the new version of the data document to a user via the graphical user interface.

10

10. A method, comprising: receiving a partial update to a data document from a client computing device via a computer network, wherein the partial update comprises a description of a change to the data document and a concurrency token; determining, based on the description of the change to the data document, whether a concurrency check, comprising comparing the concurrency token in the partial update to a current concurrency token for the data document, is required before applying the partial update to the data document, wherein the data document comprises a description of a graphical layout of multiple objects and wherein the determining whether the concurrency check is required comprises determining whether the partial update targets a property of the description of the graphical layout that can be updated according to a last-change-wins strategy; if the concurrency check is not required, applying the partial update to the data document without performing the concurrency check; and otherwise, performing the concurrency check, comprising determining whether the concurrency token is valid, and applying the partial update to the data document only if the concurrency token is valid.

11

11. The method of claim 10 , wherein: the determining whether the concurrency check is required further comprises: determining that the description of the change comprises a changing of a graphical position coordinate of one of the multiple objects.

12

12. The method of claim 10 , wherein applying the partial update to the data document without checking the concurrency token comprises: reading a current version of the data document from a database; using the description of the change and the current version of the data document to create a new version of the data document; and writing the new version of the data document to the database.

13

13. The method of claim 12 , wherein applying the partial update to the data document without checking the concurrency token further comprises: creating a new concurrency token; and associating the new concurrency token with the new version of the data document.

14

14. The method of claim 13 , wherein the method further comprises transmitting the new version of the data document and the new concurrency token to the client computing device.

15

15. The method of claim 10 , wherein: the data document comprises data stored in a Javascript Object Notation (JSON) format; and the description of the change to the data document in the partial update comprises data organized using a JSON Patch format.

16

16. The method of claim 10 , wherein the description of the change to the data document comprises a change to a graphical layout of one of the multiple objects in a graphical user interface of the client computing device.

17

17. The method of claim 10 , wherein: the concurrency token comprises a numerical value; and the method further comprises incrementing the numerical value of the concurrency token.

18

18. One or more computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations, the operations comprising: transmitting a data document to a client computing device via a computer network, wherein the data document comprises a concurrency token; receiving a partial update to the data document from the client computing device, wherein the partial update comprises a description of a change to a portion of the data document and the concurrency token; determining, using the description of the change to the portion of the data document, whether a concurrency check, comprising comparing the concurrency token in the partial update with a current concurrency token associated with the data document, is required before applying the partial update to the data document, wherein the data document comprises a description of a graphical layout of multiple objects and wherein the determining whether the concurrency check is required comprises determining whether the partial update targets a property of the description of the graphical layout that can be updated according to a last-change-wins strategy; if the concurrency check is not required, applying the partial update to the data document without performing the concurrency check; and otherwise, performing the concurrency check and applying the partial update to the document if the concurrency token in the partial update matches the current concurrency token associated with the document.

Patent Metadata

Filing Date

Unknown

Publication Date

June 1, 2021

Inventors

Ulrich Bestfleisch

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “OPTIMISTIC CONCURRENCY FOR COLLABORATIVE APPLICATIONS” (11023445). https://patentable.app/patents/11023445

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.