DiskANN is a disk-based approximate nearest neighbor (ANN) search algorithm for ultra-large-scale datasets that exceed available memory. It stores the Vamana graph index on disk and uses Product Quantization (PQ) to compress vectors in memory, enabling efficient vector search under memory-constrained conditions.
DiskANN operates in two phases:
Index build phase — constructs the Vamana graph on disk. Build parameters control index quality, PQ compression ratio, and construction cost.
Search phase — traverses the graph using compressed vectors to find approximate nearest neighbors. Search parameters control recall and query latency at runtime.
Index build parameters
| Parameter | Type | Description |
|---|---|---|
proxima.diskann.builder.pq_dimension_scale | Int | The PQ compression scale. The PQ dimension is calculated as: vector dimension / pq_dimension_scale. Default: 8, which compresses vectors to 1/8 of the original dimension. A higher value compresses more aggressively, reducing memory usage at the cost of lower index precision. A lower value preserves more precision at the cost of higher memory usage. |
proxima.diskann.builder.max_degree | Int | The maximum number of neighbor edges per node in the Vamana graph. A higher value produces a more accurate graph but increases construction time and disk usage. |
proxima.diskann.builder.list_size | Int | The candidate set size for edge selection during graph construction. A higher value improves graph accuracy but increases construction time. |
proxima.diskann.builder.thread_count | Int | The number of threads used for index building. |
Index search parameters
| Parameter | Type | Description |
|---|---|---|
proxima.diskann.searcher.list_size | Int | The result candidate set size. A higher value increases recall but also increases query time. |
proxima.diskann.searcher.io_limit | Int | The disk I/O limit per query. The search performs at most io_limit disk read operations, which mainly affects how deeply the algorithm traverses the Vamana graph. A higher value increases recall at the cost of more I/O operations and longer query time. |
proxima.diskann.searcher.beam_search_width | Int | The number of parallel disk I/O operations per query. A higher value increases disk read throughput, reducing the latency impact of a given io_limit. |
该文章对您有帮助吗?