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 .
Claim Objections
Claims 15-19 are objected to because of the following informalities:
"the one or more storage media" should be "the one or more non-transitory storage media" [Claims 15-19, line 1].
Appropriate correction is required. Further, in an effort to practice compact prosecution, each of these limitations has been interpreted similarly as in the provided recommendation for each limitation, above.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
Claims 8-10, 19 are rejected under 35 U.S.C. 112(b) as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor regards as the invention.
Claims 8, 9, 10, 19 recite "the new primary node" in lines 7, 5, 4, 6. There is insufficient antecedent basis for this limitation in the claims.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1-3, 14-16 are rejected under 35 U.S.C. 102(a)(2) as being anticipated by Liu (US 2025/0005896).
Regarding claim 1, Liu discloses:
A method comprising: receiving an instruction to create a vector index on a set of vectors that is stored in a vector database that is communicatively coupled to a plurality of nodes in a cluster ([0024] system for indexing vectors of image data comprising instructions executed by processors [0038] receive a query image; generate a query vector based on one or more features of the query image; generate, by the vector indexing engine, a vector index for vectors of image data in a database as an assigner index; generate an on-disk vector database, wherein bucket placements of the on-disk vector database are guided by the assigner index);
in response to receiving the instruction: creating an HNSW index based on the set of vectors ([0065]-[0070] building vector indexes which are HNSW [0073] At 303, the method may include generating a vector index based on the deduplicated vector batch in each of the first set of nodes [0079] the generated vector index is a HNSW vector index);
causing a copy of the HNSW index to be stored in memory of each node in the plurality of nodes ([0067] each node stores copy of replicated index [0070] resulting indexes are evenly distributed and their size is evaluated to find nodes that contain enough RAM to store them [0076] At 306, the method may include selecting one node from the first set of nodes, and replicating the vector index of the selected node in each of a second set of nodes, wherein the second set of nodes have fewer nodes than the first set of nodes);
in response to receiving a first vector query, processing, by a first node in the plurality of nodes, the first vector query against a first copy of the HNSW index ([0038] receive a query image; generate a query vector based on one or more features of the query image; generate, by the vector indexing engine, a vector index for vectors of image data in a database as an assigner index; generate an on-disk vector database, wherein bucket placements of the on-disk vector database are guided by the assigner index; and identify candidate vectors through the assigner index and the vector database, wherein the query vector and the candidate vectors have similarity scores equal to or greater than a similarity threshold);
in response to receiving a second vector query, processing, by a second node in the plurality of nodes, the second vector query against a second copy of the HNSW index; wherein the method is performed by one or more computing devices ([0038], [0045] mentions indexing embedding vectors for use in handling (plural) queries).
As per claim 2, claim 1 is incorporated, Liu further discloses:
wherein: creating the HNSW index comprises creating, by a particular node in the plurality of nodes, the HNSW index; causing the copy of the HNSW index to be stored comprises: causing, by the particular node, the copy to be stored in the vector database, and retrieving, by other nodes in the plurality of nodes, the copy from the vector database ([0009]-[0012] c) generating a vector index based on the deduplicated vector batch in each of the first set of nodes; d) performing steps a) to b) to obtain an additional batch-deduplicated vector batch, then deduplicating against the vector index, wherein the duplicated vectors have a similarity score with another vector in the vector index that is equal to or greater than the similarity threshold, and combining the index-deduplicated vector batch into the vector index in each of the set of nodes;
e) repeating step d) until there is no remaining vector in the vector store;
f) selecting one node from the first set of nodes, and replicating the vector index of the selected node in each of a second set of nodes, wherein the second set of nodes have fewer nodes than the first set of nodes, Fig. 2).
As per claim 3, claim 1 is incorporated, Liu further discloses:
wherein creating the HNSW index based on the set of vectors comprises: for each node in the plurality of nodes: reading, by said each node, a copy of the set of vectors from the vector database into local memory of said each node; creating, by said each node, a copy of the HNSW index based on the copy of the set of vectors ([0067] each node stores copy of replicated index [0070] resulting indexes are evenly distributed and their size is evaluated to find nodes that contain enough RAM to store them [0073] At 303, the method may include generating a vector index based on the deduplicated vector batch in each of the first set of nodes [0076] At 306, the method may include selecting one node from the first set of nodes, and replicating the vector index of the selected node in each of a second set of nodes, wherein the second set of nodes have fewer nodes than the first set of nodes [0079] the generated vector index is a HNSW vector index, Fig. 2).
Regarding claim 14, Liu discloses:
One or more non-transitory storage media storing instructions which, when executed by one or more computing devices, cause: receiving an instruction to create a vector index on a set of vectors that is stored in a vector database that is communicatively coupled to a plurality of nodes in a cluster ([0024] system for indexing vectors of image data comprising instructions executed by processors [0038] receive a query image; generate a query vector based on one or more features of the query image; generate, by the vector indexing engine, a vector index for vectors of image data in a database as an assigner index; generate an on-disk vector database, wherein bucket placements of the on-disk vector database are guided by the assigner index);
in response to receiving the instruction: creating an HNSW index based on the set of vectors ([0065]-[0070] building vector indexes which are HNSW [0073] At 303, the method may include generating a vector index based on the deduplicated vector batch in each of the first set of nodes [0079] the generated vector index is a HNSW vector index);
causing a copy of the HNSW index to be stored in memory of each node in the plurality of nodes ([0067] each node stores copy of replicated index [0070] resulting indexes are evenly distributed and their size is evaluated to find nodes that contain enough RAM to store them [0076] At 306, the method may include selecting one node from the first set of nodes, and replicating the vector index of the selected node in each of a second set of nodes, wherein the second set of nodes have fewer nodes than the first set of nodes);
in response to receiving a first vector query, processing, by a first node in the plurality of nodes, the first vector query against a first copy of the HNSW index([0038] receive a query image; generate a query vector based on one or more features of the query image; generate, by the vector indexing engine, a vector index for vectors of image data in a database as an assigner index; generate an on-disk vector database, wherein bucket placements of the on-disk vector database are guided by the assigner index; and identify candidate vectors through the assigner index and the vector database, wherein the query vector and the candidate vectors have similarity scores equal to or greater than a similarity threshold);
in response to receiving a second vector query, processing, by a second node in the plurality of nodes, the second vector query against a second copy of the HNSW index ([0038], [0045] mentions indexing embedding vectors for use in handling (plural) queries).
Claims 15, 16 recite similar claim limitations as the method of claims 2, 3, except that they set forth the claimed invention as one or more storage media, and as such, they are rejected for the same reasons as applied hereinabove.
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 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 5-6, 18 are rejected under 35 U.S.C. 103 as being unpatentable over Liu (US) in view of Perumalla (US 2021/0173896).
As per claim 5, claim 1 is incorporated, Liu fails to disclose “further comprising: determining, by the first node, that the first node is a primary node; determining, by the first node, to create a snapshot of the HNSW index; causing a version of the snapshot to be stored in memory of each node of the plurality of nodes”
However, Perumalla teaches the following limitations ([0017], [0042] HNSW [0029], [0076] periodic snapshots and uploading them to storage).
Therefore, it would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate the teaching of Perumalla into the teaching of Liu because the references similarly disclose query processing and indexing. Consequently, one of ordinary skill in the art would be motivated to further modify the system as in Liu to further include the snapshotting of the index within the system as in Chhatpar in order to be able to access previous versions of the index at a future date.
As per claim 6, claim 5 is incorporated, Perumalla further discloses:
wherein causing the version of the snapshot to be stored comprises: creating, by the first node, the snapshot of the HNSW index; causing, by the first node, the snapshot to be stored in the vector database; retrieving, by other nodes in the plurality of nodes, from the vector database, the snapshot ([0017], [0042] HNSW [0029], [0076] periodic snapshots and uploading them to storage, [0055] Fig. 5 request to get a vector performed by checkpoint service).
Claim 18 recites similar claim limitations as the method of claim 5, except that it sets forth the claimed invention as one or more storage media, and as such, they are rejected for the same reasons as applied hereinabove.
Claims 11-12, 20 are rejected under 35 U.S.C. 103 as being unpatentable over Liu (US 2025/0005896) in view of Chhatpar (US 2024/0330342).
Regarding claim 11, Liu discloses:
A method comprising: for each node of a plurality of nodes in a cluster: retrieving, from a vector database, a respective subset of a set of vectors that is stored; based on the respective subset, generating, by said each node, a respective HNSW index; the HNSW index ([0066]-[0067] each node growing HNSW index with batches of vectors/subsets of vectors).
Liu fails to disclose “in response to receiving a vector query, transmitting the vector query to each node in the plurality of nodes; for each node of the plurality of nodes, traversing the ... index that is stored on said each node to generate results of the vector query; combining the results of the vector query from each node of the plurality of nodes to generate final results”
However, Chhatpar teaches the following limitations, in response to receiving a vector query, transmitting the vector query to each node in the plurality of nodes; for each node of the plurality of nodes, traversing the ... index that is stored on said each node to generate results of the vector query ([0113]-[0114] operations 412 and 414);
combining the results of the vector query from each node of the plurality of nodes to generate final results ([0113]-[0114] operation 416).
Therefore, it would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate the teaching of Chhatpar into the teaching of Liu because the references similarly disclose query processing and indexing. Consequently, one of ordinary skill in the art would be motivated to further modify the system as in Liu to further include the use of the distributed index within the system as in Chhatpar in order to “provide the benefit of increased and more flexible scalability” (Chhatpar, [0043]).
As per claim 12, claim 11 is incorporated, Chhatpar further discloses:
wherein the results of the vector query, generated by each node of the plurality of nodes are Top K results, wherein the final results are Top K results ([0005], [0098]).
As per claim 20, claim 11 is incorporated, Liu further discloses:
one or more non-transitory storage media storing instructions which, when executed by one or more computing devices, cause performance of the method recited in Claim 11 ([0024]).
Claim 13 is rejected under 35 U.S.C. 103 as being unpatentable over Liu (US 2025/0005896) in view of Chhatpar (US 2024/0330342) and further in view of Li (US 2025/0225132).
As per claim 13, claim 11 is incorporated, Liu, Chhatpar fail to disclose “further comprising: generating home location data that indicates which subset of the set of vectors is stored on each node of the plurality of nodes; causing the home location data to be stored on each node of the plurality of nodes”
However, Li teaches the above limitations ([0092] storage location of index entries).
Therefore, it would have been obvious to one of ordinary skill in the art prior to the effective filing date of the claimed invention to incorporate the teaching of Li into the teaching of Liu, Chhatpar because the references similarly disclose query processing and indexing. Consequently, one of ordinary skill in the art would be motivated to further modify the system as in the combination of references to further include the storage of index location entries as in Li in order to be able to utilize them for more-efficient access of indexed data.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to WILLIAM P BARTLETT whose telephone number is (469)295-9085. The examiner can normally be reached on M-Th 11:30-8:30, F 11-3.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Sherief Badawi can be reached on 571-272-9782. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/WILLIAM P BARTLETT/
Primary Examiner, Art Unit 2169