# US 8,082,262 B2 · Methods, systems, and devices supporting data access in a data processing system

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

- Number: US 8,082,262 B2
- Document ID: US8082262B2
- Status: Granted
- Kind: B2
- Application number: 11/724,232
- Filed: 2007-03-15
- Published: 2007-08-09
- Granted: 2011-12-20
- Earliest claimed: 1995-04-11
- Assignees: PersonalWeb Technologies, LLC; Level 3 Communications, LLC
- Inventors: David A. Farber; Ronald D. Lachman
- Web page: https://patentgrep.com/patent/US8082262B2

## CPC

- G06F 16/164: {File meta data generation}
- G06F 16/13: File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06)
- G06F 16/174: Redundancy elimination performed by the file system (error detection or correction of the data by redundancy in operations G06F11/14)
- Y10S 707/914: Video
- Y10S 707/915: Image
- Y10S 707/916: Audio
- Y10S 707/922: Communications
- Y10S 707/959: Network
- Y10S 707/961: Associative
- Y10S 707/966: Distributed
- Y10S 707/99931: Database or file accessing
- Y10S 707/99932: Access augmentation or optimizing
- Y10S 707/99933: Query processing, i.e. searching
- Y10S 707/99942: Manipulating data structure, e.g. compression, compaction, compilation
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

A plurality of data items are distributed across a plurality of computers, some of which may form a peer-to-peer network. A first computer receives a request for a data item from a requesting computer. The request includes a True Name of the data item. The first computer causes the requesting computer to obtain the data item from a second computer, distinct from the first computer. The first computer may not have a copy of the requested data item. The first computer may know the location of the data item. The first computer may forward the request for the data item to at least one other computer.

## Claims

### Claim 1

A computer-implemented method comprising:
(a) at a first computer, receiving a request from a requesting computer,
the request including a specific name of a particular data item,
the particular data item comprising a particular sequence of bits, and
the specific name of the particular data item having been determined, at least in part, as a given function of the particular sequence of bits, wherein two identical sequences of bits have the same name as determined using the given function, and
wherein said particular data item consists of one or more non-overlapping parts, each of the one or more non-overlapping parts comprising at least some of the particular sequence of bits, and
wherein each of said parts is replicated in multiple locations of a plurality of locations;
(b) causing said requesting computer to obtain information about said particular data item from a second computer distinct from said first computer;
(c) hardware in combination with software at said second computer, using the specific name of the particular data item to determine information about at least one part of the one or more parts that comprise the particular data item, said information including location information about which of said plurality of locations should have a replica of said at least one part;
(d) providing said at least some of said location information to said requesting computer.

### Claim 2 (depends on 1)

The method of claim 1 wherein the particular data item may comprise a file, a portion of a file, a page in memory, a digital message, a portion of a digital message, a digital image, a portion of a digital image, a video signal, a portion of a video signal, an audio signal, a portion of an audio signal, a software product, a portion of a software product, a data item identifier, a data item name, or a sequence of identifiers for components of a compound data item.

### Claim 3 (depends on 1)

A method as in claim 1 wherein said specific name for said particular data item will change when the particular data item is modified.

### Claim 4 (depends on 1)

The method of claim 1 wherein said particular data item comprises a portion of a file, and wherein said first computer causes said requesting computer to obtain the particular data item from a location having a copy of the portion of the file.

### Claim 5 (depends on 1)

The method of claim 1 further comprising:
determining, based at least in part on said specific name, whether or not access to the particular data item is authorized.

### Claim 6 (depends on 5)

The method of claim 5 further comprising:
based at least in part on said determining, denying access to the particular data item when it is determined that access to the particular data item is not authorized.

### Claim 7 (depends on 1)

The method of claim 1 wherein the plurality of locations consists of a plurality of servers, and wherein the location information comprises a list of servers in the plurality of servers that should have a replica of said at least one part.

### Claim 8 (depends on 1)

The method of claim 1, operable in a data processing system, wherein at least some of said information about at least one part of the one or more parts that comprise the particular data item is used to determine whether said particular data item is present in the data processing system.

### Claim 9 (depends on 1)

The method of claim 1 wherein the specific name for the particular data item is a data identifier for the particular data item.

### Claim 10

A computer-implemented method implemented at least in part by hardware comprising at least one processor and software, in combination with said hardware, the method comprising:
(A) obtaining a request regarding a particular file, the request including a specific name for the particular file, wherein the particular file consists of a particular sequence of bits, the specific name of the particular file having been determined, at least in part, using a given function of the particular sequence of bits, wherein two identical sequences of bits have the same name as determined using the given function, wherein said particular file consists of one or more chunks, and wherein each of said chunks is replicated on multiple locations of a plurality of locations;
(B) hardware in combination with software using the specific name of the particular file to determine information about at least one chunk of the one or more chunks that comprise the particular file, said information including location information about which of said plurality of locations should have a replica of said at least one chunk;
(C) providing at least some of said location information.

