Prosecution Insights
Last updated: October 01, 2026
Application No. 17/829,012

OPTIMIZATIONS FOR DATA DEDUPLICATION OPERATIONS

Final Rejection §103
Filed
May 31, 2022
Examiner
AGHARAHIMI, FARHAD
Art Unit
2161
Tech Center
2100 — Computer Architecture & Software
Assignee
Microsoft Technology Licensing, LLC
OA Round
6 (Final)
70%
Grant Probability
Favorable
7-8
OA Rounds
0m
Est. Remaining
85%
With Interview

Examiner Intelligence

Grants 70% — above average
70%
Career Allowance Rate
196 granted / 278 resolved
+15.5% vs TC avg
Moderate +14% lift
Without
With
+14.3%
Interview Lift
resolved cases with interview
Typical timeline
3y 3m
Avg Prosecution
15 currently pending
Career history
313
Total Applications
across all art units

Statute-Specific Performance

§101
13.2%
-26.8% vs TC avg
§103
66.6%
+26.6% vs TC avg
§102
8.4%
-31.6% vs TC avg
§112
8.1%
-31.9% vs TC avg
Black line = Tech Center average estimate • Based on career data from 278 resolved cases

Office Action

§103
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 . Response to Amendment Applicant’s Amendment, filed March 17, 2026, has been fully considered and entered. Accordingly, Claims 1-8, 10-15, and 17-22 are pending in this application. Claims 1, 7, and 14 are Independent Claims. Claim Interpretation In light of paragraph [0077] of the Applicant’s Specification, it is the position of the Examiner that the broadest reasonable interpretation “computer-readable storage medium” of Claims 14, 15, and 17-20 do not include “communications media consisting solely of a modulated data signal, a carrier wave, or a propagated signal, per se.” 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. The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows: 1. Determining the scope and contents of the prior art. 2. Ascertaining the differences between the prior art and the claims at issue. 3. Resolving the level of ordinary skill in the pertinent art. 4. Considering objective evidence present in the application indicating obviousness or nonobviousness. This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention. Claims 1 and 3-6 are rejected under 35 U.S.C. 103 as being unpatentable over Zheng and further in view of Floyd (US Patent No. 9,092,151 B1), Shilane (US Patent No. 9,471,245 B1), and Janakiraman (US Patent No. 8,290,911 B1). Regarding Claim 1, Zheng discloses a method for data deduplication in a storage device, the method comprising: the first block of data having a first reference counter (see Zheng, paragraph [0035], where the reference count file 41 contains an entry for each data block maintained by file server 2, wherein each entry includes a value, REFCOUNT indicating the number of references to that data block; see also paragraph [0035], where a data block which is shared by two files would have a REFCOUNT value of 2; a data block can be shared by more than two files (or other entities), in which case the REFCOUNT value would reflect this accordingly; a data block which is allocated but not shared would have a REFCOUNT value of 1; a data block which is not yet allocated would have a REFCOUNT value of 0); reading content from the first block of data (see Zheng, paragraph [0025], where data blocks that can be shared are identified by computing a fingerprint for each data block to be written to a storage facility and storing the fingerprint with information identifying the data block in an entry in a metadata file, as the data block is being written to the storage facility; a ‘fingerprint’ as the term is used herein, is any information derived from the content of the data block that might uniquely identify the data block); generating a first identifier for the first block of data, wherein the first identifier comprises a first value that is calculated based on the content of the first block of data and uniquely identifies the content of the data (see Zheng, paragraph [0025], where data blocks that can be shared are identified by computing a fingerprint for each data block to be written to a storage facility and storing the fingerprint with information identifying the data block in an entry in a metadata file, as the data block is being written to the storage facility; a ‘fingerprint’ as the term is used herein, is any information derived from the content of the data block that might uniquely identify the data block [emphasis added by Examiner]); identifying a second block of data having a second identifier that is a match for the first identifier, the match indicating that content of the second block of data is identical to the content of the first block of data (see Zheng, paragraph [0060], where at 1102 the process determines from the fingerprints database whether there are any entries with identical fingerprints; the blocks represented by any entries which have identical fingerprints are considered to be potential duplicate blocks). Zheng does not disclose: setting, using a processing system, a first bit value of a first single bit single bit stability tag for a first block of data to indicate that the first block of data is in an unmodified state since previously being read for deduplication purposes; the first block of data having a size that is dictated by a digital storage media of the storage device; the second block of data having a size that is dictated by a digital storage media of the storage device; in response to identifying the second block of data, determining that the first single bit single bit stability tag for the first block of data is set to the first bit value and that a second single bit stability tag for the second block of data is set to the first bit value thereby indicating that the second block of data is in the unmodified state since previously being read for deduplication purposes and that the second block of data is eligible for deduplication, wherein the determining enables a recalculation of the first value and the second value to be omitted; in response to determining that the first single bit single bit stability tag for the first block of data is set to the first bit value and that the second single bit single bit stability tag for the second block of data is set to the first bit value, determining that the second reference counter for the second block of data is greater than zero indicating that one or more files are currently accessing the second block of data; in response to determining that the second reference counter for the second block of data is greater than zero, redirecting a data block reference for each file from the second block of data to the first block of data; in response to redirecting the data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data, decrementing, until the second reference counter is equal to zero, the second reference counter by one and incrementing the first reference counter by one; and deleting the content of the second block of data in response to the second reference counter being equal to zero; and clearing the second single bit single bit stability tag by changing the first bit value to a second bit value in response to deleting the content of the second block of data, thereby indicating that the second block of data is ineligible for deduplication. The combination of Zheng and Floyd discloses: setting, using a processing system, a first bit value of a first single bit single bit stability tag for a first block of data to indicate that the first block of data is in an unmodified state since previously being read for deduplication purposes (see Floyd, column 12, lines 12-14, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification); in response to identifying the second block of data, determining that the first single bit single bit stability tag for the first block of data is set to the first bit value and that a second single bit stability tag for the second block of data is set to the first bit value thereby indicating that the second block of data is in the unmodified state since previously being read for deduplication purposes and that the second block of data is eligible for deduplication, wherein the determining enables a recalculation of the first value and the second value to be omitted (see Floyd, column 12, lines 12-30, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification, and a sequence field (typically a 64-bit integer) that tracks file modifications; at time T=1 (labeled 310), a file ‘/foo’ is stored at inode #1 of the file system; the dirty-bit is set to ‘yes’ to indicate that the file has not been scanned by the deduplication engine 102; further, the sequence number for the file is set to 1; at time T=2 (labeled 310), the file ‘/foo’ is scanned by the deduplication engine 102, setting the dirty bit to ‘no’; the sequence number remains unchanged as the data is not altered by this process; at time T=3 (labeled 330), another file ‘/bar’ shares a ‘chunk’, i.e., data segment, with the file ‘/foo’ at inode #1 having a sequence number of 1; since the sequence numbers are the same, the advice may be acted on by the software layer 108); in response to determining that the first single bit single bit stability tag for the first block of data is set to the first bit value and that the second single bit single bit stability tag for the second block of data is set to the first bit value (see Floyd, column 12, lines 12-30, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification, and a sequence field (typically a 64-bit integer) that tracks file modifications; at time T=1 (labeled 310), a file ‘/foo’ is stored at inode #1 of the file system; the dirty-bit is set to ‘yes’ to indicate that the file has not been scanned by the deduplication engine 102; further, the sequence number for the file is set to 1; at time T=2 (labeled 310), the file ‘/foo’ is scanned by the deduplication engine 102, setting the dirty bit to ‘no’; the sequence number remains unchanged as the data is not altered by this process; at time T=3 (labeled 330), another file ‘/bar’ shares a ‘chunk’, i.e., data segment, with the file ‘/foo’ at inode #1 having a sequence number of 1; since the sequence numbers are the same, the advice may be acted on by the software layer 108), determining that the second reference counter for the second block of data is greater than zero indicating that one or more files are currently accessing the second block of data; (see Zheng, paragraph [0035], where a data block which is shared by two files would have a REFCOUNT value of 2; a data block can be shared by more than two files (or other entities), in which case the REFCOUNT value would reflect this accordingly; a data block which is allocated but not shared would have a REFCOUNT value of 1; a data block which is not yet allocated would have a REFCOUNT value of 0); and clearing the second single bit single bit stability tag by changing the first bit value to a second bit value (see Floyd, column 12, lines 12-30, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification, and a sequence field (typically a 64-bit integer) that tracks file modifications; at time T=1 (labeled 310), a file ‘/foo’ is stored at inode #1 of the file system; the dirty-bit is set to ‘yes’ to indicate that the file has not been scanned by the deduplication engine 102; further, the sequence number for the file is set to 1; at time T=2 (labeled 310), the file ‘/foo’ is scanned by the deduplication engine 102, setting the dirty bit to ‘no’; the sequence number remains unchanged as the data is not altered by this process; at time T=3 (labeled 330), another file ‘/bar’ shares a ‘chunk’, i.e., data segment, with the file ‘/foo’ at inode #1 having a sequence number of 1; since the sequence numbers are the same, the advice may be acted on by the software layer 108) in response to deleting the content of the second block of data, thereby indicating that the second block of data is ineligible for deduplication (see Zheng, paragraph [0035], where a data block which is shared by two files would have a REFCOUNT value of 2; a data block can be shared by more than two files (or other entities), in which case the REFCOUNT value would reflect this accordingly; a data block which is allocated but not shared would have a REFCOUNT value of 1; a data block which is not yet allocated would have a REFCOUNT value of 0). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng with Floyd as they are both directed to deduplication and thus constitutes combining prior art elements according to known methods to yield predictable results (see MPEP 2143(I)(A)). Zheng in view of Floyd does not disclose: the first block of data having a size that is dictated by a digital storage media of the storage device; the second block of data having a size that is dictated by a digital storage media of the storage device; in response to determining that the second reference counter for the second block of data is greater than zero, redirecting a data block reference for each file from the second block of data to the first block of data; in response to redirecting the data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data, decrementing, until the second reference counter is equal to zero, the second reference counter by one and incrementing the first reference counter by one; and deleting the content of the second block of data in response to the second reference counter being equal to zero. Zheng in view of Floyd and Shilane discloses: the first block of data having a size that is dictated by a digital storage media of the storage device (see Shilane, column 3, lines 2-5, where incremental backup of the primary storage may transfer datasets not in the unit of dirty sectors, but in the unit of dirty blocks, where each dirty block includes a number of sectors for the incremental backup [it is the position of the Examiner that blocks being comprised of sectors is not patentably distinguishable from block size dictated by a digital storage media of the storage device]); the second block of data having a size that is dictated by a digital storage media of the storage device (see Shilane, column 3, lines 2-5, where incremental backup of the primary storage may transfer datasets not in the unit of dirty sectors, but in the unit of dirty blocks, where each dirty block includes a number of sectors for the incremental backup [it is the position of the Examiner that blocks being comprised of sectors is not patentably distinguishable from block size dictated by a digital storage media of the storage device]). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng and Floyd with Shilane for the benefit of efficient transfer of modified data (see Shilane, Abstract). Zheng in view of Floyd and Shilane does not disclose: in response to determining that the second reference counter for the second block of data is greater than zero, redirecting a data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data; in response to redirecting the data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data, decrementing, until the second reference counter is equal to zero, the second reference counter by one and incrementing the first reference counter by one; and deleting the content of the second block of data in response to the second reference counter being equal to zero. Zheng in view of Floyd, Shilane, and Janakiraman discloses: in response to determining that the second reference counter for the second block of data is greater than zero, redirecting a data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data (see Janakiraman, column 8, line 49 – column 9, line 11, where Fig. 4 is an example illustrating the mapping relationship between logical block locations within the logical volumes, and physical block locations within a data deduplication system, after a data deduplication-aware copy of a file … a copy manager and a deduplication manager (e.g., copy manager 125 and deduplication manager 135, both of Fig. 1) perform a data deduplication-aware copy of File A 305; afterwards, instead of allocating additional physical block locations, the copy manager allocates File A’ 315, which is mapped by filesystem 210(2) to logical block locations within logical volume 2 120(2) (e.g., logical block locations 4 and 8 of logical volume 2 120(2); the deduplication manager modifies the physical block location metadata and deduplication chains 310(1) and 310(2) to reflect the mapping logical block location 4 of logical volume 2 120(2) to physical block location P1, and logical block location 8 of logical volume 2 120(2) to physical block location P2); in response to redirecting the data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data, decrementing, until the second reference counter is equal to zero, the second reference counter by one and incrementing the first reference counter by one (see Zheng, paragraph [0043], where reference count file 41 is continually updated to reflect events that affect these blocks; for example, if file Foo is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [2,0,0,0], respectively, reflecting that VBN 2 has been freed in addition to VBNs 3 and 4; note that VBN 1 has not yet been freed (i.e., its REFCOUNT value is not yet zero), since VBN 1 is still in use by file BAR, instead the REFCOUNT value for VBN 1 has been decremented from 3 to 2; if file Bar is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [0,0,0,0], respectively); and deleting the content of the second block of data in response to the second reference counter being equal to zero (see Zheng, paragraph [0043], where reference count file 41 is continually updated to reflect events that affect these blocks; for example, if file Foo is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [2,0,0,0], respectively, reflecting that VBN 2 has been freed in addition to VBNs 3 and 4; note that VBN 1 has not yet been freed (i.e., its REFCOUNT value is not yet zero), since VBN 1 is still in use by file BAR, instead the REFCOUNT value for VBN 1 has been decremented from 3 to 2; if file Bar is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [0,0,0,0], respectively; see also paragraph [0059], where information saved in the fingerprints database 43 for each block includes context information such as the value of a consistency point counter at the time the block was written to disk; this context information can be used to detect and delete ‘stale’ fingerprints from the fingerprints database 43; stale fingerprints are fingerprints that corresponds to blocks that have been deleted or overwritten). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng, Floyd, and Shilane with Janakiraman for the benefit of deduplication-aware copying of data from one deduplicated datastore to another deduplicated datastore (see Janakiraman, Abstract). Regarding Claim 3, Zheng in view of Floyd, Shilane, and Janakiraman discloses the method of Claim 1, wherein deleting the content of the second block of data comprises: generating a deduplication eligibility indicator using a data deduplication module (see Zheng, paragraph [0035], where the reference count file 41 contains an entry for each data block maintained by file server 2, wherein each entry includes a value, REFCOUNT indicating the number of references to that data block; see also paragraph [0035], where a data block which is shared by two files would have a REFCOUNT value of 2; a data block can be shared by more than two files (or other entities), in which case the REFCOUNT value would reflect this accordingly; a data block which is allocated but not shared would have a REFCOUNT value of 1; a data block which is not yet allocated would have a REFCOUNT value of 0 [it is the position of the Examiner that the claimed deduplication eligibility indicator is not patentably distinguishable from a block with a REFCOUNT of greater than 0 at least in view of paragraph [0036] of the Applicant’s Specification]), Zheng does not disclose: providing the deduplication eligibility indicator to a file system containing the second block of data; and executing a data deletion command using the file system to free a storage space associated with the second block of data. The combination of Zheng and Janakiraman discloses: providing the deduplication eligibility indicator to a file system containing the second block of data and executing a data deletion command using the file system to free a storage space associated with the second block of data (see Janakiraman, column 8, line 49 – column 9, line 11, where Fig. 4 is an example illustrating the mapping relationship between logical block locations within the logical volumes, and physical block locations within a data deduplication system, after a data deduplication-aware copy of a file … a copy manager and a deduplication manager (e.g., copy manager 125 and deduplication manager 135, both of Fig. 1) perform a data deduplication-aware copy of File A 305; afterwards, instead of allocating additional physical block locations, the copy manager allocates File A’ 315, which is mapped by filesystem 210(2) to logical block locations within logical volume 2 120(2) (e.g., logical block locations 4 and 8 of logical volume 2 120(2); the deduplication manager modifies the physical block location metadata and deduplication chains 310(1) and 310(2) to reflect the mapping logical block location 4 of logical volume 2 120(2) to physical block location P1, and logical block location 8 of logical volume 2 120(2) to physical block location P2 [it is the position of the Examiner that replacing a physical data block on the source drive with a reference to the identical physical data block on the destination drive when copying the block from the source drive to the destination drive is not patentably distinguishable from deleting the second block of data]). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng with Janakiraman for the benefit of deduplication-aware copying of data from one deduplicated datastore to another deduplicated datastore (see Janakiraman, Abstract). Regarding Claim 4, Zheng in view of Floyd, Shilane, and Janakiraman discloses the method of Claim 1, wherein a file system identifies the one or more files that are currently accessing the second block of data (see Zheng, paragraph [0043], where reference count file 41 is continually updated to reflect events that affect these blocks; for example, if file Foo is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [2,0,0,0], respectively, reflecting that VBN 2 has been freed in addition to VBNs 3 and 4; note that VBN 1 has not yet been freed (i.e., its REFCOUNT value is not yet zero), since VBN 1 is still in use by file BAR, instead the REFCOUNT value for VBN 1 has been decremented from 3 to 2; if file Bar is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [0,0,0,0], respectively). Regarding Claim 5, Zheng in view of Floyd, Shilane, and Janakiraman discloses the method of Claim 1, wherein: Zheng does not disclose the first single bit single bit stability tag for the first block of data is cleared by changing from the first bit value to the second bit value in response to detecting a modification of the content of the first block of data. Floyd discloses the first single bit single bit stability tag for the first block of data is cleared by changing from the first bit value to the second bit value in response to detecting a modification of the content of the first block of data (see Floyd, column 12, lines 35-40, where at time T=4 (labeled 350), a new file ‘/baz’ is scanned by the deduplication engine 102, which reports that the file shares a data segment with the file ‘/foo’ at the inode #1 with sequence number 1; however, since the sequence number of the file ‘/foo’ at inode #1 is now 2, the advice is deemed stale). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng with Floyd as they are both directed to deduplication and thus constitutes combining prior art elements according to known methods to yield predictable results (see MPEP 2143(I)(A)). Regarding Claim 6, Zheng in view of Floyd, Shilane, and Janakiraman discloses the method of Claim 5, further comprising: Zheng does not disclose in response to the first single bit single bit stability tag of the first block of data being cleared, generating a new identifier comprising a new value that is calculated for the first block of data based on the modified content of the first block of data. Floyd discloses in response to the first single bit single bit stability tag of the first block of data being cleared, generating a new identifier comprising a new value that is calculated for the first block of data based on the modified content of the first block of data (see Floyd, column 12, lines 35-40, where at time T=4 (labeled 350), a new file ‘/baz’ is scanned by the deduplication engine 102, which reports that the file shares a data segment with the file ‘/foo’ at the inode #1 with sequence number 1; however, since the sequence number of the file ‘/foo’ at inode #1 is now 2, the advice is deemed stale). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng with Floyd as they are both directed to deduplication and thus constitutes combining prior art elements according to known methods to yield predictable results (see MPEP 2143(I)(A)). Claims 7, 8, 10-15, and 17-22 are rejected under 35 U.S.C. 103 as being unpatentable over Zheng, and further in view of Floyd and Janakiraman. Regarding Claim 7, Zheng discloses a system for data deduplication in a storage device, the system comprising: a processing system (see Zheng, Fig. 2, for one or more processors 21); and a computer-readable medium having encoded thereon computer-readable instructions (see Zheng, Claim 41, for an article of manufacture comprising a computer-readable storage medium) that when executed by the processing system cause the system to: the first block of data having a first reference counter (see Zheng, paragraph [0035], where the reference count file 41 contains an entry for each data block maintained by file server 2, wherein each entry includes a value, REFCOUNT indicating the number of references to that data block; see also paragraph [0035], where a data block which is shared by two files would have a REFCOUNT value of 2; a data block can be shared by more than two files (or other entities), in which case the REFCOUNT value would reflect this accordingly; a data block which is allocated but not shared would have a REFCOUNT value of 1; a data block which is not yet allocated would have a REFCOUNT value of 0); reading content from the first block of data (see Zheng, paragraph [0025], where data blocks that can be shared are identified by computing a fingerprint for each data block to be written to a storage facility and storing the fingerprint with information identifying the data block in an entry in a metadata file, as the data block is being written to the storage facility; a ‘fingerprint’ as the term is used herein, is any information derived from the content of the data block that might uniquely identify the data block); generating a first identifier for the first block of data, wherein the first identifier comprises a first value that is calculated based on the content of the first block of data and uniquely identifies the content of the data (see Zheng, paragraph [0025], where data blocks that can be shared are identified by computing a fingerprint for each data block to be written to a storage facility and storing the fingerprint with information identifying the data block in an entry in a metadata file, as the data block is being written to the storage facility; a ‘fingerprint’ as the term is used herein, is any information derived from the content of the data block that might uniquely identify the data block [emphasis added by Examiner]); identifying a second block of data having a second identifier that is a match for the first identifier, the match indicating that content of the second block of data is identical to the content of the first block of data (see Zheng, paragraph [0060], where at 1102 the process determines from the fingerprints database whether there are any entries with identical fingerprints; the blocks represented by any entries which have identical fingerprints are considered to be potential duplicate blocks). Zheng does not disclose: setting a first single bit single bit stability tag for a first block of data to a first bit value indicating that the first block of data is in an unmodified state since previously being read for deduplication purposes, the first block of data having a first reference counter; in response to identifying the second block of data, determine, based at least in part on the match, that the first single bit single bit stability tag for the first block of data is set to the first bit value and that the second single bit single bit stability tag for the first block of data is set to the first bit value and that a second single bit single bit stability tag for the second block of data is set to the first bit value indicating that the second block of data is eligible for deduplication, wherein the determining enables a recalculation of the first cryptographic hash and the second cryptographic hash to be omitted; in response to determining that both the first single bit single bit stability tag and the second single bit single bit stability tag are set to the first bit value, determine that the second reference counter for the second block of data is greater than zero indicating that one or more files are currently accessing the second block of data; in response to determining that the second reference counter for the second block of data is greater than zero, redirecting a data block reference for each file from the second block of data to the first block of data; in response to redirecting the data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data, decrementing, until the second reference counter is equal to zero, the second reference counter by one and incrementing the first reference counter by one; and deleting the content of the second block of data in response to the second reference counter being equal to zero; and clearing the second single bit single bit stability tag by changing the first bit value to a second bit value in response to deleting the content of the second block of data, thereby indicating that the second block of data is ineligible for deduplication. The combination of Zheng and Floyd discloses: setting a first single bit single bit stability tag for a first block of data to a first bit value indicating that the first block of data is in an unmodified state since previously being read for deduplication purposes (see Floyd, column 12, lines 12-14, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification), the first block of data having a first reference counter (see Zheng, paragraph [0035], where a data block which is shared by two files would have a REFCOUNT value of 2; a data block can be shared by more than two files (or other entities), in which case the REFCOUNT value would reflect this accordingly; a data block which is allocated but not shared would have a REFCOUNT value of 1; a data block which is not yet allocated would have a REFCOUNT value of 0); in response to identifying the second block of data, determine, based at least in part on the match, that the first single bit single bit stability tag for the first block of data is set to the first bit value and that the second single bit single bit stability tag for the first block of data is set to the first bit value and that a second single bit single bit stability tag for the second block of data is set to the first bit value indicating that the second block of data is eligible for deduplication, wherein the determining enables a recalculation of the first cryptographic hash and the second cryptographic hash to be omitted (see Floyd, column 12, lines 12-30, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification, and a sequence field (typically a 64-bit integer) that tracks file modifications; at time T=1 (labeled 310), a file ‘/foo’ is stored at inode #1 of the file system; the dirty-bit is set to ‘yes’ to indicate that the file has not been scanned by the deduplication engine 102; further, the sequence number for the file is set to 1; at time T=2 (labeled 310), the file ‘/foo’ is scanned by the deduplication engine 102, setting the dirty bit to ‘no’; the sequence number remains unchanged as the data is not altered by this process; at time T=3 (labeled 330), another file ‘/bar’ shares a ‘chunk’, i.e., data segment, with the file ‘/foo’ at inode #1 having a sequence number of 1; since the sequence numbers are the same, the advice may be acted on by the software layer 108); in response to determining that both the first single bit single bit stability tag and the second single bit single bit stability tag are set to the first bit value (see Floyd, column 12, lines 12-30, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification, and a sequence field (typically a 64-bit integer) that tracks file modifications; at time T=1 (labeled 310), a file ‘/foo’ is stored at inode #1 of the file system; the dirty-bit is set to ‘yes’ to indicate that the file has not been scanned by the deduplication engine 102; further, the sequence number for the file is set to 1; at time T=2 (labeled 310), the file ‘/foo’ is scanned by the deduplication engine 102, setting the dirty bit to ‘no’; the sequence number remains unchanged as the data is not altered by this process; at time T=3 (labeled 330), another file ‘/bar’ shares a ‘chunk’, i.e., data segment, with the file ‘/foo’ at inode #1 having a sequence number of 1; since the sequence numbers are the same, the advice may be acted on by the software layer 108), determine that the second reference counter for the second block of data is greater than zero indicating that one or more files are currently accessing the second block of data (see Zheng, paragraph [0035], where a data block which is shared by two files would have a REFCOUNT value of 2; a data block can be shared by more than two files (or other entities), in which case the REFCOUNT value would reflect this accordingly; a data block which is allocated but not shared would have a REFCOUNT value of 1; a data block which is not yet allocated would have a REFCOUNT value of 0); and clearing the second single bit single bit stability tag by changing the first bit value to a second bit value in response to deleting the content of the second block of data (see Floyd, column 12, lines 12-30, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification, and a sequence field (typically a 64-bit integer) that tracks file modifications; at time T=1 (labeled 310), a file ‘/foo’ is stored at inode #1 of the file system; the dirty-bit is set to ‘yes’ to indicate that the file has not been scanned by the deduplication engine 102; further, the sequence number for the file is set to 1; at time T=2 (labeled 310), the file ‘/foo’ is scanned by the deduplication engine 102, setting the dirty bit to ‘no’; the sequence number remains unchanged as the data is not altered by this process; at time T=3 (labeled 330), another file ‘/bar’ shares a ‘chunk’, i.e., data segment, with the file ‘/foo’ at inode #1 having a sequence number of 1; since the sequence numbers are the same, the advice may be acted on by the software layer 108), thereby indicating that the second block of data is ineligible for deduplication (see Zheng, paragraph [0035], where a data block which is shared by two files would have a REFCOUNT value of 2; a data block can be shared by more than two files (or other entities), in which case the REFCOUNT value would reflect this accordingly; a data block which is allocated but not shared would have a REFCOUNT value of 1; a data block which is not yet allocated would have a REFCOUNT value of 0). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng with Floyd as they are both directed to deduplication and thus constitutes combining prior art elements according to known methods to yield predictable results (see MPEP 2143(I)(A)). Zheng in view of Floyd does not disclose: in response to determining that the second reference counter for the second block of data is greater than zero, redirecting a data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data; in response to redirecting the data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data, decrementing, until the second reference counter is equal to zero, the second reference counter by one and incrementing the first reference counter by one; and deleting the content of the second block of data in response to the second reference counter being equal to zero. Zheng in view of Floyd and Janakiraman discloses: in response to determining that the second reference counter for the second block of data is greater than zero, redirecting a data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data (see Janakiraman, column 8, line 49 – column 9, line 11, where Fig. 4 is an example illustrating the mapping relationship between logical block locations within the logical volumes, and physical block locations within a data deduplication system, after a data deduplication-aware copy of a file … a copy manager and a deduplication manager (e.g., copy manager 125 and deduplication manager 135, both of Fig. 1) perform a data deduplication-aware copy of File A 305; afterwards, instead of allocating additional physical block locations, the copy manager allocates File A’ 315, which is mapped by filesystem 210(2) to logical block locations within logical volume 2 120(2) (e.g., logical block locations 4 and 8 of logical volume 2 120(2); the deduplication manager modifies the physical block location metadata and deduplication chains 310(1) and 310(2) to reflect the mapping logical block location 4 of logical volume 2 120(2) to physical block location P1, and logical block location 8 of logical volume 2 120(2) to physical block location P2); in response to redirecting the data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data, decrementing, until the second reference counter is equal to zero, the second reference counter by one and incrementing the first reference counter by one (see Zheng, paragraph [0043], where reference count file 41 is continually updated to reflect events that affect these blocks; for example, if file Foo is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [2,0,0,0], respectively, reflecting that VBN 2 has been freed in addition to VBNs 3 and 4; note that VBN 1 has not yet been freed (i.e., its REFCOUNT value is not yet zero), since VBN 1 is still in use by file BAR, instead the REFCOUNT value for VBN 1 has been decremented from 3 to 2; if file Bar is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [0,0,0,0], respectively); and deleting the content of the second block of data in response to the second reference counter being equal to zero (see Zheng, paragraph [0043], where reference count file 41 is continually updated to reflect events that affect these blocks; for example, if file Foo is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [2,0,0,0], respectively, reflecting that VBN 2 has been freed in addition to VBNs 3 and 4; note that VBN 1 has not yet been freed (i.e., its REFCOUNT value is not yet zero), since VBN 1 is still in use by file BAR, instead the REFCOUNT value for VBN 1 has been decremented from 3 to 2; if file Bar is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [0,0,0,0], respectively; paragraph [0059], where information saved in the fingerprints database 43 for each block includes context information such as the value of a consistency point counter at the time the block was written to disk; this context information can be used to detect and delete ‘stale’ fingerprints from the fingerprints database 43; stale fingerprints are fingerprints that corresponds to blocks that have been deleted or overwritten). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng and Floyd with Janakiraman for the benefit of deduplication-aware copying of data from one deduplicated datastore to another deduplicated datastore (see Janakiraman, Abstract). Regarding Claim 8, Zheng in view of Floyd and Janakiraman discloses the system of Claim 7, wherein: Zheng does not disclose the second single bit single bit stability tag of the second block of data is cleared by a file system containing the second block of data. Floyd discloses the second single bit stability tag of the second block of data is cleared by a file system containing the second block of data (see Floyd, column 12, lines 35-40, where at time T=4 (labeled 350), a new file ‘/baz’ is scanned by the deduplication engine 102, which reports that the file shares a data segment with the file ‘/foo’ at the inode #1 with sequence number 1; however, since the sequence number of the file ‘/foo’ at inode #1 is now 2, the advice is deemed stale). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng with Floyd as they are both directed to deduplication and thus constitutes combining prior art elements according to known methods to yield predictable results (see MPEP 2143(I)(A)). Regarding Claim 10, Zheng in view of Floyd and Janakiraman discloses the system of Claim 7, wherein a file system identifies the one or more files that are currently accessing the second block of data (see Zheng, paragraph [0043], where reference count file 41 is continually updated to reflect events that affect these blocks; for example, if file Foo is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [2,0,0,0], respectively, reflecting that VBN 2 has been freed in addition to VBNs 3 and 4; note that VBN 1 has not yet been freed (i.e., its REFCOUNT value is not yet zero), since VBN 1 is still in use by file BAR, instead the REFCOUNT value for VBN 1 has been decremented from 3 to 2; if file Bar is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [0,0,0,0], respectively). Regarding Claim 11, Zheng in view of Floyd and Janakiraman discloses the system of Claim 7, wherein deletion of the content of the second block of data is prevented as long as the second reference counter for the second block of data is greater than zero (see Zheng, paragraph [0043], where reference count file 41 is continually updated to reflect events that affect these blocks; for example, if file Foo is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [2,0,0,0], respectively, reflecting that VBN 2 has been freed in addition to VBNs 3 and 4; note that VBN 1 has not yet been freed (i.e., its REFCOUNT value is not yet zero), since VBN 1 is still in use by file BAR, instead the REFCOUNT value for VBN 1 has been decremented from 3 to 2; if file Bar is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [0,0,0,0], respectively). Regarding Claim 12, Zheng in view of Floyd and Janakiraman discloses the system of Claim 7, wherein: Zheng does not disclose the first single bit single bit stability tag for the first block of data is cleared by changing from the first bit value to the second bit value in response to detecting a modification of the content of the first block of data. Floyd discloses the first single bit single bit stability tag for the first block of data is cleared by changing from the first bit value to the second bit value in response to detecting a modification of the content of the first block of data (see Floyd, column 12, lines 35-40, where at time T=4 (labeled 350), a new file ‘/baz’ is scanned by the deduplication engine 102, which reports that the file shares a data segment with the file ‘/foo’ at the inode #1 with sequence number 1; however, since the sequence number of the file ‘/foo’ at inode #1 is now 2, the advice is deemed stale). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng with Floyd as they are both directed to deduplication and thus constitutes combining prior art elements according to known methods to yield predictable results (see MPEP 2143(I)(A)). Regarding Claim 13, Zheng in view of Floyd and Janakiraman wherein the computer-readable instructions further cause the system to: Zheng does not disclose in response to the first single bit single bit stability tag of the first block of data being cleared, generating a new identifier comprising a new cryptographic hash that is calculated for the first block of data based on the modified content of the first block of data. Floyd discloses in response to the first single bit single bit stability tag of the first block of data being cleared, generating a new identifier comprising a new cryptographic hash that is calculated for the first block of data based on the modified content of the first block of data (see Floyd, column 12, lines 35-40, where at time T=4 (labeled 350), a new file ‘/baz’ is scanned by the deduplication engine 102, which reports that the file shares a data segment with the file ‘/foo’ at the inode #1 with sequence number 1; however, since the sequence number of the file ‘/foo’ at inode #1 is now 2, the advice is deemed stale). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng with Floyd as they are both directed to deduplication and thus constitutes combining prior art elements according to known methods to yield predictable results (see MPEP 2143(I)(A)). Regarding Claim 14, Zheng discloses a computer-readable storage medium for data deduplication in a storage device having encoded thereon computer-readable instructions that when executed by a processing system cause a system to: the first block of data having a first reference counter (see Zheng, paragraph [0035], where the reference count file 41 contains an entry for each data block maintained by file server 2, wherein each entry includes a value, REFCOUNT indicating the number of references to that data block; see also paragraph [0035], where a data block which is shared by two files would have a REFCOUNT value of 2; a data block can be shared by more than two files (or other entities), in which case the REFCOUNT value would reflect this accordingly; a data block which is allocated but not shared would have a REFCOUNT value of 1; a data block which is not yet allocated would have a REFCOUNT value of 0); reading content from the first block of data (see Zheng, paragraph [0025], where data blocks that can be shared are identified by computing a fingerprint for each data block to be written to a storage facility and storing the fingerprint with information identifying the data block in an entry in a metadata file, as the data block is being written to the storage facility; a ‘fingerprint’ as the term is used herein, is any information derived from the content of the data block that might uniquely identify the data block); generating a first identifier for the first block of data, wherein the first identifier comprises a first value that is calculated based on the content of the first block of data and uniquely identifies the content of the data (see Zheng, paragraph [0025], where data blocks that can be shared are identified by computing a fingerprint for each data block to be written to a storage facility and storing the fingerprint with information identifying the data block in an entry in a metadata file, as the data block is being written to the storage facility; a ‘fingerprint’ as the term is used herein, is any information derived from the content of the data block that might uniquely identify the data block [emphasis added by Examiner]); identifying a second block of data having a second identifier that is a match for the first identifier, the match indicating that content of the second block of data is identical to the content of the first block of data (see Zheng, paragraph [0060], where at 1102 the process determines from the fingerprints database whether there are any entries with identical fingerprints; the blocks represented by any entries which have identical fingerprints are considered to be potential duplicate blocks). Zheng does not disclose: setting a first single bit single bit stability tag for a first block of data to a first bit value indicating that the first block of data is in an unmodified state since previously being read for deduplication purposes, the first block of data having a first reference counter; in response to identifying the second block of data, determine, based at least in part on the match, that the first single bit single bit stability tag for the first block of data is set to the first bit value and that the second single bit single bit stability tag for the first block of data is set to the first bit value and that a second single bit single bit stability tag for the second block of data is set to the first bit value indicating that the second block of data is eligible for deduplication, wherein the determining enables a recalculation of the first cryptographic hash and the second cryptographic hash to be omitted; in response to determining that both the first single bit single bit stability tag and the second single bit single bit stability tag are set to the first bit value, determine that the second reference counter for the second block of data is greater than zero indicating that one or more files are currently accessing the second block of data; in response to determining that the second reference counter for the second block of data is greater than zero, redirecting a data block reference for each file from the second block of data to the first block of data; in response to redirecting the data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data, decrementing, until the second reference counter is equal to zero, the second reference counter by one and incrementing the first reference counter by one; and deleting the content of the second block of data in response to the second reference counter being equal to zero; and clearing the second single bit single bit stability tag by changing the first bit value to a second bit value in response to deleting the content of the second block of data, thereby indicating that the second block of data is ineligible for deduplication. The combination of Zheng and Floyd discloses: setting a first single bit single bit stability tag for a first block of data to a first bit value indicating that the first block of data is in an unmodified state since previously being read for deduplication purposes (see Floyd, column 12, lines 12-14, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification), the first block of data having a first reference counter (see Zheng, paragraph [0035], where a data block which is shared by two files would have a REFCOUNT value of 2; a data block can be shared by more than two files (or other entities), in which case the REFCOUNT value would reflect this accordingly; a data block which is allocated but not shared would have a REFCOUNT value of 1; a data block which is not yet allocated would have a REFCOUNT value of 0); in response to identifying the second block of data, determine, based at least in part on the match, that the first single bit single bit stability tag for the first block of data is set to the first bit value and that the second single bit single bit stability tag for the first block of data is set to the first bit value and that a second single bit single bit stability tag for the second block of data is set to the first bit value indicating that the second block of data is eligible for deduplication, wherein the determining enables a recalculation of the first cryptographic hash and the second cryptographic hash to be omitted (see Floyd, column 12, lines 12-30, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification, and a sequence field (typically a 64-bit integer) that tracks file modifications; at time T=1 (labeled 310), a file ‘/foo’ is stored at inode #1 of the file system; the dirty-bit is set to ‘yes’ to indicate that the file has not been scanned by the deduplication engine 102; further, the sequence number for the file is set to 1; at time T=2 (labeled 310), the file ‘/foo’ is scanned by the deduplication engine 102, setting the dirty bit to ‘no’; the sequence number remains unchanged as the data is not altered by this process; at time T=3 (labeled 330), another file ‘/bar’ shares a ‘chunk’, i.e., data segment, with the file ‘/foo’ at inode #1 having a sequence number of 1; since the sequence numbers are the same, the advice may be acted on by the software layer 108); in response to determining that both the first single bit single bit stability tag and the second single bit single bit stability tag are set to the first bit value (see Floyd, column 12, lines 12-30, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification, and a sequence field (typically a 64-bit integer) that tracks file modifications; at time T=1 (labeled 310), a file ‘/foo’ is stored at inode #1 of the file system; the dirty-bit is set to ‘yes’ to indicate that the file has not been scanned by the deduplication engine 102; further, the sequence number for the file is set to 1; at time T=2 (labeled 310), the file ‘/foo’ is scanned by the deduplication engine 102, setting the dirty bit to ‘no’; the sequence number remains unchanged as the data is not altered by this process; at time T=3 (labeled 330), another file ‘/bar’ shares a ‘chunk’, i.e., data segment, with the file ‘/foo’ at inode #1 having a sequence number of 1; since the sequence numbers are the same, the advice may be acted on by the software layer 108), determine that the second reference counter for the second block of data is greater than zero indicating that one or more files are currently accessing the second block of data (see Zheng, paragraph [0035], where a data block which is shared by two files would have a REFCOUNT value of 2; a data block can be shared by more than two files (or other entities), in which case the REFCOUNT value would reflect this accordingly; a data block which is allocated but not shared would have a REFCOUNT value of 1; a data block which is not yet allocated would have a REFCOUNT value of 0); and clearing the second single bit single bit stability tag by changing the first bit value to a second bit value in response to deleting the content of the second block of data (see Floyd, column 12, lines 12-30, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification, and a sequence field (typically a 64-bit integer) that tracks file modifications; at time T=1 (labeled 310), a file ‘/foo’ is stored at inode #1 of the file system; the dirty-bit is set to ‘yes’ to indicate that the file has not been scanned by the deduplication engine 102; further, the sequence number for the file is set to 1; at time T=2 (labeled 310), the file ‘/foo’ is scanned by the deduplication engine 102, setting the dirty bit to ‘no’; the sequence number remains unchanged as the data is not altered by this process; at time T=3 (labeled 330), another file ‘/bar’ shares a ‘chunk’, i.e., data segment, with the file ‘/foo’ at inode #1 having a sequence number of 1; since the sequence numbers are the same, the advice may be acted on by the software layer 108), thereby indicating that the second block of data is ineligible for deduplication (see Zheng, paragraph [0035], where a data block which is shared by two files would have a REFCOUNT value of 2; a data block can be shared by more than two files (or other entities), in which case the REFCOUNT value would reflect this accordingly; a data block which is allocated but not shared would have a REFCOUNT value of 1; a data block which is not yet allocated would have a REFCOUNT value of 0). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng with Floyd as they are both directed to deduplication and thus constitutes combining prior art elements according to known methods to yield predictable results (see MPEP 2143(I)(A)). Zheng in view of Floyd does not disclose: in response to determining that the second reference counter for the second block of data is greater than zero, redirecting a data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data; in response to redirecting the data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data, decrementing, until the second reference counter is equal to zero, the second reference counter by one and incrementing the first reference counter by one; and deleting the content of the second block of data in response to the second reference counter being equal to zero. Zheng in view of Floyd and Janakiraman discloses: in response to determining that the second reference counter for the second block of data is greater than zero, redirecting a data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data (see Janakiraman, column 8, line 49 – column 9, line 11, where Fig. 4 is an example illustrating the mapping relationship between logical block locations within the logical volumes, and physical block locations within a data deduplication system, after a data deduplication-aware copy of a file … a copy manager and a deduplication manager (e.g., copy manager 125 and deduplication manager 135, both of Fig. 1) perform a data deduplication-aware copy of File A 305; afterwards, instead of allocating additional physical block locations, the copy manager allocates File A’ 315, which is mapped by filesystem 210(2) to logical block locations within logical volume 2 120(2) (e.g., logical block locations 4 and 8 of logical volume 2 120(2); the deduplication manager modifies the physical block location metadata and deduplication chains 310(1) and 310(2) to reflect the mapping logical block location 4 of logical volume 2 120(2) to physical block location P1, and logical block location 8 of logical volume 2 120(2) to physical block location P2); in response to redirecting the data block reference for each of the one or more files currently accessing the second block of data from the second block of data to the first block of data, decrementing, until the second reference counter is equal to zero, the second reference counter by one and incrementing the first reference counter by one (see Zheng, paragraph [0043], where reference count file 41 is continually updated to reflect events that affect these blocks; for example, if file Foo is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [2,0,0,0], respectively, reflecting that VBN 2 has been freed in addition to VBNs 3 and 4; note that VBN 1 has not yet been freed (i.e., its REFCOUNT value is not yet zero), since VBN 1 is still in use by file BAR, instead the REFCOUNT value for VBN 1 has been decremented from 3 to 2; if file Bar is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [0,0,0,0], respectively); and deleting the content of the second block of data in response to the second reference counter being equal to zero (see Zheng, paragraph [0043], where reference count file 41 is continually updated to reflect events that affect these blocks; for example, if file Foo is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [2,0,0,0], respectively, reflecting that VBN 2 has been freed in addition to VBNs 3 and 4; note that VBN 1 has not yet been freed (i.e., its REFCOUNT value is not yet zero), since VBN 1 is still in use by file BAR, instead the REFCOUNT value for VBN 1 has been decremented from 3 to 2; if file Bar is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [0,0,0,0], respectively; paragraph [0059], where information saved in the fingerprints database 43 for each block includes context information such as the value of a consistency point counter at the time the block was written to disk; this context information can be used to detect and delete ‘stale’ fingerprints from the fingerprints database 43; stale fingerprints are fingerprints that corresponds to blocks that have been deleted or overwritten). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng and Floyd with Janakiraman for the benefit of deduplication-aware copying of data from one deduplicated datastore to another deduplicated datastore (see Janakiraman, Abstract). Regarding Claim 15, Zheng in view of Floyd and Janakiraman discloses the computer-readable storage medium of Claim 14, wherein: Zheng does not disclose the second single bit single bit stability tag of the second block of data is cleared by a file system containing the second block of data. Floyd discloses the second single bit stability tag of the second block of data is cleared by a file system containing the second block of data (see Floyd, column 12, lines 35-40, where at time T=4 (labeled 350), a new file ‘/baz’ is scanned by the deduplication engine 102, which reports that the file shares a data segment with the file ‘/foo’ at the inode #1 with sequence number 1; however, since the sequence number of the file ‘/foo’ at inode #1 is now 2, the advice is deemed stale). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng with Floyd as they are both directed to deduplication and thus constitutes combining prior art elements according to known methods to yield predictable results (see MPEP 2143(I)(A)). Regarding Claim 17, Zheng in view of Floyd and Janakiraman discloses the computer-readable storage medium of Claim 14, wherein a file system identifies the one or more files that are currently accessing the second block of data (see Zheng, paragraph [0043], where reference count file 41 is continually updated to reflect events that affect these blocks; for example, if file Foo is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [2,0,0,0], respectively, reflecting that VBN 2 has been freed in addition to VBNs 3 and 4; note that VBN 1 has not yet been freed (i.e., its REFCOUNT value is not yet zero), since VBN 1 is still in use by file BAR, instead the REFCOUNT value for VBN 1 has been decremented from 3 to 2; if file Bar is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [0,0,0,0], respectively). Regarding Claim 18, Zheng in view of Floyd and Janakiraman discloses the computer-readable storage medium of Claim 14, wherein deletion of the content of the second block of data is prevented as long as the second reference counter for the second block of data is greater than zero (see Zheng, paragraph [0043], where reference count file 41 is continually updated to reflect events that affect these blocks; for example, if file Foo is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [2,0,0,0], respectively, reflecting that VBN 2 has been freed in addition to VBNs 3 and 4; note that VBN 1 has not yet been freed (i.e., its REFCOUNT value is not yet zero), since VBN 1 is still in use by file BAR, instead the REFCOUNT value for VBN 1 has been decremented from 3 to 2; if file Bar is now deleted, the REFCOUNT values for VBNs [1,2,3,4] would be adjusted to [0,0,0,0], respectively). Regarding Claim 19, Zheng in view of Floyd and Janakiraman discloses the computer-readable storage medium of Claim 14, wherein: Zheng does not disclose the first single bit single bit stability tag for the first block of data is cleared by changing from the first bit value to the second bit value in response to detecting a modification of the content of the first block of data. Floyd discloses the first single bit single bit stability tag for the first block of data is cleared by changing from the first bit value to the second bit value in response to detecting a modification of the content of the first block of data (see Floyd, column 12, lines 35-40, where at time T=4 (labeled 350), a new file ‘/baz’ is scanned by the deduplication engine 102, which reports that the file shares a data segment with the file ‘/foo’ at the inode #1 with sequence number 1; however, since the sequence number of the file ‘/foo’ at inode #1 is now 2, the advice is deemed stale). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng with Floyd as they are both directed to deduplication and thus constitutes combining prior art elements according to known methods to yield predictable results (see MPEP 2143(I)(A)). Regarding Claim 20, Zheng in view of Floyd and Janakiraman discloses the computer-readable storage medium of Claim 19, wherein the computer-readable instructions further cause the system to: Zheng does not disclose in response to the first single bit single bit stability tag of the first block of data being cleared, generating a new identifier comprising a new value that is calculated for the first block of data based on the modified content of the first block of data. Floyd discloses in response to the first single bit single bit stability tag of the first block of data being cleared, generating a new identifier comprising a new value that is calculated for the first block of data based on the modified content of the first block of data (see Floyd, column 12, lines 35-40, where at time T=4 (labeled 350), a new file ‘/baz’ is scanned by the deduplication engine 102, which reports that the file shares a data segment with the file ‘/foo’ at the inode #1 with sequence number 1; however, since the sequence number of the file ‘/foo’ at inode #1 is now 2, the advice is deemed stale). It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to combine Zheng with Floyd as they are both directed to deduplication and thus constitutes combining prior art elements according to known methods to yield predictable results (see MPEP 2143(I)(A)). Regarding Claim 21, Zheng in view of Floyd and Janakiraman discloses the system of Claim 7, wherein deleting the content of the second block of data comprises: generating a deduplication eligibility indicator using a data deduplication module (see Zhang, paragraph [0059], where information saved in the fingerprints database 43 for each block includes context information such as the value of a consistency point counter at the time the block was written to disk; this context information can be used to detect and delete ‘stale’ fingerprints from the fingerprints database 43; stale fingerprints are fingerprints that corresponds to blocks that have been deleted or overwritten); providing the deduplication eligibility indicator to a file system containing the second block of data (see Zhang, paragraph [0059], where information saved in the fingerprints database 43 for each block includes context information such as the value of a consistency point counter at the time the block was written to disk; this context information can be used to detect and delete ‘stale’ fingerprints from the fingerprints database 43; stale fingerprints are fingerprints that corresponds to blocks that have been deleted or overwritten); and executing a data deletion command using the file system to free a storage space associated with the second block of data (see Zhang, paragraph [0059], where information saved in the fingerprints database 43 for each block includes context information such as the value of a consistency point counter at the time the block was written to disk; this context information can be used to detect and delete ‘stale’ fingerprints from the fingerprints database 43; stale fingerprints are fingerprints that corresponds to blocks that have been deleted or overwritten). Regarding Claim 22, Zheng in view of Floyd and Janakiraman discloses the computer-readable storage medium of Claim 14, wherein deleting the content of the second block of data comprises: generating a deduplication eligibility indicator using a data deduplication module (see Zhang, paragraph [0059], where information saved in the fingerprints database 43 for each block includes context information such as the value of a consistency point counter at the time the block was written to disk; this context information can be used to detect and delete ‘stale’ fingerprints from the fingerprints database 43; stale fingerprints are fingerprints that corresponds to blocks that have been deleted or overwritten); providing the deduplication eligibility indicator to a file system containing the second block of data (see Zhang, paragraph [0059], where information saved in the fingerprints database 43 for each block includes context information such as the value of a consistency point counter at the time the block was written to disk; this context information can be used to detect and delete ‘stale’ fingerprints from the fingerprints database 43; stale fingerprints are fingerprints that corresponds to blocks that have been deleted or overwritten); and executing a data deletion command using the file system to free a storage space associated with the second block of data (see Zhang, paragraph [0059], where information saved in the fingerprints database 43 for each block includes context information such as the value of a consistency point counter at the time the block was written to disk; this context information can be used to detect and delete ‘stale’ fingerprints from the fingerprints database 43; stale fingerprints are fingerprints that corresponds to blocks that have been deleted or overwritten). Response to Arguments Applicant’s Arguments, filed March 17, 2026, have been fully considered, but they are not persuasive. Applicant argues on page 13 of Applicant’s Remarks that Zheng, alone, or in combination with Floyd, Shilaine, or Janakiraman, does not teach, disclose, or fairly suggest, all of the elements of Independent Claims 1, 7, and 14. Specifically, Applicant argues that Floyd does not disclose a single bit stability tag to indicate that the first block of data is in an unmodified state since previously being read for deduplication purposes. The Examiner respectfully disagrees. Floyd discloses a dirty bit associated with a file in a deduplication system (see Floyd, column 12, lines 12-30, where each inode in the file system can be associated with two additional pieces of metadata: a dirty-bit, which indicates whether or not the file has been scanned for deduplication since its last modification). While the dirty bit in Floyd is cleared when the file associated with the dirty bit is scanned, it is set when the file associated with the dirty bit is created or modified (see Floyd, column 12, lines 17-20 and 31-33). It is the position of the Examiner that broadest reasonable interpretation of the dirty bit in Floyd, being toggled to indciate if the file has been read since it was last modified, encompasses the applicant’s claimed stability tag. Combined with the block-level deduplication in Zheng, it is the postiion of the Examiner that the combination of references discloses all of the elements of Independent Claims 1, 7, and 14. Conclusion The prior art made of record and not relied upon is considered pertinent to the Applicant’s disclosure: Sorenson (PG Pub. No. 2015/0169665 A1), which concerns receiver-side data deduplication. Amit (PG Pub. No. 2013/0325821 A1), which concerns merging deduplication indicies. 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 FARHAD AGHARAHIMI whose telephone number is (571)272-9864. The examiner can normally be reached M-F 9am - 5pm ET. 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, Apu Mofiz can be reached at 571-272-4080. 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. /FARHAD AGHARAHIMI/Examiner, Art Unit 2161 /APU M MOFIZ/Supervisory Patent Examiner, Art Unit 2161
Read full office action

Prosecution Timeline

Show 17 earlier events
Sep 26, 2025
Response after Non-Final Action
Oct 24, 2025
Request for Continued Examination
Oct 27, 2025
Response after Non-Final Action
Dec 18, 2025
Non-Final Rejection mailed — §103
Mar 06, 2026
Applicant Interview (Telephonic)
Mar 06, 2026
Examiner Interview Summary
Mar 17, 2026
Response Filed
Sep 23, 2026
Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12717764
SYSTEMS AND METHODS FOR GENERATING DATA HAVING A SUSTAINABLE QUALITY
3y 7m to grant Granted Aug 25, 2026
Patent 12705141
DISCOVERY OF SERVICES IN COMBINATION WITH ENABLING DATA PROTECTION AND OTHER WORKFLOWS
2y 6m to grant Granted Aug 11, 2026
Patent 12619579
Encoding / Decoding System and Method
3y 7m to grant Granted May 05, 2026
Patent 12608279
UTILIZING FIXED-SIZED AND VARIABLE-LENGTH DATA CHUNKS TO PERFORM SOURCE SIDE DEDUPLICATION
3y 12m to grant Granted Apr 21, 2026
Patent 12602424
PROACTIVE PERSONALIZATION OF MULTIMEDIA CONTENT AND DIALOG CONTENT THROUGH UTILIZATION OF LARGE LANGUAGE MODEL(S)
2y 10m to grant Granted Apr 14, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

7-8
Expected OA Rounds
70%
Grant Probability
85%
With Interview (+14.3%)
3y 3m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 278 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month