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 .
Priority
Applicant’s claim for the benefit of a prior-filed application, 17/978901 filed on 11/01/2022, under 35 U.S.C. 119(e) or under 35 U.S.C. 120, 121, 365(c), or 386(c) is acknowledged.
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-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claim 1-20 of U.S. Patent No.US12,271,613 in view of Yueh (US2012/0221817), hereinafter Yueh. Although the claims at issue are not identical, they are not patentably distinct from each other for the reasons below. Claims 1-12 of instant applicant are analyzed as examples. Claims 13 and 20 recite limitations similar to those of claim 1. Claim 14 recites limitations similar to those of claim 2. Claim 15 recites limitations similar to those of claim 3. Claim 16 recites limitations similar to those of claim 10. Claim 17 recites limitations similar to those of claim 11. Claim 18 recites limitations similar to those of claim 4, and claim 19 recites limitations similar to those of claim 5.
Instant Application 19/040,682
US Patent 12,271,613
Claim 1. A method by a data management system, comprising:
generating, prior to obtaining a first snapshot of a first virtual machine and after obtaining a plurality of snapshots of one or more virtual machines, a first composite hash associated with a plurality of data blocks of the first virtual machine; and
obtaining, after generating the first composite hash and in accordance with a deduplication base snapshot selected from among the plurality of snapshots of the one or more virtual machines, the first snapshot of the first virtual machine, the deduplication base snapshot selected based at least in part on a second composite hash associated with the deduplication base snapshot being one of a set of second composite hashes associated with the plurality of snapshots that is most similar to the first composite hash associated with the plurality of data blocks of the first virtual machine, wherein obtaining the first snapshot of the first virtual machine comprises:
(see claim 2)
refraining from writing a subset of data blocks of the plurality of data blocks from the first virtual machine to a snapshot file for the first snapshot based at least in part on the subset of data blocks from the first virtual machine matching a corresponding subset of the deduplication base snapshot.
Claim 2. The method of claim 1, wherein obtaining the first snapshot of the first virtual machine further comprises: writing a second subset of data blocks of the plurality of data blocks from the first virtual machine to the snapshot file for the first snapshot based at least in part on the second subset of data blocks from the first virtual machine being different from a second corresponding subset of the deduplication base snapshot.
Claim 1. A method, comprising:
determining, by a data management system, to obtain a first snapshot of a first virtual machine, the first virtual machine storing a plurality of data blocks;
selecting, prior to obtaining the first snapshot of the first virtual machine and from among a plurality of previously obtained snapshots of one or more virtual machines, a second snapshot of a second virtual machine to use for deduplication of the first snapshot of the first virtual machine, wherein selecting the second snapshot is based at least in part on a second composite hash associated with the second snapshot being one of a set of second composite hashes associated with the plurality of previously obtained snapshots that is most similar to a first composite hash associated with the plurality of data blocks; and
obtaining the first snapshot of the first virtual machine after selecting the second snapshot of the second virtual machine to use for deduplication, wherein obtaining the first snapshot of the first virtual machine comprises:
writing a first subset of data blocks of the plurality of data blocks from the first virtual machine to a snapshot file for the first snapshot based at least in part on the first subset of data blocks from the first virtual machine being different from a first corresponding subset of the second snapshot; and
refraining from writing a second subset of data blocks of the plurality of data blocks from the first virtual machine to the snapshot file for the first snapshot based at least in part on the second subset of data blocks from the first virtual machine matching a second corresponding subset of the second snapshot.
Claim 3. The method of claim 1, wherein generating the first composite hash comprises:
generating, after determining to obtain the first snapshot of the first virtual machine, the first composite hash comprising a plurality of hash values that represent data stored in the first virtual machine at a corresponding plurality of offsets.
Claim 2. The method of claim 1, further comprising:
generating, after determining to obtain the first snapshot of the first virtual machine, the first composite hash comprising a plurality of hash values that represent data stored in the first virtual machine at a corresponding plurality of offsets.
Claim 4. The method of claim 1, wherein generating the first composite hash comprises:
retrieving respective subsets of data from the first virtual machine at a plurality of offsets associated with the data; and
generating a plurality of hash values of the first composite hash based at least in part on the respective subsets of the data retrieved from the plurality of offsets.
Claim 3. The method of claim 2, wherein generating the first composite hash comprises:
retrieving respective subsets of the data from the first virtual machine at the plurality of offsets; and
generating the plurality of hash values based at least in part on the respective subsets of the data retrieved from the plurality of offsets.
Claim 5. The method of claim 1, further comprising:
comparing the first composite hash associated with the first snapshot of the first virtual machine with the set of second composite hashes associated with the plurality of snapshots of the one or more virtual machines; and
selecting, from among the set of second composite hashes and based at least in part on the comparing, the second composite hash that is most similar to the first composite hash.
Claim 4. The method of claim 2, further comprising:
comparing the first composite hash associated with the first snapshot of the first virtual machine with the set of second composite hashes associated with the plurality of previously obtained snapshots of the one or more virtual machines; and
selecting, from among the set of second composite hashes and based at least in part on the comparing, the second composite hash that is most similar to the first composite hash.
Claim 6. The method of claim 5, further comprising:
determining, based at least in part on the comparing, a respective quantity of matching hash values included in each of the set of second composite hashes, the respective quantities of matching hash values comprising hash values that are the same as at least one hash value of a plurality of hash values of the first composite hash, wherein determining that the second composite hash is most similar is based at least in part on the respective quantity of matching hash values included in the selected second composite hash being greater than the respective quantities of matching hash values included in other second composite hashes of the set of second composite hashes.
Claim 5. The method of claim 4, further comprising:
determining, based at least in part on the comparing, a respective quantity of matching hash values included in each of the set of second composite hashes, the respective quantities of matching hash values comprising hash values that are the same as at least one hash value of the plurality of hash values of the first composite hash, wherein determining that the second composite hash is most similar is based at least in part on the respective quantity of matching hash values included in the selected second composite hash being greater than the respective quantities of matching hash values included in other second composite hashes of the set of second composite hashes.
Claim 7. The method of claim 5, further comprising:
determining, based at least in part on the comparing, a respective quantity of matching hash values included in each of the set of second composite hashes, the respective quantities of matching hash values comprising hash values that are the same as at least one hash value of a plurality of hash values of the first composite hash, wherein selecting the second composite hash is based at least in part on the respective quantity of matching hash values included in the selected second composite hash being greater than or equal to a threshold quantity
Claim 6. The method of claim 4, further comprising:
determining, based at least in part on the comparing, a respective quantity of matching hash values included in each of the set of second composite hashes, the respective quantities of matching hash values comprising hash values that are the same as at least one hash value of the plurality of hash values of the first composite hash, wherein selecting the second composite hash is based at least in part on the respective quantity of matching hash values included in the selected second composite hash being greater than or equal to a threshold quantity.
Claim 8. The method of claim 5, further comprising:
Storing, after obtaining the first snapshot, the first composite hash in a repository associated with the data management system, wherein the set of second composite hashes associated with the plurality of snapshots are stored in the repository associated with the data management system.
Claim 7. The method of claim 4, further comprising:
storing, after obtaining the first snapshot, the first composite hash in a repository associated with the data management system, wherein the set of second composite hashes associated with the plurality of previously obtained snapshots are stored in the repository associated with the data management system.
Claim 9. The method of claim 5,further comprising:
obtaining one or more snapshots of the one or more virtual machines, the one or more snapshots comprising the plurality of snapshots;
generating, based at least in part on obtaining the one or more snapshots, the set of second composite hashes associated with the one or more snapshots of the one or more virtual machines; and
storing the set of second composite hashes in a repository associated with the data management system, wherein comparing the first composite hash with the set of second composite hashes is based at least in part on retrieving the set of second composite hashes from the repository.
Claim 8. The method of claim 4, further comprising:
obtaining one or more snapshots of the one or more virtual machines, the one or more snapshots comprising the plurality of previously obtained snapshots;
generating, based at least in part on obtaining the one or more snapshots, the set of second composite hashes associated with the one or more snapshots of the one or more virtual machines; and
storing the set of second composite hashes in a repository associated with the data management system, wherein comparing the first composite hash with the one or more second composite hashes is based at least in part on retrieving the set of second composite hashes from the repository.
.
Claim 10. The method of claim 1, wherein obtaining the first snapshot of the first virtual machine comprises:
reading data from the first virtual machine, the data comprising the plurality of data blocks;
comparing the plurality of data blocks with corresponding second data blocks of a plurality of second data blocks from the deduplication base snapshot of the one or more virtual machines; and
identifying the subset of data blocks based at least in part on the comparing.
Claim 9. The method of claim 1, wherein obtaining the first snapshot of the first virtual machine comprises:
reading data from the first virtual machine, the data comprising the plurality of data blocks;
comparing the plurality of data blocks with corresponding second data blocks of a plurality of second data blocks from the second snapshot of the second virtual machine; and
identifying the first subset of data blocks and the second subset of data blocks based at least in part on the comparing.
Claim 14. The method of claim 10, further comprising:
generating hash values based at least in part on reading the data from the first virtual machine, wherein the generated hash values represent respective data blocks of the plurality of data blocks from the first virtual machine, and wherein comparing the plurality of data blocks with the corresponding second data blocks from the deduplication base snapshot of the one or more virtual machines comprises:
determining whether the generated hash values that represent the respective data blocks match corresponding second hash values that represent the corresponding second data blocks
Claim 10. The method of claim 9, further comprising:
generating hash values based at least in part on reading the data from the first virtual machine, wherein the generated hash values represent respective data blocks of the plurality of data blocks from the first virtual machine, and wherein comparing the plurality of data blocks with the corresponding second data blocks from the second snapshot of the second virtual machine comprises:
determining whether the generated hash values that represent the respective data blocks are match corresponding second hash values that represent the corresponding second data blocks
Claim 12. The method of claim 1, further comprising:
storing the snapshot file for the first snapshot as part of a chain comprising incremental snapshots in a snapshot storage environment, the chain comprising at least the snapshot file and a second snapshot file associated with the deduplication base snapshot based at least in part on selecting the deduplication base snapshot, wherein the snapshot file depends from the second snapshot file in the chain, and wherein the snapshot file is stored as part of the chain after writing or determining to refrain from writing a total quantity of data blocks from the first virtual machine to the snapshot file.
Claim 11. The method of claim 1, further comprising:
storing the snapshot file for the first snapshot as part of a chain comprising incremental snapshots in a snapshot storage environment, the chain comprising at least the snapshot file and a second snapshot file associated with the second snapshot based at least in part on selecting the second snapshot, wherein the snapshot file depends from the second snapshot file in the chain, and wherein the snapshot file is stored as part of the chain after writing or determining to refrain from writing a total quantity of data blocks from the first virtual machine to the snapshot file.
The limitations recited in claim 1 of instant application are substantially similar as the limitations recited in claim 1 of US Patent 12/271613. The differences between the claim of the instant application and the patent are 1) claim 1 of the patent recites the additional limitation “writing a first subset of data blocks of the plurality of data blocks from the first virtual machine to a snapshot file for the first snapshot based at least in part on the first subset of data blocks from the first virtual machine being different from a first corresponding subset of the second snapshot” (which is substantially similar as claim 2 of instant application); 2) claim 1 of the instant application recites additional limitation “generating, prior to obtaining a first snapshot of a first virtual machine and after obtaining a plurality of snapshots of one or more virtual machines, a first composite hash associated with a plurality of data blocks of the first virtual machine”.
It would have been obvious to a person having ordinary skill in the art to recognize that the additional limitation recited in claim 1 of the patent is a common practice for a deduplication operation and both claim 1 mention about deduplication of snapshots. In regards to the additional limitation recited in claim 1 of the instant application, Yueh teaches generating a first composite hash associated with a plurality data blocks of a source file prior to creating a snapshot of the source file (Yueh, [0001], composite hash; [0025]; [0047], including hashing 404 a file and comparing it 408, 416 to existing hashes in the local hash table 412 and/or master hash table 132; [0059], Prior to data de-duplication (FIG. 8A), the storage system 110 includes original data 802 and at least one previously taken snapshot copy 804 of the original data; [0061]; Fig.7, see composite hash), as the hash values from a snapshot need to be compared with the hash values of the original source. A person of ordinary skill in the art would have been motivated to combine Yueh with the claimed invention because it improves efficiency to perform deduplication on files before the files are stored.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Deshmukh et al. (US8,234,468) teaches an inline deduplication that bypasses duplicated data blocks when writing backup data to a storage volume.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to NANCI N WONG whose telephone number is (571)272-4117. The examiner can normally be reached Monday-Friday 9am -6pm.
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, Arpan Savla can be reached at 571-272-1077. 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.
/NANCI N WONG/Primary Examiner, Art Unit 2137