### Claim 11 (depends on 10)

The method of claim 10 wherein the request is obtained in (A) at a first location and from a second location distinct from said first location.

### Claim 12 (depends on 10)

The method of claim 10 wherein the request regarding the particular file is a request to access the at least one chunk.

### Claim 13 (depends on 12)

The method of claim 12 further comprising:
(D) using said at least some of said location information provided in (C) to attempt to access the at least one chunk of the particular file from at least one of said plurality of locations that should have a replica of said at least one chunk.

### Claim 14 (depends on 10)

The method of claim 10 wherein said providing in (C) comprises:
providing information about at least one of said plurality of locations that should have a replica of said at least one chunk.

### Claim 15 (depends on 10)

The method of claim 10 wherein said providing in (C) comprises:
providing information about at least one of said plurality of locations that should have a replica of multiple chunks of the one or more chunks that comprise the particular file.

### Claim 16 (depends on 10)

The method of claim 10 wherein step (B) is performed at a second location, distinct from said first location.

### Claim 17 (depends on 10)

The method of claim 10 wherein the request regarding the particular file comprises the specific name of the particular file.

### Claim 18 (depends on 10)

The method of claim 10 wherein the specific name for the particular file is a data identifier for the particular file.

### Claim 19 (depends on 10)

The method of claim 10 wherein said at least some of said plurality of locations are in one or more zones.

### Claim 20 (depends on 19)

The method of claim 19, wherein at least some of said zones are regions.

### Claim 21 (depends on 19)

The method of claim 19, wherein at least one of said zones is used for access control.

### Claim 22 (depends on 19)

The method of claim 19, wherein at least one of said zones resides on a shared file server.

### Claim 23 (depends on 19)

The method of claim 19 wherein the specific name for the particular file is used to determine a particular zone of said one or more zones in which the particular file should be located, and wherein the act (C) of providing comprises:
selectively providing said at least some of said location information based, at least in part, on the particular zone in which the particular file should be located.

### Claim 24 (depends on 19)

The method of claim 19 wherein the digital data item name for the particular data item is used to determine a particular zone of said one or more zones in which the particular data item should be located, and wherein the act (C) of providing comprises:
selectively providing said at least some of said location information based, at least in part, on the particular zone in which the particular data item should be located.

### Claim 25

A computer-implemented method comprising:
(A) receiving, at a first computer, a digital data item name corresponding to a particular data item, said particular data item consisting of an arbitrary sequence of bits consisting of a sequence of non-overlapping parts, each of said parts in said sequence of non-overlapping parts being stored in multiple locations of a plurality of locations, said digital data item name being based at least in part on a given function of the sequence of bits comprising the particular data item;
(B) based at least in part on said name, ascertaining a second computer, distinct from said first computer, and, at said second computer, hardware in combination with software, attempting to match the digital data item name of the particular data item with a digital data item name in a database, said database comprising (i) data that maps digital data item names to the parts to which the digital data item names correspond, and (ii) location data that identifies which of the plurality of locations stores which of the parts; and
(C) based at least in part on said attempting to match in step (B), hardware in combination with software determining location information corresponding to said particular data item, wherein said location information includes at least data that identifies at least some of the plurality of locations storing at least one of the parts in the sequence of non-overlapping parts comprising said particular data item; and
(D) providing at least some of said location data determined in step (C).

### Claim 26 (depends on 1, 25)

The method of claim 1 or claim 25 wherein the given function comprises a message digest function or a hash function.

### Claim 27 (depends on 1, 25)

A method as in claim 1 or claim 25 wherein the given function comprises a function selected from: MD4, MD5, and SHA.

### Claim 28 (depends on 1, 25)

A method as in claim 1 or claim 25 wherein the given function comprises a function that randomly distributes its outputs.

### Claim 29 (depends on 1, 25)

A method as in claim 1 or claim 25 wherein the given function comprises a function that produces a substantially unique value based on the data comprising the data item.

### Claim 30 (depends on 25)

The method of claim 25 wherein the particular data item may comprise a file, a portion of a file, a page in memory, a digital message, a portion of a digital message, a digital image, a portion of a digital image, a video signal, a portion of a video signal, an audio signal, a portion of an audio signal, a software product, a portion of a software product, a data item identifier, a data item name, or a sequence of identifiers for components of a compound data item.

### Claim 31 (depends on 25)

The method of claim 25 wherein the digital data item name is received in (A) as part of an attempt to access at least some part of the particular data item.

### Claim 32 (depends on 25)

The method of claim 25 wherein the digital data item name is a data identifier.

### Claim 33 (depends on 25)

The method of claim 25, operable in a data processing system, wherein at least some of said location information is used to determine whether said particular data item is present in the data processing system.

### Claim 34 (depends on 1, 25)

The method of claim 1 or 25 wherein at least some of said plurality of locations are in one or more zones.

### Claim 35 (depends on 34)

