IP Library Granted Patent US 8,239,420
Granted Patent B1
US 8,239,420 · App. 12/166,983 · Granted Aug 7, 2012

System, method and computer program product for locking data in an on-demand database service

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 8,239,420
App. No.
12/166,983
Granted
Aug 7, 2012
Kind
B1
Abstract

In accordance with embodiments, there are provided mechanisms and methods for locking data in an on-demand database service. These mechanisms and methods for locking data in an on-demand database service can enable embodiments to prevent race conditions, etc. The ability of embodiments to provide such feature may lead to enhanced data integrity when editing data.

Claims (55)

1. A method, comprising:

presenting a page including data to a user over a network, utilizing an on-demand database service wherein the data is associated with a plurality of objects and wherein the objects include at least one parent object and at least one child object;

receiving a command from the user to save edits to the data; and

in response to the command,

locking the data in a database of the on-demand database service, by determining whether the parent object requires locking, and locking the parent object if it determined that the parent object requires locking,

retrieving the data from the database of the on-demand database service,

applying the edits to the data, and

writing the data with the edits to the database of on-demand database service;

wherein the parent object requires locking when the parent object includes at least one summary field;

wherein the parent object is locked prior to the child object.

2. The method of claim 1 , wherein the page includes a web page.

3. The method of claim 1 , wherein the data of the page has a corresponding first version identifier.

4. The method of claim 3 , wherein the data retrieved from the database has a corresponding second version identifier.

5. The method of claim 4 , and further comprising comparing the first version identifier and the second identifier.

6. The method of claim 5 , wherein the edits are conditionally applied to the data, based on the comparison.

7. The method of claim 1 , and further comprising unlocking the data in the database after the data is written.

8. The method of claim 1 , wherein the user is allowed to enter edits into the page after being presented.

9. The method of claim 1 , wherein the data is associated with a plurality of objects.

10. The method of claim 9 , and further comprising determining if the plurality of the objects are of a same type.

11. The method of claim 10 , and further comprising ordering the plurality of objects, if it is determined that the plurality of objects are of the same type.

12. The method of claim 11 , wherein the ordering is based on unique identifiers associated with the plurality of objects.

13. The method of claim 11 , wherein he objects are ordered in an ascending order.

14. The method of claim 1 , wherein the on-demand database service includes a multi-tenant on-demand database service.

15. A machine-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to carry out the steps of:

presenting a page including data to a user over a network, utilizing an on-demand database service wherein the data is associated with a plurality of objects and wherein the objects include at least one parent object and at least one child object;

receiving a command from the user to save edits to the data; and

in response to the command,

locking the data in a database of the on-demand database service, by determining whether the parent object requires locking, and locking the parent object if it determined that the parent object requires locking,

retrieving the data from the database of the on-demand database service,

applying the edits to the data, and

writing the data with the edits to the database of on-demand database service;

wherein the parent object requires locking when the parent object includes at least one summary field;

wherein the parent object is locked prior to the child object.

16. An apparatus, comprising:

a processor; and

one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:

presenting a page including data to a user over a network, utilizing an on-demand database service wherein the data is associated with a plurality of objects and wherein the objects include at least one parent object and at least one child object;

receiving a command from the user to save edits to the data; and

in response to the command,

locking the data in a database of the on-demand database service, by determining whether the parent object requires locking, and locking the parent object if it determined that the parent object requires locking,

retrieving the data from the database of the on-demand database service,

applying the edits to the data, and

writing the data with the edits to the database of on-demand database service;

wherein the parent object requires locking when the parent object includes at least one summary field;

wherein the parent object is locked prior to the child object.

17. A method for transmitting code for use in a multi-tenant database system on a transmission medium, the method comprising:

transmitting code for presenting a page including data to a user over a network, utilizing an on--demand database service wherein the data is associated with a plurality of objects and wherein the objects include at least one parent object and at least one child object;

transmitting code for receiving a command from the user to save edits to the data: and

transmitting code for, in response to the command:

locking the data in a database of the on-demand database service, by determining whether the parent object requires locking, and locking the parent object if it determined that the parent object requires locking,

retrieving the data from the database of the on-demand database service,

applying the edits to the data, and

writing the data with the edits to the database of on-demand database service;

wherein the parent object requires locking when the parent object includes at least one summary field;

wherein the parent object is locked prior to the child object.

Assignments (2)
CHANGE OF NAME Recorded Oct 24, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069268/0555 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2008
From: WONG, SIMON
To: SALESFORCE.COM, INC.
Reel/Frame 021191/0073 →