IP Library › Granted Patent US 12,072,865
Granted Patent B2
US 12,072,865 · App. 17/217,309 · Granted Aug 27, 2024

Competing updates from multiple servicing instances

Inventors: Glenn Carter Scott (Los Altos Hills, CA); Michael Richard Gabriel (Milpitas, CA)
Assignee: Intuit Inc.
G06F16/2329G06F16/211G06F16/219G06F16/2365
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,072,865
App. No.
17/217,309
Granted
Aug 27, 2024
Kind
B2
Abstract

A method services competing updates from multiple servicing instances. An update message is received by a class of a plurality of classes that service an object. The update message includes an update to the object and an expected version for the object. A version match is determined between the expected version and a current version of the object. When the version match is successful, the update is applied to the object. A response message including the current version of the object is generated. The response message is transmitted. When the update is successfully applied, the response message is transmitted as a success message. When the update is not successfully applied, the response message is transmitted as a failure message.

Claims (85)

1. A method comprising:

receiving, by a class of a plurality of classes that service an object stored in a data repository, an update message from a broadcast address to which a client transmitted the update message via a distributed system, the update message comprising an update to the object and an expected version for the object,

wherein the expected version identifies a version of the object that the client is attempting to update with the update message, and

wherein the class comprises a computer executed process that services update messages from the client by updating the object in the data repository;

applying, by the class when a version match between the expected version and a current version of the object is successful, the update to the object stored in the data repository;

generating a response message comprising the current version of the object;

transmitting the response message to the client,

wherein, when the update is successfully applied, the response message is transmitted as a success message,

wherein, when the update is not successfully applied, the response message is transmitted as a failure message,

wherein, when the update is not successfully applied and the version match is not successful, the response message is transmitted as the failure message, and

wherein, when the update is not successfully applied and the version match is successful, no response message is transmitted.

2. The method of claim 1 , further comprising:

receiving the update message of a plurality of update messages sent concurrently from a plurality of clients; and

transmitting the response message, wherein the success message indicates that the class updated the object and wherein the failure message indicates that the class did not update the object.

3. The method of claim 1 , further comprising:

verifying, when the version match is not successful, a state of the object with the update and a previous version of the object with the expected version to generate a verification; and

transmitting the response message,

wherein, when the update is not successfully applied and the verification is successful, the response message is transmitted as the success message.

4. The method of claim 1 , further comprising:

generating the current version as a hash value from an updated state of the object and a previous version of the object.

5. The method of claim 1 , further comprising:

verifying, when the version match is not successful, the current version with the update and a previous version of the object with the expected version to generate a verification; and

transmitting the response message,

wherein, when the update is not successfully applied and the verification is successful, the response message is transmitted as the success message and the client receiving the response message discards a collateral response message from a different class of the plurality of classes after receiving the response message.

6. The method of claim 1 , further comprising:

receiving the update message wherein the update message is received as part of a representational state transfer application programming interface (RESTful API), wherein the update message is formatted with a data format using human readable text to define data objects with attribute value pairs, and wherein the data format is JavaScript object notation (JSON); and

transmitting the response message from the class concurrent with a different class of the plurality of classes processing a similar update message from the client.

7. The method of claim 1 , further comprising:

transmitting the response message,

wherein, when the update is not successfully applied and the version match is not successful, the response message is transmitted as the failure message,

wherein, when the update is not successfully applied, the version match is successful, and the object is not updated by another class of the plurality of classes, the response message is transmitted as the failure message, and

wherein, when the update is not successfully applied, the version match is successful, and the object is updated by another class, no response message is transmitted.

8. The method of claim 1 , further comprising:

verifying, when the current version does not match the expected version, a state of the object with the update to generate a verification;

transmitting the response message,

wherein, when the version match is not successful, the response message is not transmitted,

wherein, when the version match is not successful and the verification is successful, the response message is transmitted as the success message, and

