IP Library Granted Patent US 7,149,853
Granted Patent B2
US 7,149,853 · App. 10/251,689 · Granted Dec 12, 2006

System and method for synchronization for enforcing mutual exclusion among multiple negotiators

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 7,149,853
App. No.
10/251,689
Granted
Dec 12, 2006
Kind
B2
Abstract

A system and method are disclosed for providing a synchronization mechanism for access to shared information. According to an embodiment of the present invention, a lock with more than one part can be obtained or leased by writing to the first part, writing to the second part, reading the first part to determine whether the first part reads what was written to it, and obtaining the lock if what is read is the same as what was written.

Claims (91)

1. A method of synchronizing access comprising:

providing a lock, wherein the lock includes a first part and a second part;

writing a first entry to the first part without determining that the second part is available, wherein the first entry includes an identifier associated with a first negotiator;

determining, subsequent to writing the first entry to the first part, that the second part is available;

writing a second entry to the second part based at least in part on the determination that the second part is available;

reading the first part;

determining whether the first entry is read from the first part; and

obtaining the lock if the first entry is read from the first part.

2. The method of claim 1 , wherein writing a first entry to the first part occurs after determining that the first part is available.

3. The method of claim 1 , wherein writing a second entry to the second part occurs after determining that the second part is available.

4. The method of claim 1 , further comprising:

writing a time stamp;

waiting a predetermined amount of time; and

updating the time stamp.

5. The method of claim 1 , further comprising:

writing a mark;

waiting a predetermined amount of time; and

updating the mark.

6. The method of claim 1 , further comprising:

reading a time stamp;

determining whether the time stamp has changed within a predetermined amount of time; and

writing the first entry to the first part if the time stamp has not changed within the predetermined amount of time.

7. A system of synchronizing access comprising:

a shared storage including a lock, wherein the lock includes a first part and a second part; and

a plurality of negotiators, wherein at least one of the plurality of negotiators is configured to:

write a first entry to the first part without determining that the second part is available, wherein the first entry includes an identifier associated with a first negotiator;

determine, subsequent to writing the first entry to the first part, that the second part is available;

write a second entry to the second part based at least in part on the determination that the second part is available,

read the first part;

determine whether the first entry is read from the first part; and

obtain the lock if the first entry is read from the first part.

8. A system of synchronizing access comprising: a processor configured to:

write a first entry to a first part of a lock without determining that a second part of the lock is available, wherein the first entry includes an identifier associated with a first negotiator;

determine, subsequent to writing the first entry to the first part, that the second part is available;

write a second entry to the second part based at least in part on the determination that the second part is available;

write a second entry to the second part of the lock;

read the first part;

determine whether the first entry is read from the first part; and

obtain the lock if the first entry is read from the first part; a memory coupled to the processor, the memory being configured to provide the processor with instructions.

9. A computer program product for synchronizing access, the computer program product being embodied in a computer readable medium and comprising computer instructions for:

providing a lock, wherein the lock includes a first part and a second part;

writing a first entry to the first part without determining that the second part is available, wherein the first entry includes an identifier associated with a first negotiator;

determining, subsequent to writing the first entry to the first part, that the second part is available;

writing a second entry to the second part based at least in part on the determination that the second part is available;

reading the first part;

determining whether the first entry is read from the first part; and

obtaining the lock if the first entry is read from the first part.

10. A method as recited in claim 1 , further comprising:

waiting a predetermined amount of time, during which data associated with the lock can be accessed by a lock owner associated with the lock;

determining whether a second negotiator is attempting to obtain the lock; and

renewing the lock if it is determined that no negotiator is attempting to obtain the lock or if the second negotiator attempting to obtain the lock has associated with it a first priority that is lower than a current priority associated with the lock owner.

11. A method as recited in claim 1 , further comprising:

waiting a predetermined amount of time, during which data associated with the lock can be accessed by a lock owner associated with the lock;

determining whether a second negotiator is attempting to obtain the lock; and

renewing the lock if it is determined that the second negotiator attempting to obtain the lock has associated with it a first priority that is lower than is lower than a current priority associated with the lock owner.

12. A method as recited in claim 1 , further comprising:

