IP Library Granted Patent US 11,481,376
Granted Patent B2
US 11,481,376 · App. 16/012,690 · Granted Oct 25, 2022

Platform for handling data corruptions

Inventor: Rohitashva Mathur (Walnut Creek, CA)
Assignee: Salesforce, Inc.
G06F16/2365G06F11/0751G06F16/1734G06F16/2272G06F16/2282G06F2201/80
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,481,376
App. No.
16/012,690
Granted
Oct 25, 2022
Kind
B2
Abstract

In a multitenant data platform architecture, one or more supporting data tables are used to write and store tenant data responsive to data write requests. Based on the contextual data returning an indication of a data corruption in one or more supporting data structures, an action associated with the data transaction thread is performed. A log of data corruptions and corresponding call stack trace data may be generated. The data transaction thread may be allowed to continue to execute statements that modify data tables, or the data transaction thread may be terminated. Data corruptions may be compensated for by nullifying data changes caused by corruption causing call sites. Verification methods may be used to ensure correctness of data within a transaction thread.

Claims (36)

1. A computer-implemented method, comprising:

identifying, at runtime, one or more programmatic code markers associated with contextual data about a single-threaded data transaction thread that writes single tenant data to one or more data tables, the one or more data tables associated with a multitenant database, the one or more data tables used to store the single tenant data in the multitenant database;

determining a data corruption in one or more supporting data structures associated with the one or more data tables based on the identified one or more programmatic code markers invoked by the multitenant database in the data transaction thread at runtime;

responsive to the data corruption in the one or more supporting data structures, identifying one or more library functions based on the identified one or more programmatic code markers; and

inserting at least one of the one or more library functions to correct the data corruption in the one or more supporting data structures in the data transaction thread at runtime, wherein the at least one of the one or more library functions corrects the data corruption in the one or more supporting data structures at runtime within execution of the data transaction thread.

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

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

4. The method as recited in claim 1 , wherein the one or more library functions revert changes made by the identified one or more programmatic code markers associated with contextual data about the data transaction thread.

5. The method as recited in claim 1 , further comprising: generating a callback hook associated with the one or more supporting tables, wherein the generated callback hook is associated with the at least one of the one or more library functions.

6. The method as recited in claim 1 , further comprising: performing a verification method to ensure correctness of data values identified in the one or more data tables.

7. The method as recited in claim 1 , wherein the data corruption comprises a non-matching data value in the one or more supporting data structures 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, at runtime, one or more programmatic code markers associated with contextual data about a single-threaded data transaction thread that writes single tenant data to one or more data tables, the one or more data tables associated with a multitenant database, the one or more data tables used to store the single tenant data in the multitenant database;

determining a data corruption in one or more supporting data structures associated with the one or more data tables based on the identified one or more programmatic code markers invoked by the multitenant database in the data transaction thread at runtime;

responsive to the data corruption in the one or more supporting data structures, identifying one or more library functions based on the identified one or more programmatic code markers; and

inserting at least one of the one or more library functions to correct the data corruption in the one or more supporting data structures in the data transaction thread at runtime, wherein the at least one of the one or more library functions corrects the data corruption in the one or more supporting data structures at runtime within execution of the data transaction thread.

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

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

11. The media as recited in claim 8 , wherein the one or more library functions revert changes made by the identified one or more programmatic code markers associated with contextual data about the data transaction thread.

12. The one or more non-transitory computer-readable storage media of claim 8 , which when executed by the one or more processors cause further performance of:

generating a callback hook associated with the one or more supporting tables, wherein the generated callback hook is associated with the at least one of the one or more library functions.

13. The one or more non-transitory computer-readable storage media of claim 8 , which when executed by the one or more processors cause further performance of:

performing a verification method to ensure correctness of data values identified in the one or more data tables.

14. The media as recited in claim 8 , wherein the data corruption comprises a non-matching data value in the one or more supporting data structures 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, at runtime, one or more programmatic code markers associated with contextual data about a single-threaded data transaction thread that writes single tenant data to one or more data tables, the one or more data tables associated with a multitenant database, the one or more data tables used to store the single tenant data in the multitenant database;

determining a data corruption in one or more supporting data structures associated with the one or more data tables based on the identified one or more programmatic code markers invoked by the multitenant database in the data transaction thread at runtime;

responsive to the data corruption in the one or more supporting data structures, identifying one or more library functions based on the identified one or more programmatic code markers; and

inserting at least one of the one or more library functions to correct the data corruption in the one or more supporting data structures in the data transaction thread at runtime, wherein the at least one of the one or more library functions corrects the data corruption in the one or more supporting data structures at runtime within execution of the data transaction thread.

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

17. The system as recited in claim 15 , wherein the one or more library functions revert changes made by the identified one or more programmatic code markers associated with contextual data about the data transaction thread.

18. The system as recited in claim 15 , wherein the program of instructions is executable by a device to further perform: generating a callback hook associated with the one or more supporting tables, wherein the generated callback hook is associated with the at least one of the one or more library functions.

19. The system as recited in claim 15 , wherein the program of instructions is executable by a device to further perform: performing a verification method to ensure correctness of data values identified in the one or more data tables.

20. The system as recited in claim 15 , wherein the data corruption comprises a non-matching data value in the one or more supporting data structures 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/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2018
From: MATHUR, ROHITASHVA
To: SALESFORCE.COM, INC.
Reel/Frame 046330/0007 →
Continuity (1)
Related Publication 20190384840A1 · Dec 19, 2019