IP Library Granted Patent US 11,138,182
Granted Patent B2
US 11,138,182 · App. 16/203,125 · Granted Oct 5, 2021

Compensating data corruption causing actions at runtime

Inventor: Rohitashva Mathur (Walnut Creek, CA)
Assignee: salesforce.com, inc.
G06F16/2358G06F11/1471G06F11/1474G06F16/215G06F16/2365G06F16/2379G06F16/24565G06F2201/80G06F2201/805G06F2201/82
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,138,182
App. No.
16/203,125
Granted
Oct 5, 2021
Kind
B2
Abstract

In a multitenant database, one or more supporting data tables are used to write and store tenant data. Based on the contextual data returning an indication of validity of a detected database transaction, various actions are performed. Data changes may be captured if no valid context is found. At runtime, triggers are used to set a valid context or fix mode context, and database operations causing the data corruptions are captured in a change tracking data structure. The captured data from the database operations include a primary key and an original value for each data change. The original value and primary key for each data change is used to nullify the unintended write.

Claims (31)

1. A computer-implemented method, comprising:

identifying programmatic code markers associated with defining boundaries of at least one execution path performing one or more database operations on one or more data tables associated with a multitenant database, wherein upon receiving a request to perform a database write operation on a data table, initializing a context associated with the database write operation using a programmatic code marker before performing the database write operation and finalizing the context associated with the database write operation after performing the database write operation;

determining that a request to perform an unintended database write operation on a supporting data structure associated with the one or more data tables will cause a data corruption to the supporting data structure based on an absence of a valid context; and

correcting the data corruption within completion of the unintended database write operation, wherein correcting comprises: capturing the unintended database write operation in a change tracking data structure; initializing a fix mode; reversing the change captured in the change tracking data structure; and finalizing the context associated with the data corruption and ending the fix mode.

2. The method as recited in claim 1 , wherein the supporting data structure comprises a custom index table.

3. The method as recited in claim 1 , wherein the supporting data structure comprises a skinny data table.

4. The method as recited in claim 1 , wherein the at least one execution path is set by one or more database triggers.

5. The method as recited in claim 1 , wherein the at least one execution path is set by one or more database triggers and wherein the captured unintended database write operation includes at least a primary key and an original data value.

6. The method as recited in claim 1 , wherein the at least one execution path is set by one or more database triggers, wherein the captured unintended database write operation includes at least a primary key and an original data value, and wherein at least one of the one or more database triggers reverses one or more data changes in the change tracking data structure using the primary key and the original data value of each data change.

7. The method as recited in claim 1 , wherein the data corruption comprises a non-matching data value in the supporting data structure compared to the one or more data tables.

8. One or more non-transitory computer readable media, storing one or more sequences of instructions, which when executed by one or more processors cause performance of:

identifying programmatic code markers associated with defining boundaries of at least one execution path performing one or more database operations on one or more data tables associated with a multitenant database, wherein comprises, upon receiving a request to perform a database write operation on a data table, initializing a context associated with the database write operation using a programmatic code marker before performing the database write operation and finalizing the context associated with the database write operation after performing the database write operation;

determining that a request to perform an unintended database write operation on a supporting data structure associated with the one or more data tables will cause a data corruption to the supporting data structure based on an absence of a valid context; and

correcting the data corruption within completion of the unintended database write operation, wherein correcting comprises: capturing the unintended database write operation in a change tracking data structure; initializing a fix mode; reversing the change captured in the change tracking data structure; and finalizing the context associated with the data corruption and ending the fix mode.

9. The media as recited in claim 8 , wherein the supporting data structure comprises a custom index table.

10. The media as recited in claim 8 , wherein the supporting data structure comprises a skinny data table.

11. The media as recited in claim 8 , wherein the at least one execution path is set by one or more database triggers.

12. The media as recited in claim 8 , wherein the at least one execution path is set by one or more database triggers and wherein the captured unintended database write operation includes at least a primary key and an original data value.

13. The media as recited in claim 8 , wherein the at least one execution path is set by one or more database triggers, wherein the captured unintended database write operation includes at least a primary key and an original data value, and wherein at least one of the one or more database triggers reverses one or more data changes in the change tracking data structure using the primary key and the original data value of each data change.

14. The media as recited in claim 8 , wherein the data corruption comprises a non-matching data value in the supporting data structure compared to the one or more data tables.

15. A system, comprising:

one or more computing processors;

one or more non-transitory computer readable media storing a program of instructions that is executable by the one or more computing processors to perform:

identifying programmatic code markers associated with defining boundaries of at least one execution path performing one or more database operations on one or more data tables associated with a multitenant database, wherein upon receiving a request to perform a database write operation on a data table, initializing a context associated with the database write operation using a programmatic code marker before performing the database write operation and finalizing the context associated with the database write operation after performing the database write operation;

determining that a request to perform an unintended database write operation on a supporting data structure associated with the one or more data tables will cause a data corruption to the supporting data structure based on an absence of a valid context; and

correcting the data corruption within completion of the unintended database write operation, wherein correcting comprises: capturing the unintended database write operation in a change tracking data structure; initializing a fix mode; reversing the change captured in the change tracking data structure; and finalizing the context associated with the data corruption and ending the fix mode.

16. The system as recited in claim 15 , wherein the supporting data structure comprises a custom index table.

17. The system as recited in claim 15 , wherein the at least one execution path is set by one or more database triggers.

18. The system as recited in claim 15 , wherein the at least one execution path is set by one or more database triggers and wherein the captured unintended database write operation includes at least a primary key and an original data value.

19. The system as recited in claim 15 , wherein the at least one execution path is set by one or more database triggers, wherein the captured unintended database write operation includes at least a primary key and an original data value, and wherein at least one of the one or more database triggers reverses one or more data changes in the change tracking data structure using the primary key and the original data value of each data change.

20. The system as recited in claim 15 , wherein the data corruption comprises a non-matching data value in the supporting data structure compared to the one or more data tables.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0383 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2018
From: MATHUR, ROHITASHVA
To: SALESFORCE.COM, INC.
Reel/Frame 047876/0994 →
Continuity (1)
Related Publication 20200167332A1 · May 28, 2020