The method of claim 34, wherein at least some of said zones are regions.

### Claim 36 (depends on 34)

The method of claim 34, wherein at least one of said zones is used for access control.

### Claim 37 (depends on 34)

The method of claim 34 wherein at least one of said zones resides on a shared file server.

### Claim 38 (depends on 25)

The method of claim 25 wherein the sequence of non-overlapping parts comprises a sequence of one or more non-overlapping parts.

### Claim 39

A computer-implemented method comprising:
obtaining, at a first computer, a first data item name corresponding to a first data item, said first data item consisting of a first plurality of non-overlapping parts, each of said parts consisting of a corresponding sequence of bits, and each of said parts being stored at multiple locations of a plurality of locations, said first data item name being based at least in part on the data comprising the first data item; and
based at least in part on said first data item name, ascertaining a second computer that should have information about said first data item, said second computer being distinct from said first computer, and,
at said second computer, determining, using hardware in combination with software, at least one matching record in a database for the first data item based at least in part on the first data item name, the database comprising a plurality of records, where the records in the database correspond to data items, and where the records in the database include: (i) first data that includes data item names for data items for which the data are stored as parts; and (ii) second data, keyed on data item names, that maps the data item names to the parts to which the data item names correspond, and (iii) location data, keyed on part identifiers, that identifies which of the plurality of locations stores which of the parts, each of said part identifiers being based, at least in part, on a given function of all of the data in a corresponding part; and
based at least in part on said determining, providing at least some location data associated with the first data item name.

### Claim 40 (depends on 39)

The method of claim 39 wherein the first data item name is received at the first computer as part of a request to access the first data item.

### Claim 41 (depends on 39)

The method of claim 39 wherein the first data item name is a data item identifier.

### Claim 42 (depends on 39)

The method of claim 39, operable in a data processing system, wherein at least some of said information about said first data item is used to determine whether said first data item is present in the data processing system.

### Claim 43

A computer-implemented method comprising:
(A) receiving a request, the request including a specific name of a particular data item,
the particular data item comprising a particular sequence of bits, and
the specific name of the particular data item having been determined, at least in part, as a given function of the particular sequence of bits, wherein two identical sequences of bits have the same name as determined using the given function, and
wherein said particular data item consists of one or more non-overlapping parts, each of the one or more non-overlapping parts comprising at least some of the particular sequence of bits, and
wherein each of said parts is replicated in multiple locations of a plurality of locations;
(B) hardware in combination with software using the specific name of the particular data item to determine information about at least one part of the one or more parts that comprise the particular data item, said information including location information about which of said plurality of locations should have a replica of said at least one part;
(C) providing said at least some of said location information.

### Claim 44 (depends on 43)

The method of claim 43 wherein the plurality of locations consists of a plurality of servers, and wherein the location information comprises a list of servers in the plurality of servers that should have a replica of said at least one part.

### Claim 45 (depends on 43)

The method of claim 43 wherein the data item may comprise one or more of: a file, a portion of a file, a page in memory, a digital message, a portion of a digital message, a digital image, a portion of a digital image, a video signal, a portion of a video signal, an audio signal, a portion of an audio signal, a software product, a portion of a software product, a data item name, a data item identifier, or a sequence of identifiers for components of a compound data item.

### Claim 46 (depends on 43)

The method of claim 43 wherein the given function comprises a message digest function or a hash function.

### Claim 47 (depends on 43)

The method of claim 43 wherein the given function comprises a function selected from: MD4, MD5, and SHA.

### Claim 48 (depends on 43)

The method of claim 43 wherein the given function comprises a function that randomly distributes its outputs.

### Claim 49 (depends on 43)

The method of claim 43 wherein the given function comprises a function that produces a substantially unique value based on the data comprising the data item.

### Claim 50 (depends on 43)

The method of claim 43 wherein the given function comprises a function that produces a substantially unique value based on only the data comprising the data item.

### Claim 51 (depends on 43)

The method of claim 43 wherein the step (B) of using the specific name of the particular data item to determine information about at least one part of the one or more parts that comprise the particular data item uses a table mapping the specific name to the information.

### Claim 52 (depends on 43)

The method of claim 43, wherein step (B) comprises:
(b1) using the specific name of the particular data item to determine one or more part identifiers for the one or more parts that comprise the particular data item; and
(b2) using at least one of the one or more part identifiers to determine information about at least one part of the one or more parts that comprise the particular data item.

### Claim 53 (depends on 43)

The method of claim 43 wherein the specific name of the particular data item is a specific data identifier of the particular data item.

### Claim 54 (depends on 43)

The method of claim 43, operable in a data processing system, wherein at least some of said information about at least one part of the one or more parts that comprise the particular data item is used to determine whether said particular data item is present in the data processing system.

### Claim 55 (depends on 43)

The method of claim 43 wherein the specific name of the particular data item is a cache key of the particular data item.

### Claim 56 (depends on 43)

