IP Library Granted Patent US 8,364,903
Granted Patent B2
US 8,364,903 · App. 12/644,125 · Granted Jan 29, 2013

Field level concurrency and transaction control for out-of-process object caching

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,364,903
App. No.
12/644,125
Granted
Jan 29, 2013
Kind
B2
Abstract

A method includes executing a multi-threaded, object-oriented application (OOA) on a device; receiving, by multiple threads of the OOA, an object from an out-of-process cache memory; mutating one or more fields of the object, wherein the one or more fields correspond to one or more attributes of the object; and applying an update of the one or more fields that have been mutated to the out-of-process cache memory, wherein the applying the update updates the one or more fields mutated at a field level and not at an object level.

Claims (45)

1. A method comprising:

executing a multi-threaded, object-oriented application (OOA) on a device;

receiving, by multiple threads of the OOA, an object from an out-of-process cache memory;

mutating one or more fields of the object, wherein the one or more fields correspond to one or more attributes of the object; and

applying an update of the one or more fields that have been mutated to the out-of-process cache memory, wherein the applying the update updates the one or more fields mutated at a field level and not at an object level.

2. The method of claim 1 , wherein the one or more fields are disjoint with respect to each thread.

3. The method of claim 1 , further comprising:

collecting the one or more fields of the object as the one or more fields are being mutated.

4. The method of claim 1 , further comprising:

determining when the one or more fields mutated are to be updated to the out-of-process cache.

5. The method of claim 4 , wherein the determining is based on the multi-threaded OOA's visibility of the object or a thread notification boundary, wherein the object corresponds to a shared object.

6. The method of claim 1 , wherein the multi-threaded OOA includes a JAVA application.

7. The method of claim 1 , wherein the mutating comprises:

receiving at least one of a user request to cause the one or more fields to be mutated or a non-user request to cause the one or more fields to be mutated.

8. The method of claim 7 , wherein the non-user request comprises a daemon process.

9. A device comprising:

one or more memories to store instructions; and

one or more processing systems to execute the instructions in the one or more memories to:

execute a multi-threaded, object-oriented application (OOA);

obtain a shared object by multiple threads of the OOA;

mutate one or more fields of the shared object; and

apply an update of the one or more fields mutated to an out-of-process cache memory, wherein the applying updates the one or more fields mutated at a field level and not at an object level.

10. The device of claim 9 , wherein the device comprises an application server.

11. The device of claim 9 , wherein the one or more fields are disjoint with respect to each of the multiple threads.

12. The device of claim 9 , wherein the one or more processing systems execute the instructions to:

determine when the one or more fields of the shared object are to be updated to the out-of-process cache, wherein the determining is based on a visibility of the shared object associated with at least one of the multiple threads.

13. The device of claim 9 , wherein the one or more processing systems execute the instructions to:

collect the one or more fields of the shared object as the one or more fields are being mutated, wherein the one or more fields are disjoint; and

issue a command to a coherence client to apply the update of the one or more fields collected to the out-of-process cache.

14. The device of claim 9 , wherein the one or more processing systems execute the instructions to:

issue a command to a coherence client to apply the update of the one or more fields when the shared object goes outside a scope of a method call associated with at least one of the multiple threads.

15. The device of claim 9 , wherein the multi-threaded OOA comprises one of a JAVA application, a C++ application, or a .NET application.

16. One or more computer-readable media containing instructions executable by at least one processor, the one or more computer-readable media storing instructions to:

execute a multi-threaded, object-oriented application (OOA);

obtain a shared object by multiple threads of the OOA;

mutate one or more fields of the shared object;

determine when the one or more fields are to be updated to an out-of-process cache memory; and

apply an update of the one or more fields mutated to the out-of-process cache memory, wherein the applying updates the one or more fields mutated at a field level and not at an object level.

17. The one or more computer-readable media of claim 16 , wherein the one or more fields are disjoint fields.

18. The one or more computer-readable media of claim 16 , wherein the multi-threaded OOA comprises one of a JAVA application, a C++ application, or a .NET application.

19. The one or more computer-readable media of claim 16 , further storing one or more instructions to:

collect the one or more fields of the shared object as the one or more fields are being mutated; and

issue a command to apply the update in a batch fashion.

20. The one or more computer-readable media of claim 16 , wherein the instructions to determine comprise one or more instructions to:

determine based on a visibility of the shared object associated with at least one of the multiple threads.

Assignments (3)
CHANGE OF NAME Recorded Oct 24, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069268/0550 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2015
From: VERIZON PATENT AND LICENSING INC.
To: SALESFORCE.COM, INC.
Reel/Frame 034972/0609 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2009
From: SINGH, AMIT; JINDAL, TARUN; YUNG, TAO; EBRAHIMI, FAIRBORZ; KAVOUSPOUR, DINYAR
To: VERIZON PATENT AND LICENSING, INC.
Reel/Frame 023686/0568 →