IP Library Granted Patent US 11,500,857
Granted Patent B2
US 11,500,857 · App. 16/823,722 · Granted Nov 15, 2022

Asynchronous remote calls with undo data structures

Inventor: Trevor Pocock (Jena, DE)
Assignee: Salesforce, Inc.
G06F16/2379G06F9/547
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 11,500,857
App. No.
16/823,722
Granted
Nov 15, 2022
Kind
B2
Abstract

Systems, device and techniques are disclosed for asynchronous remote call with undo data structures. A remote call associated with a database transaction in a local database may be prepared. An undo data structure for the remote call may be stored in a storage. The remote call associated with the database transaction may be transmitted to a remote computing device to be executed by the remote computing device. Performance of the database transaction may begin in the local database. The performance of the database transaction or the remote call has may be determined to have failed. The undo data structure may be transmitted to the remote computing device to be executed.

Claims (56)

1. A computer-implemented method comprising for maintaining consistency between a local database and a remote computing device:

preparing, on a computing device, a remote call associated with a database transaction in the local database;

storing, by the computing device in storage accessible to the computing device, an undo data structure for the remote call;

transmitting, by the computing device, the remote call associated with the database transaction to the remote computing device to be executed by the remote computing device;

beginning, by the computing device, performance of the database transaction in the local database;

determining, by the computing device, that at least one of the performance of the database transaction and the remote call has failed; and

transmitting, by the computing device, the undo data structure to the remote computing device to be remotely executed.

2. The computer-implemented method of claim 1 , further comprising:

deleting, by the computing device, the undo data structure from the storage accessible to the computing device.

3. The computer-implemented method of claim 1 , wherein determining, by the computing device, that at least one of the commitment of the database transaction and the remote call has failed further comprises receiving an indication that the remote call has failed or timed out.

4. The computer-implemented method of claim 1 , wherein determining, by the computing device, that at least one of the commitment of the database transaction and the remote call has failed further comprises failing, by the computing device, to perform the database transaction in the local database.

5. The computer-implemented method of claim 1 , wherein determining, by the computing device, that at least one of the commitment of the database transaction and the remote call has failed further comprises determining that the computing device has restarted from an unknown state, and further comprising:

transmitting, by the computing device, undo data structures that have been stored in the storage accessible to the computing device longer than a specified amount of time to one or more remote computing devices to be remotely executed; and

deleting, by the computing device, the undo data structures that have been stored in the storage accessible to the computing device longer than a specified amount of time from the storage accessible to the computing device.

6. The computer-implemented method of claim 1 , further comprising:

preparing, on the computing device, a second remote call associated with a second database transaction in the local database;

storing, by the computing device, in the storage accessible to the computing device, a second undo data structure for the second remote call;

transmitting, by the computing device, the second remote call associated with the second database transaction to the remote computing device to be executed by the remote computing device;

beginning, by the computing device, performance of the second database transaction in the local database; determining, by the computing device, that the second database transaction in the local database was successful;

receiving, by the computing device, an indication that the second remote call was executed successfully on the remote computing device;

committing, by the computing device, the second database transaction in the local database; and

deleting, by the computing device, the second undo data structure from the storage accessible to the computing device.

7. The computer-implemented method of claim 1 , wherein the undo data structure comprises at least one instruction for undoing changes made by execution of the remote call on the remote computing device.

8. The computer-implemented method of claim 1 , wherein the database transaction and the remote call are asynchronous.

9. A computer-implemented system for asynchronous remote calls with undo data structures for maintaining consistency between a local database and a remote computing device comprising:

one or more storage devices;

the local database; and

a processor that prepares a remote call associated with a database transaction in the local database, stores, in the one or more devices, an undo data structure for the remote call, transmits the remote call associated with the database transaction to the remote computing device to be executed by the remote computing device, begins performance of the database transaction in the local database, determines that at least one of the performance of the database transaction and the remote call has failed, and transmits the undo data structure to be the remote computing device to be remotely executed.

10. The computer-implemented system of claim 9 , wherein the processor further deletes the undo data structure from the one or more storage devices.

11. The computer-implemented system of claim 9 , wherein the processor determines that at least one of the commitment of the database transaction and the remote call has failed by receiving an indication that the remote call has failed or timed out.

12. The computer-implemented system of claim 9 , wherein the processor determines that at least one of the commitment of the database transaction and the remote call has failed when the processor fails to perform the database transaction in the local database.

13. The computer-implemented system of claim 9 , wherein the processor determines that at least one of the commitment of the database transaction and the remote call has failed further comprises by determining that the computing device has restarted from an unknown state, and wherein the processor further transmits undo data structures that have been stored in the one or more storage devices longer than a specified amount of time to one or more remote computing devices to be remotely executed, and deletes the undo data structures that have been stored in the one or more storage devices longer than a specified amount of time from the one or more storage devices.

14. The computer-implemented system of claim 9 , wherein the processor further prepares a second remote call associated with a second database transaction in the local database, stores, in the one or more storage devices, a second undo data structure for the second remote call, transmits the second remote call associated with the second database transaction to the remote computing device to be executed by the remote computing device, begins performance of the second database transaction in the local database, determines that the second database transaction in the local database was successful, receives an indication that the second remote call was executed successfully on the remote computing device, commits the second database transaction in the local database, and deletes the second undo data structure from the one or more storage devices.

15. The computer-implemented system of claim 9 , wherein the undo data structure comprises at least one instruction for undoing changes made by execution of the remote call on the remote computing device.

16. The computer-implemented system of claim 9 , wherein the database transaction and the remote call are asynchronous.

17. A system comprising: one or more computers and one or more storage devices storing instructions which are operable, when executed by the one or more computers, to cause the one or more computers to perform operations for maintaining consistency between a local database and a remote computing device comprising:

preparing a remote call associated with a database transaction in the local database;

storing, in a storage, an undo data structure for the remote call;

transmitting the remote call associated with the database transaction to the remote computing device to be executed by the remote computing device;

beginning performance of the database transaction in the local database;

determining that at least one of the performance of the database transaction and the remote call has failed; and

transmitting the undo data structure to the remote computing device to be remotely executed.

18. The system of claim 17 , wherein the instructions cause the one or more computers to further perform operations further comprising:

deleting the undo data structure from the storage.

19. The system of claim 17 , wherein the instructions that cause the one or more computers to perform operations comprising determining that at least one of the commitment of the database transaction and the remote call has failed further comprises determining that the computing device has restarted from an unknown state, and wherein the instructions further cause the one or more computers to perform operations comprising:

transmitting undo data structures that have been stored in the storage longer than a specified amount of time to one or more remote computing devices be remotely executed; and

deleting the undo data structures that have been stored in the storage accessible to the computing device longer than a specified amount of time from the storage.

20. The system of claim 17 , wherein the instructions cause the one or more computers to further perform operations comprising:

preparing a second remote call associated with a second database transaction in the local database;

storing, in the storage, a second undo data structure for the second remote call;

transmitting the second remote call associated with the second database transaction to the remote computing device to be executed by the remote computing device;

beginning performance of the second database transaction in the local database;

determining that the second database transaction in the local database was successful;

receiving an indication that the second remote call was executed successfully on the remote computing device;

committing the second database transaction in the local database; and

deleting the second undo data structure from the storage.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0480 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2020
From: POCOCK, TREVOR
To: SALESFORCE.COM, INC.
Reel/Frame 052166/0691 →
Continuity (2)
Provisional Application 62968336 · Jan 31, 2020
Related Publication 20210240698A1 · Aug 5, 2021