wherein, when the version match is not successful and the verification is not successful, the response message is transmitted as the failure message.

9. The method of claim 1 , further comprising:

transmitting the response message,

wherein, when the version match is not successful, the response message is not transmitted, and

wherein, when the version match is successful and the update is not successfully applied, the response message is transmitted as the failure message.

10. The method of claim 1 , further comprising:

generating the response message with a unicast address for the class, wherein the class comprises the broadcast address and the unicast address; and

receiving a subsequent update message from the unicast address.

11. A system comprising:

a server comprising one or more processors and one or more memories; and

a class, executing on one or more processors of the server, configured for:

receiving, by a class of a plurality of classes that service an object stored in a data repository, an update message from a broadcast address to which a client transmitted the update message via a distributed system, the update message comprising an update to the object and an expected version for the object,

wherein the expected version identifies a version of the object that the client is attempting to update with the update message, and

wherein the class comprises a computer executed process that services update messages from the client by updating the object in the data repository;

applying, by the class when a version match between the expected version and a current version of the object is successful, the update to the object stored in the data repository;

generating a response message comprising the current version of the object;

transmitting the response message to the client,

wherein, when the update is successfully applied, the response message is transmitted as a success message,

wherein, when the update is not successfully applied, the response message is transmitted as a failure message,

wherein, when the update is not successfully applied and the version match is not successful, the response message is transmitted as the failure message, and

wherein, when the update is not successfully applied and the version match is successful, no response message is transmitted.

12. The system of claim 11 , wherein the class is further configured for:

receiving the update message of a plurality of update messages sent concurrently from a plurality of clients; and

transmitting the response message, wherein the success message indicates that the class updated the object and wherein the failure message indicates that the class did not update the object.

13. The system of claim 11 , wherein the class is further configured for:

verifying, when the version match is not successful, a state of the object with the update and a previous version of the object with the expected version to generate a verification; and

transmitting the response message,

wherein, when the update is not successfully applied and the verification is successful, the response message is transmitted as the success message.

14. The system of claim 11 , wherein the class is further configured for:

generating the current version as a hash value from an updated state of the object and a previous version of the object.

15. The system of claim 11 , wherein the class is further configured for:

verifying, when the version match is not successful, the current version with the update and a previous version of the object with the expected version to generate a verification; and

transmitting the response message,

wherein, when the update is not successfully applied and the verification is successful, the response message is transmitted as success message and the client receiving the response message discards a collateral response message from a different class of the plurality of classes after receiving the response message.

16. The system of claim 11 , wherein the class is further configured for:

receiving the update message wherein the update message is received as part of a representational state transfer application programming interface (RESTful API), wherein the update message is formatted with a data format using human readable text to define data objects with attribute value pairs, and wherein the data format is JavaScript object notation (JSON); and

transmitting the response message from the class concurrent with a different class of the plurality of classes processing a similar update message from the client.

17. A method comprising:

transmitting, by a client, an update message to a broadcast address of a class via a distributed system, wherein the update message comprises an update to an object stored in a data repository and an expected version for the object,

wherein the expected version identifies a version of the object that the client is attempting to update with the update message, and

wherein the class comprises a computer executed process that services update messages from the client by updating the object in the data repository;

receiving a response message comprising a unicast address of the class and a current version of the object,

wherein, when the update is successfully applied, the response message is received as a success message, and

wherein the current version is a hash value generated from a state of the object and the expected version;

updating an address cache to include the unicast address from the response message;

updating the address cache after a delay threshold is met to remove a timed out address;

updating the address cache to remove a nonresponsive address; and

transmitting a subsequent update message to the unicast address, the subsequent update message comprising the current version.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2021
From: SCOTT, GLENN CARTER; GABRIEL, MICHAEL RICHARD
To: INTUIT INC.
Reel/Frame 056004/0201 →
Continuity (2)
Provisional Application 63162065 · Mar 17, 2021
Related Publication 20220300478A1 · Sep 22, 2022