IP Library Granted Patent US 11,593,341
Granted Patent B2
US 11,593,341 · App. 16/778,930 · Granted Feb 28, 2023

Method and system for row lock solution

Inventors: Carolyn Leigh Grabill (San Francisco, CA); Bruno Lucas Montaner Etcheverry (San Francisco, CA); Alan Cardel Molina (San Francisco, CA); Christopher Albert Peterson (San Francisco, CA)
Assignee: Salesforce, Inc.
G06F16/2272G06F16/26G06N3/04G06N3/08
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,593,341
App. No.
16/778,930
Granted
Feb 28, 2023
Kind
B2
Abstract

Described herein is a system and method for performing an updating of child records associated with a parent record within the specified time period, wherein the parent record has a value including a sum of values present in the associated child records, wherein a row lock on the child records is obtained, and the update is performed, and wherein such an update does not require a row lock on the associated parent record, wherein the parent record is periodically updated within the specified time period.

Claims (51)

1. A computer-implemented method for using a database, the method comprising:

obtaining, by one or more computing devices, a row lock on a plurality of child records and updating counts corresponding to the plurality of child records during a specified time period during which the update is permitted, wherein the plurality of child records are part of a table in a database with a plurality of child and parent records, wherein the plurality of child records are children of a parent record of the plurality of parent records, and wherein the parent record of the plurality of parent records is read-accessible while the plurality of child records are being updated;

calculating, by the one or more computing devices, a sum of the counts corresponding to the plurality of child records of the parent record of the plurality of parent records during the specified time period as a parent count;

obtaining, by the one or more computing devices, a row lock on the parent record of the plurality of parent records at time intervals within the specified time period, the time intervals having a duration determined using a machine learning algorithm to reflect an accurate record value while minimizing computing resources used;

replacing, by the one or more computing devices, responsive to obtaining the row lock on the parent record, an original value of the parent count with the sum of the counts, wherein the row lock on the parent record of the plurality of parent records occurs at pre-determined intervals within the specified time period;

transmitting, by the one or more computing devices, an updated value of the parent count to an application comprising a graphical user interface (GUI); and

displaying, by the one or more computing devices, a list of the plurality of parent records sorted by the parent counts in the GUI.

2. The method of claim 1 , wherein each child record of the plurality of child records has a corresponding count and an associated parent record within the plurality of parent records.

3. The method of claim 1 , wherein the displaying, by the one or more computing devices, of the list of the plurality of parent records sorted by the parent counts during the specified time period occurs at the pre-determined intervals within the specified time period.

4. The method of claim 1 , wherein determining the length of said pre-determined intervals within the specified time period using machine-learning further comprises logic involving a neural network with features associated with the table, where each feature forms part of an input layer of the neural network.

5. The method of claim 4 , wherein the neural network includes the input layer, a hidden layer, and an output layer, wherein each feature associated with the table is a node in the input layer, collectively forming a first number of nodes, wherein each of a plurality of candidate time intervals are present as a node in the output layer, collectively forming a second number of nodes, and wherein the number of nodes in the hidden layer is between the first and second number of nodes.

6. The method of claim 4 , wherein each feature associated with the table is present as an individual node in the input layer of the neural network, and each of a plurality of candidate time intervals are present as an individual node in an output layer of the neural network, the method further comprising:

receiving, by the one or more computing devices, training data, with sets of input data corresponding to values for each node of the input layer of the neural network, and a designated optimum time interval for each set of input data, the designated optimum time interval corresponding to a candidate time interval in the output layer of the neural network model;

training the neural network based on the training data by the one or more computing devices; and

using the trained neural network on the set of input data corresponding to the values derived from the table of the database to select a candidate time interval node in the output layer as the pre-determined interval within the specified time period, by the one or more computing devices.

7. The method of claim 1 , wherein the method is executed by a GPU processor.

8. A system comprising:

a memory;

a database in said memory;

a processor coupled to the memory, the processor configured to:

obtain a row lock on a plurality of child records and update counts corresponding to the plurality of child records during a specified time period during which the update is permitted, wherein the plurality of child records are part of a table in said database with a plurality of child and parent records, wherein the plurality of child records are children of a parent record of the plurality of parent records, and wherein the parent record of the plurality of parent records is read-accessible while the plurality of child records are being updated;

calculate a sum of counts corresponding to the plurality of child records of the parent record of the plurality of parent records during the specified time period as a parent count;

obtain a row lock on the parent record of the plurality of parent records at time intervals within the specified time period, the time intervals having a duration determined using a machine learning algorithm to reflect an accurate record value while minimizing computing resources used;

replace, responsive to obtaining the row lock on the parent record, an original value of the parent count with the sum of the counts;