The method of claim 43 wherein the request received in (A) is a request to access the particular data item.

### Claim 57 (depends on 43)

The method of claim 43 wherein said at least some of said plurality of locations are in one or more zones.

### Claim 58 (depends on 57)

The method of claim 57, wherein at least some of said zones are regions.

### Claim 59 (depends on 57)

The method of claim 57, wherein at least one of said zones is used for access control.

### Claim 60 (depends on 57)

The method of claim 57, wherein at least one of said zones resides on a shared file server.

### Claim 61 (depends on 57)

The method of claim 57 wherein the specific name of the particular data item is used to determine at least one particular zone of said one or more zones in which the particular data item should be located, and wherein the act (C) of providing comprises:
selectively providing said at least some of said location information based, at least in part, on one or more policies associated with the at least one particular zone.

### Claim 62

A computer-implemented method implemented at least in part by hardware comprising at least one processor and software, in combination with said hardware, the method comprising:
(A) obtaining a digital data item name corresponding to a particular data item, said particular data item comprising an arbitrary sequence of bits comprising a sequence of non-overlapping parts, each of said parts in said sequence of non-overlapping parts being stored in multiple locations of a plurality of locations, said digital data item name being based at least in part on a given function of the sequence of bits comprising the particular data item;
(B) attempting to match the digital data item name of the particular data item with a digital data item name in a database, said database comprising (i) data that maps digital data item names to the parts to which the digital data item names correspond, and (ii) location data that identifies which of the plurality of locations stores which of the parts; and
(C) based at least in part on said attempting to match in step (B), hardware in combination with software determining location information corresponding to said particular data item, wherein said location information includes at least location data that identifies which of at least some of the plurality of locations stores at least one of the parts in the sequence of non-overlapping parts comprising said particular data item; and
(D) providing at least some of said location data determined in step (C).

### Claim 63 (depends on 62)

The method of claim 62 wherein the digital data item name is obtained in (A) as part of an attempt to access at least some part of the particular data item.

### Claim 64 (depends on 62)

The method of claim 62 wherein the particular data item may comprise one or more of: a file, a portion of a file, a page in memory, a digital message, a portion of a digital message, a digital image, a portion of a digital image, a video signal, a portion of a video signal, an audio signal, a portion of an audio signal, a software product, a portion of a software product, a data item identifier, a data item name, or a sequence of identifiers for components of a compound data item.

### Claim 65 (depends on 62)

The method of claim 62 wherein the given function comprises a message digest function or a hash function.

### Claim 66 (depends on 62)

The method of claim 62 wherein the given function comprises a function selected from: MD4, MD5, and SHA.

### Claim 67 (depends on 62)

The method of claim 62 wherein the given function comprises a function that randomly distributes its outputs.

### Claim 68 (depends on 62)

The method of claim 62 wherein the given function comprises a function that produces a substantially unique value based on the data comprising the data item.

### Claim 69 (depends on 62)

The method of claim 62 wherein the step (B) of using the digital data item name of the particular data item to determine information about at least one part of the one or more parts that comprise the particular data item uses a table mapping the digital data item name to the information.

### Claim 70 (depends on 62)

The method of claim 62 wherein the sequence of non-overlapping parts is a sequence of non-overlapping segments.

### Claim 71 (depends on 62)

The method of claim 62, wherein step (B) comprises:
(b1) using the digital data item name of the particular data item to determine one or more part names for the one or more parts that comprise the particular data item; and
(b2) using at least one of the one or more part names to determine information about at least one part of the one or more parts that comprise the particular data item.

### Claim 72 (depends on 62)

The method of claim 62 wherein the digital data item name corresponding to the particular data item is a data identifier of the particular data item.

### Claim 73 (depends on 62)

The method of claim 62, operable in a data processing system, wherein at least some information in said database is used to determine whether said particular data item is present in the data processing system.

### Claim 74 (depends on 62)

The method of claim 62 wherein the digital data item name corresponding to the particular data item is a cache key of the particular data item.

### Claim 75 (depends on 74)

The method of claim 74 wherein the cache key of the particular data item is obtained in (A) as part of a request to access the particular data item.

### Claim 76 (depends on 62)

The method of claim 62 wherein the sequence of non-overlapping parts comprises a sequence of one or more non-overlapping parts.

### Claim 77 (depends on 62)

The method of claim 62 wherein said at least some of said plurality of locations are in one or more zones.

### Claim 78 (depends on 77)

The method of claim 77, wherein at least some of said zones are regions.

### Claim 79 (depends on 77)

The method of claim 77, wherein at least one of said zones is used for access control.

### Claim 80 (depends on 77)

The method of claim 77, wherein at least one of said zones resides on a shared file server.

### Claim 81

