DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application is being examined under the pre-AIA first to invent provisions.
Response to Amendment
Acknowledgment is made of applicant’s amendment filed on 24 June 2026.
Claims 1-17 are presented for examination.
Claims 1, 2, 4-8, 11, 13 and 14 are amended.
Response to Argument
Applicant’s arguments filed in the amendment filed on 24 June 2026, have been fully considered but they are not deemed persuasive:
Applicants argue that, “…Importantly, minimum storage parameters are determined for storing data and dispersed error coding storage capabilities for storage units in response to a request to store data. Candidate storage units for storing the data are based on two things: 1) the minimum storage parameters; and 2) dispersed error coding storage capabilities for storage units. The Applicant respectfully submits that the Office errored in finding that the prior art anticipates either of: a) storage units having dispersed error coding storage capabilities; or b) dispersed storage error encoding data to produce encoded data slices.
On pages 10 and 11 of the 3/26/OA, the Office argues that Sawhney discloses both "determining dispersed error coding storage capabilities for a plurality of storage network storage units" and "determining, based on the dispersed error coding storage capabilities of the plurality of storage network storage units and the minimum storage parameters, candidate storage units" at column 1, line 10-column 2, line 4 and at column 8, line 10, lines 40-55. Specifically, the Office states the following:…
With due respect, the Office' argument conflates minimum storage requirements for data with dispersed error coding storage capabilities of storage units. Even assuming, arguendo, that the data placement policy of Sawhney is the same as the Applicant's minimum storage parameters (which the Applicant does not accede), the Office' argument uses minimum storage requirements to characterize both the requirements of the data AND the capabilities of the storage units, arguing that where Sawhney has a data-placement policy with minimum storage requirements for data, selecting storage system(s) based on the same minimum storage requirements is the same as the Applicant's requirement to determine dispersed error coding storage capabilities for storage units. Indeed, according to the Office' argument, determining dispersed error coding storage capabilities of storage units is not even a limitation in the Applicant's claims! Respectfully, the Office' argument is improper under 35 U.S.C. § 102, at least because it characterizes one singular component as being both minimum storage parameters for data and dispersed error coding storage capabilities for storage units."
The Examiner respectfully disagrees.
Applicants are arguing subject matters that are not recited in the claim language.
The claim language merely recites “determining, based on the metadata, minimum storage parameters for storing the data;” and “determining dispersed error coding storage capabilities for a plurality of storage network storage units;”
The claim language does not recites what they are.
For example, under the broadest reasonable interpretation, “minimum storage parameters” is broadly interpreted as minimum [number of] “storage parameters” or “minimum storage” parameter.
Minimum “storage parameters” is a number of storage parameters that will be applied to the data.
“Minimum storage” parameter is a parameter that is referring to size of the data (e.g. if data is 10 MB, the “Minimum storage” parameter is equal to 10 MB)
If applicants disagree with examiner’s interpretations, instead of arguing subject matters that are not recited in the claim language, applicants should further clarify the claim language in order to clearly define what “minimum storage parameters” is referring to.
Similarly, the claim language merely recites “determining dispersed error coding storage capabilities for a plurality of storage network storage units;” at most “dispersed error coding storage capabilities for a plurality of storage network storage units” is broadly interpreted as reliability, bandwidth capacity, storage capacity, cost, location, and/or performance of “a plurality of storage network storage units.”
Based on the above interpretations, the claim limitation “determining, based on the dispersed error coding storage capabilities of the plurality of storage network storage units and the minimum storage parameters, candidate storage units for the storage request;” is broadly interpreted as when a user is storing a 10 MB data (where “10 MB” is minimum storage parameter) and is requiring particular dispersed error coding storage capabilities (e.g. reliability, bandwidth capacity, storage capacity, cost, location, and/or performance), the “data-placement policy” of Sawhney will find storage unit that has at least 10MB storage capacity and meet dispersed error coding storage capabilities (e.g. reliability, bandwidth capacity, storage capacity, cost, location, and/or performance).
For completeness, “minimum storage parameters” can be interpreted as data size as factor and calculated database storage requirement , where “dispersed error coding storage capabilities” can be interpreted meeting data size and calculated database storage requirement (e.g. capable to store data in such size). If the data size is 10 MB, the dispersed error coding storage capabilities is to find storage units that have 10MB or more storage capacity.
Further above reasons, Sawhney teaches “determining, based on the dispersed error coding storage capabilities of the plurality of storage network storage units and the minimum storage parameters, candidate storage units for the storage request;” (Sawhney: column 1, line 10-column 2, line 4, “In some examples, the server may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy. This criteria may be based at least in part on the reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system, the monetary costs associated with storing data on a particular storage system, the location of a particular storage system relative to the client device (as determined, e.g., by the number of hops between the client device and the storage system), the performance of a particular storage system (as determined, e.g., by the access and response times of a particular storage system), at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), at least one characteristic of the client device (e.g., whether the client device is of a specific device type, such as a mobile phone or desktop), at least one characteristic of a user of the client device, and/or any other criteria that may be used to identify storage systems suitable for storing the data object.” Where “minimum storage requirements” is broadly interpreted as “reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system”
column 8, line 10, lines 40-55, “At step 406, the systems described herein may identify, based at least in part on the data-placement policy accessed in step 404, a plurality of storage systems (at least one of which may include a third-party Internet-based stored system) for storing the data object identified in step 402. For example, data-management module 108 in FIG. 1 (which may, as detailed above, represent a portion of data-management server 206 in FIGS. 2 and 3) may determine, by applying data-placement policy 132 in FIG. 1 to storage systems 212(1)-(N) and/or 222(1)-(N), that Internet-based storage system 212(1) and storage system 222(1) satisfy the policy's criteria for storing the data object identified in step 402.”);
selecting storage units of the candidate storage units to provide selected storage units (Sawhney: column 1, line 10-column 2, line 4, “In some examples, the server may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy. This criteria may be based at least in part on the reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system, the monetary costs associated with storing data on a particular storage system, the location of a particular storage system relative to the client device (as determined, e.g., by the number of hops between the client device and the storage system), the performance of a particular storage system (as determined, e.g., by the access and response times of a particular storage system), at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), at least one characteristic of the client device (e.g., whether the client device is of a specific device type, such as a mobile phone or desktop), at least one characteristic of a user of the client device, and/or any other criteria that may be used to identify storage systems suitable for storing the data object.”
column 8, line 10, lines 40-55, “At step 406, the systems described herein may identify, based at least in part on the data-placement policy accessed in step 404, a plurality of storage systems (at least one of which may include a third-party Internet-based stored system) for storing the data object identified in step 402. For example, data-management module 108 in FIG. 1 (which may, as detailed above, represent a portion of data-management server 206 in FIGS. 2 and 3) may determine, by applying data-placement policy 132 in FIG. 1 to storage systems 212(1)-(N) and/or 222(1)-(N), that Internet-based storage system 212(1) and storage system 222(1) satisfy the policy's criteria for storing the data object identified in step 402.”
Column 10, lines 33-57, “…data-management module 108 may instruct the client device to store the encoded data generated by the error-correction algorithm on the storage systems identified in step 406. For example, data-management module 108 may instruct client device 202(1) to disperse fragments 516(1)-(N) and 516(N+1)-(N+M) among both Internet-based storage system 212(1) and storage system 222(1) in FIGS. 2 and 3. In some examples, data-management module 108 may instruct client device 202(1) to allocate the disbursement of these encoded fragments between Internet-based storage system 212(1) and storage system 222(1) based on, or in accordance with, data-placement policy 132 in FIG. 1. As detailed above, data-placement policy 132 may allocate or disperse the storage of data objects or fragments of data objects based on the reliability, bandwidth capacity, storage capacity, monetary cost, location, and/or performance of storage systems and/or the characteristics of the data object in question, the client device in question, a user of the client device in question, and/or an organization associated with the user of the client device in question…,” Figs. 4-5).
If “the minimum storage parameters” and “dispersed error coding storage capabilities” have different meanings that is different than examiner’s interpretations, applicants are suggested to further clarify “the minimum storage parameters” and “dispersed error coding storage capabilities” are distinct/unrelated to each other.
For the above reasons, the rejections are maintained.
Priority
The instant application claims benefit of the filing date and priority (continuation) to the U.S. Non-Provisional Patent Application SN: 18401819, filed on 02 January 2024, which claims the benefit of U.S. Non-Provisional Patent Application SN 16935626, filed on 22 July 2020, which claims the benefit of U.S. Non-Provisional Patent Application SN 12942721, filed on 09 November 2010. which claims the benefit of U.S. Provisional Patent Application SN 61299075, filed on 28 January 2010. Accordingly, the filing date of the Provisional Patent Application (28 January 2010) is considered the effective filing date for the examination of the instant application.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1-17 rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-5 of U.S. Patent No. 8522113. Although the claims at issue are not identical, they are not patentably distinct from each other because:
Instant application:
Pat. No.: 8522113
1. A method for execution by one or more processing modules of a computing device of a storage network, the method comprises:
receiving a storage request that includes metadata and data;
determining, based on the metadata, minimum storage parameters for storing the data;
determining dispersed error coding storage capabilities for a plurality of storage network storage units;
determining, based on the dispersed error coding storage capabilities of the plurality of storage network storage units and the minimum storage parameters, candidate storage units for the storage request;
selecting storage units of the candidate storage units to provide selected storage units;
dispersed storage error encoding at least a portion of the data in accordance with at least the minimum storage parameters to produce a set of encoded data slices; and
sending the set of encoded data slices to the selected storage units for storage therein.
2. The method of claim 1, wherein the metadata includes at least one of:a requester identifier (ID) of a requesting device;a data ID;a data type;a data size;a storage requirement; a performance indicator;a security indicator; and a priority indicator.
3. The method of claim 1 further comprises: determining a base-line set of error coding dispersal storage function parameters.
4. The method of claim 1, wherein the determining the dispersed error coding capabilities comprises at least one of:
selecting a slicing pillar width and read threshold pair from a plurality of slicing pillar width and read threshold pairings based on a performance indicator;
selecting an encryption method from a plurality of encryption methods based on a security indicator;
selecting an encryption key based on a requester identifier (ID) of a requesting device; and
selecting an error coding method from a plurality of error coding methods based on a data type.
5. The method of claim 1 further comprises:
identifying the candidate storage units based on dispersed error coding storage capabilities compatible with targeted error coding dispersal storage function parameters; and
selecting a storage unit of the plurality of storage units is based on dispersed error coding storage performance characteristics being comparable to the targeted error coding dispersal storage function parameters.
6. The method of claim 1 further comprises: saving a record including information representative of the dispersed error coding capabilities and identifiers of the selected storage units.
1. A method comprises:
receiving a data storage request that includes metadata and data;
determining a base-line set of error coding dispersal storage function parameters based on the metadata;
identifying candidate dispersed storage (DS) units based on dispersed error coding storage capabilities compatible with the base-line set of error coding dispersal storage function parameters;
selecting DS units of the candidate DS units based on the metadata and on dispersed error coding storage performance characteristics being comparable to a desired dispersed error coding storage performance level to produce selected DS units;
dispersed storage error encoding the data in accordance with at least a representation of the base-line set of error coding dispersal storage function parameters to produce a set of encoded data slices; and
sending the set of encoded data slices to the selected DS units for storage therein.
2. The method of claim 1, wherein the metadata includes at least one of: a requester identifier (ID) of a requesting device; a data ID; a data type; a data size; a storage requirement; identity of the base-line set of error coding dispersal storage function parameters; a performance indicator; a security indicator; and a priority indicator.
3. The method of claim 1 further comprises: obtaining error coding storage capabilities of the selected DS units; and determining a set of error coding dispersal storage function parameters based on the error coding storage capabilities of the selected DS units and the metadata to provide the representation of the base-line set of error coding dispersal storage function parameters.
4. The method of claim 1, wherein the determining of the base-line set of error coding dispersal storage function parameters comprises at least one of: selecting a slicing pillar width and read threshold pair from a plurality of slicing pillar width and read threshold pairings based on a performance indicator; selecting an encryption method from a plurality of encryption methods based on a security indicator; selecting an encryption key based on a requester identifier (ID) of a requesting device; and selecting an error coding method from a plurality of error coding methods based on a data type.
5. The method of claim 1 further comprises: saving a record including the at least the representation of the base-line set of error coding dispersal storage function parameters and identifiers of the selected DS units.
Claims 7-17 are similar to claims 1-6.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of pre-AIA 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a) the invention was known or used by others in this country, or patented or described in a printed publication in this or a foreign country, before the invention thereof by the applicant for a patent.
Claims 1-6 and 12-17 are rejected under pre-AIA 35 U.S.C. 102(a) as being anticipated by Sawhney et al. (U.S. Patent No.: US 8370312, hereinafter Sawhney).
For claim 1, Sawhney discloses a method for execution by one or more processing modules of a computing device of a storage network, the method comprises:
receiving a storage request that includes metadata and data (Sawhney: column 1, line 10-column 2, line 4, “In some examples, the server may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy. This criteria may be based at least in part on the reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system, the monetary costs associated with storing data on a particular storage system, the location of a particular storage system relative to the client device (as determined, e.g., by the number of hops between the client device and the storage system), the performance of a particular storage system (as determined, e.g., by the access and response times of a particular storage system), at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), at least one characteristic of the client device (e.g., whether the client device is of a specific device type, such as a mobile phone or desktop), at least one characteristic of a user of the client device, and/or any other criteria that may be used to identify storage systems suitable for storing the data object.”
WHERE “data” is broadly interpretation as “data object”
WHERE “metadata” is broadly interpretation as “at least one characteristic of the data object” (e.g. “a specific file type or is frequently accessed”) or “characteristic of the client device”
column 3, lines 20-30, “…a computer-readable medium may include one or more computer-executable instructions that, when executed by at least one processor of a computing device, may cause the computing device to: 1) receive a request from a client device…for storing a data object, 2) access a data-placement policy that contains criteria for identifying storage systems suitable for storing the data object, 3) identify, based at least in part on the data-placement policy, a plurality of storage systems for storing the data object, at least one of the storage systems including a third-party Internet-based storage system, and then 4) direct the client device to store the data object on the identified storage systems.”
column 5, lines 20-30, “…storage systems (such as storage systems 212(1)-(N) and 222(1)-(N) in FIGS. 2 and 3). Exemplary system 100 may also include policy-management module 106 programmed to access and manage various data-placement and data-access policies, as detailed below…” column 6, lines 24-44, “…As shown in FIG. 2, system 200 may include a plurality of client devices 202(1)-(N) in communication with a data-management server 206 and a plurality of Internet-based storage systems 212(1)-(N) via a network 204. Client devices 202(1)-(N) may also be in communication with a plurality of enterprise-based storage systems 222(1)-(N)…3) identify, based at least in part on the data-placement policy, a plurality of storage systems (such as a subset of storage systems 212(1)-(N) and 222(1)-(N)) for storing the data object, at least one of the storage systems including a third-party Internet-based storage system (such as Internet-based storage systems 212(1)-(N)), and then 4) direct the client device to store the data object on the identified storage systems.” Column 8, lines 55-63, “…perform step 406…data-management module 108 may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy accessed in step 404. For example, data-management module 108 may determine whether storage systems 212(1)-(N) and 222(1)-(N) satisfy criteria relating to reliability, bandwidth capacity, storage capacity, cost, location, and/or performance.”);
determining, based on the metadata, minimum storage parameters for storing the data (Sawhney: column 1, line 10-column 2, line 4, “In some examples, the server may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy. This criteria may be based at least in part on the reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system, the monetary costs associated with storing data on a particular storage system, the location of a particular storage system relative to the client device (as determined, e.g., by the number of hops between the client device and the storage system), the performance of a particular storage system (as determined, e.g., by the access and response times of a particular storage system), at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), at least one characteristic of the client device (e.g., whether the client device is of a specific device type, such as a mobile phone or desktop), at least one characteristic of a user of the client device, and/or any other criteria that may be used to identify storage systems suitable for storing the data object.” Where “minimum storage requirements” is broadly interpreted as “satisfy the criteria of the data-placement policy…reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system”);
determining dispersed error coding storage capabilities for a plurality of storage network storage units; determining, based on the dispersed error coding storage capabilities of the plurality of storage network storage units and the minimum storage parameters, candidate storage units for the storage request (Sawhney: column 1, line 10-column 2, line 4, “In some examples, the server may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy. This criteria may be based at least in part on the reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system, the monetary costs associated with storing data on a particular storage system, the location of a particular storage system relative to the client device (as determined, e.g., by the number of hops between the client device and the storage system), the performance of a particular storage system (as determined, e.g., by the access and response times of a particular storage system), at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), at least one characteristic of the client device (e.g., whether the client device is of a specific device type, such as a mobile phone or desktop), at least one characteristic of a user of the client device, and/or any other criteria that may be used to identify storage systems suitable for storing the data object.” Where “minimum storage requirements” is broadly interpreted as “reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system”
column 8, line 10, lines 40-55, “At step 406, the systems described herein may identify, based at least in part on the data-placement policy accessed in step 404, a plurality of storage systems (at least one of which may include a third-party Internet-based stored system) for storing the data object identified in step 402. For example, data-management module 108 in FIG. 1 (which may, as detailed above, represent a portion of data-management server 206 in FIGS. 2 and 3) may determine, by applying data-placement policy 132 in FIG. 1 to storage systems 212(1)-(N) and/or 222(1)-(N), that Internet-based storage system 212(1) and storage system 222(1) satisfy the policy's criteria for storing the data object identified in step 402.”);
selecting storage units of the candidate storage units to provide selected storage units (Sawhney: column 1, line 10-column 2, line 4, “In some examples, the server may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy. This criteria may be based at least in part on the reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system, the monetary costs associated with storing data on a particular storage system, the location of a particular storage system relative to the client device (as determined, e.g., by the number of hops between the client device and the storage system), the performance of a particular storage system (as determined, e.g., by the access and response times of a particular storage system), at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), at least one characteristic of the client device (e.g., whether the client device is of a specific device type, such as a mobile phone or desktop), at least one characteristic of a user of the client device, and/or any other criteria that may be used to identify storage systems suitable for storing the data object.”
column 8, line 10, lines 40-55, “At step 406, the systems described herein may identify, based at least in part on the data-placement policy accessed in step 404, a plurality of storage systems (at least one of which may include a third-party Internet-based stored system) for storing the data object identified in step 402. For example, data-management module 108 in FIG. 1 (which may, as detailed above, represent a portion of data-management server 206 in FIGS. 2 and 3) may determine, by applying data-placement policy 132 in FIG. 1 to storage systems 212(1)-(N) and/or 222(1)-(N), that Internet-based storage system 212(1) and storage system 222(1) satisfy the policy's criteria for storing the data object identified in step 402.”
Column 10, lines 33-57, “…data-management module 108 may instruct the client device to store the encoded data generated by the error-correction algorithm on the storage systems identified in step 406. For example, data-management module 108 may instruct client device 202(1) to disperse fragments 516(1)-(N) and 516(N+1)-(N+M) among both Internet-based storage system 212(1) and storage system 222(1) in FIGS. 2 and 3. In some examples, data-management module 108 may instruct client device 202(1) to allocate the disbursement of these encoded fragments between Internet-based storage system 212(1) and storage system 222(1) based on, or in accordance with, data-placement policy 132 in FIG. 1. As detailed above, data-placement policy 132 may allocate or disperse the storage of data objects or fragments of data objects based on the reliability, bandwidth capacity, storage capacity, monetary cost, location, and/or performance of storage systems and/or the characteristics of the data object in question, the client device in question, a user of the client device in question, and/or an organization associated with the user of the client device in question…,” Figs. 4-5);
dispersed storage error encoding at least a portion of the data in accordance with at least the minimum storage parameters to produce a set of encoded data slices; and sending the set of encoded data slices to the selected storage units for storage therein (Sawhney: column 1, lines 20-40, “…accessing a data-placement policy that contains criteria for identifying storage systems suitable for storing the data object, 3) identifying, based at least in part on the data-placement policy, a plurality of storage systems for storing the data object…4) directing the client device to store the data object on the identified storage systems” column 1, line 59-column 2, line 4, “…the server may direct the client device to store the data object on the identified storage systems by directing the client device to: 1) encode the data object using an error-correction algorithm and then 2) store encoded data generated by the error-correction algorithm on the identified storage systems.” Where “produce a set of encoded data slices” is broadly interpreted as “encode the data object using an error-correction algorithm …”
Column 8, lines 55-63, “…perform step 406…data-management module 108 may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy accessed in step 404. For example, data-management module 108 may determine whether storage systems 212(1)-(N) and 222(1)-(N) satisfy criteria relating to reliability, bandwidth capacity, storage capacity, cost, location, and/or performance.”
Column 9, line 62-column 10, line 2, “…data-management module 108 may perform step 408 by instructing the client device to encode the data object in question using an error-correction algorithm and then store the encoded data generated by this error-correction algorithm on the storage systems identified in step 406. For example, data-management module 108 may instruct client device 202(1) to encode data object 502 in FIG. 5 using an error-correction algorithm…,” Figs. 4-5, column 13, lines 29-60, “…data-management server 206 may instruct client device to allocate or disperse the storage of data objects or fragments of data objects in accordance with a data-placement policy…”
Column 10, lines 33-57, “…data-management module 108 may instruct the client device to store the encoded data generated by the error-correction algorithm on the storage systems identified in step 406. For example, data-management module 108 may instruct client device 202(1) to disperse fragments 516(1)-(N) and 516(N+1)-(N+M) among both Internet-based storage system 212(1) and storage system 222(1) in FIGS. 2 and 3. In some examples, data-management module 108 may instruct client device 202(1) to allocate the disbursement of these encoded fragments between Internet-based storage system 212(1) and storage system 222(1) based on, or in accordance with, data-placement policy 132 in FIG. 1. As detailed above, data-placement policy 132 may allocate or disperse the storage of data objects or fragments of data objects based on the reliability, bandwidth capacity, storage capacity, monetary cost, location, and/or performance of storage systems and/or the characteristics of the data object in question, the client device in question, a user of the client device in question, and/or an organization associated with the user of the client device in question…,” Figs. 4-5).
For claim 2, Sawhney discloses the method of claim 1, wherein the metadata includes at least one of: a requester identifier (ID) of a requesting device; a data ID; a data type; a data size; a storage requirement; a performance indicator; a security indicator; and a priority indicator (Sawhney: column 1, line 10-column 2, line 4, “In some examples, the server may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy. This criteria may be based at least in part on the reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system, the monetary costs associated with storing data on a particular storage system, the location of a particular storage system relative to the client device (as determined, e.g., by the number of hops between the client device and the storage system), the performance of a particular storage system (as determined, e.g., by the access and response times of a particular storage system), at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), at least one characteristic of the client device (e.g., whether the client device is of a specific device type, such as a mobile phone or desktop), at least one characteristic of a user of the client device, and/or any other criteria that may be used to identify storage systems suitable for storing the data object.” Where “data size” is broadly interpreted as “storage capacity” criteria because when the system determines which storage is large enough to store the data, the system must compare “data size” with “storage capacity” of each storage, in order).
For claim 3, Sawhney discloses the method of claim 1 further comprises: determining a base-line set of error coding dispersal storage function parameters (Sawhney: column 10, lines 3-15, “…The term "error-correction algorithm," as used herein, generally refers to any type or form of tool, algorithm, or code for generating redundant data. Examples of error-correction algorithms include, without limitation, erasure-coding algorithms, such as Reed-Solomon erasure-coding algorithms. In some examples, the level of redundancy introduced by such error-correction algorithms may be based at least in part on the data-placement policy accessed in step 404. For example, data-placement policy 132 in FIG. 1 may specify the number of redundant fragments to be generated when erasure-encoding a data object.”
column 10, lines 50-65, “…data-management module 108 may determine that a data object identified in step 402 represents a file of a specific file type (e.g., a multimedia file, such as a .jpeg file, an .mpeg file, an .avi file, or the like) capable of supporting graded quality-of-access. In this example, data-management module 108 may instruct client device 202(1) to encode the data object using a layered-coding algorithm or other algorithm that enables graded quality-of-access. Data-management module 108 may then instruct client device 202(1) to store encoded data generated by this layered-coding algorithm on the storage systems identified in step 406”).
For claim 4, Sawhney discloses the method of claim 1, wherein the determining the dispersed error coding capabilities comprises at least one of: selecting a slicing pillar width and read threshold pair from a plurality of slicing pillar width and read threshold pairings based on a performance indicator; selecting an encryption method from a plurality of encryption methods based on a security indicator; selecting an encryption key based on a requester identifier (ID) of a requesting device; and selecting an error coding method from a plurality of error coding methods based on a data type (Sawhney: column 10, lines 3-15, “…The term "error-correction algorithm," as used herein, generally refers to any type or form of tool, algorithm, or code for generating redundant data. Examples of error-correction algorithms include, without limitation, erasure-coding algorithms, such as Reed-Solomon erasure-coding algorithms. In some examples, the level of redundancy introduced by such error-correction algorithms may be based at least in part on the data-placement policy accessed in step 404. For example, data-placement policy 132 in FIG. 1 may specify the number of redundant fragments to be generated when erasure-encoding a data object.”
column 10, lines 50-65, “…data-management module 108 may determine that a data object identified in step 402 represents a file of a specific file type (e.g., a multimedia file, such as a .jpeg file, an .mpeg file, an .avi file, or the like) capable of supporting graded quality-of-access. In this example, data-management module 108 may instruct client device 202(1) to encode the data object using a layered-coding algorithm or other algorithm that enables graded quality-of-access. Data-management module 108 may then instruct client device 202(1) to store encoded data generated by this layered-coding algorithm on the storage systems identified in step 406”).
For claim 5, Sawhney discloses the method of claim 1 further comprises:
identifying the candidate storage units based on dispersed error coding storage capabilities compatible with targeted error coding dispersal storage function parameters (Sawhney: column 1, line 10-column 2, line 4, “In some examples, the server may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy. This criteria may be based at least in part on the reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system, the monetary costs associated with storing data on a particular storage system, the location of a particular storage system relative to the client device (as determined, e.g., by the number of hops between the client device and the storage system), the performance of a particular storage system (as determined, e.g., by the access and response times of a particular storage system), at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), at least one characteristic of the client device (e.g., whether the client device is of a specific device type, such as a mobile phone or desktop), at least one characteristic of a user of the client device, and/or any other criteria that may be used to identify storage systems suitable for storing the data object.” WHERE “parameters” is broadly interpreted as “criteria”
column 10, lines 3-15, “…The term "error-correction algorithm," as used herein, generally refers to any type or form of tool, algorithm, or code for generating redundant data. Examples of error-correction algorithms include, without limitation, erasure-coding algorithms, such as Reed-Solomon erasure-coding algorithms. In some examples, the level of redundancy introduced by such error-correction algorithms may be based at least in part on the data-placement policy accessed in step 404. For example, data-placement policy 132 in FIG. 1 may specify the number of redundant fragments to be generated when erasure-encoding a data object.” column 10, lines 50-65, “…data-management module 108 may determine that a data object identified in step 402 represents a file of a specific file type (e.g., a multimedia file, such as a .jpeg file, an .mpeg file, an .avi file, or the like) capable of supporting graded quality-of-access. In this example, data-management module 108 may instruct client device 202(1) to encode the data object using a layered-coding algorithm or other algorithm that enables graded quality-of-access. Data-management module 108 may then instruct client device 202(1) to store encoded data generated by this layered-coding algorithm on the storage systems identified in step 406”); and
selecting a storage unit of the plurality of storage units is based on dispersed error coding storage performance characteristics being comparable to the targeted error coding dispersal storage function parameters (Sawhney: column 1, line 10-column 2, line 4, “In some examples, the server may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy. This criteria may be based at least in part on the reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system, the monetary costs associated with storing data on a particular storage system, the location of a particular storage system relative to the client device (as determined, e.g., by the number of hops between the client device and the storage system), the performance of a particular storage system (as determined, e.g., by the access and response times of a particular storage system), at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), at least one characteristic of the client device (e.g., whether the client device is of a specific device type, such as a mobile phone or desktop), at least one characteristic of a user of the client device, and/or any other criteria that may be used to identify storage systems suitable for storing the data object.” WHERE “parameters” is broadly interpreted as “criteria”
column 10, lines 3-15, “…The term "error-correction algorithm," as used herein, generally refers to any type or form of tool, algorithm, or code for generating redundant data. Examples of error-correction algorithms include, without limitation, erasure-coding algorithms, such as Reed-Solomon erasure-coding algorithms. In some examples, the level of redundancy introduced by such error-correction algorithms may be based at least in part on the data-placement policy accessed in step 404. For example, data-placement policy 132 in FIG. 1 may specify the number of redundant fragments to be generated when erasure-encoding a data object.” column 10, lines 50-65, “…data-management module 108 may determine that a data object identified in step 402 represents a file of a specific file type (e.g., a multimedia file, such as a .jpeg file, an .mpeg file, an .avi file, or the like) capable of supporting graded quality-of-access. In this example, data-management module 108 may instruct client device 202(1) to encode the data object using a layered-coding algorithm or other algorithm that enables graded quality-of-access. Data-management module 108 may then instruct client device 202(1) to store encoded data generated by this layered-coding algorithm on the storage systems identified in step 406”).
For claim 6, Sawhney discloses the method of claim 1 further comprises: saving a record including information representative of the dispersed error coding capabilites and identifiers of the selected storage units (Sawhney: column 2, line 40-column 3, line 15, “..the exemplary server-side method described above may also include migrating data from at least one of the storage systems to another storage system due to, for example, the failure of a particular storage system (due to, e.g., hardware failures, disasters, bankruptcy, etc.), the reliability (or lack thereof) of a particular storage system, the bandwidth capacity (or lack thereof) of a particular storage system, the storage capacity (or lack thereof) of a particular storage system, monetary costs associated with storing data on a particular storage system, the performance of a particular storage system, the location of a particular storage system, at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), and/or a combination of one or more of the same…the server-side method may also include creating and storing an object-to-fragment map for the data object that identifies encoded data associated with the data object, a fragment-to-location map for the data object that identifies the location of the encoded data within the identified storage systems, and/or a metadata catalog for the client device, a user of the client device, and/or an organization associated with the user of the client device (such as an employer of the user of the client device). In one example, the server-side method may also include backing up the object-to-fragment map, the fragment-to-location map, and/or the metadata catalog to at least one of the storage systems”
column 11, line 45-column 12, line 4, “…In some examples, data-management server 206 may create and store various maps and/or metadata catalogs. For example, data-management module 108 may create and store: 1) an object-to-fragment map (such as object-to-fragment map 137 in mapping database 126 in FIG. 1) that identifies encoded data associated with data objects, 2) a fragment-to-location map (such as fragment-to-location map 138 in FIG. 1) that identifies the location of encoded data associated with a data object within one or more storage systems, and 3) a metadata catalog (such as metadata catalog 139 FIG. 1) for a client device, a user or client device, and/or an organization associated with the user of the client device. In this example, the metadata catalogs may contain various forms of metadata for identifying policies (such as data-placement policies and data-access policies, as will be described in greater detail below) associated with specific devices, users, and organizations. These metadata catalogs may also identify the various maps (such as object-to-fragment maps and/or fragment-to-location maps) associated with devices, users, and/or organizations. In some examples, data-management module 108 may backup at least a portion of mapping database 126 (e.g., object-to-fragment map 137, fragment-to-location map 138, and/or metadata catalog 139) to at least one of storage systems 212(1)-(N) and 222(1)-(N) in FIGS. 2 and 3…”)
For claim 12, it is a device claim (“a computer”) having similar limitations as recited in claim 1. Thus, claim 12 is also rejected under the same rationale as cited in the rejection of rejected claim 1.
Further, Sawhney discloses additional claim limitations, “an interface,” “a processing module operable to,” and “via the interface” (Sawhney: column 14, lines 50-64, “…exemplary computing system 710 may also include one or more components or elements in addition to processor 714 and system memory 716. For example, as illustrated in FIG. 7, computing system 710 may include a memory controller 718, an Input/Output (I/O) controller 720, and a communication interface 722, each of which may be interconnected via a communication infrastructure 712. Communication infrastructure 712 generally represents any type or form of infrastructure capable of facilitating communication between one or more components of a computing device. Examples of communication infrastructure 712 include, without limitation, a communication bus (such as an ISA, PCI, PCIe, or similar bus) and a network…”).
For claim 13, it is a device claim (“a computer”) having similar limitations as recited in claim 2. Thus, claim 13 is also rejected under the same rationale as cited in the rejection of rejected claim 2.
For claim 14, it is a device claim (“a computer”) having similar limitations as recited in claims 1 and 3-4. Thus, claim 14 is also rejected under the same rationale as cited in the rejection of rejected claims 1 and 3-4.
For claim 15, it is a device claim (“a computer”) having similar limitations as recited in claim 4. Thus, claim 15 is also rejected under the same rationale as cited in the rejection of rejected claim 4.
For claim 16, it is a device claim (“a computer”) having similar limitations as recited in claim 5. Thus, claim 16 is also rejected under the same rationale as cited in the rejection of rejected claim 5.
For claim 17, it is a device claim (“a computer”) having similar limitations as recited in claim 7. Thus, claim 17 is also rejected under the same rationale as cited in the rejection of rejected claim 7.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent may not be obtained though the invention is not identically disclosed or described as set forth in section 102 of this title, if the differences between the subject matter sought to be patented and the prior art are such that the subject matter as a whole would have been obvious at the time the invention was made to a person having ordinary skill in the art to which said subject matter pertains. Patentability shall not be negatived by the manner in which the invention was made.
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
Claims 7-11 are rejected under pre-AIA 35 U.S.C. 103(a) as being unpatentable over Sawhney et al. (U.S. Patent No.: US 8370312, hereinafter Sawhney), in view of Benhase et al. (U.S. Pub. No.: US 20110010514, hereinafter Benhase).
For clam 7, Sawhney discloses a method comprises:
receiving a data storage request that includes metadata and data (Sawhney: column 1, line 10-column 2, line 4, “In some examples, the server may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy. This criteria may be based at least in part on the reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system, the monetary costs associated with storing data on a particular storage system, the location of a particular storage system relative to the client device (as determined, e.g., by the number of hops between the client device and the storage system), the performance of a particular storage system (as determined, e.g., by the access and response times of a particular storage system), at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), at least one characteristic of the client device (e.g., whether the client device is of a specific device type, such as a mobile phone or desktop), at least one characteristic of a user of the client device, and/or any other criteria that may be used to identify storage systems suitable for storing the data object.” column 3, lines 20-30, “…a computer-readable medium may include one or more computer-executable instructions that, when executed by at least one processor of a computing device, may cause the computing device to: 1) receive a request from a client device…for storing a data object, 2) access a data-placement policy that contains criteria for identifying storage systems suitable for storing the data object, 3) identify, based at least in part on the data-placement policy, a plurality of storage systems for storing the data object, at least one of the storage systems including a third-party Internet-based storage system, and then 4) direct the client device to store the data object on the identified storage systems.”
column 5, lines 20-30, “…storage systems (such as storage systems 212(1)-(N) and 222(1)-(N) in FIGS. 2 and 3). Exemplary system 100 may also include policy-management module 106 programmed to access and manage various data-placement and data-access policies, as detailed below…” column 6, lines 24-44, “…As shown in FIG. 2, system 200 may include a plurality of client devices 202(1)-(N) in communication with a data-management server 206 and a plurality of Internet-based storage systems 212(1)-(N) via a network 204. Client devices 202(1)-(N) may also be in communication with a plurality of enterprise-based storage systems 222(1)-(N)…3) identify, based at least in part on the data-placement policy, a plurality of storage systems (such as a subset of storage systems 212(1)-(N) and 222(1)-(N)) for storing the data object, at least one of the storage systems including a third-party Internet-based storage system (such as Internet-based storage systems 212(1)-(N)), and then 4) direct the client device to store the data object on the identified storage systems.” Column 8, lines 55-63, “…perform step 406…data-management module 108 may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy accessed in step 404. For example, data-management module 108 may determine whether storage systems 212(1)-(N) and 222(1)-(N) satisfy criteria relating to reliability, bandwidth capacity, storage capacity, cost, location, and/or performance.”);
determining a current set of error coding dispersal storage function parameters based on the metadata (Sawhney: column 1, line 10-column 2, line 4, “In some examples, the server may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy. This criteria may be based at least in part on the reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system, the monetary costs associated with storing data on a particular storage system, the location of a particular storage system relative to the client device (as determined, e.g., by the number of hops between the client device and the storage system), the performance of a particular storage system (as determined, e.g., by the access and response times of a particular storage system), at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), at least one characteristic of the client device (e.g., whether the client device is of a specific device type, such as a mobile phone or desktop), at least one characteristic of a user of the client device, and/or any other criteria that may be used to identify storage systems suitable for storing the data object.” Where “minimum storage requirements” is broadly interpreted as “satisfy the criteria of the data-placement policy…reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system”
column 8, line 10, lines 40-55, “At step 406, the systems described herein may identify, based at least in part on the data-placement policy accessed in step 404, a plurality of storage systems (at least one of which may include a third-party Internet-based stored system) for storing the data object identified in step 402. For example, data-management module 108 in FIG. 1 (which may, as detailed above, represent a portion of data-management server 206 in FIGS. 2 and 3) may determine, by applying data-placement policy 132 in FIG. 1 to storage systems 212(1)-(N) and/or 222(1)-(N), that Internet-based storage system 212(1) and storage system 222(1) satisfy the policy's criteria for storing the data object identified in step 402.”);
selecting a first one or more storage units based on the current set of error coding dispersal storage function parameters to produce a current set of selected storage units (Sawhney: column 1, line 10-column 2, line 4, “In some examples, the server may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy. This criteria may be based at least in part on the reliability of a particular storage system (e.g., historical uptime, etc.), the bandwidth or storage capacity of a particular storage system, the monetary costs associated with storing data on a particular storage system, the location of a particular storage system relative to the client device (as determined, e.g., by the number of hops between the client device and the storage system), the performance of a particular storage system (as determined, e.g., by the access and response times of a particular storage system), at least one characteristic of the data object (e.g., whether the data object is of a specific file type or is frequently accessed), at least one characteristic of the client device (e.g., whether the client device is of a specific device type, such as a mobile phone or desktop), at least one characteristic of a user of the client device, and/or any other criteria that may be used to identify storage systems suitable for storing the data object.”
column 8, line 10, lines 40-55, “At step 406, the systems described herein may identify, based at least in part on the data-placement policy accessed in step 404, a plurality of storage systems (at least one of which may include a third-party Internet-based stored system) for storing the data object identified in step 402. For example, data-management module 108 in FIG. 1 (which may, as detailed above, represent a portion of data-management server 206 in FIGS. 2 and 3) may determine, by applying data-placement policy 132 in FIG. 1 to storage systems 212(1)-(N) and/or 222(1)-(N), that Internet-based storage system 212(1) and storage system 222(1) satisfy the policy's criteria for storing the data object identified in step 402.”
Column 10, lines 33-57, “…data-management module 108 may instruct the client device to store the encoded data generated by the error-correction algorithm on the storage systems identified in step 406. For example, data-management module 108 may instruct client device 202(1) to disperse fragments 516(1)-(N) and 516(N+1)-(N+M) among both Internet-based storage system 212(1) and storage system 222(1) in FIGS. 2 and 3. In some examples, data-management module 108 may instruct client device 202(1) to allocate the disbursement of these encoded fragments between Internet-based storage system 212(1) and storage system 222(1) based on, or in accordance with, data-placement policy 132 in FIG. 1. As detailed above, data-placement policy 132 may allocate or disperse the storage of data objects or fragments of data objects based on the reliability, bandwidth capacity, storage capacity, monetary cost, location, and/or performance of storage systems and/or the characteristics of the data object in question, the client device in question, a user of the client device in question, and/or an organization associated with the user of the client device in question…,” Figs. 4-5);
determining whether the current set of selected storage units and the current set of error coding dispersal storage function parameters provides a desired dispersed error coding storage performance level; when the current set of selected storage units and the current set of error coding dispersal storage function parameters provide the desired dispersed error coding storage performance level, for a second one or more storage units (Sawhney: column 1, lines 20-40, “…accessing a data-placement policy that contains criteria for identifying storage systems suitable for storing the data object, 3) identifying, based at least in part on the data-placement policy, a plurality of storage systems for storing the data object…4) directing the client device to store the data object on the identified storage systems” column 1, line 59-column 2, line 4, “…the server may direct the client device to store the data object on the identified storage systems by directing the client device to: 1) encode the data object using an error-correction algorithm and then 2) store encoded data generated by the error-correction algorithm on the identified storage systems.” Where “produce a set of encoded data slices” is broadly interpreted as “encode the data object using an error-correction algorithm …”
Column 8, lines 55-63, “…perform step 406…data-management module 108 may identify storage systems for storing the data object by identifying storage systems that satisfy the criteria of the data-placement policy accessed in step 404. For example, data-management module 108 may determine whether storage systems 212(1)-(N) and 222(1)-(N) satisfy criteria relating to reliability, bandwidth capacity, storage capacity, cost, location, and/or performance.”
Column 9, line 62-column 10, line 2, “…data-management module 108 may perform step 408 by instructing the client device to encode the data object in question using an error-correction algorithm and then store the encoded data generated by this error-correction algorithm on the storage systems identified in step 406. For example, data-management module 108 may instruct client device 202(1) to encode data object 502 in FIG. 5 using an error-correction algorithm…,” Figs. 4-5, column 13, lines 29-60, “…data-management server 206 may instruct client device to allocate or disperse the storage of data objects or fragments of data objects in accordance with a data-placement policy…”
Column 10, lines 33-57, “…data-management module 108 may instruct the client device to store the encoded data generated by the error-correction algorithm on the storage systems identified in step 406. For example, data-management module 108 may instruct client device 202(1) to disperse fragments 516(1)-(N) and 516(N+1)-(N+M) among both Internet-based storage system 212(1) and storage system 222(1) in FIGS. 2 and 3. In some examples, data-management module 108 may instruct client device 202(1) to allocate the disbursement of these encoded fragments between Internet-based storage system 212(1) and storage system 222(1) based on, or in accordance with, data-placement policy 132 in FIG. 1. As detailed above, data-placement policy 132 may allocate or disperse the storage of data objects or fragments of data objects based on the reliability, bandwidth capacity, storage capacity, monetary cost, location, and/or performance of storage systems and/or the characteristics of the data object in question, the client device in question, a user of the client device in question, and/or an organization associated with the user of the client device in question…,” Figs. 4-5).
However, Sawhney does not explicitly disclose entering a loop, wherein the loop includes: repeating the loop
Benhase discloses further comprises: saving a record including information representative of the targeted error coding dispersal storage function parameters and identifiers of the selected storage units (Benhase: paragraph [0047], “…to optimize the location of data segments within a tiered storage system so as to make efficient use of the varying performance characteristics of the various tiers of storage devices within the tiered storage system.”
paragraph [0096], “…The operation shown in FIG. 5 may be repeated for each data segment being monitored,”
paragraph [0098] “If so, then counter values for storage devices and storage controllers of the target tier, i.e. the tier to which the data segment is to be moved, are retrieved (step 640). A prediction of the activity demand on the target tier is generated based on the counter values associated with the data segment, the storage devices, and the storage controllers (step 645). A determination is made as to whether the prediction is near a maximum value for the tier, i.e. within a given tolerance of a maximum activity demand value for the tier (step 650). If not, then the data segment is moved to an appropriate storage device, i.e. one having sufficient available capacity and activity demand on both the storage device and its associated storage controller, in the target tier (step 655). If the prediction is near a maximum value, then a plurality of tiers in the tiered storage system undergo a rebalancing operation to rebalance the activity demands of the tiers such that the data segment may be moved to an appropriate tier (step 660). The operation then terminates. Again, this operation may be performed repeatedly for each data segment being monitored”)
It would have been obvious to one of ordinary skill in the art at the time the invention was made to improve upon “Systems And Methods For Using Cloud-based Storage To Optimize Data-storage Operations” as taught by Sawhney by implementing “Adjusting Location of Tiered Storage Residence Based on Usage Patterns” as taught by Benhase, because it would provide Sawhney’s method with the enhanced capability of “…to make efficient use of the varying performance characteristics of the various tiers of storage devices within the tiered storage system.” (Benhase: Paragraph [0047]).
For claim 8, it is a method claim having similar limitations as recited in claim 2. Thus, claim 8 is also rejected under the same rationale as cited in the rejection of rejected claim 2.
For claim 9, it is a method claim having similar limitations as recited in claim 4. Thus, claim 9 is also rejected under the same rationale as cited in the rejection of rejected claim 4.
For claim 10, it is a method claim having similar limitations as recited in claim 5. Thus, claim 10 is also rejected under the same rationale as cited in the rejection of rejected claim 5.
For claim 11, it is a method claim having similar limitations as recited in claim 6. Thus, claim 11 is also rejected under the same rationale as cited in the rejection of rejected claim 6.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to YU ZHAO whose telephone number is (571)270-3427. The examiner can normally be reached Monday-Friday 9AM-5PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Sherief Badawi can be reached at (571) 272-9782. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/YU ZHAO/Primary Examiner, Art Unit 2169