IP Library Granted Patent US 7,308,541
Granted Patent B1
US 7,308,541 · App. 11/641,632 · Granted Dec 11, 2007

Optimistic reads in a multi-node environment

Assignee: Symantec Corporation
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,308,541
App. No.
11/641,632
Granted
Dec 11, 2007
Kind
B1
Abstract

A method, system, computer system, and computer program produce to support a distributed environment in which changes to data shared by multiple nodes are logged using private logs and managed by a coordinator. The coordinator recognizes invalidating operations and informs a reader when data need to be read again after an invalidating operation corrupted and/or caused the copy of the data read by the reader to be out-of-date. The coordinator can provide a location from which current valid data can be read. The coordinator can use an operations history to detect invalidating operations and operations trackers to determine when a node is not synchronized with the coordinator.

Claims (57)

1. A method comprising:

receiving a request to perform a first read operation to read data from a first location, wherein the request comprises a first tracker value;

transmitting a notification to perform a second read operation to read the data from the first location, if the first tracker value is less than a second tracker value, wherein the second tracker value is associated with the first location; and

transmitting a notification of permission to perform the first read operation to read the data from the first location, if the first and second tracker values are equal.

2. The method of claim 1 further comprising:

transmitting a notification to read the data from a second location, if a lock is associated with the first location.

3. The method of claim 2 , wherein the second location is a log comprising a version of the data.

4. The method of claim 3 further comprising:

performing said transmitting the notification to read the data from the second location, if reading from the log is permitted.

5. The method of claim 1 further comprising:

transmitting a notification to wait to read the data from the first location, if a lock is associated with the first location;

determining when the lock associated with the first location is unlocked; and

transmitting a notification to read the data from the first location, in response to said determining when the lock associated with the first location is unlocked.

6. The method of claim 5 further comprising:

performing said transmitting the notification to wait, if reading from a log comprising a version of the data is not permitted.

7. The method of claim 1 , wherein

the request to perform the first read operation to read data from the first location originates from a first node, and

the first tracker value is associated with a time of an immediately previous instance in which the first node communicated with a node performing said receiving the request to perform the first read operation to read data.

8. The method of claim 1 , wherein

the second tracker value is associated with a time of an invalidating operation associated with data stored at the first location.

9. The method of claim 8 , wherein an invalidating operation comprises at least one of

a write operation to the data stored at the first location,

a configuration of storage in which the data are stored,

a configuration of a cluster managing the data, and

a partition of the cluster.

10. A system comprising:

a processor;

a memory, coupled to the processor, storing instructions executable by the processor, said instructions configured to cause the processor to

receive a request to perform a first read operation to read data from a first location, wherein the request comprises a first tracker value;

transmit a notification to perform a second read operation to read the data from the first location, if the first tracker value is less than a second tracker value, wherein the second tracker value is associated with the first location; and

transmit a notification of permission to perform the first read operation to read the data from the first location, if the first and second tracker values are equal.

11. The system of claim 10 wherein the memory stores additional instructions executable by the processor, said instructions configured to cause the processor to

transmit a notification to read the data from a second location, if a lock is associated with the first location.

12. The system of claim 10 wherein the memory stores additional instructions executable by the processor, said instructions configured to cause the processor to:

transmit a notification to wait to read the data from the first location, if a lock is associated with the first location;

determine when the lock associated with the first location is unlocked; and

transmit a notification to read the data from the first location, in response to said determining when the lock associated with the first location is unlocked.

13. An apparatus comprising:

means for receiving a request to perform a first read operation to read data from a first location, wherein the request comprises a first tracker value;

means for transmitting a notification to perform a second read operation to read the data from the first location, if the first tracker value is less than a second tracker value, wherein the second tracker value is associated with the first location; and

means for transmitting a notification of permission to perform the first read operation to read the data from the first location, if the first and second tracker values are equal.

14. The apparatus of claim 13 further comprising:

means for transmitting a notification to read the data from a second location, if a lock is associated with the first location.

15. The apparatus of claim 13 further comprising:

means for transmitting a notification to wait to read the data from the first location, if a lock is associated with the first location;

means for determining when the lock associated with the first location is unlocked; and

means for transmitting a notification to read the data from the first location, in response to said means for determining when the lock associated with the first location is unlocked.

16. A computer-readable storage medium comprising:

a first set of instructions, executable by a processor, configured to receive a request to perform a first read operation to read data from a first location, wherein the request comprises a first tracker value;

a second set of instructions, executable by the processor, configured to transmit a notification to perform a second read operation to read the data from the first location, if the first tracker value is less than a second tracker value, wherein the second tracker value is associated with the first location; and

a third set of instructions, executable by the processor, configured to transmit a notification of permission to perform the first read operation to read the data from the first location, if the first and second tracker values are equal.

17. The computer-readable storage medium of claim 16 further comprising:

a forth set of instructions, executable by the processor, configured to transmit a notification to read the data from a second location, if a lock is associated with the first location.

18. The computer-readable storage medium of claim 16 further comprising:

a fourth set of instructions, executable by the processor, configured to transmit a notification to wait to read the data from the first location, if a lock is associated with the first location;

a fifth set of instructions, executable by the processor, configured to determine when the lock associated with the first location is unlocked; and

a sixth set of instructions, executable by the processor, configured to transmit a notification to read the data from the first location, in response to said determining when the lock associated with the first location is unlocked.

Assignments (15)
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
Continuity (1)
Continuation 1061019300 · Jun 30, 2003