transmit an updated value of the parent count to an application comprising a graphical user interface (GUI); and

display a list of the plurality of parent records sorted by the parent counts in the GUI.

9. The system of claim 8 , wherein each child record of the plurality of child records has a corresponding count and an associated parent record within the plurality of parent records.

10. The system of claim 8 , wherein the processor is further configured to display the list of the plurality of parent records sorted by the parent counts during the specified time period at pre-determined intervals within the specified time period.

11. The system of claim 8 , wherein the processor is further configured to:

determine the length of said pre-determined intervals within the specified time period using machine-learning logic involving a neural network with features associated with the table each having a value, where each feature forms part of an input layer of the neural network.

12. The system of claim 11 , wherein the neural network includes an input layer, a hidden layer, and an output layer, wherein each feature associated with the table is a node in the input layer, collectively forming a first number of nodes, wherein each of a plurality of candidate time intervals are present as a node in the output layer, collectively forming a second number of nodes, and wherein the number of nodes in the hidden layer is between the first and second number of nodes.

13. The system of claim 11 , wherein each feature associated with the table is present as an individual node in the input layer of the neural network, and each of a plurality of candidate time intervals are present as an individual node in an output layer of the neural network, the processor further configured to:

receive training data, with sets of input data corresponding to values for each node of the input layer of the neural network, and a designated optimum time interval for each set of input data, the designated optimum time interval corresponding to a candidate time interval in the output layer of the neural network model;

train the neural network based on the training data; and

use the trained neural network on the set of input data corresponding to the values derived from the table of the database to select a candidate time interval node in the output layer as the pre-determined interval within the specified time period.

14. The system of claim 8 , wherein the processor coupled to the memory is a GPU processor.

15. A non-transitory computer-readable medium storing instructions that when executed by at least one or more processors of a computing device cause the one or more processors to perform operations comprising:

obtaining a row lock on a plurality of child records and update counts corresponding to the plurality of child records during a specified time period during which the update is permitted, wherein the plurality of child records are part of a table in said database with a plurality of child and parent records, wherein the plurality of child records are children of a parent record of the plurality of parent records, and wherein the parent record of the plurality of parent records is read-accessible while the plurality of child records are being updated;

calculating a sum of counts corresponding to the plurality of child records of the parent record of the plurality of parent records during the specified time period as a parent count;

obtaining a row lock on the parent record of the plurality of parent records at time intervals within the specified time period, the time intervals having a duration determined using a machine learning algorithm to reflect an accurate record value while minimizing computing resources used;

replacing, responsive to obtaining the row lock on the parent record, an original value of the parent count with the sum of the counts;

transmitting an updated value of the parent count to an application comprising a graphical user interface (GUI); and

displaying a list of the plurality of parent records sorted by the parent counts in the GUI.

16. The device of claim 15 , wherein each child record of the plurality of child records has a corresponding count and an associated parent record within the plurality of parent records.

17. The device of claim 15 , wherein the displaying of the list of the plurality of parent records sorted by the parent counts during the specified time period occurs at the pre-determined intervals within the specified time period.

18. The device of claim 15 , wherein determining the length of said pre-determined intervals within the specified time period by machine-learning further comprises logic involving a neural network with features associated with the table each having a value, where each feature forms part of the input layer of the neural network.

19. The device of claim 18 , wherein the neural network includes an input layer, a hidden layer, and an output layer, wherein each feature associated with the table is a node in the input layer, collectively forming a first number of nodes, wherein each of a plurality of candidate time intervals are present as a node in the output layer, collectively forming a second number of nodes, and wherein the number of nodes in the hidden layer is between the first and second number of nodes.

20. The device of claim 19 , wherein each feature associated with the table is present as an individual node in the input layer of the neural network, and each of a plurality of candidate time intervals are present as an individual node in the output layer of the neural network, the operations further comprising:

receiving training data, with sets of input data corresponding to values for each node of the input layer of the neural network, and a designated optimum time interval for each set of input data, the designated optimum time interval corresponding to a candidate time interval in the output layer of the neural network model;

training the neural network based on the training data; and

using the trained neural network on the set of input data corresponding to the values derived from the table of the database to select a candidate time interval node in the output layer as the pre-determined interval within the specified time period.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0475 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2020
From: MONTANER ETCHEVERRY, BRUNO LUCAS; GRABILL, CAROLYN LEIGH; MOLINA, ALAN CARDEL; PETERSON, CHRISTOPHER ALBERT
To: SALESFORCE.COM, INC.
Reel/Frame 053107/0342 →
Continuity (2)
Provisional Application 62936184 · Nov 15, 2019
Related Publication 20210149867A1 · May 20, 2021