IP Library Granted Patent US 7,155,577
Granted Patent B1
US 7,155,577 · App. 10/610,193 · Granted Dec 26, 2006

Optimistic reads in a multi-node environment

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,155,577
App. No.
10/610,193
Granted
Dec 26, 2006
Kind
B1
Abstract

A method, system, computer system, and computer program product 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 (91)

1. A method comprising:

obtaining a request to perform a read operation on data shared by a plurality of network nodes, wherein

one or more of the network nodes is coupled via a network connection to a shared storage,

the shared storage is configured to store the data,

the read operation is begun substantially simultaneously with sending the request, and the read operation is performed by a reader;

determining whether an invalidating operation to the data has occurred; and

when the invalidating operation has occurred, notifying the reader to re-read the data.

2. The method of claim 1 wherein

the invalidating operation comprises at least one of:

a write operation to the data,

a configuration of storage in which the data are stored,

a configuration of a cluster managing the data,

a partition of the cluster, and

a lock operation on the data.

3. The method of claim 1 , further comprising:

providing a location from which to re-read the data.

4. The method of claim 3 , wherein

the location comprises at least one change to the data.

5. The method of claim 1 , wherein

the determining whether the invalidating operation has occurred comprises determining whether the invalidating operation has occurred within a given timeframe.

6. The method of claim 1 , wherein

the determining whether the invalidating operation has occurred comprises reading a history of at least one invalidating operation.

7. The method of claim 6 , wherein

the at least one invalidating operation occurred within a given timeframe.

8. The method of claim 6 , wherein

the at least one invalidating operation occurred as one of a given number of a plurality of invalidating operations.

9. The method of claim 6 , wherein

the history comprises a respective region of the data affected by each invalidating operation, and the read operation comprises reading at least one respective region.

10. The method of claim 6 , wherein

the history comprises a respective operations tracker value associated with each invalidating operation.

11. The method of claim 10 wherein

the respective operations tracker value associated with each invalidating operation is a counter of invalidating operations on the data.

12. The method of claim 10 wherein

the respective operations tracker value associated with each invalidating operation is a timestamp for the invalidating operation.

13. The method of claim 10 wherein

the notifying the reader to re-read the data comprises providing a current time as a value of one respective operations tracker.

14. A system comprising:

obtaining means for obtaining a request to perform a read operation on data shared by a plurality of network nodes, wherein

one or more of the network nodes is coupled via a network connection to a shared storage,

the shared storage is configured to store the data,

the read operation is begun substantially simultaneously with sending the request, and the read operation is performed by a reader;

determining means for determining whether an invalidating operation to the data has occurred; and

notifying means for notifying the reader to re-read the data when the invalidating operation has occurred.

15. The system of claim 14 further comprising:

providing means for providing a location from which to re-read the data.

16. The system of claim 14 further comprising:

reading means for reading a history of at least one invalidating operation.

17. The system of claim 14 further comprising:

providing means for providing a value of a current time for one respective operations tracker.

18. A computer-readable medium comprising:

obtaining instructions configured to obtain a request to perform a read operation on data shared by a plurality of network nodes, wherein

one or more of the network nodes is coupled via a network connection to a shared storage,

the shared storage is configured to store the data,

the read operation is begun substantially simultaneously with sending the request, and the read operation is performed by a reader;

determining instructions configured to determine whether a invalidating operation to the data has occurred; and

notifying instructions configured to notify the reader to re-read the data when the invalidating operation has occurred.

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

providing instructions configured to provide a location from which to re-read the data.

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

reading instructions configured to read a history of at least one invalidating operation.

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

providing instructions configured to provide a value of a current time for one respective operations tracker.

22. A computer system comprising:

a processor configured to execute instructions;

a memory configured to store the instructions, wherein the instructions comprise:

obtaining instructions configured to obtain a request to perform a read operation on data shared by a plurality of network nodes, wherein

one or more of the network nodes is coupled via a network connection to a shared storage,

the shared storage is configured to store the data,

the read operation is begun substantially simultaneously with sending the request, and

the read operation is performed by a reader;

determining instructions configured to determine whether an invalidating operation to the data has occurred; and

notifying instructions configured to notify the reader to re-read the data when the invalidating operation has occurred.

23. The computer system of claim 22 wherein the instructions further comprise:

providing instructions configured to provide a location from which to re-read the data.

24. The computer system of claim 22 wherein the instructions further comprise:

reading instructions configured to read a history of at least one invalidating operation.

25. The computer system of claim 22 wherein the instructions further comprise:

providing instructions configured to provide a value of a current time for one respective operations tracker.

26. A system comprising:

an obtaining module configured to obtain a request to perform a read operation on data shared by a plurality of network nodes, wherein

one or more of the network nodes is coupled via a network connection to a shared storage,

the shared storage is configured to store the data,

the read operation is begun substantially simultaneously with sending the request, and the read operation is performed by a reader;

a determining module configured to determine whether an invalidating operation to the data has occurred; and

a notifying module configured to notify the reader to re-read the data when the operation has occurred.

27. The system of claim 26 further comprising:

a providing module configured to provide a location from which to re-read the data.

28. The system of claim 26 further comprising:

a reading module configured to read a history of at least one operation.

29. The system of claim 26 further comprising:

a providing module configured to provide a value of a current time for one respective operations tracker.

Assignments (17)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2004
From: VERITAS SOFTWARE CORPORATION
To: VERITAS OPERATING CORPORATION
Reel/Frame 015924/0747 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2003
From: KISELEV, OLEG; KARR, RONALD S.
To: VERITAS SOFTWARE CORPORATION
Reel/Frame 014270/0604 →