Methods, systems, and devices supporting data access in a data processing system
First Claim
Patent Images
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, andthe 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, andwherein 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, andwherein 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.
3 Assignments
0 Petitions
Accused Products
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.
-
Citations
172 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 26, 27, 28, 29, 34, 35, 36, 37)
-
-
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. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 90)
-
-
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). - View Dependent Claims (30, 31, 32, 33, 38)
-
-
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; andbased at least in part on said determining, providing at least some location data associated with the first data item name. - View Dependent Claims (40, 41, 42)
-
-
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. - View Dependent Claims (44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61)
-
-
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). - View Dependent Claims (63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80)
-
-
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. - View Dependent Claims (82, 83, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 95)
-
-
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. - View Dependent Claims (97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 112)
-
-
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. - View Dependent Claims (109, 110, 111, 113, 114, 115, 124, 125, 126, 127)
-
-
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. - View Dependent Claims (117, 118, 119, 120, 121, 122, 123)
-
-
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. - View Dependent Claims (129, 130, 131, 132, 133, 134, 135, 144)
-
-
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. - View Dependent Claims (137, 138, 139, 140, 141, 142, 143, 145, 146, 147, 148, 149, 150)
-
-
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. - View Dependent Claims (152, 153, 154, 155, 156, 157, 166)
-
-
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. - View Dependent Claims (159, 160, 161, 162, 163, 164, 165, 167, 168, 169, 170, 171, 172)
-
Specification