<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vector Database Benchmarks on Qdrant - Vector Database</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/</link><description>Recent content in Vector Database Benchmarks on Qdrant - Vector Database</description><generator>Hugo</generator><language>en-us</language><managingEditor>info@qdrant.tech (Andrey Vasnetsov)</managingEditor><webMaster>info@qdrant.tech (Andrey Vasnetsov)</webMaster><lastBuildDate>Mon, 13 Feb 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/index.xml" rel="self" type="application/rss+xml"/><item><title>How vector search should be benchmarked?</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/benchmarks-intro/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/benchmarks-intro/</guid><description>&lt;h1 id="benchmarking-vector-databases">Benchmarking Vector Databases&lt;/h1>
&lt;p>At Qdrant, performance is the top-most priority. We always make sure that we use system resources efficiently so you get the &lt;strong>fastest and most accurate results at the cheapest cloud costs&lt;/strong>. So all of our decisions from &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/articles/why-rust/">choosing Rust&lt;/a>, &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/articles/io_uring/">io optimisations&lt;/a>, &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/articles/serverless/">serverless support&lt;/a>, &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/articles/binary-quantization/">binary quantization&lt;/a>, to our &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/articles/fastembed/">fastembed library&lt;/a> are all based on our principle. In this article, we will compare how Qdrant performs against the other vector search engines.&lt;/p>
&lt;p>Here are the principles we followed while designing these benchmarks:&lt;/p></description></item><item><title>Single node benchmarks</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/single-node-speed-benchmark/</link><pubDate>Tue, 23 Aug 2022 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/single-node-speed-benchmark/</guid><description>&lt;h2 id="observations">Observations&lt;/h2>
&lt;p>Most of the engines have improved since &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/single-node-speed-benchmark-2022/">our last run&lt;/a>. Both life and software have trade-offs but some clearly do better:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>Qdrant&lt;/code> achives highest RPS and lowest latencies in almost all the scenarios, no matter the precision threshold and the metric we choose.&lt;/strong> It has also shown 4x RPS gains on one of the datasets.&lt;/li>
&lt;li>&lt;code>Elasticsearch&lt;/code> has become considerably fast for many cases but it&amp;rsquo;s very slow in terms of indexing time. It can be 10x slower when storing 10M+ vectors of 96 dimensions! (32mins vs 5.5 hrs)&lt;/li>
&lt;li>&lt;code>Milvus&lt;/code> is the fastest when it comes to indexing time and maintains good precision. However, it&amp;rsquo;s not on-par with others when it comes to RPS or latency when you have higher dimension embeddings or more number of vectors.&lt;/li>
&lt;li>&lt;code>Redis&lt;/code> is able to achieve good RPS but mostly for lower precision. It also achieved low latency with single thread, however its latency goes up quickly with more parallel requests. Part of this speed gain comes from their custom protocol.&lt;/li>
&lt;li>&lt;code>Weaviate&lt;/code> has improved the least since our last run.&lt;/li>
&lt;/ul>
&lt;h2 id="how-to-read-the-results">How to read the results&lt;/h2>
&lt;ul>
&lt;li>Choose the dataset and the metric you want to check.&lt;/li>
&lt;li>Select a precision threshold that would be satisfactory for your usecase. This is important because ANN search is all about trading precision for speed. This means in any vector search benchmark, &lt;strong>two results must be compared only when you have similar precision&lt;/strong>. However most benchmarks miss this critical aspect.&lt;/li>
&lt;li>The table is sorted by the value of the selected metric (RPS / Latency / p95 latency / Index time), and the first entry is always the winner of the category 🏆&lt;/li>
&lt;/ul>
&lt;h3 id="latency-vs-rps">Latency vs RPS&lt;/h3>
&lt;p>In our benchmark we test two main search usage scenarios that arise in practice.&lt;/p></description></item><item><title>Single node benchmarks (2022)</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/single-node-speed-benchmark-2022/</link><pubDate>Tue, 23 Aug 2022 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/single-node-speed-benchmark-2022/</guid><description>&lt;p>This is an archived version of Single node benchmarks. Please refer to the new version &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/single-node-speed-benchmark/">here&lt;/a>.&lt;/p></description></item><item><title>Filtered search benchmark</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/filtered-search-intro/</link><pubDate>Mon, 13 Feb 2023 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/filtered-search-intro/</guid><description>&lt;h1 id="filtered-search-benchmark">Filtered search benchmark&lt;/h1>
&lt;p>Applying filters to search results brings a whole new level of complexity.
It is no longer enough to apply one algorithm to plain data. With filtering, it becomes a matter of the &lt;em>cross-integration&lt;/em> of the different indices.&lt;/p>
&lt;p>To measure how well different search engines perform in this scenario, we have prepared a set of &lt;strong>Filtered ANN Benchmark Datasets&lt;/strong> -
&lt;a href="https://github.com/qdrant/ann-filtering-benchmark-datasets" target="_blank" rel="noopener nofollow">https://github.com/qdrant/ann-filtering-benchmark-datasets&lt;/a>&lt;/p>
&lt;p>It is similar to the ones used in the &lt;a href="https://github.com/erikbern/ann-benchmarks/" target="_blank" rel="noopener nofollow">ann-benchmarks project&lt;/a> but enriched with payload metadata and pre-generated filtering requests. It includes synthetic and real-world datasets with various filters, from keywords to geo-spatial queries.&lt;/p></description></item><item><title/><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/filtered-search-benchmark/</link><pubDate>Mon, 13 Feb 2023 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/filtered-search-benchmark/</guid><description>&lt;h2 id="filtered-results">Filtered Results&lt;/h2>
&lt;p>As you can see from the charts, there are three main patterns:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Speed boost&lt;/strong> - for some engines/queries, the filtered search is faster than the unfiltered one. It might happen if the filter is restrictive enough, to completely avoid the usage of the vector index.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Speed downturn&lt;/strong> - some engines struggle to keep high RPS, it might be related to the requirement of building a filtering mask for the dataset, as described above.&lt;/p></description></item><item><title>Benchmarks F.A.Q.</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/benchmark-faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/benchmarks/benchmark-faq/</guid><description>&lt;h1 id="benchmarks-faq">Benchmarks F.A.Q.&lt;/h1>
&lt;h2 id="are-we-biased">Are we biased?&lt;/h2>
&lt;p>Probably, yes. Even if we try to be objective, we are not experts in using all the existing vector databases.
We build Qdrant and know the most about it.
Due to that, we could have missed some important tweaks in different vector search engines.&lt;/p>
&lt;p>However, we tried our best, kept scrolling the docs up and down, experimented with combinations of different configurations, and gave all of them an equal chance to stand out. If you believe you can do it better than us, our &lt;strong>benchmarks are fully &lt;a href="https://github.com/qdrant/vector-db-benchmark" target="_blank" rel="noopener nofollow">open-sourced&lt;/a>, and contributions are welcome&lt;/strong>!&lt;/p></description></item></channel></rss>