A computer-implemented method comprising:
(a) determining, using hardware in combination with software, at least one matching record in a database corresponding to a first data item, said determining being based at least in part on a first data item name,
the first data item name corresponding to the first data item, said first data item consisting of a first plurality of non-overlapping parts, each of said parts consisting of a corresponding sequence of bits, and each of said parts being stored at multiple locations of a plurality of locations, said first data item name being based at least in part on the data comprising the first data item,
the database comprising a plurality of records, where the records in the database correspond to data items, and where the records in the database include: (i) first data that includes data item names for data items for which the data are stored as parts; and (ii) second data, keyed on data item names, that maps the data item names to the parts to which the data item names correspond, and (iii) location data, keyed on part names, that identifies which of the plurality of locations stores which of the parts, each of said part names being based, at least in part, on a given function of all of the data in a corresponding part; and
(b) based at least in part on said determining in (a), providing at least some location data associated with the first data item name.

### Claim 82 (depends on 81)

The method of claim 81 wherein the first data item name is received as part of a request to access the first data item.

### Claim 83 (depends on 81)

The method of claim 81 wherein said first data item name is based at least in part on all of the data comprising the first data item.

### Claim 84 (depends on 81)

The method of claim 81 wherein said first data item name is based at least in part on only the data comprising the first data item.

### Claim 85 (depends on 81)

The method of claim 81 wherein the first data item name corresponding to the first data item is a data identifier of the first data item.

### Claim 86 (depends on 81)

The method of claim 81 wherein the given function comprises a function that produces a substantially unique value based on only the data comprising the first data item.

### Claim 87 (depends on 81)

The method of claim 81 wherein the database further comprises mapping data to map names of data items to corresponding digital data item names for the data items, and wherein the act (a) of determining comprises:
using said mapping data and a user-defined name to determine the first data item name for the first data item.

### Claim 88 (depends on 87)

The method of claim 87 wherein
the user-defined name is obtained as part of a request regarding the first data item.

### Claim 89 (depends on 81)

The method of claim 81, operable in a data processing system, wherein at least some information in said database is used to determine whether said first data item is present in the data processing system.

### Claim 90 (depends on 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89)

The method of any one of claims 8 to 89 wherein the data processing system is a distributed file system.

### Claim 91 (depends on 81)

The method of claim 81 wherein said at least some of said plurality of locations are in one or more zones.

### Claim 92 (depends on 91)

The method of claim 91, wherein at least some of said zones are regions.

### Claim 93 (depends on 91)

The method of claim 91, wherein at least one of said zones is used for access control.

### Claim 94 (depends on 91)

The method of claim 91 where at least one of said zones resides on a shared file server.

### Claim 95 (depends on 91)

The method of claim 91 wherein the first data item name corresponding to the first data item is used to determine at least one particular zone of said one or more zones in which the first data item should be located, and wherein the act (b) of providing comprises:
selectively providing at least some location data associated with the first data item name based, at least in part, on the at least one particular zone in which the first data item should be located.

### Claim 96

A system comprising hardware, including at least a processor, and software, in combination with said hardware:
(a) to receive a request, the request including a specific name corresponding to a particular data item,
the particular data item comprising a particular sequence of bits, and
the specific name corresponding to the particular data item having been determined, at least in part, as a given function of the particular sequence of bits, wherein two identical sequences of bits have the same name as determined using the given function, and
wherein said particular data item comprises one or more non-overlapping parts, each of the one or more non-overlapping parts comprising at least some of the particular sequence of bits, and
wherein each of said parts is replicated in multiple locations of a plurality of locations;
(b) to use the specific name of the particular data item to determine information about at least one part of the one or more parts that comprise the particular data item, said information including location information about which of said plurality of locations should have a replica of said at least one part; and
(c) to provide at least some of said location information.

### Claim 97 (depends on 96)

The system of claim 96 wherein the specific name corresponding to the particular data item is a cache key of the particular data item.

### Claim 98 (depends on 96)

The system of claim 96 wherein the particular data item may comprise one or more of: a file, a portion of a file, a page in memory, a digital message, a portion of a digital message, a digital image, a portion of a digital image, a video signal, a portion of a video signal, an audio signal, a portion of an audio signal, a software product, a portion of a software product, a data item identifier, a data item name, or a sequence of identifiers for components of a compound data item.

### Claim 99 (depends on 96)

The system of claim 96 wherein the given function comprises a message digest function or a hash function.

### Claim 100 (depends on 96)

The system of claim 96 wherein the given function comprises a function selected from: MD4, MD5, and SHA.

### Claim 101 (depends on 96)

The system of claim 96 wherein the given function comprises a function that randomly distributes its outputs.

### Claim 102 (depends on 96)

The system of claim 96 wherein the given function comprises a function that produces a substantially unique value based on the data comprising the particular data item.

### Claim 103 (depends on 96)

The system of claim 96 wherein said at least some of said plurality of locations are in one or more zones.

### Claim 104 (depends on 103)

The system of claim 103, wherein at least some of said zones are regions.

### Claim 105 (depends on 103)

The system of claim 103, wherein at least one of said zones is used for access control.

### Claim 106 (depends on 103)

