IP Library Granted Patent US 7,689,764
Granted Patent B1
US 7,689,764 · App. 11/404,105 · Granted Mar 30, 2010

Network routing of data based on content thereof

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,689,764
App. No.
11/404,105
Granted
Mar 30, 2010
Kind
B1
Abstract

A system may be provided which is operable to determine a routing node for a data object. The system can comprise an identifier generator operable to generate an identifier for the data object on the basis of data content thereof, and a lookup engine operable to compare the identifier for the data object to a routing table to determine a routing node for the data element.

Claims (22)

1. A distributed storage system comprising:

a storage agent operable to perform a look-up in a routing table to determine a routing node for a data object on the basis of an identifier therefore, the identifier for the data object being based on data content thereof, and to send a message including the identifier relating to that data object to the identified routing node; and

a plurality of routing nodes, each operable to perform a look-up in a routing table to determine a further routing node for a data object described in an identifier included in a message received at the routing node, and to forward the message to the identified further routing node;

wherein at least a subset of the routing nodes are each operable to store data objects having an identifier within a predetermined range, and wherein the routing table for each such node indicates that the further routing node is the current node for identifiers within said predetermined range.

2. The system of claim 1 , wherein the routing table at the agent and the routing tables at the routing nodes are different.

3. The system of claim 1 , wherein the data object is a data file or a data file segment.

4. The system of claim 1 , wherein the identifier is a checksum value for the data object.

5. The system of claim 1 , wherein the routing table at the storage agent contains an indication of a routing node for every possible identifier value.

6. The system of claim 1 , wherein the routing table at each routing node contains an indication of a routing node for every identifier value which can be caused to arrive at that routing node.

7. The system of claim 1 , wherein the storage agent is operable to use two routing tables to determine a routing node, and wherein at least each routing node which is directly addressable by the storage agent is operable to use two routing tables to determine a further routing node.

8. The system of claim 7 , wherein a first routing table indicates a new routing node for the identifier and wherein a second routing table indicates an old routing node for the identifier.

9. The system of claim 8 , wherein one of the two routing tables includes at least one routing node which is a member of the subset of routing nodes and does not currently have a copy of all data described in that routing table.

10. The system of claim 1 , wherein at least one routing node of the at least a subset of routing nodes is operable to store a data object in a storage element of the routing node.

11. The system of claim 1 , wherein at least one routing node of the at least a subset of routing nodes is operable to store a data object in a storage element directly or indirectly attached to the routing node.

12. The system of claim 1 , wherein the message is a query to determine whether any of the routing nodes has a responsibility for a stored copy of the data object.

13. The system of claim 1 , wherein the message is a request to store the data object.

14. The system of claim 1 , wherein only a single copy of the data object is to be stored within the system.

15. The system of claim 1 , wherein the message is a request to retrieve a copy of the data object.

16. A distributed storage system comprising:

means for performing a look-up in a routing table to determine a routing node for a data object on the basis of an identifier therefore, the identifier for the data object being based on data content thereof, and for sending a message including the identifier relating to that data object to the identified routing node; and

a plurality of routing means, each for performing a look-up in a routing table to determine a further routing means for a data object described in an identifier included in a message received at the routing means, and for forwarding the message to the identified further routing means;

wherein at least a subset of the routing means are further for storing data objects having an identifier within a predetermined range, and wherein the routing table for each such routing means indicates that the further routing means is the current routing means for identifiers within said predetermined range.

Assignments (15)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
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 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Mar 5, 2012
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 027819/0462 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2007
From: DE SPIEGELEER, KRISTOF; D'HONDT, KOEN
To: VERITAS OPERATING CORPORATION
Reel/Frame 019743/0589 →