This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push:
new c520f120fdb Performance doc of ann vector search (#3175)
c520f120fdb is described below
commit c520f120fdb7931457e750ad7ee9fea9ea05ab59
Author: zhiqiang <[email protected]>
AuthorDate: Wed Dec 10 11:28:59 2025 +0800
Performance doc of ann vector search (#3175)
## Versions
- [x] dev
- [x] 4.x
- [ ] 3.x
- [ ] 2.1
## Languages
- [x] Chinese
- [x] English
## Docs Checklist
- [ ] Checked by AI
- [ ] Test Cases Built
---
docs/ai/vector-search/performance.md | 74 +++++++++++++++++++++
.../current/ai/vector-search/performance.md | 70 +++++++++++++++++++
.../version-4.x/ai/vector-search/performance.md | 70 +++++++++++++++++++
sidebars.ts | 1 +
.../vector-search/ann_index_performance_0.jpg | Bin 0 -> 358376 bytes
.../version-4.x/ai/vector-search/performance.md | 74 +++++++++++++++++++++
versioned_sidebars/version-4.x-sidebars.json | 3 +-
7 files changed, 291 insertions(+), 1 deletion(-)
diff --git a/docs/ai/vector-search/performance.md
b/docs/ai/vector-search/performance.md
new file mode 100644
index 00000000000..2a30638972b
--- /dev/null
+++ b/docs/ai/vector-search/performance.md
@@ -0,0 +1,74 @@
+---
+{
+ "title": "Performance Testing and Analysis",
+ "language": "en"
+}
+---
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+This document introduces the query and ingestion performance of Doris ANN
Index. All benchmarks are conducted using
[VectorDBBench](https://github.com/zilliztech/VectorDBBench).
+
+## Test Environment
+All machines used in the tests have 16 CPU cores and 64 GB memory, with CPUs
of model Intel(R) Xeon(R) Platinum 8369B CPU @ 2.70GHz. FE and BE are
co-located on a single 16C64GB machine (note: this is not a recommended
production deployment; in production, FE and BE should be deployed separately).
The tested version is Apache Doris 4.0.2. The dataset used is VectorDBBench
Performance768D1M, which contains 1 million vectors of 768 dimensions.
+
+## Results
+
+
+## Analysis
+```
+ ┌──────────────────────┐
+ │ Recall │
+ │ (Higher is Better) │
+ └──────────▲───────────┘
+ / \
+ / \
+ / \
+ / \
+ / \
+ / \
+ ┌───────────┘ └───────────┐
+ │ │
+ │ │
+ ▼ ▼
+ ┌──────────────────────┐ ┌────────────────────────┐
+ │ Query QPS │ │ Indexing Throughput │
+ │ (Latency / QPS) │ │ (Higher is Better) │
+ │ (Lower Latency Better)│ │ │
+ └──────────────────────┘ └────────────────────────┘
+```
+In vector search, a production-ready vector database typically faces a
performance “triangle” that is hard to maximize across all dimensions
simultaneously: query performance (QPS/latency), recall, and indexing
throughput. System design often requires trade-offs among these three.
+
+Take HNSW (Hierarchical Navigable Small World), the most widely used vector
index, as an example. It relies on graph structures to optimize search. There
are three key tunable hyperparameters in HNSW:
+
+- max_degree: The maximum out-degree of each node in the graph, determining
graph density and connectivity.
+- ef_construction: The candidate set size used during index building. Larger
values generally result in higher-quality graphs.
+- hnsw_ef_search: The exploration window size during query time, directly
affecting recall and latency.
+
+In principle, increasing max_degree and ef_construction during index building
can significantly improve graph connectivity and navigability, yielding higher
recall. A higher-quality graph also allows a smaller hnsw_ef_search at query
time, reducing search cost and improving query performance. However, these
index-building parameter increases come with trade-offs: index construction
requires more compute and memory resources, leading to lower ingestion
performance. This is the quintessent [...]
+
+Apache Doris aims to build a more balanced performance triangle for vector
search. Through optimizations in the execution engine, storage format
improvements, and engineering-level parallel acceleration of HNSW construction,
Doris significantly improves overall indexing throughput without sacrificing
index quality or high recall.
+
+On the Performance768D1M dataset, results show that, under comparable index
quality, Apache Doris exhibits notably better ingestion performance than peer
systems. More importantly, Doris does not compromise graph quality to gain
ingestion speed. In our tests, Apache Doris achieves a QPS of 989.1 while
maintaining over 97% recall, striking a strong balance across all three
dimensions of the performance triangle.
+
+## Reproduction
+```
+NUM_PER_BATCH=500000 vectordbbench doris --host 127.0.0.1 --port 9030
--http-port 8030 --case-type Performance768D1M --db-name vdb --num-concurrency
80 --stream-load-rows-per-batch 500000 --index-prop
max_degree=128,ef_construction=256 --session-var hnsw_ef_search=100
+```
diff --git
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/ai/vector-search/performance.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/ai/vector-search/performance.md
new file mode 100644
index 00000000000..4f5de55fd71
--- /dev/null
+++
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/ai/vector-search/performance.md
@@ -0,0 +1,70 @@
+---
+{
+ "title": "性能测试与分析",
+ "language": "zh-CN"
+}
+---
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+这里介绍 Doris Ann Index 的查询性能与导入性能。所有的性能测试都是通过
[VectorDBBench](https://github.com/zilliztech/VectorDBBench) 完成的。
+## 测试环境
+测试涉及到的机器规格都是 16C64GB的机器,CPU型号为 Intel(R) Xeon(R) Platinum 8369B CPU @
2.70GHz。FE BE 混合部署在一台 16C64GB 的机器上(注意这个不是推荐的生产环境部署方式,生产环境上建议 FE 与 BE
分离部署),测试的版本是 Apache Doris 4.0.2。采用的测试数据集是 VectorDBBench
Performance768D1M,该数据集向量的维度为 768 维,一共一百万行。
+
+## 测试结果
+
+## 结果分析
+```
+ ┌──────────────────────┐
+ │ 召回率 Recall │
+ │ (Higher is Better) │
+ └──────────▲───────────┘
+ / \
+ / \
+ / \
+ / \
+ / \
+ / \
+ ┌───────────┘ └───────────┐
+ │ │
+ │ │
+ ▼ ▼
+ ┌──────────────────────┐ ┌────────────────────────┐
+ │ 查询性能 QPS │ │ 导入速度 Indexing │
+ │ (Latency / QPS) │ │ Throughput │
+ │ (Lower Latency Better)│ │ (Higher is Better) │
+ └──────────────────────┘ └────────────────────────┘
+```
+在向量搜索场景下,对于一个成熟且可在生产环境稳定运行的向量数据库而言,查询性能(QPS/延迟)、召回率(Recall)、导入速度(Index Build
Throughput) 三者通常构成一个难以同时最大化的 性能铁三角。向量数据库的系统设计往往需要在这三者之间进行取舍和权衡。
+以目前业界最广泛使用的 HNSW(Hierarchical Navigable Small World)向量索引为例,它依赖图结构进行搜索优化。在 HNSW
中有三个关键超参数可调优:
+
+- max_degree:图中每个节点的最大出度,决定图的稠密程度与整体连通性;
+- ef_construction:构建索引时使用的“候选集大小”,越大意味着构建出的图质量越高;
+- hnsw_ef_search:查询时的探索窗口大小,直接影响召回率和查询延迟。
+
+从原理上讲,增大索引阶段的 max_degree 和 ef_construction
可以显著提高图结构的连通性与导航效率,从而带来更高的召回率。同时更高质量的图也意味着在查询阶段可以将 hnsw_ef_search
设置得更小,从而降低搜索代价、提升查询性能。然而,这些索引构建超参数的调大会带来显著的副作用:索引构建需要更多计算与内存资源,导入性能因此下降。这正是向量数据库在设计时需要面对的典型三难困境。
+**Apache Doris 在设计其向量搜索能力时,目标是构建一个更加均衡的性能三角形。它通过底层执行引擎的优化、存储格式改进,以及对 HNSW
构建流程的工程级并行化加速,使得在不牺牲索引质量与高召回的前提下,显著提升整体索引导入速度。**
+
+在 Performance768D1M 数据集上的测试结果表明:在保持索引质量一致的前提下,Apache Doris
的导入性能明显优于同类系统。更重要的是,Doris 并未因为提升导入速度而降低图结构的质量。在实际测试中,Apache Doris 能够在 QPS 达到
989.1 的情况下仍然保持 97% 以上的召回率,在性能三角的三个维度上均取得了较为均衡的结果。
+
+## 复现方式
+```
+NUM_PER_BATCH=500000 vectordbbench doris --host 127.0.0.1 --port 9030
--http-port 8030 --case-type Performance768D1M --db-name vdb --num-concurrency
80 --stream-load-rows-per-batch 500000 --index-prop
max_degree=128,ef_construction=256 --session-var hnsw_ef_search=100
+```
\ No newline at end of file
diff --git
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/ai/vector-search/performance.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/ai/vector-search/performance.md
new file mode 100644
index 00000000000..ddf4eb7a52e
--- /dev/null
+++
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/ai/vector-search/performance.md
@@ -0,0 +1,70 @@
+---
+{
+ "title": "性能测试与分析",
+ "language": "zh-CN"
+}
+---
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+这里介绍 Doris Ann Index 的查询性能与导入性能。所有的性能测试都是通过
[VectorDBBench](https://github.com/zilliztech/VectorDBBench) 完成的。
+## 测试环境
+测试涉及到的机器规格都是 16C64GB 的机器,CPU型号为 Intel(R) Xeon(R) Platinum 8369B CPU @
2.70GHz。FE BE 混合部署在一台 16C64GB 的机器上(注意这个不是推荐的生产环境部署方式,生产环境上建议 FE 与 BE
分离部署),测试的版本是 Apache Doris 4.0.2。采用的测试数据集是 VectorDBBench
Performance768D1M,该数据集向量的维度为 768 维,一共一百万行。
+
+## 测试结果
+
+## 结果分析
+```
+ ┌──────────────────────┐
+ │ 召回率 Recall │
+ │ (Higher is Better) │
+ └──────────▲───────────┘
+ / \
+ / \
+ / \
+ / \
+ / \
+ / \
+ ┌───────────┘ └───────────┐
+ │ │
+ │ │
+ ▼ ▼
+ ┌──────────────────────┐ ┌────────────────────────┐
+ │ 查询性能 QPS │ │ 导入速度 Indexing │
+ │ (Latency / QPS) │ │ Throughput │
+ │ (Lower Latency Better)│ │ (Higher is Better) │
+ └──────────────────────┘ └────────────────────────┘
+```
+在向量搜索场景下,对于一个成熟且可在生产环境稳定运行的向量数据库而言,查询性能(QPS/延迟)、召回率(Recall)、导入速度(Index Build
Throughput) 三者通常构成一个难以同时最大化的 性能铁三角。向量数据库的系统设计往往需要在这三者之间进行取舍和权衡。
+以目前业界最广泛使用的 HNSW(Hierarchical Navigable Small World)向量索引为例,它依赖图结构进行搜索优化。在 HNSW
中有三个关键超参数可调优:
+
+- max_degree:图中每个节点的最大出度,决定图的稠密程度与整体连通性;
+- ef_construction:构建索引时使用的“候选集大小”,越大意味着构建出的图质量越高;
+- hnsw_ef_search:查询时的探索窗口大小,直接影响召回率和查询延迟。
+
+从原理上讲,增大索引阶段的 max_degree 和 ef_construction
可以显著提高图结构的连通性与导航效率,从而带来更高的召回率。同时更高质量的图也意味着在查询阶段可以将 hnsw_ef_search
设置得更小,从而降低搜索代价、提升查询性能。然而,这些索引构建超参数的调大会带来显著的副作用:索引构建需要更多计算与内存资源,导入性能因此下降。这正是向量数据库在设计时需要面对的典型三难困境。
+**Apache Doris 在设计其向量搜索能力时,目标是构建一个更加均衡的性能三角形。它通过底层执行引擎的优化、存储格式改进,以及对 HNSW
构建流程的工程级并行化加速,使得在不牺牲索引质量与高召回的前提下,显著提升整体索引导入速度。**
+
+在 Performance768D1M 数据集上的测试结果表明:在保持索引质量一致的前提下,Apache Doris
的导入性能明显优于同类系统。更重要的是,Doris 并未因为提升导入速度而降低图结构的质量。在实际测试中,Apache Doris 能够在 QPS 达到
989.1 的情况下仍然保持 97% 以上的召回率,在性能三角的三个维度上均取得了较为均衡的结果。
+
+## 复现方式
+```
+NUM_PER_BATCH=500000 vectordbbench doris --host 127.0.0.1 --port 9030
--http-port 8030 --case-type Performance768D1M --db-name vdb --num-concurrency
80 --stream-load-rows-per-batch 500000 --index-prop
max_degree=128,ef_construction=256 --session-var hnsw_ef_search=100
+```
\ No newline at end of file
diff --git a/sidebars.ts b/sidebars.ts
index a0d4f41a7b7..24cd0733754 100644
--- a/sidebars.ts
+++ b/sidebars.ts
@@ -412,6 +412,7 @@ const sidebars: SidebarsConfig = {
'ai/vector-search/hnsw',
'ai/vector-search/ivf',
'ai/vector-search/index-management',
+ 'ai/vector-search/performance',
],
},
],
diff --git a/static/images/vector-search/ann_index_performance_0.jpg
b/static/images/vector-search/ann_index_performance_0.jpg
new file mode 100644
index 00000000000..4364f25b69d
Binary files /dev/null and
b/static/images/vector-search/ann_index_performance_0.jpg differ
diff --git a/versioned_docs/version-4.x/ai/vector-search/performance.md
b/versioned_docs/version-4.x/ai/vector-search/performance.md
new file mode 100644
index 00000000000..2a30638972b
--- /dev/null
+++ b/versioned_docs/version-4.x/ai/vector-search/performance.md
@@ -0,0 +1,74 @@
+---
+{
+ "title": "Performance Testing and Analysis",
+ "language": "en"
+}
+---
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+This document introduces the query and ingestion performance of Doris ANN
Index. All benchmarks are conducted using
[VectorDBBench](https://github.com/zilliztech/VectorDBBench).
+
+## Test Environment
+All machines used in the tests have 16 CPU cores and 64 GB memory, with CPUs
of model Intel(R) Xeon(R) Platinum 8369B CPU @ 2.70GHz. FE and BE are
co-located on a single 16C64GB machine (note: this is not a recommended
production deployment; in production, FE and BE should be deployed separately).
The tested version is Apache Doris 4.0.2. The dataset used is VectorDBBench
Performance768D1M, which contains 1 million vectors of 768 dimensions.
+
+## Results
+
+
+## Analysis
+```
+ ┌──────────────────────┐
+ │ Recall │
+ │ (Higher is Better) │
+ └──────────▲───────────┘
+ / \
+ / \
+ / \
+ / \
+ / \
+ / \
+ ┌───────────┘ └───────────┐
+ │ │
+ │ │
+ ▼ ▼
+ ┌──────────────────────┐ ┌────────────────────────┐
+ │ Query QPS │ │ Indexing Throughput │
+ │ (Latency / QPS) │ │ (Higher is Better) │
+ │ (Lower Latency Better)│ │ │
+ └──────────────────────┘ └────────────────────────┘
+```
+In vector search, a production-ready vector database typically faces a
performance “triangle” that is hard to maximize across all dimensions
simultaneously: query performance (QPS/latency), recall, and indexing
throughput. System design often requires trade-offs among these three.
+
+Take HNSW (Hierarchical Navigable Small World), the most widely used vector
index, as an example. It relies on graph structures to optimize search. There
are three key tunable hyperparameters in HNSW:
+
+- max_degree: The maximum out-degree of each node in the graph, determining
graph density and connectivity.
+- ef_construction: The candidate set size used during index building. Larger
values generally result in higher-quality graphs.
+- hnsw_ef_search: The exploration window size during query time, directly
affecting recall and latency.
+
+In principle, increasing max_degree and ef_construction during index building
can significantly improve graph connectivity and navigability, yielding higher
recall. A higher-quality graph also allows a smaller hnsw_ef_search at query
time, reducing search cost and improving query performance. However, these
index-building parameter increases come with trade-offs: index construction
requires more compute and memory resources, leading to lower ingestion
performance. This is the quintessent [...]
+
+Apache Doris aims to build a more balanced performance triangle for vector
search. Through optimizations in the execution engine, storage format
improvements, and engineering-level parallel acceleration of HNSW construction,
Doris significantly improves overall indexing throughput without sacrificing
index quality or high recall.
+
+On the Performance768D1M dataset, results show that, under comparable index
quality, Apache Doris exhibits notably better ingestion performance than peer
systems. More importantly, Doris does not compromise graph quality to gain
ingestion speed. In our tests, Apache Doris achieves a QPS of 989.1 while
maintaining over 97% recall, striking a strong balance across all three
dimensions of the performance triangle.
+
+## Reproduction
+```
+NUM_PER_BATCH=500000 vectordbbench doris --host 127.0.0.1 --port 9030
--http-port 8030 --case-type Performance768D1M --db-name vdb --num-concurrency
80 --stream-load-rows-per-batch 500000 --index-prop
max_degree=128,ef_construction=256 --session-var hnsw_ef_search=100
+```
diff --git a/versioned_sidebars/version-4.x-sidebars.json
b/versioned_sidebars/version-4.x-sidebars.json
index 2a5d7851d41..accf41b35ef 100644
--- a/versioned_sidebars/version-4.x-sidebars.json
+++ b/versioned_sidebars/version-4.x-sidebars.json
@@ -418,7 +418,8 @@
"ai/vector-search/overview",
"ai/vector-search/hnsw",
"ai/vector-search/ivf",
- "ai/vector-search/index-management"
+ "ai/vector-search/index-management",
+ "ai/vector-search/performance"
]
}
]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]