The system of claim 103 wherein at least one of said zones resides on a shared file server.

### Claim 107 (depends on 103)

The system of claim 103 wherein the specific name of the particular data item is used to determine a particular zone of said one or more zones in which the particular data item should be located, and wherein the system:
selectively provides at least some location information based, at least in part, on the particular zone in which the particular data item should be located.

### Claim 108

A device comprising hardware including at least one processor, and software, in combination with said hardware:
(a) to attempt to match a digital data item name corresponding to a particular data item with a digital data item name in a database,
said particular data item comprising an arbitrary sequence of bits comprising a sequence of non-overlapping parts, each of said parts in said sequence of non-overlapping parts being stored in multiple locations of a plurality of locations, said digital data item name being based at least in part on a given function of the sequence of bits comprising the particular data item,
said database comprising (i) data that maps digital data item names to the parts to which the digital data item names correspond, and (ii) location data that identifies which of the plurality of locations stores which of the parts; and
(b) to determine location data corresponding to said particular data item, wherein said location information includes at least data that identifies which of at least some of the plurality of locations stores at least one of the parts in the sequence of non-overlapping parts comprising said particular data item; and
(c) to provide at least some of said location data corresponding to said particular data item.

### Claim 109 (depends on 108)

The device of claim 108 wherein the digital data item name corresponding to the particular data item is a cache key of the particular data item.

### Claim 110 (depends on 108)

The device of claim 108 wherein the particular data item may comprise one or more of: a file, a portion of a file, a page in memory, a digital message, a portion of a digital message, a digital image, a portion of a digital image, a video signal, a portion of a video signal, an audio signal, a portion of an audio signal, a software product, a portion of a software product, a data item identifier, a data item name, or a sequence of identifiers for components of a compound data item.

### Claim 111 (depends on 108)

The device of claim 108 wherein the given function comprises a message digest function or a hash function.

### Claim 112 (depends on 96)

The device of claim 96 wherein the given function comprises a function selected from: MD4, MD5, and SHA.

### Claim 113 (depends on 108)

The device of claim 108 wherein the given function comprises a function that randomly distributes its outputs.

### Claim 114 (depends on 108)

The device of claim 108 wherein the given function comprises a function that produces a substantially unique value based on the data comprising the particular data item.

### Claim 115 (depends on 108)

The device of claim 108 wherein the sequence of non-overlapping parts comprises a sequence of one or more non-overlapping parts.

### Claim 116

A device comprising hardware including at least one processor and memory, to:
(a) determine at least one matching record in a database for a first data item based at least in part on a first data item name,
said first data item comprising a first plurality of non-overlapping parts, each of said parts comprising a corresponding sequence of bits, and each of said parts being stored at multiple locations of a plurality of locations, said first data item name being based at least in part on the data comprising the first data item,
the database comprising a plurality of records, where the records in the database correspond to data items, and where the records in the database include: (i) first data that includes data item names for data items for which the data are stored as parts; and (ii) second data, keyed on data item names, that maps the data item names to the parts to which the data item names correspond, and (iii) location data, keyed on part identifiers, that identifies which of the plurality of locations stores which of the parts, each of said part identifiers being based, at least in part, on a given function of all of the data in a corresponding part; and
(b) to provide at least some location data associated with the first data item name.

### Claim 117 (depends on 116)

A device as in claim 116 wherein the device is a computer.

### Claim 118 (depends on 116)

The device of claim 116 wherein first data item name corresponding to the first data item is a cache key of the first data item.

### Claim 119 (depends on 116)

The device of claim 116 wherein the first data item may comprise one or more of: a file, a portion of a file, a page in memory, a digital message, a portion of a digital message, a digital image, a portion of a digital image, a video signal, a portion of a video signal, an audio signal, a portion of an audio signal, a software product, a portion of a software product, a data item identifier, a data item name, or a sequence of identifiers for components of a compound data item.

### Claim 120 (depends on 116)

The device of claim 116 wherein said first data item name is based at least in part on a given function the data comprising the first data item, and wherein the given function comprises a message digest function or a hash function.

### Claim 121 (depends on 116)

The device of claim 116 wherein said first data item name is based at least in part on a given function the data comprising the first data item, and wherein the given function comprises a function selected from:
MD4, MD5, and SHA.

### Claim 122 (depends on 116)

The device of claim 116 wherein said first data item name is based at least in part on a given function the data comprising the first data item, and wherein the given function comprises a function that randomly distributes its outputs.

### Claim 123 (depends on 116)

The device of claim 116 wherein said first data item name is based at least in part on a given function the data comprising the first data item, and wherein the given function comprises a function that produces a substantially unique value based on the data comprising the first data item.

### Claim 124 (depends on 108, 116)

The device of claim 108 or 116 wherein said at least some of said plurality of locations are in one or more zones.

### Claim 125 (depends on 124)

The device of claim 124, wherein at least some of said zones are regions.

### Claim 126 (depends on 124)

