# US 7,610,383 B2 · Data-object-related-request routing in a dynamic, distributed data-storage system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,610,383 B2
- Document ID: US7610383B2
- Status: Granted
- Kind: B2
- Application number: 11/502,890
- Filed: 2006-08-11
- Published: 2008-02-14
- Granted: 2009-10-27
- Earliest claimed: 2006-08-11
- Assignees: Hewlett-Packard Development Company, L.P.
- Inventors: Arthur Britto; Samuel A. Fineberg
- Web page: https://patentgrep.com/patent/US7610383B2

## CPC

- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0667: {at data level, e.g. file, record or object virtualisation}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

One embodiment of the present invention provides an efficient data-object-related-request-routing method and component used within a dynamic, distributed data-storage system for efficiently routing data objects to component data-storage systems when component data-storage systems frequently become unavailable and new component data-storage systems are frequently added to the dynamic, distributed data-storage system. The data-object-related-request-routing method is employed in data-object store operations and data-object retrieval operations. The data-object store and retrieval operations, in turn, are based on identifying certain preferred component data-storage systems within the distributed data-storage system by a component-data-storage-system-ranking method.

## Claims

### Claim 1

A data-object-related-request routing method employed in a distributed electronic-data storage system comprising a routing component and component data storage systems, the data-object routing method comprising:
computing, by the routing component of the distributed electronic-data storage system, a number of ranks for the number of component data storage systems based on data contained in the data object and, for each rank, on an identifier of the corresponding component data storage system that identifies a set of data stored in the component data storage system;
selecting, by the routing component of the distributed electronic-data storage system, one or more target component data storage systems based on the computed ranks for each operational component data storage system within the distributed electronic-data storage system; and
directing, by the routing component of the distributed electronic-data storage system, a data-object-related request to the selected one or more target component data storage systems.

### Claim 2 (depends on 1)

The data-object-related-request routing method of claim 1 wherein computing a rank for a component data storage system further includes:
combining a similarity key that represents the data object with an identifier for the component data storage system;
computing a value, based on the combined similarity key and identifier, by a method that distributes values over a range of possible computed values; and
selecting from the computed value a numerical rank.

### Claim 3 (depends on 2)

The data-object-related-request routing method of claim 2 wherein combining a similarity key that represents the data object with an identifier for the component data storage system further includes combining the similarity key and identifier further includes one of:
concatenating the similarity key and identifier;
concatenating portions of the similarity key and identifier; and
generating a single value from the similarity key and identifier by one of a bit-wise logic, arithmetic, or symbol-string operation.

### Claim 4 (depends on 2)

The data-object-related-request routing method of claim 2 wherein computing a value, based on the combined similarity key and identifier, by a method that randomly or pseudo-randomly distributes values over a range of possible computed values further comprises applying a hash function to the combined similarity key and identifier.

### Claim 5 (depends on 2)

The data-object-related-request routing method of claim 2 wherein selecting from the computed value a numerical rank further comprises selecting a number of bits from the computed value.

### Claim 6 (depends on 5)

The data-object-related-request routing method of claim 5 wherein the selected bytes represent one of:
a prefix of the computed value;
a suffix of the computed value; and
a fixed number of bits selected from among the bits that together comprise the computed value.

### Claim 7 (depends on 2)

The data-object-related-request routing method of claim 2 wherein selecting from the computed value a numerical rank further comprises applying a unary logical, arithmetic, or symbol-string function to the computed value that generates a result comprising a smaller range of possible values by which the computed value is represented.

### Claim 8 (depends on 1)

The data-object-related-request routing method of claim 1 wherein selecting one or more target component data storage systems based on the computed ranks for each operational component data storage system within the distributed, differential electronic-data storage system further includes selecting one or more of:
a preferred lookup location or locations from among all operational component data-storage systems within the distributed, differential electronic-data storage system;
a preferred active location or locations from among all active component data-storage systems within the distributed, differential electronic-data storage system; and
selecting a preferred store location or locations from among all store-request-accepting component data-storage systems within the distributed, differential electronic-data storage system.

### Claim 9 (depends on 8)

The data-object-related-request routing method of claim 8 wherein:
active component data-storage systems include component data-storage systems that are operational and that are not available for storage requests; and
store-request-accepting component data-storage systems include component data-storage systems that are operational, not suspended, have sufficient data storage space for a particular data object, and are not currently operating at a load greater than a high-load threshold.

### Claim 10 (depends on 8)

The data-object-related-request routing method of claim 8 wherein data-object-related requests include store requests and retrieval requests.

### Claim 11 (depends on 10)

The data-object-related-request routing method of claim 10 wherein a store request is carried out by:
receiving a data object to store;
determining whether or not a component data-storage system currently stores the data object;
when the object is determined to be currently stored by a component data-storage system, returning a universal identifier for the data object that identifies the location of the stored data object;
when the object is determined to not be currently stored by a component data-storage system, storing the data object on a selected component data-storage system.

### Claim 12 (depends on 11)

The data-object-related-request routing method of claim 11 wherein storing the data object on a selected component data-storage system further comprises:
when a collocation universal identifier has been provided for the data object, transmitting a store request to the component data-storage system that currently stores a data object described by the collocation universal identifier; and
when no collocation universal identifier has been provided for the data object,
when a similarity key is provided for the data object or can be computed for the data object, transmitting a store request to the preferred store location or preferred store locations, and
otherwise selecting a component data-storage system to which to transmit a storage request by a fairness method.

### Claim 13 (depends on 10)

The data-object-related-request routing method of claim 10 wherein a retrieval request is carried out by transmitting a retrieval request including a similarity key and indications of the preferred lookup location or locations, preferred active location or locations, and preferred store location or locations, to the operational component data-storage systems within the distributed, differential electronic-data storage system, with only the component data-storage systems corresponding to the preferred lookup location or locations, preferred active location or locations, and preferred store location or locations attempting to carry out the retrieval request.

### Claim 14 (depends on 1)

A routing component of a distributed electronic-data storage system that executes data-object-related-request routing method of claim 1.

### Claim 15 (depends on 14)

The routing component of claim 14 included in one or more of:
client-side distributed electronic-data-storage-system executables;
portal components of the distributed electronic-data storage system; and
one or more of the component data-storage systems.

### Claim 16 (depends on 1)

Computer instructions that implement the data-object-related-request routing method of claim 1 encoded in a computer-readable memory.