waiting a predetermined amount of time, during which data associated with the lock can be accessed by a lock owner associated with the lock; and

renewing the lock by modifying at least a portion of data contained in the second part if more time is needed to continue accessing the data associated with the lock.

13. A system as recited in claim 7 , wherein the at least one of the plurality of negotiators is further configured to:

wait is predetermined amount of time, during which data associated with the lock can be accessed by a lock owner associated with the lock;

determine whether a second negotiator is attempting to obtain th lock; and

renew the lock if it is determined than no negotiator is attempting to obtain the lock or if the second negotiator attempting to obtain the lock has associated with it a first priority that is lower than a current priority associated with the lock owner.

14. A system as recited in claim 7 , wherein the at least one of the plurality of negotiators is further configured to:

wait a predetermined amount of time, during which data associated with the lock can be accessed by a lock owner associated with the lock;

determine whether a second negotiator is attempting to obtain the lock; and

renew the lock if it is determined that the second negotiator attempting to obtain the lock has associated with it a first priority that is lower than a current priority associated with the lock owner.

15. A system as recited in claim 7 , wherein the at least one of the plurality of negotiators is further configured to:

wait a predetermined amount of time, during which data associated with the lock can be accessed by a lock owner associated with the lock; and

renew the lock by modifying at least a portion of data contained in the second part if more time is needed to continue accessing the data associated with the lock.

16. A system as recited in claim 8 , wherein the processor is further configured to:

wait a predetermined amount of time, during which data associated with the lock can be accessed by a lock owner associated with the lock;

determine whether a second negotiator is attempting to obtain the lock; and

renew the lock if it is determined that no negotiator is attempting to obtain the lock or if the second negotiator attempting to obtain the lock has associated with it a first priority that is lower than a current priority associated with the lock owner.

17. A system as recited in claim 8 , wherein the processor is further configured to:

wait a predetermined amount of time, during which data associated with the lock can be accessed by a lock owner associated with the lock;

determine whether a second negotiator is attempting to obtain the lock; and

renew the lock if it is determined that the second negotiator attempting to obtain the lock has associated with it a first priority that is lower than a current priority associated with the lock owner.

18. A system as recited in claim 8 , wherein the processor is further configured to:

wait a predetermined amount of time, during which data associated with the lock can be accessed by a lock owner associated with the lock; and

renew the lock by modifying at least a portion of data contained in the second part if more time is needed to continue accessing the data associated with the lock.

19. A computer program product as recited in claim 9 , further computer instructions for:

waiting a predetermined amount of time, during which data associated with the lock can be accessed by a lock owner associated with the lock;

determining whether a second negotiator is attempting to obtain the lock; and

renewing the lock if it is determined that no negotiator is attempting to obtain the lock or if the second negotiator attempting to obtain the lock has associated with it a first priority that is lower than a current priority associated with the lock owner.

20. A computer program product as recited in claim 9 , further comprising computer instructions for:

waiting a predetermined amount of time, during which data associated with the lock can be accessed by a lock owner associated with the lock;

determining whether a second negotiator is attempting to obtain the lock; and

renewing the lock if it is determined that the second negotiator attempting to obtain the lock has associated with it a first priority that is lower than a current priority associated with the lock owner.

21. A computer program product as recited in claim 9 , further comprising computer instructions for:

waiting a predetermined amount of time, during which data associated with the lock can be accessed by a lock owner associated with the lock; and

renewing the lock by modifying at least a portion of data contained in the second part if more time is needed to continue accessing the data associated with the lock.

Assignments (4)
CORRECTIVE ASSIGNMENT PREVIUOSLY RECORDED ON REEL 027329 FRAME 0001 AND 0044. Recorded May 1, 2012
From: HEWLETT-PACKARD COMPANY
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 028911/0846 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2011
From: HEWLETT-PACKARD COMPANY
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 027329/0044 →
MERGER Recorded Jun 12, 2007
From: POLYSERVE, INC.
To: HEWLETT-PACKARD COMPANY
Reel/Frame 019407/0735 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2002
From: KRUEGER, PHILLIP E.
To: POLYSERVE, INC.
Reel/Frame 013543/0515 →