DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Allowable Subject Matter
Claims 4-6, 10-12, 16-18 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims. The cited prior arts do not disclose the limitations taught by these dependent claims.
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, 7, 13 are provisionally rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1, 7, 13 of copending Application No. 18782482 (reference application) and claims 1, 7, 13 of copending Application No. 19016349 (reference application Although the claims at issue are not identical, they are not patentably distinct from each other because of the following:
Claim 1 of instant application
Claim 1 of Application 18782482
A method comprising:
provisioning access object (AOB) and deduplication object (DOB) services of a deduplication filesystem across a cluster of nodes;
receiving, at a client-side library, a request to restore a file, the file being divided into chunks and the chunks being assigned to similarity groups;
creating a first table mapping offset ranges in the file to the AOB services;
issuing prefetch requests to the AOB services, according to the first table, for chunks of the file corresponding to the offset ranges;
upon the AOB services receiving the prefetch requests, consulting a second table mapping the similarity groups to the Dob services, each DOB service being responsible for reading a chunk of an assigned similarity group from a storage layer of the filesystem;
opening multiple internal read-ahead streams from the AOB services to the DOB services according to the second table, wherein the internal read-ahead streams prefetch the chunks read by the DOB services to populate read-ahead caches maintained at the AOB services, servicing the request using the read-ahead caches.
A method comprising:
receiving, at an access object (AOB) service, a restore stream from a client for a file managed by a deduplication filesystem, the file being represented by a segment tree comprising segments in an upper level referencing chunks of the file, the upper level segments being grouped into similarity groups, and the similarity groups being assigned to deduplication object (DOB) services;
iterating over the upper level segments to open multiple internal read-ahead streams from the AOB service to the DOB services to populate a read-ahead cache maintained at the AOB service, the iterating comprising:
loading an upper level segment of the file;
identifying a similarity group into which the upper level segment has been grouped;
identifying a DOB service having responsibility for the similarity group; and
issuing a prefetch request from the AOB service to the DOB service for the DOB service to retrieve chunks of the file referenced by the upper level segment and populate the read-ahead cache with the retrieved chunks; and
servicing the restore stream using the read-ahead cache.
Claim 1 of instant application
Claim 1 of Application 19016349
A method comprising:
provisioning access object (AOB) and deduplication object (DOB) services of a deduplication filesystem across a cluster of nodes;
receiving, at a client-side library, a request to restore a file, the file being divided into chunks and the chunks being assigned to similarity groups;
creating a first table mapping offset ranges in the file to the AOB services;
issuing prefetch requests to the AOB services, according to the first table, for chunks of the file corresponding to the offset ranges;
upon the AOB services receiving the prefetch requests, consulting a second table mapping the similarity groups to the Dob services, each DOB service being responsible for reading a chunk of an assigned similarity group from a storage layer of the filesystem;
opening multiple internal read-ahead streams from the AOB services to the DOB services according to the second table, wherein the internal read-ahead streams prefetch the chunks read by the DOB services to populate read-ahead caches maintained at the AOB services, servicing the request using the read-ahead caches.
A method comprising:
provisioning access object (AOB) and deduplication object (DOB) services of a deduplication filesystem across a cluster of nodes;
receiving, at a client-side library, a request to restore a file, the file being divided into chunks, the chunks being grouped into similarity groups, and the DOB services owning subsets of the similarity groups;
assigning, by the client-side library, offset ranges of the file to the AOB services such that each offset range assigned to an AOB service hosted on a node corresponds to chunks of a similarity group owned by a DOB service that is also hosted on the node;
issuing prefetch requests to the AOB services according to the assigned offset ranges;
opening multiple internal read-ahead streams from the AOB services to the DOB services, wherein the internal read-ahead streams prefetch the chunks read by the DOB services to populate read-ahead caches maintained at the AOB services, each prefetch from a particular AOB service to a particular DOB service thereby being a local operation because of the offset range assignments; and
servicing the request using the read-ahead caches.
This is a provisional nonstatutory double patenting rejection because the patentably indistinct claims have not in fact been patented.
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 for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-2, 7-8, 13-14 are rejected under 35 U.S.C. 103 as being unpatentable over Shilane (U.S Pub # 20230133361) in view of Madan (U.S Pub # 20230133530).
With regards to claim 1, Shilane discloses a method comprising:
provisioning access object (AOB) and deduplication object (DOB) services of a deduplication filesystem across a cluster of nodes ([0023] access object service and deduplication service. [0059] across a cluster of nodes);
receiving, at a client-side library, a request to restore a file ([0034] restore backup data), the file being divided into chunks and the chunks being assigned to similarity groups ([0048] file’s data segments used to form similarity groups. [0065] distributed to deduplication services);
upon the AOB services receiving the prefetch requests, consulting a second table mapping the similarity groups to the DOB services, each DOB service being responsible for reading a chunk of an assigned similarity group from a storage layer of the filesystem ([0023] uses the similarity group identifier of 483 to route the group of fingerprints numbered 1 to 509 to be deduplicated by the deduplication and compression service which deduplicates groups of fingerprints with similarity group identifiers in the range of 0 to 500. The deduplication and compression service identifies fingerprints numbered 2-7, 11-13, and 17-19, from the group of fingerprints numbered 1 to 509 for the file named Green, as fingerprints which are missing from a local fingerprint index).
Shilane does not disclose however Madan discloses:
creating a first table mapping offset ranges in the file to the AOB services (Madan 20230133530 [0026] To provide faster offset to fingerprint lookup the mapping is stored in a Merkle tree format where the leaf nodes represent data segments and their fingerprints are stored in the parent nodes which are metadata segments. In a Merkle tree, every non-leaf node is labeled with the hash of the labels of its children nodes to allow efficient and secure verification of the contents of large data structures);
issuing prefetch requests to the AOB services, according to the first table, for chunks of the file corresponding to the offset ranges ((0029] A prefetch request issues at a point after an application's read request as defined by a read offset 204 and a prefetch horizon);
opening multiple internal read-ahead streams from the AOB services to the DOB services according to the second table, wherein the internal read-ahead streams prefetch the chunks read by the DOB services to populate read-ahead caches maintained at the AOB services (Madan [0031] prefetching operation 200 can be for any file or data restore process that comprises an application issuing a file open request followed by a plurality of read and write requests and a file close. In this context, the prefetch 200 moves data from a prefetched file into a read-ahead cache to be sent to a read request consumer of the file system. [0059] In general, the sub-batches are all of equal size to facilitate the parallel processing of index lookups for each sub-batch. In addition, the slice size is determined by the locality and certain system parameters such as system load, which may comprise number of streams.); and
servicing the request using the read-ahead caches ([0050] data streams being restored).
It would have been obvious for one of ordinary skill in the art before the date the current invention was effectively filed to have modified Shilane by Madan to open read-ahead streams to prefetch items for a data stream.
One of ordinary skill in the art would have been motivated to make this modification in order to aid restore operations by a read-ahead mechanism (Madan [0003]).
Claims 7 and 13 correspond to claim 1 and are rejected accordingly.
With regards to claim 2, Shilane further discloses:
identifying, at a first AOB service hosted on a first node, a first chunk in a first offset range as belonging to a first similarity group assigned to a first DOB service, the first DOB service being hosted on the first node; opening a first internal read-ahead stream from the first AOB service to the first DOB service ([0077] The fingerprint index 420 maps from <fp, simgroup>-><location where the segment is stored>. The location where the segment is stored consists of several numbers such as object ID, compression region offset, and compression reg); identifying, at the first AOB service, a second chunk in the first offset range as belonging to a second similarity group assigned to a second DOB service, the second DOB service being hosted on a second node; and opening a second internal read-ahead stream from the first AOB service to the second DOB service ([0137] If the generation identifier associated with the first time differs from the generation identifier associated with the second time, the namespace service, the access object service, or the deduplication service optionally restarts at least one communication, block 630. The system can restart at least part of the file copying process for service instances which changed their generation identifier during the process of copying a file).
Claims 8 and 14 correspond to claim 2 and are rejected accordingly.
Claims 3, 9, 15 are rejected under 35 U.S.C. 103 as being unpatentable over Shilane (U.S Pub # 20230133361) in view of Madan (U.S Pub # 20230133530) and in further view of Vasudevan (U.S Pub # 20140075034).
With regards to claim 2, Shilane does not disclose however Vasudevan discloses:
limiting a number of AOB services allowed to participate in the restoration of the file to a threshold number ([0189] throttling controller 920 can control the flow or orders being provisioned. For example, once the threshold limits are set, then the remaining orders can go through the overflow control module).
It would have been obvious for one of ordinary skill in the art before the date the current invention was effectively filed to have modified Shilane and Madan by Vasudevan to control computing resources dedicated towards certain operations.
One of ordinary skill in the art would have been motivated to make this modification in order to provision resources to enable orders (Vasudevan [0010]).
Claims 9 and 15 correspond to claim 3 and are rejected accordingly.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to TONY WU whose telephone number is (571)272-2033. The examiner can normally be reached Monday-Friday (9-5).
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, Sanjiv Shah can be reached at (571) 272-4098. 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.
/TONY WU/ Primary Examiner, Art Unit 2166