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 .
Response to Amendment
This action is in response to applicant’s arguments and amendments filed 8/09/2026, which are in response to USPTO Office Action mailed 4/08/2026. Applicant’s arguments have been considered with the results that follow: THIS ACTION IS MADE NON-FINAL.
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.
Claim(s) 1, 3-4 and 6 is/are rejected under 35 U.S.C. 103 as being unpatentable over Margolus et al. (US PGPUB No. 2006/0112112; Pub. Date: May 25, 2006) in view of DONIER et al. (US PGPUB No. 2019/0130034; Pub. Date; May 2, 2019), Yasa et al. (US PGPUB No. 2012/0323859; Pub. Date: Dec. 20, 2012), Vaithianathan et al. (US PGPUB No. 2020/0301593; Pub. Date: Sep. 24, 2020) and Colgrove et al. (US Patent No: 9,811,551; Date of Patent: Nov. 7, 2017).
Regarding independent claim 1,
Margolus discloses a system for a storage unit, the system comprising: an associative memory device to perform associative processing and comprising a memory array having columns divided into sections, of which a fingerprint section stores a plurality of fingerprints associated with blocks of data, each fingerprint being stored in a separate column of said fingerprint section; See FIGs. 11-12 Paragraph [0091], (Disclosing a system for constructing an index for indexing a large set of records. FIGs. 11-12 illustrates a storage allocation comprising a plurality of columns assigned to a plurality of data stores identified via a name bit, i.e. a system for a storage unit, the system comprising: an associative memory device to perform associative processing and comprising a memory array having columns divided into sections (e.g. FIGs. 11-12 illustrate a tabular memory structure comprising columns and rows, i.e. columns divided into sections), of which a fingerprint section stores a plurality of fingerprints associated with blocks of data (e.g. the stored name bits representing data stores A-H, i.e. fingerprints, are stored in tabular format as in FIGs. 11-12), each fingerprint being stored in a separate column of said fingerprint section (e.g. FIG. 12 illustrates a data store having a plurality of columns corresponding to address ranges of a memory device wherein each row corresponds to name bits or identifiers for data stores labelled A-H ;)
Margolus does not disclose said associative memory device also comprising: a similarity searcher operating on said columns to receive an input fingerprint of an input block and to perform a search inside columns of said fingerprint section for a similar fingerprint whose distance to said input fingerprint is smaller than a predetermined threshold value;
a difference calculator operating on said columns to compute a difference block indicating relative changes between said input block and a similar block associated with said similar fingerprint, if found;
and a difference block storage manager to, if said difference block is a non-empty difference block, associate said input fingerprint with said similar block and with said difference block, store said input fingerprint in one column of said fingerprint section, and store said non-empty difference block in said storage unit.
wherein said fingerprint section is arranged in a multi-level structure wherein upper levels comprise centroids to clusters in lower levels, and a lowest level comprises fingerprints of blocks, said centroids calculated from said fingerprints;
and said similarity searcher alternatively performing a search inside said centroids for a set of similar centroids whose distance to said input fingerprint is smaller than a predetermined threshold value;
DONIER discloses said associative memory device also comprising: a similarity searcher operating on said columns to receive an input fingerprint of an input block and to perform a search inside columns of said fingerprint section for a similar fingerprint whose distance to said input fingerprint is smaller than a predetermined threshold value; See Paragraphs [0080-[0083], (Disclosing a system for detecting shared audio content between first and second audio content information. Example 1 describes a process of searching a database for a reference fingerprint in response to receiving a query fingerprint based on a distance metric such as a Hamming distance.) See Paragraph [0067], (The process discloses clustering fingerprints into groups and calculating a second matching score satisfying a cluster threshold such as a second distance being below a cluster threshold, i.e. said associative memory device also comprising: a similarity searcher operating on said columns to receive an input fingerprint of an input block (e.g. such as by receiving a query fingerprint) and to perform a search inside columns of said fingerprint section for a similar fingerprint whose distance to said input fingerprint is smaller than a predetermined threshold value; (e.g. the search process includes a clustering process including determining whether a second distance is below a cluster threshold).)
Margolus and DONIER are analogous art because they are in the same field of endeavor, content management. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Margolus to include the method of searching for duplicate content based on distance metrics as disclosed by DONIER. Paragraph [0062] of DONIER discloses that the system may more accurately identify shared content between two audio files in a non-conventional and non-generic way based on fingerprint analysis.
Margolus-DONIER does not disclose the step wherein said fingerprint section is arranged in a multi-level structure wherein upper levels comprise centroids to clusters in lower levels, and a lowest level comprises fingerprints of blocks, said centroids calculated from said fingerprints;
and said similarity searcher alternatively performing a search inside said centroids for a set of similar centroids whose distance to said input fingerprint is smaller than a predetermined threshold value;
Yasa discloses the step wherein said fingerprint section is arranged in a multi-level structure wherein upper levels comprise centroids to clusters in lower levels, and a lowest level comprises fingerprints of blocks, said centroids calculated from said fingerprints; See Paragraph [0051], (The system may store mapping information for deduplicated data objects using hierarchical fingerprint trees. Note [0007] wherein the hierarchical fingerprint tree may include at least two layers of fingerprints wherein any number of layers may be generated over a base layer culminating at a single fingerprint at a top-most layer, i.e. wherein said fingerprint section is arranged in a multi-level structure comprising an uppermost level, at least one intermediate level, and a lowest level) See Paragraph [0052], (The top layer fingerprint is representative of all fingerprints and all data blocks corresponding to each data block. A mechanism for grouping and constructions is applied to generate the hierarchical fingerprint tree until a top layer that has just one fingerprint is achieved, i.e. wherein upper levels comprise centroids to clusters in lower levels, said centroids calculated from said fingerprints.)
The examiner notes that Paragraph [0018] of Applicant’s Specification describes a centroid as comprising a stored fingerprint. The method of Yasa generates a hierarchical fingerprint tree comprising a top layer that has just one fingerprint that is representative of all fingerprints of the multi-layer structure. The examiner is interpreting the term “centroid” used in the claim to refer to a fingerprint as described in Applicant’s Specification.
and said similarity searcher alternatively performing a search inside said centroids for a set of similar centroids whose distance to said input fingerprint is smaller than a predetermined threshold value; See Paragraph [0056], (Comparison of two hierarchical trees comprises comparing fingerprints at the top layer. The system may determine if top layer fingerprints match.) See Paragraph [0067], (The system determines exact matches as part of the matching process in order to identify an input data object as completely identical to a pre-existing data object, i.e. said similarity searcher alternatively performing a search inside said centroids for a set of similar centroids whose distance to said input fingerprint is smaller than a predetermined threshold value; (e.g. matching beings at the top level by comparing the representative fingerprint to determine an exact match, the predetermined threshold being the indication that an exact match is identified.)
Margolus-DONIER-Yasa does not disclose a difference calculator operating on said columns to compute a difference block indicating relative changes between said input block and a similar block associated with said similar fingerprint, if found;
and a difference block storage manager to, if said difference block is a non-empty difference block, associate said input fingerprint with said similar block and with said difference block, store said input fingerprint in one column of said fingerprint section, and store said non-empty difference block in said storage unit.
Vaithianathan discloses a difference calculator operating on said columns to compute a difference block indicating relative changes between said input block and a similar block associated with said similar fingerprint, if found; See Paragraph [0054], (Disclosing a system for dynamically adjusting a proportion of data blocks for which respective fingerprints are added to a fingerprint index, wherein said index correlates fingerprints for data blocks to storage location indicators for said data blocks. The system may apply adaptive sampling logic including full sampling which may add a fingerprint index delta update for a given incoming data block 114 to an active buffer, i.e. a difference calculator operating on said columns (e.g. fingerprints are maintained in a fingerprint index, i.e. a storage system) to compute a difference block indicating relative changes between said input block and a similar block associated with said similar fingerprint, if found; (e.g. deduplication engine 118 determines that a fingerprint for an incoming data block is to be added to a fingerprint index and adds a fingerprint index delta update to the active buffer ).)
and a difference block storage manager to, if said difference block is a non-empty difference block, associate said input fingerprint with said similar block and with said difference block, See Paragraph [0054], (Disclosing a system for dynamically adjusting a proportion of data blocks for which respective fingerprints are added to a fingerprint index, wherein said index correlates fingerprints for data blocks to storage location indicators for said data blocks. The system may apply adaptive sampling logic including full sampling which may add a fingerprint index delta update for a given incoming data block 114 to an active buffer, i.e. a difference block storage manager to, if said difference block is a non-empty difference block, associate said input fingerprint with said similar block and with said difference block (e.g. the fingerprint is associated with the fingerprint index delta update which is to be written to the fingerprint index).)
store said input fingerprint in one column of said fingerprint section, See Paragraph [0057], (A fingerprint index delta update may be merged into fingerprint index 110 to store the fingerprint, i.e. store said input fingerprint in one column of said fingerprint section)
and store said non-empty difference block in said storage unit. See Paragraph [0056], (Deduplication engine 118 provides a fingerprint index delta update that is added to active buffer 106 in memory 104, i.e. store said non-empty difference block in said storage unit.)
Margolus, DONIER, Yasa and Vaithianathan are analogous art because they are in the same field of endeavor, content management. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Margolus-DONIER-Yasa to include the method of determining duplicate fingerprints using adaptive sampling logic as disclosed by Vaithianathan. Paragraph [0043] of Vaithianathan discloses that deduplication engine 118 ma perform deduplication for incoming data blocks for which partial fingerprints have not been added toa fingerprint index 110 due to adaptive sampling. The deduplication leverages the flocking or other temporal locality characteristics of the collection of block entries and incoming data blocks.
Margolus-DONIER-Yasa-Vaithianathan does not disclose a retriever to retrieve a set of blocks of data associated with said set of similar fingerprints prior to or instead of storing said input block;
Colgrove discloses a retriever to retrieve a set of blocks of data associated with said set of similar fingerprints prior to or instead of storing said input block; See Col. 8, lines 7-12, (Disclosing a system for managing multiple fingerprint tables. Identification of duplicate data components during duplication occurs in-line as a write request is being processed. An input data object may be partitioned into blocks and assigned a fingerprint. The block fingerprints are then compared to stored fingerprints utilizing one or more tables of fingerprints which may trigger a subsequent verification to determine if blocks are completely identical, i.e. a retriever to retrieve a set of blocks of data associated with said set of similar fingerprints prior to or instead of storing said input block (e.g. the inline deduplication functionality performs fingerprint comparison for stored records during a write request, i.e. before the write request has executed).)
Margolus, DONIER, Yasa, Vaithianathan and Colgrove are analogous art because they are in the same field of endeavor, content deduplication. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Margolus-DONIER-Yasa-Vaithianathan to include the method of promoting/demoting fingerprints and corresponding data blocks associated with entries of a fingerprint table as disclosed by Colgrove. Paragraph [0060] of Colgrove that the system may perform additional processes as in FIG. 2 which improve the overall deduplication process by identifying which fingerprint tables may be searched and determining fingerprints whose data is expected to be deduplicated more frequently.
Regarding dependent claim 3,
As discussed above with claim 1, Margolus-DONIER-Yasa-Vaithianathan-Colgrove discloses all of the limitations.
Vaithianathan further discloses the step wherein said storage manager to store fingerprints of an uppermost level in said columns and wherein said similarity searcher performs said search in said uppermost level, See Paragraph [0016], (The fingerprint index may be maintained at multiple storage levels including a buffer in faster volatile storage for storing fingerprint index delta updates. The fingerprint index delta update comprises update information for the fingerprint index for an incoming data block to be stored in the storage system.) See Paragraph [0057], (The system may determine if collisions have occurred during merging of the fingerprint index delta update, i.e. wherein said storage manager to store fingerprints of an uppermost level in said columns (e.g. the buffer provides faster access to the delta index update portion of the fingerprint index ) and wherein said similarity searcher performs said search in said uppermost level (e.g. matching of fingerprint index delta update information utilizes the buffer used to store delta updates).
Additionally, Yasa further discloses the step wherein a search in lower levels is performed in a CPU. See Paragraph [0027], (Disclosing a system for identifying and mapping duplicate data objects. The system comprises processor(s) 201 embodied as a CPU of storage controller 102.) See Paragraph [0024], (Storage controller 102 comprises storage OS 107 including deduplication system 111 which includes generating hierarchical fingerprint trees for data objects, mapping data objects sharing common data blocks, etc.) See Paragraph [0058], (The process of matching fingerprints for a pair of data objects includes comparing fingerprints over layers of a hierarchical fingerprint tree, including comparing fingerprints at a next lower layer for fingerprints that do not match at a current level, i.e. a search in lower levels is performed in a CPU (e.g. processor 201 is used by storage controller 102 to map data objects including mapping data objects matching at lower levels of a hierarchical fingerprint tree).)
Regarding independent claim 4,
The claim is analogous to the subject matter of independent claim 1 directed to a method or process and is rejected under similar rationale.
Regarding dependent claim 6,
The claim is analogous to the subject matter of dependent claim 3 directed to a method or process and is rejected under similar rationale.
Claim(s) 2 and 5 is/are rejected under 35 U.S.C. 103 as being unpatentable over Margolus in view of DONIER, Yasa, Vaithianathan and COLGROVE as applied to claim 1 above, and further in view of Goyal et al. (US PGPUB No. 2019/0199519; Pub. Date: Jun. 27, 2019).
Regarding dependent claim 2,
As discussed above with claim 1, Margolus-DONIER-Yasa-Vaithianathan-Colgrove discloses all of the limitations.
Margolus-DONIER-Yasa-Vaithianathan-Colgrove does not disclose a fingerprint creator to create said new fingerprint using a locality-sensitive hashing (LSH) algorithm.
Goyal discloses a fingerprint creator to create said new fingerprint using a locality-sensitive hashing (LSH) algorithm. See Paragraph [0028], (Disclosing a system for detecting and treating unauthorized duplicate digital content. The system may generate and match hashes for digital content using a locality sensitive hash (LSH) hash model. LSH hashing generates a unique fingerprint that uniquely identifies a particular digital content item, i.e. a fingerprint creator to create said new fingerprint using a locality-sensitive hashing (LSH) algorithm.)
Margolus. DONIER, Yasa, Vaithianathan, Colgrove and Goyal are analogous art because they are in the same field of endeavor, content management. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Margolus-DONIER-Yasa-Vaithianathan-Colgrove to include the method of determining duplicate content using LSH models as disclosed by Goyal. Paragraph [0047] of Goyal discloses that the system may pre-process data including hash matches which facilitates faster processing times by the one or more servers which allows for a speedier identification of duplicative digital content.
Regarding dependent claim 5,
The claim is analogous to the subject matter of dependent claim 2 directed to a method or process and is rejected under similar rationale.
Claim(s) 7 and 9 is/are rejected under 35 U.S.C. 103 as being unpatentable over DONIER et al. (US PGPUB No. 2019/0130034; Pub. Date; May 2, 2019) in view of Yasa et al. (US PGPUB No. 2012/0323859; Pub. Date: Dec. 20, 2012), Goyal et al. (US PGPUB No. 2019/0199519; Pub. Date: Jun. 27, 2019), IOANNOU et al (US PGPUB No. 2018/0060367; Pub. Date; Mar. 1, 2018) and Colgrove et al. (US Patent No: 9,811,551; Date of Patent: Nov. 7, 2017).
Regarding independent claim 7,
DONIER discloses a deduplication system for a storage unit, the deduplication system comprising: an associative memory device to perform associative processing and comprising a memory array having columns divided into sections, of which a fingerprint section stores a plurality of fingerprints associated with blocks of data, See Paragraph [0005], (Disclosing a system for detecting shared audio content between first and second audio content information. The system may extract reference fingerprints from audio content information in a plurality of reference audio files and stores said reference fingerprints into a reference database, i.e. a deduplication system for a storage unit, the deduplication system comprising: an associative memory device to perform associative processing.) See Paragraph [0141], (Server 520 accesses database 300 to provide reference fingerprints to a client computer, and comprising a memory array having columns divided into sections (e.g. database 300 stores reference fingerprints. Note [0080] wherein each query fingerprint may be represented as a binary string, individual fingerprints are stored in database 300), of which a fingerprint section stores a plurality of fingerprints associated with blocks of data (e.g. reference database comprises a plurality of fingerprints associated with audio content information).)
a similarity searcher operating on said columns to perform a search inside columns of said of said uppermost and at least one intermediate levels for a similar fingerprint whose distance to said input LSH fingerprint is smaller than a predetermined threshold value; See Paragraphs [0080-[0083], (Example 1 describes a process of searching a database for a reference fingerprint in response to receiving a query fingerprint based on a distance metric such as a Hamming distance.) See Paragraph [0067], (The process discloses clustering fingerprints into groups and calculating a second matching score satisfying a cluster threshold such as a second distance being below a cluster threshold, i.e. a similarity searcher operating on said columns to perform a search inside columns of said of said uppermost and at least one intermediate levels for a similar fingerprint whose distance to said input LSH fingerprint is smaller than a predetermined threshold value;)
The examiner notes that DONIER does not explicitly disclose the use of an LSH fingerprint.
DONIER does not disclose the step wherein said fingerprint section is arranged in a multi-level structure comprising an uppermost level, at least one intermediate level, and a lowest level,
a storage manager to, if no similar fingerprint is found, store said set of sub- blocks in a storage unit, store said set of collision-resistance fingerprints in said lowest level and update said centroids with said input LSH fingerprint;
and for each identical fingerprint, said storage manager to associate said collision-resistance fingerprint with an associated sub-block of each identical fingerprint and for each non-identical fingerprint, said storage manager to add an associated non-identical sub-block to said storage unit and to update said centroids with said input LSH fingerprint of said non-identical fingerprint.
Yasa discloses the step wherein said fingerprint section is arranged in a multi-level structure comprising an uppermost level, at least one intermediate level, and a lowest level, See Paragraphs [0023]-[0024], (Disclosing a system for identifying and mapping duplicate data objects. A storage operating system 107 manages storage of data in storage subsystem 104 which includes generating hierarchical fingerprint trees for data objects. Storage subsystem 103 comprises a number of non-volatile mass storage devices 105 as illustrated in FIG. 1, i.e. a memory array comprising a fingerprint section) See Paragraph [0051], (The system may store mapping information for deduplicated data objects using hierarchical fingerprint trees. Note [0007] wherein the hierarchical fingerprint tree may include at least two layers of fingerprints wherein any number of layers may be generated over abase layer culminating at a single fingerprint at a top-most layer, i.e. wherein said fingerprint section is arranged in a multi-level structure comprising an uppermost level, at least one intermediate level, and a lowest level)
a storage manager to, if no similar fingerprint is found, store said set of sub- blocks in a storage unit, store said set of collision-resistance fingerprints in said lowest level and update said centroids with said input LSH fingerprint; See Paragraph [0057], (The method may process fingerprints of data blocks by comparing fingerprints over a hierarchical fingerprint tree. If a fingerprint does not match the top layer of the fingerprint tree, the method moves to a next lower layer. If there are no non-identical data blocks, the process would continue to the base layer, i.e. a storage manager to, if no similar fingerprint is found, store said set of sub- blocks in a storage unit, store said set of collision-resistance fingerprints in said lowest level.)
However, Yasa does not disclose the step of update[ing] said centroids with said input LSH fingerprint.
and for each identical fingerprint, said storage manager to associate said collision-resistance fingerprint with an associated sub-block of each identical fingerprint and for each non-identical fingerprint, said storage manager to add an associated non-identical sub-block to said storage unit and to update said centroids with said input LSH fingerprint of said non-identical fingerprint. See Paragraph [0057], (Hierarchical trees of two data objects may be compared. If the top layer fingerprints match, then the two data objects are identified as duplicate objects. The top-layer fingerprint is then directly mapped to the top-layer fingerprint of the original data object, i.e. for each identical fingerprint, said storage manager to associate said collision-resistance fingerprint (e.g. the top-layer fingerprint pointing directly to the data object) with an associated sub-block of each identical fingerprint (e.g. the matching hierarchical tree top-layer fingerprints are mapped to the data block, indicating that the fingerprints are identical).) See Paragraph [0057], (The method may process fingerprints of data blocks by comparing fingerprints over a hierarchical fingerprint tree. If a fingerprint does not match the top layer of the fingerprint tree, the method moves to a next lower layer. A matching fingerprint can be mapped at a lower layer if an identical fingerprint match is found at the current layer, i.e. and for each non-identical fingerprint, said storage manager to add an associated non-identical sub-block to said storage unit.)
However, Yasa does not disclose the step of update[ing] said centroids with said input LSH fingerprint of said non-identical fingerprint
DONIER and Yasa are analogous art because they are in the same field of endeavor, fingerprint processing. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of DONIER to include the method of generating and storing fingerprint trees as disclosed by Yasa. Paragraph [0064] of Yasa discloses that the system may use object-level fingerprint comparisons to compare data blocks such that the comparison may identify closely related data objects such that the duplicate identification and mapping process may be executed. Paragraph [0065] describes the process as being able to eliminate duplicate data blocks before even storing the data object to improve deduplication efficiency while also avoiding having to store data blocks that will need to be deleted at a later time.
DONIER-Yasa does not disclose the step wherein said uppermost level and said at least one intermediate level store locality-sensitive hash (LSH) fingerprints as centroids representing clusters of fingerprints in lower levels;
said associative memory device also comprising: a locality sensitive fingerprint creator to create an input LSH fingerprint for said input block;
Goyal discloses the step wherein said uppermost level and said at least one intermediate level store locality-sensitive hash (LSH) fingerprints as centroids representing clusters of fingerprints in lower levels; See Paragraph [0034], (Disclosing a system for detecting and treating unauthorized duplicate digital content. The content treatment system may cluster similar digital items in a record of a database by storing hashes of digital content items based on a degree of similarity between the hashes wherein each hash stored in the hash cluster is associated with an ID of the associated digital content item and other metadata pertaining to the digital content item or a member of the social networking system 120.) See Paragraph [0027], (Generation and matching of hashes may include use of a locality sensitive hash (LSH) model to identify syntactic near-duplicates of an original digital content item, i.e. wherein said uppermost level and said at least one intermediate level store locality-sensitive hash (LSH) fingerprints as centroids (e.g. the database may store original content records, hash clusters, etc. as records) representing clusters of fingerprints in lower levels (e.g. hashes are stored in a hash cluster as records of a database wherein individual content items are associated with LSH fingerprints).)
said associative memory device also comprising: a locality sensitive fingerprint creator to create an input LSH fingerprint for said input block; See Paragraph [0028], (The system may generate and match hashes for digital content using a locality sensitive hash (LSH) hash model. LSH hashing generates a unique fingerprint that uniquely identifies a particular digital content item, i.e. said associative memory device also comprising: a locality sensitive fingerprint creator to create an input LSH fingerprint for said input block;)
Therefore, while DONIER does not explicitly disclose the use of LSH fingerprints as discussed above, Goyal describes the use of LSH hashing techniques and fingerprint generation for digital content which may be applied to the method of DONIER which processes fingerprints as LSH fingerprints are a type of fingerprint known in the art.
DONIER, Yasa and Goyal are analogous art because they are in the same field of endeavor, content management. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of DONIER-Yasa to include the method of determining duplicate content using LSH models as disclosed by Goyal. Paragraph [0047] of Goyal discloses that the system may pre-process data including hash matches which facilitates faster processing times by the one or more servers which allows for a speedier identification of duplicative digital content.
DONIER-Yasa-Goyal does not disclose said lowest level stores collision-resistance fingerprints associated with individual sub-blocks of data;
a collision resistance fingerprint creator to create a set of collision resistance fingerprints for a set of sub-blocks of said input block;
an exact searcher to, if a similar fingerprint is found, search in said lowest level for identical fingerprints matching each of said collision-resistance fingerprints;
IOANNOU discloses and said lowest level stores collision-resistance fingerprints associated with individual sub-blocks of data; See Paragraph [0031], (Disclosing a controller of a data storage system configured to generate fingerprints of data blocks written to a data storage system. The system comprises a fingerprint engine 114 that generates fingerprints for data blocks to be written to flash cards 126. The fingerprints are embodied as cryptographic hashes that provide collision resistance. Controller 13 stores the fingerprints in a fingerprint index 154 in flash cards 126, i.e. said lowest level stores collision-resistance fingerprints associated with individual sub-blocks of data;)
a collision resistance fingerprint creator to create a set of collision resistance fingerprints for a set of sub-blocks of said input block; See Paragraph [0031], (The system comprises a fingerprint engine 114 that generates fingerprints for data blocks to be written to flash cards 126. The fingerprints are embodied as cryptographic hashes that provide collision resistance. Controller 13 stores the fingerprints in a fingerprint index 154 in flash cards 126.) See Paragraph [0033], (Controller 113 includes deduplication engine 125 that executes a search for duplicates upon incoming writes or during background deduplication, i.e. a collision resistance fingerprint creator to create a set of collision resistance fingerprints for a set of sub-blocks of said input block; (e.g. an incoming read/write I/O may include data blocks to be written, which would require generating a collision-resistant fingerprint for said I/O).)
an exact searcher to, if a similar fingerprint is found, search in said lowest level for identical fingerprints matching each of said collision-resistance fingerprints; See Paragraph [0037], (In response to receipt of write I/Os specifying storage of data blocks, the deduplication engine 125 determines whether the generated fingerprint matches an existing fingerprint in fingerprint index 154 including fingerprint index cache 119, i.e. an exact searcher to, if a similar fingerprint is found, search in said lowest level for identical fingerprints matching each of said collision-resistance fingerprints (e.g. the system searches fingerprint index 154 comprising a collection of collision resistant fingerprints as in [0031]).)
DONIER, Yasa, Goyal and IOANNOU are analogous art because they are in the same field of endeavor, content deduplication. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of DONIER-Yasa-Goyal to include the method of determining duplicate content using collision-resistant fingerprints as disclosed by IOANNOU. Paragraph [0039] of IOANNOU discloses that the system may treat data blocks that have been written for the first time differently from data blocks that have been previously encountered such that, upon a duplication being found, the overhead from executing the deduplication-related operations is significantly reduced.
DONIER-Yasa-Goyal-IOANNOU does not disclose the step of update[ing] said centroids with said input LSH fingerprint of said non-identical fingerprint
update[ing] said centroids with said input LSH fingerprint of said non-identical fingerprint.
Colgrove discloses the step wherein the system may said storage manager to add an associated non-identical sub-block to said storage unit and to update said centroids with said input LSH fingerprint of said non-identical fingerprint, See FIG. 3 & Paragraph [0065], (Disclosing a system for managing multiple fingerprint tables. FIG. 3 illustrates method 400 comprising step 406 wherein the system may determine if a deduplication event has occurred wherein an entry to the fingerprint table may be promoted or demoted. A fingerprint may be promoted if the number of successful deduplications reaches or exceeds a given threshold. A fingerprint may be demoted if deduplication of the block falls below a given threshold. The corresponding fingerprint may be remoted from its current table and entered into one used for fingerprints having a lower probability of deduplication, i.e. update[ing] said centroids with said input LSH fingerprint of said non-identical fingerprint (e.g. if a fingerprint is not considered to be matched the system may update attributes at step 414 as in FIG. 3.)
said storage manager to add an associated non-identical sub-block to said storage unit and to update said centroids with said input LSH fingerprint of said non-identical fingerprint. See FIG. 3 & Paragraph [0065], (Disclosing a system for managing multiple fingerprint tables. FIG. 3 illustrates method 400 comprising step 406 wherein the system may determine if a deduplication event has occurred wherein an entry to the fingerprint table may be promoted or demoted. A fingerprint may be promoted if the number of successful deduplications reaches or exceeds a given threshold. A fingerprint may be demoted if deduplication of the block falls below a given threshold. The corresponding fingerprint may be remoted from its current table and entered into one used for fingerprints having a lower probability of deduplication, i.e. said storage manager to add an associated non-identical sub-block to said storage (e.g. an entry of a deduplication block is demoted) and update[ing] said centroids with said input LSH fingerprint of said non-identical fingerprint (e.g. if a fingerprint is not considered to be matched the system may update attributes at step 414 as in FIG. 3.)
The examiner notes that Paragraph [0018] of Applicant’s Specification describes a centroid as comprising a stored fingerprint. The method of Colgrove stores fingerprints in fingerprint tables. An LSH fingerprint, such as those disclosed by Goyal, is a type of fingerprint that may be stored in a fingerprint table and updated such as by promotion/demotion as described in Colgrove.
DONIER, Yasa, Goyal, IOANNOU and Colgrove are analogous art because they are in the same field of endeavor, content deduplication. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of DONIER-Yasa-Goyal-IOANNOU to include the method of promoting/demoting fingerprints and corresponding data blocks associated with entries of a fingerprint table as disclosed by Colgrove. Paragraph [0060] of Colgrove that the system may perform additional processes as in FIG. 2 which improve the overall deduplication process by identifying which fingerprint tables may be searched and determining fingerprints whose data is expected to be deduplicated more frequently.
Regarding independent claim 9,
DONIER discloses a deduplication method for a storage unit, the deduplication method comprising:storing a plurality of fingerprints associated with blocks of data in a fingerprint section of an associative memory device comprising a memory array having columns divided into sections, See Paragraph [0005], (Disclosing a system for detecting shared audio content between first and second audio content information. The system may extract reference fingerprints from audio content information in a plurality of reference audio files and stores said reference fingerprints into a reference database, i.e. a deduplication system for a storage unit, the deduplication system comprising: an associative memory device to perform associative processing.) See Paragraph [0141], (Server 520 accesses database 300 to provide reference fingerprints to a client computer, and comprising a memory array having columns divided into sections (e.g. database 300 stores reference fingerprints. Note [0080] wherein each query fingerprint may be represented as a binary string, individual fingerprints are stored in database 300), of which a fingerprint section stores a plurality of fingerprints associated with blocks of data (e.g. reference database comprises a plurality of fingerprints associated with audio content information).)
searching inside columns of said of said uppermost and at least one intermediate levels for a similar fingerprint whose distance to said input LSH fingerprint is smaller than a predetermined threshold value; See Paragraphs [0080-[0083], (Example 1 describes a process of searching a database for a reference fingerprint in response to receiving a query fingerprint based on a distance metric such as a Hamming distance.) See Paragraph [0067], (The process discloses clustering fingerprints into groups and calculating a second matching score satisfying a cluster threshold such as a second distance being below a cluster threshold, i.e. a similarity searcher operating on said columns to perform a search inside columns of said of said uppermost and at least one intermediate levels for a similar fingerprint whose distance to said input LSH fingerprint is smaller than a predetermined threshold value;)
DONIER does not disclose the step wherein said fingerprint section is arranged in a multi-level structure comprising an uppermost level, at least one intermediate level, and a lowest level,
if no similar fingerprint is found, storing said set of sub-blocks in a storage unit, storing said set of collision-resistance fingerprints in said lowest level and updating said centroids with said input LSH fingerprint;
and for each identical fingerprint, associating said collision-resistance fingerprint with an associated sub-block of each identical fingerprint;
and for each non-identical fingerprint, adding an associated non-identical sub- block to said storage unit; and updating said centroids with said input LSH fingerprint of said non-identical fingerprint.
Yasa discloses the step wherein said fingerprint section is arranged in a multi-level structure comprising an uppermost level, at least one intermediate level, and a lowest level, See Paragraphs [0023]-[0024], (Disclosing a system for identifying and mapping duplicate data objects. A storage operating system 107 manages storage of data in storage subsystem 104 which includes generating hierarchical fingerprint trees for data objects. Storage subsystem 103 comprises a number of non-volatile mass storage devices 105 as illustrated in FIG. 1, i.e. a memory array comprising a fingerprint section) See Paragraph [0051], (The system may store mapping information for deduplicated data objects using hierarchical fingerprint trees. Note [0007] wherein the hierarchical fingerprint tree may include at least two layers of fingerprints wherein any number of layers may be generated over abase layer culminating at a single fingerprint at a top-most layer, i.e. wherein said fingerprint section is arranged in a multi-level structure comprising an uppermost level, at least one intermediate level, and a lowest level)
if no similar fingerprint is found, storing said set of sub-blocks in a storage unit, storing said set of collision-resistance fingerprints in said lowest level and updating said centroids with said input LSH fingerprint; See Paragraph [0057], (The method may process fingerprints of data blocks by comparing fingerprints over a hierarchical fingerprint tree. If a fingerprint does not match the top layer of the fingerprint tree, the method moves to a next lower layer. If there are no non-identical data blocks, the process would continue to the base layer, i.e. a storage manager to, if no similar fingerprint is found, store said set of sub- blocks in a storage unit, store said set of collision-resistance fingerprints in said lowest level.)
However, Yasa does not disclose the step of update[ing] said centroids with said input LSH fingerprint.
and for each identical fingerprint, associating said collision-resistance fingerprint with an associated sub-block of each identical fingerprint; and for each non-identical fingerprint, adding an associated non-identical sub- block to said storage unit; See Paragraph [0057], (Hierarchical trees of two data objects may be compared. If the top layer fingerprints match, then the two data objects are identified as duplicate objects. The top-layer fingerprint is then directly mapped to the top-layer fingerprint of the original data object, i.e. for each identical fingerprint, said storage manager to associate said collision-resistance fingerprint (e.g. the top-layer fingerprint pointing directly to the data object) with an associated sub-block of each identical fingerprint (e.g. the matching hierarchical tree top-layer fingerprints are mapped to the data block, indicating that the fingerprints are identical).) See Paragraph [0057], (The method may process fingerprints of data blocks by comparing fingerprints over a hierarchical fingerprint tree. If a fingerprint does not match the top layer of the fingerprint tree, the method moves to a next lower layer. A matching fingerprint can be mapped at a lower layer if an identical fingerprint match is found at the current layer, i.e. and for each non-identical fingerprint, said storage manager to add an associated non-identical sub-block to said storage unit.)
DONIER and Yasa are analogous art because they are in the same field of endeavor, fingerprint processing. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of DONIER to include the method of generating and storing fingerprint trees as disclosed by Yasa. Paragraph [0064] of Yasa discloses that the system may use object-level fingerprint comparisons to compare data blocks such that the comparison may identify closely related data objects such that the duplicate identification and mapping process may be executed. Paragraph [0065] describes the process as being able to eliminate duplicate data blocks before even storing the data object to improve deduplication efficiency while also avoiding having to store data blocks that will need to be deleted at a later time.
DONIER-Yasa does not disclose the step wherein said uppermost level and said at least one intermediate level store locality-sensitive hash (LSH) fingerprints as centroids representing clusters of fingerprints in lower levels;
creating an input LSH fingerprint for an input block;
Goyal discloses the step wherein said uppermost level and said at least one intermediate level store locality-sensitive hash (LSH) fingerprints as centroids representing clusters of fingerprints in lower levels; See Paragraph [0034], (Disclosing a system for detecting and treating unauthorized duplicate digital content. The content treatment system may cluster similar digital items in a record of a database by storing hashes of digital content items based on a degree of similarity between the hashes wherein each hash stored in the hash cluster is associated with an ID of the associated digital content item and other metadata pertaining to the digital content item or a member of the social networking system 120.) See Paragraph [0027], (Generation and matching of hashes may include use of a locality sensitive hash (LSH) model to identify syntactic near-duplicates of an original digital content item, i.e. wherein said uppermost level and said at least one intermediate level store locality-sensitive hash (LSH) fingerprints as centroids (e.g. the database may store original content records, hash clusters, etc. as records) representing clusters of fingerprints in lower levels (e.g. hashes are stored in a hash cluster as records of a database wherein individual content items are associated with LSH fingerprints).)
creating an input LSH fingerprint for an input block; See Paragraph [0028], (The system may generate and match hashes for digital content using a locality sensitive hash (LSH) hash model. LSH hashing generates a unique fingerprint that uniquely identifies a particular digital content item, i.e. said associative memory device also comprising: a locality sensitive fingerprint creator to create an input LSH fingerprint for said input block;)
Therefore, while DONIER does not explicitly disclose the use of LSH fingerprints as discussed above, Goyal describes the use of LSH hashing techniques and fingerprint generation for digital content which may be applied to the method of DONIER which processes fingerprints as LSH fingerprints are a type of fingerprint known in the art.
DONIER, Yasa and Goyal are analogous art because they are in the same field of endeavor, content management. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of DONIER-Yasa to include the method of determining duplicate content using LSH models as disclosed by Goyal. Paragraph [0047] of Goyal discloses that the system may pre-process data including hash matches which facilitates faster processing times by the one or more servers which allows for a speedier identification of duplicative digital content.
DONIER-Yasa-Goyal does not disclose the step wherein said lowest level stores collision-resistance fingerprints associated with individual sub-blocks of data;
if a similar fingerprint is found, searching in said lowest level for identical fingerprints matching each of said collision-resistance fingerprints;
IOANNOU disclose the step wherein said lowest level stores collision-resistance fingerprints associated with individual sub-blocks of data; See Paragraph [0031], (Disclosing a controller of a data storage system configured to generate fingerprints of data blocks written to a data storage system. The system comprises a fingerprint engine 114 that generates fingerprints for data blocks to be written to flash cards 126. The fingerprints are embodied as cryptographic hashes that provide collision resistance. Controller 13 stores the fingerprints in a fingerprint index 154 in flash cards 126, i.e. said lowest level stores collision-resistance fingerprints associated with individual sub-blocks of data;)
if a similar fingerprint is found, searching in said lowest level for identical fingerprints matching each of said collision-resistance fingerprints; See Paragraph [0037], (In response to receipt of write I/Os specifying storage of data blocks, the deduplication engine 125 determines whether the generated fingerprint matches an existing fingerprint in fingerprint index 154 including fingerprint index cache 119, i.e. if a similar fingerprint is found, search in said lowest level for identical fingerprints matching each of said collision-resistance fingerprints (e.g. the system searches fingerprint index 154 comprising a collection of collision resistant fingerprints as in [0031]).)
DONIER, Yasa, Goyal and IOANNOU are analogous art because they are in the same field of endeavor, content deduplication. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of DONIER-Yasa-Goyal to include the method of determining duplicate content using collision-resistant fingerprints as disclosed by IOANNOU. Paragraph [0039] of IOANNOU discloses that the system may treat data blocks that have been written for the first time differently from data blocks that have been previously encountered such that, upon a duplication being found, the overhead from executing the deduplication-related operations is significantly reduced.
DONIER-Yasa-Goyal-IOANNOU does not disclose the step wherein each said fingerprint being stored in a separate column of said columns and said blocks of data being stored in a storage unit;
updating said centroids with said input LSH fingerprint;
and updating said centroids with said input LSH fingerprint of said non-identical fingerprint.
Colgrove discloses the step wherein each said fingerprint being stored in a separate column of said columns and said blocks of data being stored in a storage unit, See Col. 23, lines 41-48, (Disclosing a system for managing multiple fingerprint tables. Each fingerprint table comprises a set of rows and columns wherein a single record may be stored in a fingerprint table as a row. A record may include a pointer used to identify or locate data components stored in storage subsystem 170, i.e. each said fingerprint being stored in a separate column of said columns (e.g. the fingerprint table comprises rows and columns for storing fingerprint information) and said blocks of data being stored in a storage unit (e.g. fingerprint records may point to stored data in storage subsystem 170),
updating said centroids with said input LSH fingerprint; See FIG. 3 & Col. 13, line 59 -Col. 14, line 33, (FIG. 3 illustrates method 400 comprising step 406 wherein the system may determine if a deduplication event has occurred wherein an entry to the fingerprint table may be promoted or demoted. A fingerprint may be promoted if the number of successful deduplications reaches or exceeds a given threshold. A fingerprint may be demoted if deduplication of the block falls below a given threshold. The corresponding fingerprint may be remoted from its current table and entered into one used for fingerprints having a lower probability of deduplication, i.e. update[ing] said centroids with said input LSH fingerprint of said non-identical fingerprint (e.g. if a fingerprint is not considered to be matched the system may update attributes at step 414 as in FIG. 3.)
and updating said centroids with said input LSH fingerprint of said non-identical fingerprint. See FIG. 3 & Col. 13, line 59 -Col. 14, line 33, (FIG. 3 illustrates method 400 comprising step 406 wherein the system may determine if a deduplication event has occurred wherein an entry to the fingerprint table may be promoted or demoted. A fingerprint may be promoted if the number of successful deduplications reaches or exceeds a given threshold. A fingerprint may be demoted if deduplication of the block falls below a given threshold. The corresponding fingerprint may be remoted from its current table and entered into one used for fingerprints having a lower probability of deduplication, i.e. said storage manager to add an associated non-identical sub-block to said storage (e.g. an entry of a deduplication block is demoted) and update[ing] said centroids with said input LSH fingerprint of said non-identical fingerprint (e.g. if a fingerprint is not considered to be matched the system may update attributes at step 414 as in FIG. 3.)
The examiner notes that Paragraph [0018] of Applicant’s Specification describes a centroid as comprising a stored fingerprint. The method of Colgrove stores fingerprints in fingerprint tables. An LSH fingerprint, such as those disclosed by Goyal, is a type of fingerprint that may be stored in a fingerprint table and updated such as by promotion/demotion as described in Colgrove.
DONIER, Yasa, Goyal, IOANNOU and Colgrove are analogous art because they are in the same field of endeavor, content deduplication. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of DONIER-Yasa-Goyal-IOANNOU to include the method of promoting/demoting fingerprints and corresponding data blocks associated with entries of a fingerprint table as disclosed by Colgrove. Paragraph [0060] of Colgrove that the system may perform additional processes as in FIG. 2 which improve the overall deduplication process by identifying which fingerprint tables may be searched and determining fingerprints whose data is expected to be deduplicated more frequently.
Claim(s) 8 and 10 is/are rejected under 35 U.S.C. 103 as being unpatentable over DONIER in view of Yasa, Goyal, IOANNOU and Colgrove as applied to claim 7 above, and further in view of Vaithianathan et al. (US PGPUB No. 2020/0301593; Pub. Date: Sep. 24, 2020).
Regarding dependent claim 8,
As discussed above with claim 1, DONIER-Yasa-Goyal-IOANNOU-Colgrove discloses all of the limitations.
Yasa further discloses the step wherein a search in lower levels is performed in a CPU. See Paragraph [0027], (Disclosing a system for identifying and mapping duplicate data objects. The system comprises processor(s) 201 embodied as a CPU of storage controller 102.) See Paragraph [0024], (Storage controller 102 comprises storage OS 107 including deduplication system 111 which includes generating hierarchical fingerprint trees for data objects, mapping data objects sharing common data blocks, etc.) See Paragraph [0058], (The process of matching fingerprints for a pair of data objects includes comparing fingerprints over layers of a hierarchical fingerprint tree, including comparing fingerprints at a next lower layer for fingerprints that do not match at a current level, i.e. a search in lower levels is performed in a CPU (e.g. processor 201 is used by storage controller 102 to map data objects including mapping data objects matching at lower levels of a hierarchical fingerprint tree).)
DONIER-Yasa-Goyal-IOANNOU-Colgrove does not disclose the step wherein said storage manager to store fingerprints of an uppermost level in said columns and wherein said similarity searcher performs said search in said uppermost level,
Vaithianathan further discloses the step wherein said storage manager to store fingerprints of an uppermost level in said columns and wherein said similarity searcher performs said search in said uppermost level, See Paragraph [0016], (The fingerprint index may be maintained at multiple storage levels including a buffer in faster volatile storage for storing fingerprint index delta updates. The fingerprint index delta update comprises update information for the fingerprint index for an incoming data block to be stored in the storage system.) See Paragraph [0057], (The system may determine if collisions have occurred during merging of the fingerprint index delta update, i.e. wherein said storage manager to store fingerprints of an uppermost level in said columns (e.g. the buffer provides faster access to the delta index update portion of the fingerprint index ) and wherein said similarity searcher performs said search in said uppermost level (e.g. matching of fingerprint index delta update information utilizes the buffer used to store delta updates).
Vaithianathan discloses the step wherein said storage manager to store fingerprints of an uppermost level in said columns and wherein said similarity searcher performs said search in said uppermost level, See Paragraph [0016], (The fingerprint index may be maintained at multiple storage levels including a buffer in faster volatile storage for storing fingerprint index delta updates. The fingerprint index delta update comprises update information for the fingerprint index for an incoming data block to be stored in the storage system.) See Paragraph [0057], (The system may determine if collisions have occurred during merging of the fingerprint index delta update, i.e. wherein said storage manager to store fingerprints of an uppermost level in said columns (e.g. the buffer provides faster access to the delta index update portion of the fingerprint index ) and wherein said similarity searcher performs said search in said uppermost level (e.g. matching of fingerprint index delta update information utilizes the buffer used to store delta updates)
DONIER, Yasa, Goyal, IOANNOU, Colgrove and Vaithianathan are analogous art because they are in the same field of endeavor, content management. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of DONIER-Yasa-Goyal-IOANNOU-Colgrove to include the method of determining duplicate fingerprints using adaptive sampling logic as disclosed by Vaithianathan. Paragraph [0043] of Vaithianathan discloses that deduplication engine 118 ma perform deduplication for incoming data blocks for which partial fingerprints have not been added toa fingerprint index 110 due to adaptive sampling. The deduplication leverages the flocking or other temporal locality characteristics of the collection of block entries and incoming data blocks.
Regarding dependent claim 10,
The claim is analogous to the subject matter of dependent claim 8 directed to a method or process and is rejected under similar rationale.
Response to Arguments
Applicant’s arguments, with respect to the rejection of claims 1-2, 4-5, 7 and 9 have been fully considered and are persuasive.
Regarding the rejection of claim 1 under 35 USC 101,
Claim 1 recites the following limitation:
and a retriever to retrieve a set of blocks of data associated with said set of similar fingerprints prior to or instead of storing said input block.
Which applicant has indicated as representing an improvement in the field of storage and deduplication techniques. Paragraphs [0080]-[0081] of Applicant’s Specification describe the process of locating blocks similar to an input block to retrieve a set of similar documents prior to or instead of storing the input block. Deduplication system 700 requires less data storage than standard deduplication systems because two blocks sharing the same content in most of their data may consume less than two times the size of the block.
The above elements indicate a clear improvement in the art.
The corresponding rejection has been withdrawn.
Regarding independent claims 4, 7 and 9,
Claims 4, 7 and 9 recite similar limitations and are directed to different embodiments of the deduplication system/method which aim to achieve similar benefits to those outlined in Paragraphs [0080]-[0081]. Therefore, the same discussion as in claim 1 applies to claims 4, 7 and 9.
Applicant’s arguments, with respect to the rejection(s) of claim(s) 1 under 35 USC 103 have been fully considered and are persuasive. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of Colgrove et al. (US Patent No: 9,811,551; Date of Patent: Nov. 7, 2017).
Regarding independent claim 1,
Applicant argues the following:
Vaithianathan fails to teach or suggest "a retriever to retrieve a set of blocks of data associated with said set of similar fingerprints prior to or instead of storing said input block." Vaithianathan does not retrieve the actual physical blocks of data prior to or instead of storing the input block, and, as a result, cannot provide the physical payloads to the difference calculator to execute a delta write-redirection and avoid the physical write of the larger input block.
Upon further consideration,
The examiner agrees that Vaithianathan does not teach the limitation as presented. The previous grounds of rejection is withdrawn. New grounds of rejection are made as indicated in the rejection above.
Yasa cannot teach or suggest the "similarity searcher alternatively performing a search inside said centroids for a set of similar centroids whose distance to said input fingerprint is smaller than a predetermined threshold value".
The examiner respectfully disagrees,
Yasa discloses a process for grouping fingerprints to generate a hierarchical fingerprint tree wherein Paragraph [0056] describes determining if top layer fingerprints are duplicate objects, i.e. similarity searcher alternatively performing a search inside said centroids (e.g. by comparing fingerprints using hierarchical trees of the data objects being compared) for a set of similar centroids whose distance to said input fingerprint is smaller than a predetermined threshold value (e.g. the method of Yasa compares fingerprints to determine if two data objects are completely identical. Paragraph [0066] describes the process as comparing values of an input object-level fingerprint against a database of pre-existing object-level fingerprints to determine a degree to which the compared objects are identical as illustrated in FIG. 8. FIG. 8 illustrates step 808 of determining if a match is a duplicate and step 814 of determining if one or more closely related object-level fingerprints exist, the “one or more” representing a threshold value for establishing similarity between fingerprints).
Margolus's generic RAM does not teach or suggest "an associative memory device to perform associative processing and comprising a memory array having columns divided into sections, of which a fingerprint section stores a plurality of fingerprints associated with blocks of data, each fingerprint being stored in a separate column of said fingerprint section".
The examiner respectfully disagrees,
FIGs. 11-12 of Margolus illustrate a storage allocation in a columnar format wherein the individual columns indicate address ranges and each row relates to a data store identifiers associated with said address range. Paragraph [0043] of Margolus describes the indexing scheme as being maintained in RAM storage. Therefore, Margolus teaches a memory device for storing data source identifiers in a columnar structure.
Donier has no concept of, and no technical use for, an associative memory device comprising physical array columns divided into sections.
The examiner respectfully disagrees,
Paragraphs [0080]-[0083] of Donier describe a process of calculating reference fingerprints that satisfy a distance threshold and then searching a database for the possible values. While Donier references a generic database for storing reference fingerprints, Margolus is relied upon to teach the specific structure of the “associative memory”, wherein Margolus describes a memory for storing fingerprint data in a columnar fashion in FIGs. 11-12. The method of calculating a distance and subsequently searching a storage structure for fingerprints described in Donier may be applied to any database capable of storing fingerprint data such as the memory of Margolus, as the claim merely requires an “associative memory device comprising physical array columns divided into sections.”, which, under broadest, reasonable interpretation, may correspond to the memory components of Margolus for at least the reasons discussed above.
Therefore, while the examiner agrees that Vaithianathan does not disclose the claimed limitation(s) indicated above, the examiner believes the remaining references still disclose the above limitations for at least the reasons indicated above. Nevertheless, new grounds of rejection are provided in view of the discussion regarding Vaithianathan.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Fernando M Mari whose telephone number is (571)272-2498. The examiner can normally be reached Monday-Friday 7am-4pm.
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, Ann J. Lo can be reached at (571) 272-9767. 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.
/FMMV/Examiner, Art Unit 2159 /ANN J LO/Supervisory Patent Examiner, Art Unit 2159