The device of claim 124, wherein at least one of said zones is used for access control.

### Claim 127 (depends on 124)

The device of claim 124, wherein at least one of said zones resides on a shared file server.

### Claim 128

A computer-implemented method comprising:
(A) obtaining one or more pieces of data, each piece of data of said one or more pieces of data comprising a corresponding arbitrary sequence of bits;
(B) for each of said one or more pieces of data, hardware, in combination with software, determining a corresponding data value, said data value for each particular piece of data being determined by applying a first given function to the corresponding arbitrary sequence of bits comprising said particular piece of data, wherein said first given function comprises a first hash function;
(C) determining a second data value based at least in part on one or more data values for said one or more pieces of data, said second data value being determined by applying a second given function to said one or more data values for said one or more pieces of data, wherein said second given function comprises a second hash function;
(D) using said second data value determined in (C) to determine if any data item corresponds to said one or more pieces of data;
(E) based at least in part on said determining in (D), when it is determined that a particular data item corresponds to said one or more pieces of data, providing location information corresponding to said particular data item, wherein said location information includes at least data that identifies at least one location that should have a copy of said particular data item.

### Claim 129 (depends on 128)

The method of claim 128 wherein the first hash function is selected from the functions MD5 and SHA.

### Claim 130 (depends on 128)

The method of claim 128 wherein the first given function is the same as the second given function.

### Claim 131 (depends on 128)

The method of claim 128 wherein the second hash function is selected from the functions MD5 and SHA.

### Claim 132 (depends on 128)

The method of claim 128, operable in a data processing system, the method further comprising:
maintaining a database of values, at least one value for each data item of a plurality of data items in the data processing system.

### Claim 133 (depends on 128)

The method of claim 128 wherein the
at least one location that should have a copy of said particular data item comprises at least one server that should have a copy of said particular data item.

### Claim 134 (depends on 133)

The method of claim 133 wherein the
at least one location that should have a copy of said particular data item comprises at least one server in a global computer network.

### Claim 135 (depends on 128)

The method of claim 128 wherein the one or more pieces of data are obtained in (A) as part of a search for at least one data item corresponding to said one or more pieces of data.

### Claim 136

A computer-implemented method comprising:
(A) obtaining a particular data value, said particular data value being based, at least in part, on one or more data values corresponding to one or more pieces of data, said particular data value being based, at least in part, on a particular given function of said one or more data values corresponding to said one or more pieces of data,
wherein each piece of data of said one or more pieces of data comprises a corresponding arbitrary sequence of bits, and wherein a corresponding data value for each specific piece of data is based, at least in part, on a first given function of the corresponding arbitrary sequence of bits comprising said specific piece of data, wherein said first given function comprises a first hash function;
(B) using said particular data value obtained in (A) to determine if any data item corresponds to said one or more pieces of data;
(C) based at least in part on said determining in (B), when it is determined that a particular data item corresponds to said one or more pieces of data, providing location information corresponding to said particular data item, wherein said location information includes at least data that identifies at least one location that should have a copy of said particular data item.

### Claim 137 (depends on 136)

The method of claim 136 wherein said particular given function comprises a particular hash function.

### Claim 138 (depends on 136)

The method of claim 136 wherein the first hash function is selected from the functions MD5 and SHA.

### Claim 139 (depends on 136)

The method of claim 136 wherein the first given function is the same as the particular given function.

### Claim 140 (depends on 136)

The method of claim 136 wherein the
at least one location that should have a copy of said particular data item comprises at least one server that should have a copy of said particular data item.

### Claim 141 (depends on 140)

The method of claim 140 wherein the
at least one location that should have a copy of said particular data item comprises at least one server in a global computer network.

### Claim 142 (depends on 136)

The method of claim 136 wherein said obtaining a particular data value in (A) comprises determining said particular value.

### Claim 143 (depends on 136)

The method of claim 136 wherein the one or more pieces of data were part of a search for at least one data item corresponding to said one or more pieces of data.

### Claim 144 (depends on 128, 136)

The method of claim 128 or claim 136 wherein the particular data item may comprise a file, a portion of a file, a page in memory, a digital message, a portion of a digital message, a digital image, a portion of a digital image, a video signal, a portion of a video signal, an audio signal, a portion of an audio signal, a software product, a portion of a software product, a data item identifier, a data item name, or a sequence of identifiers for components of a compound data item.

### Claim 145 (depends on 136)

The method of claim 136 wherein said obtaining a particular data value in (A) comprises determining said particular value.

### Claim 146 (depends on 136)

The method of claim 136 wherein said location is in one or more zones.

### Claim 147 (depends on 146)

The method of claim 146, wherein at least some of said zones are regions.

### Claim 148 (depends on 146)

The method of claim 146, wherein at least one of said zones is used for access control.

### Claim 149 (depends on 146)

The method of claim 146, where at least one of said zones resides on a shared file server.

### Claim 150 (depends on 146)

The method of claim 146 wherein the particular data value is used to determine at least one particular zone of said one or more zones in which the particular data item should be located, and wherein the act (C) of providing comprises:
selectively providing at least some of said location information based, at least in part, on the at least one particular zone in which the particular data item should be located.

### Claim 151

A system operable in a network of computers, the system comprising hardware including at least one processor, and software, in combination with said hardware:
(a) to obtain one or more pieces of data, each piece of data of said one or more pieces of data comprising a corresponding arbitrary sequence of bits;
(b) to determine, for each of said one or more pieces of data, a corresponding data value, said data value for each particular piece of data being determined by applying a first given function to the corresponding arbitrary sequence of bits comprising said particular piece of data, wherein said first given function comprises a first hash function;
(c) to determine a second data value based at least in part on one or more data values for said one or more pieces of data, said second data value being determined by applying a second given function to said one or more data values for said one or more pieces of data, wherein said second given function comprises a second hash function;
(d) to determine, using said second data value, if any data item corresponds to said one or more pieces of data;
(e) when it is determined that a particular data item corresponds to said one or more pieces of data, to provide location information corresponding to said particular data item, wherein said location information includes at least data that identifies at least one location in said network of computers that should have a copy of said particular data item.

### Claim 152 (depends on 151)

The system of claim 151 wherein the first hash function is selected from the functions MD5 and SHA.

### Claim 153 (depends on 151)

The system of claim 151 wherein the first given function is the same as the second given function.

### Claim 154 (depends on 151)

The system of claim 151 wherein the second hash function is selected from the functions MD5 and SHA.

### Claim 155 (depends on 151)

The system of claim 151 wherein the
at least one location that should have a copy of said particular data item comprises at least one server that should have a copy of said particular data item.

### Claim 156 (depends on 151)

The system of claim 151 wherein the network of computers is a global computer network.

### Claim 157 (depends on 151)

The system of claim 151 wherein the system comprises a computer.

### Claim 158

A system operable in a network of computers, the system comprising hardware including at least one processor, and software, in combination with said hardware:
(a) to ascertain a particular data value, said particular data value being based, at least in part, on one or more data values corresponding to one or more pieces of data, said particular data value being based, at least in part, on a particular given function of said one or more data values corresponding to said one or more pieces of data,
wherein each piece of data of said one or more pieces of data comprises a corresponding arbitrary sequence of bits, and wherein a corresponding data value for each specific piece of data is based, at least in part, on a first given function of the corresponding arbitrary sequence of bits comprising said specific piece of data;
(b) to determine, using at least said particular data value, if any data item in said network of computers corresponds to said one or more pieces of data;
(c) when it is determined that a particular data item in said network of computers corresponds to said one or more pieces of data, to provide location information corresponding to said particular data item, wherein said location information includes at least data that identifies at least one location in said network of computers that should have a copy of said particular data item.

### Claim 159 (depends on 158)

The system of claim 158 wherein said particular given function comprises a particular hash function.

### Claim 160 (depends on 158)

The system of claim 158 wherein the first given function comprises a first hash function.

### Claim 161 (depends on 160)

The system of claim 160 wherein first hash function is selected from the functions MD5 and SHA.

### Claim 162 (depends on 158)

The system of claim 158 wherein the first given function is the same as the particular given function.

### Claim 163 (depends on 158)

The system of claim 158 wherein the
at least one location that should have a copy of said particular data item comprises at least one server that should have a copy of said particular data item.

### Claim 164 (depends on 158)

The system of claim 158 wherein the network of computers is a global computer network.

### Claim 165 (depends on 158)

The system of claim 158 wherein the one or more pieces of data were part of a search for at least one data item in the network of computers corresponding to said one or more pieces of data.

### Claim 166 (depends on 151, 158)

The system of claim 151 or claim 158 wherein the particular data item may comprise a file, a portion of a file, a page in memory, a digital message, a portion of a digital message, a digital image, a portion of a digital image, a video signal, a portion of a video signal, an audio signal, a portion of an audio signal, a software product, a portion of a software product, a data item identifier, a data item name, or a sequence of identifiers for components of a compound data item.

### Claim 167 (depends on 158)

The system of claim 158 wherein the particular data value is ascertained in (a) by being obtained.

### Claim 168 (depends on 158)

The system of claim 158 wherein said at least one location is in one or more zones.

### Claim 169 (depends on 168)

The system of claim 168, wherein at least some of said one or more zones are regions.

### Claim 170 (depends on 168)

The system of claim 168, wherein at least one of said zones is used for access control.

### Claim 171 (depends on 168)

The system of claim 168, wherein at least one of said zones resides on a shared file server.

### Claim 172 (depends on 168)

The system of claim 168 wherein the particular data value is used to determine at least one particular zone of said one or more zones in which the particular data item should be located, and wherein the system:
selectively provides at least some of said location information based, at least in part, on the at least one particular zone in which the particular data item should be located.
