From f83e2e4e883f3b9eb9797faf31fc473dfa65687e Mon Sep 17 00:00:00 2001 From: yairgott Date: Fri, 13 Jun 2025 14:15:29 -0700 Subject: [PATCH 01/29] initial version Signed-off-by: yairgott --- .../images/cluster.png | Bin 0 -> 88552 bytes .../images/ha.png | Bin 0 -> 72193 bytes .../images/highlevel-flow.png | Bin 0 -> 60620 bytes .../index.md | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 content/blog/2025-06-13-introducing-valkey-search/images/cluster.png create mode 100644 content/blog/2025-06-13-introducing-valkey-search/images/ha.png create mode 100644 content/blog/2025-06-13-introducing-valkey-search/images/highlevel-flow.png create mode 100644 content/blog/2025-06-13-introducing-valkey-search/index.md diff --git a/content/blog/2025-06-13-introducing-valkey-search/images/cluster.png b/content/blog/2025-06-13-introducing-valkey-search/images/cluster.png new file mode 100644 index 0000000000000000000000000000000000000000..6e10c63f690380a9ba5b76ce42d773ebd903cfa0 GIT binary patch literal 88552 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

RKj3N6gbXqpK`_r8reKkqQ43g>(dEFlg2Sh1b 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 z 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%0Dr|l4s{Uce?oPI#X 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 Date: Fri, 13 Jun 2025 15:02:58 -0700 Subject: [PATCH 02/29] Update index.md Signed-off-by: Yair Gottdenker --- .../index.md | 173 ++++++++++++++++++ 1 file changed, 173 insertions(+) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index e69de29b..88494947 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -0,0 +1,173 @@ +The Valkey project is introducing vector similarity search capabilities through [valkey-search](https://github.com/valkey-io/valkey-search) (BSD-3-Clause licensed), an official Valkey module compatible with Valkey versions 8.1.1 and above. + +With valkey-search you can search through billions of vectors with single-digit millisecond latencies and greater than 99% recall. Whether you're building semantic search, fraud detection systems, or conversational AI experiences, valkey-search offers a performant and flexible foundation. + +In this blog, you'll learn how valkey-search works, explore key use cases it supports, understand its architecture and indexing model, and see how to integrate it into your own applications. You'll also gain insight into how it scales, ensures high availability, and supports hybrid queries that combine vector similarity with structured filtering. + + +## Semantic Search + +The ability of AI models to extract semantic meaning enables new classes of searching algorithms, collectively known as semantic search. An AI model can process an input and convert it into a single high-dimension numeric vector – known as an embedding. Inputs with similar meaning will have similar embeddings. Semantic search is the process of converting a query into its embedding and searching a database of embeddings to find the embeddings that are most alike. + +The semantic search process can be divided into three phases: + +* **Encode**: First, convert your input data into searchable units known as chunks. Chunking strategies are data-type specific. For example, with text one well-known chunking algorithm is to make each sentence be a chunk. Then use an AI model to generate an embedding for each chunk. The specific AI model used for encoding depends on the data type and specific use case. Many AI models are available as a service, such as Google Cloud’s [VertexAI](https://cloud.google.com/vertex-ai?utm_source=google&utm_medium=cpc&utm_campaign=na-US-all-en-dr-bkws-all-all-trial-e-dr-1710134&utm_content=text-ad-none-any-DEV_c-CRE_727566102146-ADGP_Hybrid+%7C+BKWS+-+MIX+%7C+Txt-AI+and+Machine+Learning-AI+and+ML+General-KWID_43700081235816807-kwd-553582750299&utm_term=KW_vertex%20ai-ST_vertex+ai&gad_source=1&gclid=Cj0KCQjwt8zABhDKARIsAHXuD7bx87RdKGwa0aI65EGd09BIBUVJLBS_G0D9CYrubsIQObu2O62k6_0aAnmFEALw_wcB&gclsrc=aw.ds) or AWS’ [Bedrock](https://aws.amazon.com/bedrock/), simplifying the embedding generation process. +* **Index**: Store the generated embeddings along with any associated metadata in valkey-search. Each stored item is indexed with a primary key and a set of attributes spanning multiple modalities, for example, tags (categories), numbers (pricing), etc. +* **Search**: The query is converted into an embedding using the same AI model as was used in the **Encode** step above. This embedding is used with the vector search capability of valley-search to locate the most similar vectors. The located vectors correspond to chunks of the original input that have the most similar meaning to the query. + +![Semantic search phases](images/highlevel-flow.png) + +## Use-Cases Where valkey-search Shines + +Valkey-search’s ability to search billions of vectors with millisecond latencies makes it ideal for real-time applications such as: + +* **Personalized Recommendations** – Deliver instant, highly relevant recommendations based on real-time user interactions. +* **Fraud Detection & Security** – Identify anomalies and suspicious activity with ultra-fast similarity matching. +* **Conversational AI & Chatbots** – Enhance response accuracy and relevance by leveraging rapid vector-based retrieval. +* **Image & Video Search** – Enable multimedia search through real-time similarity detection. +* **GenAI & Semantic Search** – Power advanced AI applications with efficient vector retrieval for natural language understanding. + +## Valkey-Search Architecture Overview + +Valkey-search allows the creation of any number of named indexes. A valkey-search index can be thought of like a relational database table where a row is a Valkey key and a column is an attribute (field) within that key. Each index is defined to cover a portion of the Valkey keyspace and some list of attributes within those keys. Any mutation of a key within the scope of an index synchronously updates that index before that mutation command is acknowledged. Query operations can be performed on a single index, returning the located key names and optionally their contents. + +Indexes can be constructed over HASH or JSON keys. For HASH keys, the indexable attributes of the keys are just the hash fields. For JSON keys, the indexable attributes are identified using the JSON path notation. Regardless of key type, an index can have any number of attributes. Each attribute of an index is declared with a type and sometimes type-specific modifiers. Currently, three index attribute types are supported: Vector, Numeric and Tag. + +### Index Creation + +The `FT.CREATE` command is used to define a new index which is created empty. This causes the system to automatically initiate an asynchronous background process to scan the keyspace for keys that belong in the index – backfilling. The backfill process runs until the entire keyspace has been scanned for the index. The `backfill_in_progress` and `backfill_complete_percent` fields of the `FT.INFO` command result can be used to monitor the progress of the backfill. Once the backfill is complete it need not be executed against the index again. + +Note that during the backfill process, query and ingestion operations proceed normally. Queries will be executed against the current state of the index. Newly mutated data will be placed into the index as usual and remain unaffected by the backfill process. Thus after the creation of an index – while it is backfilling – the application can be certain that queries will contain the results of all data that has been ingested *after* the creation of the index and *some *of the data ingested *before*. Once the backfill has completed then queries will consider all data covered by the index. + +In cluster mode, the `FT.CREATE` command can be sent to any primary shard of the cluster and the system will automatically distribute the new index definition to all cluster members. The distribution is done using a combination of the cluster bus and direct gRPC communication between nodes. In the rare case where the distribution machinery detects an inconsistency between nodes, a last-writer-wins (LWW) collision resolution protocol is invoked to enable eventual cluster-wide consistency. + + +## Valkey-search Capabilities + + +### Query Pipeline + + +#### Vector Search Algorithms + +Valkey-search supports K Nearest Neighbor (KNN) searching. Applications provide a reference vector and request that the system locate the K vectors which are closest to a supplied reference vector using the selected distance function (L2, IP or cosine). KNN searching is a classic problem which lacks an efficient exact ideal solution. Valkey-search addresses this problem by providing two different algorithms that the developer can select from: + +The first algorithm performs an exhaustive linear search, providing exactly correct answers but with a run-time that may be intolerable on large data sets. + +The second algorithm addresses this problem by compromising on accuracy in exchange for superior run-times. In other words, it runs very fast but may not deliver exactly the correct answer. This type of algorithm is often known as Approximate Nearest Neighbor (ANN). The term "recall" is used to measure the quality of an ANN algorithm result and is expressed as the ratio (or percentage) of the found answers to the correct answers, e.g., a recall of 0.95 (or 95%) means that for a search with K = 100, 95 of the correct answers were found. There is a tradeoff between the recall of an ANN algorithm and its time/space resource consumption. + +Valkey-search supports the Hierarchical Navigable Small Worlds (HNSW) ANN algorithm as it provides the best performance at the highest levels of recall demanded by real-time applications. The HNSW algorithm has O(log N) time complexity and offers three parameters to which provide the developer some control over the CPU and memory consumption vs recall. The relationship between these parameters and the resulting operation latency and recall is complex and data dependent. It is recommended that developers test with data that closely approximates production environments. + + +#### Hybrid Query Support + +Valkey-search query operations are not limited to just vector searching. Documents can contain additional metadata that can be used to enhance searches. Two types of metadata are currently supported: Numeric and Tag. Numeric metadata supports range queries, i.e., you can include or exclude documents with metadata in the particular range. Tag metadata is an enumerated list of words. Tag searches can be done with an exact word match or a prefix match (trailing wild card). + +Hybrid queries are vector query operations which have been augmented with a filter, constructed from the numeric and tag searching operators combined with the usual logical operators `AND`, `OR`, and `NOT.` + +Hybrid queries are particularly powerful for real-world applications, where a mix of vector and non-vector attributes defines the relevance of results. For example, a numeric field could be used as a timestamp, meaning that search operations could be automatically confined to a particular period of time. Another example would be to use a tag field to indicate a language. + + +##### Query Execution + +There are multiple strategies for executing hybrid queries, each suited to different use cases. Valkey-search automatically selects from two strategies as part of the query execution planning phase. This is done by breaking down the query filter into predicates and estimating the selectivity of each predicate to estimate the least expensive execution strategy. + +**Pre-filtering:** This algorithm has two sequential steps: +* First, a temporary dataset is created using only the documents which pass the filter expression. +* Second, a linear `KNN` similarity search of the temporary dataset is performed. + +Pre-filtering is particularly effective for high selectivity queries, i.e., the filter significantly narrows down the dataset + +**Inline-filtering:** In this algorithm, filtering is done *during *the vector search itself. As the HNSW search graph is traversed, each candidate document is tested against the filter criteria before being added to the result set. This method is best suited for cases where the filter isn’t highly selective, i.e., the filter matches a large amount of the dataset. + + +### High Availability + +Valkey-search is built on top of Valkey, leveraging its primary/replica-based architecture to provide high availability (HA). Diagram #2 shows a typical configuration of one primary and three replicas. In the event of a primary node failure, the system automatically promotes one of the replicas to become the new primary. Clients then automatically retry failing operations to the newly promoted primary, minimizing disruption. + +Clients must send data mutation (write) commands to the primary node which are executed and then asynchronously transmitted to each replica. Clients can send data read operations to any node in the cluster, recognizing that reading from a replica delivers a result reflecting a historical point in time. + +When Valkey-search is used, each node, whether a primary or a replica, builds and maintains its own indexes. No additional traffic on the replication channel is generated for index maintenance. Search query operations sent to a replica will be executed against its indexes, reflecting the historical point in time of the data within that node. + +![High availability](images/ha.png) + +### Scaling + +Valkey-search supports all three methods of scaling: horizontal, vertical and replicas. When scaling for capacity, valkey-search behaves just like regular Valkey, i.e., increasing the memory of individual nodes (vertical scaling) or increasing the number of shards (horizontal scaling) will increase the overall capacity. + +However, from a performance perspective, valkey-search behaves very differently from regular Valkey. The multi-threaded implementation of valkey-search means that additional CPUs yield up to linear increases in both query and ingestion throughput. Horizontal scaling (CME) yields linear increases in ingestion throughput but may provide little to no benefit on query throughput. If additional query throughput is required, scaling through replicas or additional CPUs is required. + + +![High availability](images/cluster.png) + + +### Snapshots + +Valkey’s point-in-time RDB snapshotting mechanism is a key component for maintaining high availability, zero downtime, and minimal operational overhead. Beyond persistence and loading from disk snapshots, RDB plays a crucial role in full-sync operations, where a primary node synchronizes its in-memory data with a replica node in an HA setup. Full-sync is commonly triggered when a new replica joins the cluster but may also occur if a secondary falls too far behind due to prolonged lag. + +valkey-search enhances Valkey snapshotting mechanism to include index definitions and vector indexes and is built for resilience and efficiency: + +**Instant Turn-up:** New nodes must become fully operational in minimal time. While rebuilding an index on startup is an option, ingesting a large volume of vectors can be prohibitively slow, delaying system readiness. A snapshot captures not only the index metadata but also the vector index content which significantly reduces downtime and operational burden. + +**Backward/Forward Compatibility:** Cluster upgrades or downgrades often result in a temporary mix of node versions. valkey-search seamlessly handles such scenarios with a serialization format based on Protocol Buffers (Protobuf), ensuring both backward and forward compatibility. This guarantees smooth version transitions without requiring costly re-indexing. + + +## RediSearch API Compatibility + +Valkey-search implements a subset of RediSearch’s functionality, with strong compatibility across key vector search APIs. This enables integration with most existing RediSearch client libraries, allowing you to continue using familiar tools. Developers already experienced with RediSearch can adopt valkey-search with minimal changes, as the API remains largely consistent. This compatibility helps reduce adoption friction for teams and organizations building on Redis OSS-based solutions. + + +## Performance & Low Latency + +Valkey-search is designed as an in-memory secondary index, achieving exceptional performance. A multi-threaded architecture optimizes query and mutation processing with minimal thread contention, enabling near-linear vertical scalability. + +At its core, valkey-search’s threading architecture follows a common design pattern: a worker thread pool combined with task queues. It employs advanced synchronization mechanisms to maintain index consistency while minimizing contention among worker threads. By time-slicing CPU access between read and write operations, the system enables an almost lock-free read path, delivering high performance and consistently low search latency. + +Valley-search’s HNSW implementation is based on the OSS project [HNSWLib](https://github.com/nmslib/hnswlib). While HNSWLib is well-regarded for its speed, we have enhanced its performance, resiliency and its production maturity. These improvements include better `SIMD` utilization, promotion of CPU cache efficiency, memory utilization and more. + + +## Future Enhancements + +This first release of valkey-search focuses on vector search, but it is designed as a general-purpose indexing subsystem. Future releases will extend both the available data types as well as provide post-query data processing facilities. + + +## Get Involved + +Valkey-search is open source and ready for you to explore. Whether you're building cutting-edge AI applications or integrating vector search into existing systems, we invite you to try it out. The easiest way to get started is by visiting the [GitHub repository](https://github.com/valkey-io/valkey-search), where you'll find setup instructions, documentation, and examples. + +We welcome contributions of all kinds - code, documentation, testing, and feedback. Join the community, file issues, open pull requests, or suggest improvements. Your involvement helps make valkey-search better for everyone. + +Ready to dive in? Clone the repo, fire up the dev container, and start building high-performance vector search with valkey-search. + + +## About the Authors + + + + + + + + + + + +
+ +![Yair Gottdenker](images/yair.png) + + + +### Yair Gottdenker + +Yair Gottdenker is a Senior Staff Software Engineer at Memorystore GCP. +
+ +![Allen Samuels](images/Allen.png) + + + +### Allen Samuels + +Allen Samuels is a Principal Engineer at AWS. +
From bb4d4e45b53ed727276f727e78626adf98c00c87 Mon Sep 17 00:00:00 2001 From: yairgott Date: Fri, 13 Jun 2025 15:05:22 -0700 Subject: [PATCH 03/29] adding author images Signed-off-by: yairgott --- .../images/allen.png | Bin 0 -> 110004 bytes .../images/yair.jpg | Bin 0 -> 6303 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 content/blog/2025-06-13-introducing-valkey-search/images/allen.png create mode 100644 content/blog/2025-06-13-introducing-valkey-search/images/yair.jpg diff --git a/content/blog/2025-06-13-introducing-valkey-search/images/allen.png b/content/blog/2025-06-13-introducing-valkey-search/images/allen.png new file mode 100644 index 0000000000000000000000000000000000000000..148d9c39c07afc102576af9729e1f03d32d60da1 GIT binary patch literal 110004 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 Bj)DLH literal 0 HcmV?d00001 diff --git a/content/blog/2025-06-13-introducing-valkey-search/images/yair.jpg b/content/blog/2025-06-13-introducing-valkey-search/images/yair.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1f49424c7a19ab52c98f579fb69ceaf691551632 GIT binary patch literal 6303 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 literal 0 HcmV?d00001 From 771797ce2f2898ee6c14e5fa3cafea7c40d9d900 Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Fri, 13 Jun 2025 15:18:48 -0700 Subject: [PATCH 04/29] Update index.md Signed-off-by: Yair Gottdenker --- .../index.md | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 88494947..febf9a78 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -1,3 +1,14 @@ ++++ +title= "Introducing Vector Search To Valkey" +description = "Learn how to use valkey-search to search through billions of vectors with single-digit millisecond latencies and greater than 99% recall." +date= 2025-06-13 01:01:01 +authors= ["yairgott", "allenss-amazon"] + +[extra] +featured = false +featured_image = "/assets/media/featured/random-04.webp" ++++ + The Valkey project is introducing vector similarity search capabilities through [valkey-search](https://github.com/valkey-io/valkey-search) (BSD-3-Clause licensed), an official Valkey module compatible with Valkey versions 8.1.1 and above. With valkey-search you can search through billions of vectors with single-digit millisecond latencies and greater than 99% recall. Whether you're building semantic search, fraud detection systems, or conversational AI experiences, valkey-search offers a performant and flexible foundation. @@ -146,8 +157,9 @@ Ready to dive in? Clone the repo, fire up the dev container, and start building
- -![Yair Gottdenker](images/yair.png) + + + @@ -159,8 +171,8 @@ Yair Gottdenker is a Senior Staff Software Engineer at Memorystore GCP.
- -![Allen Samuels](images/Allen.png) + + From 3032f5180463dc1806d8a310651d3529b17a2e4c Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Fri, 13 Jun 2025 15:23:59 -0700 Subject: [PATCH 05/29] Update content/blog/2025-06-13-introducing-valkey-search/index.md Co-authored-by: Madelyn Olson Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index febf9a78..41cbc266 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -22,7 +22,8 @@ The ability of AI models to extract semantic meaning enables new classes of sear The semantic search process can be divided into three phases: -* **Encode**: First, convert your input data into searchable units known as chunks. Chunking strategies are data-type specific. For example, with text one well-known chunking algorithm is to make each sentence be a chunk. Then use an AI model to generate an embedding for each chunk. The specific AI model used for encoding depends on the data type and specific use case. Many AI models are available as a service, such as Google Cloud’s [VertexAI](https://cloud.google.com/vertex-ai?utm_source=google&utm_medium=cpc&utm_campaign=na-US-all-en-dr-bkws-all-all-trial-e-dr-1710134&utm_content=text-ad-none-any-DEV_c-CRE_727566102146-ADGP_Hybrid+%7C+BKWS+-+MIX+%7C+Txt-AI+and+Machine+Learning-AI+and+ML+General-KWID_43700081235816807-kwd-553582750299&utm_term=KW_vertex%20ai-ST_vertex+ai&gad_source=1&gclid=Cj0KCQjwt8zABhDKARIsAHXuD7bx87RdKGwa0aI65EGd09BIBUVJLBS_G0D9CYrubsIQObu2O62k6_0aAnmFEALw_wcB&gclsrc=aw.ds) or AWS’ [Bedrock](https://aws.amazon.com/bedrock/), simplifying the embedding generation process. +* **Encode**: First, convert your input data into searchable units known as chunks. Chunking strategies are data-type specific. For example, with text one well-known chunking algorithm is to make each sentence be a chunk. Then use an AI model to generate an embedding for each chunk. The specific AI model used for encoding depends on the data type and specific use case. Many AI models are available as a service, such as Google Cloud’s [VertexAI](https://cloud.google.com/vertex-ai) or AWS’ [Bedrock](https://aws.amazon.com/bedrock/), simplifying the embedding generation process. + * **Index**: Store the generated embeddings along with any associated metadata in valkey-search. Each stored item is indexed with a primary key and a set of attributes spanning multiple modalities, for example, tags (categories), numbers (pricing), etc. * **Search**: The query is converted into an embedding using the same AI model as was used in the **Encode** step above. This embedding is used with the vector search capability of valley-search to locate the most similar vectors. The located vectors correspond to chunks of the original input that have the most similar meaning to the query. From a8a377b6fde353a7658cdbe528652348dc26481d Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Fri, 13 Jun 2025 15:25:50 -0700 Subject: [PATCH 06/29] Linking to the dev container Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 41cbc266..588d47e6 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -149,7 +149,7 @@ Valkey-search is open source and ready for you to explore. Whether you're buildi We welcome contributions of all kinds - code, documentation, testing, and feedback. Join the community, file issues, open pull requests, or suggest improvements. Your involvement helps make valkey-search better for everyone. -Ready to dive in? Clone the repo, fire up the dev container, and start building high-performance vector search with valkey-search. +Ready to dive in? Clone the repo, fire up the [dev container](https://github.com/valkey-io/valkey-search?tab=readme-ov-file#development-environment), and start building high-performance vector search with valkey-search. ## About the Authors From bb883ace1a46d039a0d6f995b434d64ea64d126f Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Fri, 13 Jun 2025 15:32:21 -0700 Subject: [PATCH 07/29] removing authors section Signed-off-by: Yair Gottdenker --- .../index.md | 34 ------------------- 1 file changed, 34 deletions(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 588d47e6..477e39d4 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -150,37 +150,3 @@ Valkey-search is open source and ready for you to explore. Whether you're buildi We welcome contributions of all kinds - code, documentation, testing, and feedback. Join the community, file issues, open pull requests, or suggest improvements. Your involvement helps make valkey-search better for everyone. Ready to dive in? Clone the repo, fire up the [dev container](https://github.com/valkey-io/valkey-search?tab=readme-ov-file#development-environment), and start building high-performance vector search with valkey-search. - - -## About the Authors - - - - - - - - - - - -
- - - - - - -### Yair Gottdenker - -Yair Gottdenker is a Senior Staff Software Engineer at Memorystore GCP. -
- - - - - -### Allen Samuels - -Allen Samuels is a Principal Engineer at AWS. -
From a45e594abc1c0237d12943365fded7eeab1202ed Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Fri, 13 Jun 2025 15:40:31 -0700 Subject: [PATCH 08/29] Create yairgott.md Signed-off-by: Yair Gottdenker --- content/authors/yairgott.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 content/authors/yairgott.md diff --git a/content/authors/yairgott.md b/content/authors/yairgott.md new file mode 100644 index 00000000..a9a5358c --- /dev/null +++ b/content/authors/yairgott.md @@ -0,0 +1,8 @@ +--- +title: Yair Gottdenker +extra: + photo: '/assets/media/authors/yairgott.jpg' + github: yairgott +--- + +Yair Gottdenker is a Senior Staff Software Engineer at Memorystore GCP who is passionate about distributed systems, performance, databases and AI technologies. From 27beddff95700bc274ac34156c110b2a7ef3d3f7 Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Fri, 13 Jun 2025 15:43:00 -0700 Subject: [PATCH 09/29] Create allenss.md Signed-off-by: Yair Gottdenker --- content/authors/allenss.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 content/authors/allenss.md diff --git a/content/authors/allenss.md b/content/authors/allenss.md new file mode 100644 index 00000000..ac395cc7 --- /dev/null +++ b/content/authors/allenss.md @@ -0,0 +1,8 @@ +--- +title: Allen Samuels +extra: + photo: '/assets/media/authors/allenss.png' + github: allenss-amazon +--- + +Allen Samuels is a Principal Engineer at AWS. From c395890b018c608d33c94dd639e5cf08d2a54c79 Mon Sep 17 00:00:00 2001 From: yairgott Date: Fri, 13 Jun 2025 16:00:31 -0700 Subject: [PATCH 10/29] moving author images Signed-off-by: yairgott --- .../index.md | 2 +- .../assets/media/authors/allenss.png | Bin .../assets/media/authors/yairgott.jpg | Bin static/assets/media/featured/random-08.webp | Bin 0 -> 50412 bytes 4 files changed, 1 insertion(+), 1 deletion(-) rename content/blog/2025-06-13-introducing-valkey-search/images/allen.png => static/assets/media/authors/allenss.png (100%) rename content/blog/2025-06-13-introducing-valkey-search/images/yair.jpg => static/assets/media/authors/yairgott.jpg (100%) create mode 100644 static/assets/media/featured/random-08.webp diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 477e39d4..eea3a45d 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -6,7 +6,7 @@ authors= ["yairgott", "allenss-amazon"] [extra] featured = false -featured_image = "/assets/media/featured/random-04.webp" +featured_image = "/assets/media/featured/random-08.webp" +++ The Valkey project is introducing vector similarity search capabilities through [valkey-search](https://github.com/valkey-io/valkey-search) (BSD-3-Clause licensed), an official Valkey module compatible with Valkey versions 8.1.1 and above. diff --git a/content/blog/2025-06-13-introducing-valkey-search/images/allen.png b/static/assets/media/authors/allenss.png similarity index 100% rename from content/blog/2025-06-13-introducing-valkey-search/images/allen.png rename to static/assets/media/authors/allenss.png diff --git a/content/blog/2025-06-13-introducing-valkey-search/images/yair.jpg b/static/assets/media/authors/yairgott.jpg similarity index 100% rename from content/blog/2025-06-13-introducing-valkey-search/images/yair.jpg rename to static/assets/media/authors/yairgott.jpg diff --git a/static/assets/media/featured/random-08.webp b/static/assets/media/featured/random-08.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2db4465731603df01ca2ee649a4250896e91cc1 GIT binary patch literal 50412 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 JkCVUv006>`)%^ef literal 0 HcmV?d00001 From 8fcef9365166cc5d68a9cd3cc14167fb3f7807f0 Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Fri, 13 Jun 2025 16:16:15 -0700 Subject: [PATCH 11/29] Linking to HNSW wiki Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index eea3a45d..172092e9 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -68,7 +68,7 @@ The first algorithm performs an exhaustive linear search, providing exactly corr The second algorithm addresses this problem by compromising on accuracy in exchange for superior run-times. In other words, it runs very fast but may not deliver exactly the correct answer. This type of algorithm is often known as Approximate Nearest Neighbor (ANN). The term "recall" is used to measure the quality of an ANN algorithm result and is expressed as the ratio (or percentage) of the found answers to the correct answers, e.g., a recall of 0.95 (or 95%) means that for a search with K = 100, 95 of the correct answers were found. There is a tradeoff between the recall of an ANN algorithm and its time/space resource consumption. -Valkey-search supports the Hierarchical Navigable Small Worlds (HNSW) ANN algorithm as it provides the best performance at the highest levels of recall demanded by real-time applications. The HNSW algorithm has O(log N) time complexity and offers three parameters to which provide the developer some control over the CPU and memory consumption vs recall. The relationship between these parameters and the resulting operation latency and recall is complex and data dependent. It is recommended that developers test with data that closely approximates production environments. +Valkey-search supports the [Hierarchical Navigable Small Worlds](https://en.wikipedia.org/wiki/Hierarchical_navigable_small_world) (HNSW) ANN algorithm as it provides the best performance at the highest levels of recall demanded by real-time applications. The HNSW algorithm has O(log N) time complexity and offers three parameters to which provide the developer some control over the CPU and memory consumption vs recall. The relationship between these parameters and the resulting operation latency and recall is complex and data dependent. It is recommended that developers test with data that closely approximates production environments. #### Hybrid Query Support From 96b676f4155735a7fe4df6ba0def5f27ad827506 Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Fri, 13 Jun 2025 16:18:57 -0700 Subject: [PATCH 12/29] fixing authors Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 172092e9..9e8123fd 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -2,7 +2,7 @@ title= "Introducing Vector Search To Valkey" description = "Learn how to use valkey-search to search through billions of vectors with single-digit millisecond latencies and greater than 99% recall." date= 2025-06-13 01:01:01 -authors= ["yairgott", "allenss-amazon"] +authors= ["yairgott", "allenss"] [extra] featured = false From 82a38bc234821ed1e97e8a65a640b9e7129f2d0f Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Mon, 16 Jun 2025 17:49:10 -0700 Subject: [PATCH 13/29] Update content/blog/2025-06-13-introducing-valkey-search/index.md Co-authored-by: Madelyn Olson Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 9e8123fd..ba683649 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -119,7 +119,7 @@ Valkey’s point-in-time RDB snapshotting mechanism is a key component for maint valkey-search enhances Valkey snapshotting mechanism to include index definitions and vector indexes and is built for resilience and efficiency: -**Instant Turn-up:** New nodes must become fully operational in minimal time. While rebuilding an index on startup is an option, ingesting a large volume of vectors can be prohibitively slow, delaying system readiness. A snapshot captures not only the index metadata but also the vector index content which significantly reduces downtime and operational burden. +**Fast Turn-up:** New nodes must become fully operational in minimal time. While rebuilding an index on startup is an option, ingesting a large volume of vectors can be prohibitively slow, delaying system readiness. A snapshot captures not only the index metadata but also the vector index content which significantly reduces downtime and operational burden. **Backward/Forward Compatibility:** Cluster upgrades or downgrades often result in a temporary mix of node versions. valkey-search seamlessly handles such scenarios with a serialization format based on Protocol Buffers (Protobuf), ensuring both backward and forward compatibility. This guarantees smooth version transitions without requiring costly re-indexing. From f71b5c734ace35bef8342d7c360a44578b877caf Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Mon, 16 Jun 2025 17:49:29 -0700 Subject: [PATCH 14/29] Update content/blog/2025-06-13-introducing-valkey-search/index.md Co-authored-by: Madelyn Olson Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index ba683649..8c48fa28 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -121,7 +121,7 @@ valkey-search enhances Valkey snapshotting mechanism to include index definition **Fast Turn-up:** New nodes must become fully operational in minimal time. While rebuilding an index on startup is an option, ingesting a large volume of vectors can be prohibitively slow, delaying system readiness. A snapshot captures not only the index metadata but also the vector index content which significantly reduces downtime and operational burden. -**Backward/Forward Compatibility:** Cluster upgrades or downgrades often result in a temporary mix of node versions. valkey-search seamlessly handles such scenarios with a serialization format based on Protocol Buffers (Protobuf), ensuring both backward and forward compatibility. This guarantees smooth version transitions without requiring costly re-indexing. +**Backward/Forward Compatibility:** Cluster upgrades or downgrades often result in a temporary mix of node versions. valkey-search seamlessly handles such scenarios with a serialization format based on Protocol Buffers (Protobuf), ensuring both backward and forward compatibility. This simplifies version transitions and reduces the chance of costly re-indexing. ## RediSearch API Compatibility From 2851e223a28507bcce7abc0a667062de8710fa21 Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Mon, 16 Jun 2025 17:57:58 -0700 Subject: [PATCH 15/29] Update content/blog/2025-06-13-introducing-valkey-search/index.md Co-authored-by: Madelyn Olson Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 8c48fa28..8ba5f64b 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -149,4 +149,4 @@ Valkey-search is open source and ready for you to explore. Whether you're buildi We welcome contributions of all kinds - code, documentation, testing, and feedback. Join the community, file issues, open pull requests, or suggest improvements. Your involvement helps make valkey-search better for everyone. -Ready to dive in? Clone the repo, fire up the [dev container](https://github.com/valkey-io/valkey-search?tab=readme-ov-file#development-environment), and start building high-performance vector search with valkey-search. +Ready to dive in? Clone the repo, fire up the [dev container](https://hub.docker.com/r/valkey/valkey-extensions), and start building high-performance vector search with valkey-search. From a78abc71214e52b1aa951a3b2b995c6dd56f7fbe Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Mon, 16 Jun 2025 18:01:19 -0700 Subject: [PATCH 16/29] Update content/blog/2025-06-13-introducing-valkey-search/index.md Co-authored-by: Madelyn Olson Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 8ba5f64b..f3736ce4 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -143,6 +143,7 @@ Valley-search’s HNSW implementation is based on the OSS project [HNSWLib](http This first release of valkey-search focuses on vector search, but it is designed as a general-purpose indexing subsystem. Future releases will extend both the available data types as well as provide post-query data processing facilities. + ## Get Involved Valkey-search is open source and ready for you to explore. Whether you're building cutting-edge AI applications or integrating vector search into existing systems, we invite you to try it out. The easiest way to get started is by visiting the [GitHub repository](https://github.com/valkey-io/valkey-search), where you'll find setup instructions, documentation, and examples. From 060d34820e7e6102f23b612955e97eeb3d28bdf4 Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Mon, 16 Jun 2025 18:21:22 -0700 Subject: [PATCH 17/29] Update content/blog/2025-06-13-introducing-valkey-search/index.md Co-authored-by: Madelyn Olson Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index f3736ce4..caf2ad6b 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -135,7 +135,8 @@ Valkey-search is designed as an in-memory secondary index, achieving exceptional At its core, valkey-search’s threading architecture follows a common design pattern: a worker thread pool combined with task queues. It employs advanced synchronization mechanisms to maintain index consistency while minimizing contention among worker threads. By time-slicing CPU access between read and write operations, the system enables an almost lock-free read path, delivering high performance and consistently low search latency. -Valley-search’s HNSW implementation is based on the OSS project [HNSWLib](https://github.com/nmslib/hnswlib). While HNSWLib is well-regarded for its speed, we have enhanced its performance, resiliency and its production maturity. These improvements include better `SIMD` utilization, promotion of CPU cache efficiency, memory utilization and more. +Valley-search’s HNSW implementation is based on the OSS project [HNSWLib](https://github.com/nmslib/hnswlib). While HNSWLib is well-regarded for its speed, we have enhanced its performance and efficiency for our use case. These improvements include better `SIMD` utilization, promotion of CPU cache efficiency, memory utilization and more. + ## Future Enhancements From dddfa791943fe3343f881f4f01ca673957efbc22 Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Mon, 16 Jun 2025 18:24:53 -0700 Subject: [PATCH 18/29] Update content/blog/2025-06-13-introducing-valkey-search/index.md Co-authored-by: Madelyn Olson Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index caf2ad6b..93400249 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -126,7 +126,7 @@ valkey-search enhances Valkey snapshotting mechanism to include index definition ## RediSearch API Compatibility -Valkey-search implements a subset of RediSearch’s functionality, with strong compatibility across key vector search APIs. This enables integration with most existing RediSearch client libraries, allowing you to continue using familiar tools. Developers already experienced with RediSearch can adopt valkey-search with minimal changes, as the API remains largely consistent. This compatibility helps reduce adoption friction for teams and organizations building on Redis OSS-based solutions. +Valkey-search implements a subset of RediSearch’s functionality, with compatibility across key vector search APIs. This enables integration with most existing RediSearch client libraries, allowing you to continue using familiar tools. Developers already experienced with RediSearch can adopt valkey-search with minimal changes, as the API remains largely consistent. This compatibility helps reduce adoption friction for teams and organizations building on Redis OSS-based solutions. ## Performance & Low Latency From a2fe74582632f457b4681d96603aa361023305ef Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Mon, 16 Jun 2025 18:28:07 -0700 Subject: [PATCH 19/29] addressing commets Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 93400249..56338933 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -95,9 +95,9 @@ Pre-filtering is particularly effective for high selectivity queries, i.e., the ### High Availability -Valkey-search is built on top of Valkey, leveraging its primary/replica-based architecture to provide high availability (HA). Diagram #2 shows a typical configuration of one primary and three replicas. In the event of a primary node failure, the system automatically promotes one of the replicas to become the new primary. Clients then automatically retry failing operations to the newly promoted primary, minimizing disruption. +Valkey-search is built on top of Valkey, leveraging its primary/replica-based architecture to provide high availability (HA). Diagram #2 shows a typical configuration of one primary and three replicas. In the event of a primary node failure, the system automatically promotes one of the replicas to become the new primary. -Clients must send data mutation (write) commands to the primary node which are executed and then asynchronously transmitted to each replica. Clients can send data read operations to any node in the cluster, recognizing that reading from a replica delivers a result reflecting a historical point in time. +Clients must send data mutation (write) commands to the primary node which are executed and then automatically asynchronously transmitted to each replica. Clients can send data read operations to any node in the cluster, recognizing that reading from a replica delivers a result reflecting a historical point in time. When Valkey-search is used, each node, whether a primary or a replica, builds and maintains its own indexes. No additional traffic on the replication channel is generated for index maintenance. Search query operations sent to a replica will be executed against its indexes, reflecting the historical point in time of the data within that node. From ad1d4c7dbbb074df40a508f0b4766eee5ecc704d Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Sat, 21 Jun 2025 11:35:58 -0700 Subject: [PATCH 20/29] Update content/blog/2025-06-13-introducing-valkey-search/index.md Co-authored-by: Madelyn Olson Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 56338933..9d214e8d 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -11,7 +11,8 @@ featured_image = "/assets/media/featured/random-08.webp" The Valkey project is introducing vector similarity search capabilities through [valkey-search](https://github.com/valkey-io/valkey-search) (BSD-3-Clause licensed), an official Valkey module compatible with Valkey versions 8.1.1 and above. -With valkey-search you can search through billions of vectors with single-digit millisecond latencies and greater than 99% recall. Whether you're building semantic search, fraud detection systems, or conversational AI experiences, valkey-search offers a performant and flexible foundation. +With valkey-search you can easily create indexes to search through billions of vectors stored within your Valkey instances. Whether you're building semantic search, fraud detection systems, or conversational AI experiences, valkey-search offers a flexible foundation for your application. + In this blog, you'll learn how valkey-search works, explore key use cases it supports, understand its architecture and indexing model, and see how to integrate it into your own applications. You'll also gain insight into how it scales, ensures high availability, and supports hybrid queries that combine vector similarity with structured filtering. From 40af09dfc0bb66f2a4668cac33c4d5cb4107401a Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Mon, 23 Jun 2025 17:17:05 -0700 Subject: [PATCH 21/29] Update allenss.md Signed-off-by: Yair Gottdenker --- content/authors/allenss.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/authors/allenss.md b/content/authors/allenss.md index ac395cc7..5b4cbba1 100644 --- a/content/authors/allenss.md +++ b/content/authors/allenss.md @@ -5,4 +5,4 @@ extra: github: allenss-amazon --- -Allen Samuels is a Principal Engineer at AWS. +Allen Samuels is a Principal Engineer at AWS. He is passionate about distributed, performant systems. When not travelling the world for pleasure or playing duplicate bridge, Allen can be found in San Jose, California. From 1368fb390e0ab9beb3d56814636f90cb429281a0 Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Mon, 23 Jun 2025 17:56:46 -0700 Subject: [PATCH 22/29] Update index.md Signed-off-by: Yair Gottdenker --- .../index.md | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 9d214e8d..91463af8 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -9,9 +9,7 @@ featured = false featured_image = "/assets/media/featured/random-08.webp" +++ -The Valkey project is introducing vector similarity search capabilities through [valkey-search](https://github.com/valkey-io/valkey-search) (BSD-3-Clause licensed), an official Valkey module compatible with Valkey versions 8.1.1 and above. - -With valkey-search you can easily create indexes to search through billions of vectors stored within your Valkey instances. Whether you're building semantic search, fraud detection systems, or conversational AI experiences, valkey-search offers a flexible foundation for your application. +[Valkey-search](https://github.com/valkey-io/valkey-search) is an official Valkey module that introduces native vector similarity search capabilities. It allows you to efficiently create indexes and search through billions of vectors stored in your Valkey instances. Whether you're building semantic search, fraud detection systems, or conversational AI experiences, Valkey-Search provides a flexible and high-performance foundation for your application. It is compatible with Valkey versions 8.1.1 and above and is BSD-3-Clause licensed. In this blog, you'll learn how valkey-search works, explore key use cases it supports, understand its architecture and indexing model, and see how to integrate it into your own applications. You'll also gain insight into how it scales, ensures high availability, and supports hybrid queries that combine vector similarity with structured filtering. @@ -19,7 +17,7 @@ In this blog, you'll learn how valkey-search works, explore key use cases it sup ## Semantic Search -The ability of AI models to extract semantic meaning enables new classes of searching algorithms, collectively known as semantic search. An AI model can process an input and convert it into a single high-dimension numeric vector – known as an embedding. Inputs with similar meaning will have similar embeddings. Semantic search is the process of converting a query into its embedding and searching a database of embeddings to find the embeddings that are most alike. +The ability of AI models to extract semantic meaning enables new classes of search algorithms, collectively known as semantic search. An AI model can process an input and convert it into a single high-dimension numeric vector – known as an embedding. Inputs with similar meaning will have similar embeddings. Semantic search is the process of converting a query into its embedding and searching a database of embeddings to find the most similar results. The semantic search process can be divided into three phases: @@ -58,10 +56,7 @@ In cluster mode, the `FT.CREATE` command can be sent to any primary shard of the ## Valkey-search Capabilities -### Query Pipeline - - -#### Vector Search Algorithms +### Vector Search Algorithms Valkey-search supports K Nearest Neighbor (KNN) searching. Applications provide a reference vector and request that the system locate the K vectors which are closest to a supplied reference vector using the selected distance function (L2, IP or cosine). KNN searching is a classic problem which lacks an efficient exact ideal solution. Valkey-search addresses this problem by providing two different algorithms that the developer can select from: @@ -72,7 +67,7 @@ The second algorithm addresses this problem by compromising on accuracy in excha Valkey-search supports the [Hierarchical Navigable Small Worlds](https://en.wikipedia.org/wiki/Hierarchical_navigable_small_world) (HNSW) ANN algorithm as it provides the best performance at the highest levels of recall demanded by real-time applications. The HNSW algorithm has O(log N) time complexity and offers three parameters to which provide the developer some control over the CPU and memory consumption vs recall. The relationship between these parameters and the resulting operation latency and recall is complex and data dependent. It is recommended that developers test with data that closely approximates production environments. -#### Hybrid Query Support +### Hybrid Query Support Valkey-search query operations are not limited to just vector searching. Documents can contain additional metadata that can be used to enhance searches. Two types of metadata are currently supported: Numeric and Tag. Numeric metadata supports range queries, i.e., you can include or exclude documents with metadata in the particular range. Tag metadata is an enumerated list of words. Tag searches can be done with an exact word match or a prefix match (trailing wild card). @@ -81,7 +76,7 @@ Hybrid queries are vector query operations which have been augmented with a filt Hybrid queries are particularly powerful for real-world applications, where a mix of vector and non-vector attributes defines the relevance of results. For example, a numeric field could be used as a timestamp, meaning that search operations could be automatically confined to a particular period of time. Another example would be to use a tag field to indicate a language. -##### Query Execution +#### Query Execution There are multiple strategies for executing hybrid queries, each suited to different use cases. Valkey-search automatically selects from two strategies as part of the query execution planning phase. This is done by breaking down the query filter into predicates and estimating the selectivity of each predicate to estimate the least expensive execution strategy. @@ -100,7 +95,7 @@ Valkey-search is built on top of Valkey, leveraging its primary/replica-based ar Clients must send data mutation (write) commands to the primary node which are executed and then automatically asynchronously transmitted to each replica. Clients can send data read operations to any node in the cluster, recognizing that reading from a replica delivers a result reflecting a historical point in time. -When Valkey-search is used, each node, whether a primary or a replica, builds and maintains its own indexes. No additional traffic on the replication channel is generated for index maintenance. Search query operations sent to a replica will be executed against its indexes, reflecting the historical point in time of the data within that node. +When valkey-search is used, each node, whether a primary or a replica, builds and maintains its own indexes. No additional traffic on the replication channel is generated for index maintenance. Search query operations sent to a replica will be executed against its indexes, reflecting the historical point in time of the data within that node. ![High availability](images/ha.png) @@ -132,12 +127,11 @@ Valkey-search implements a subset of RediSearch’s functionality, with compatib ## Performance & Low Latency -Valkey-search is designed as an in-memory secondary index, achieving exceptional performance. A multi-threaded architecture optimizes query and mutation processing with minimal thread contention, enabling near-linear vertical scalability. - -At its core, valkey-search’s threading architecture follows a common design pattern: a worker thread pool combined with task queues. It employs advanced synchronization mechanisms to maintain index consistency while minimizing contention among worker threads. By time-slicing CPU access between read and write operations, the system enables an almost lock-free read path, delivering high performance and consistently low search latency. +Valkey-search was designed from the group up as an in-memory secondary index. A multi-threaded architecture optimizes query and mutation processing with minimal thread contention, enabling near-linear vertical scalability. -Valley-search’s HNSW implementation is based on the OSS project [HNSWLib](https://github.com/nmslib/hnswlib). While HNSWLib is well-regarded for its speed, we have enhanced its performance and efficiency for our use case. These improvements include better `SIMD` utilization, promotion of CPU cache efficiency, memory utilization and more. +At its core, valkey-search’s threading architecture follows a common design pattern: a worker thread pool combined with task queues. It employs advanced synchronization mechanisms to maintain index consistency while minimizing contention among worker threads. By time-slicing CPU access between read and write operations, the system minimizes locks on the read path, delivering high performance and consistently low search latency. +Valkey-search’s HNSW implementation is based on the OSS project [HNSWLib](https://github.com/nmslib/hnswlib). While HNSWLib is well-regarded for its speed, we have enhanced its performance and efficiency for our use case. These improvements include better SIMD utilization, promotion of CPU cache efficiency, memory utilization and more. ## Future Enhancements @@ -152,4 +146,4 @@ Valkey-search is open source and ready for you to explore. Whether you're buildi We welcome contributions of all kinds - code, documentation, testing, and feedback. Join the community, file issues, open pull requests, or suggest improvements. Your involvement helps make valkey-search better for everyone. -Ready to dive in? Clone the repo, fire up the [dev container](https://hub.docker.com/r/valkey/valkey-extensions), and start building high-performance vector search with valkey-search. +Ready to dive in? Clone the repo, fire up the [valkey-bundle](https://hub.docker.com/r/valkey/valkey-extensions), and start building high-performance vector search with valkey-search. From 756b1858eecee681d5d241116cad8364bd536d5b Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Mon, 23 Jun 2025 18:04:10 -0700 Subject: [PATCH 23/29] Update index.md Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 91463af8..e3647eed 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -1,6 +1,6 @@ +++ title= "Introducing Vector Search To Valkey" -description = "Learn how to use valkey-search to search through billions of vectors with single-digit millisecond latencies and greater than 99% recall." +description = "Learn how to build high-performance, reliable vector similarity search with valkey-Search." date= 2025-06-13 01:01:01 authors= ["yairgott", "allenss"] From e64943b83e464390fc1cae24a24ff93b979c2472 Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Mon, 23 Jun 2025 18:04:45 -0700 Subject: [PATCH 24/29] Update index.md Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index e3647eed..ae2f2a8f 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -1,6 +1,6 @@ +++ title= "Introducing Vector Search To Valkey" -description = "Learn how to build high-performance, reliable vector similarity search with valkey-Search." +description = "Learn how to build high-performance, reliable vector similarity search with valkey-search." date= 2025-06-13 01:01:01 authors= ["yairgott", "allenss"] From 580c025b19e1366d2d1673b9fbf328b153f888ad Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Mon, 23 Jun 2025 18:36:49 -0700 Subject: [PATCH 25/29] Update index.md Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index ae2f2a8f..6bab466c 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -146,4 +146,4 @@ Valkey-search is open source and ready for you to explore. Whether you're buildi We welcome contributions of all kinds - code, documentation, testing, and feedback. Join the community, file issues, open pull requests, or suggest improvements. Your involvement helps make valkey-search better for everyone. -Ready to dive in? Clone the repo, fire up the [valkey-bundle](https://hub.docker.com/r/valkey/valkey-extensions), and start building high-performance vector search with valkey-search. +Ready to dive in? Clone the repo, fire up the [dev container](https://hub.docker.com/r/valkey/valkey-bundle), and start building high-performance vector search with valkey-search. From 4035ef864291e496e708e630675977fe794f6ffe Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Thu, 26 Jun 2025 17:43:41 -0700 Subject: [PATCH 26/29] Update index.md Signed-off-by: Yair Gottdenker --- .../index.md | 57 +++++++++---------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 6bab466c..fcc5d446 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -21,10 +21,10 @@ The ability of AI models to extract semantic meaning enables new classes of sear The semantic search process can be divided into three phases: -* **Encode**: First, convert your input data into searchable units known as chunks. Chunking strategies are data-type specific. For example, with text one well-known chunking algorithm is to make each sentence be a chunk. Then use an AI model to generate an embedding for each chunk. The specific AI model used for encoding depends on the data type and specific use case. Many AI models are available as a service, such as Google Cloud’s [VertexAI](https://cloud.google.com/vertex-ai) or AWS’ [Bedrock](https://aws.amazon.com/bedrock/), simplifying the embedding generation process. +1. **Encode**: First, convert your input data into searchable units known as chunks. Chunking strategies are data-type specific. For example, with text one well-known chunking algorithm is to make each sentence be a chunk. Then use an AI model to generate an embedding for each chunk. The specific AI model used for encoding depends on the data type and specific use case. Many AI models are available as a service, such as Google Cloud’s [VertexAI](https://cloud.google.com/vertex-ai) or AWS’ [Bedrock](https://aws.amazon.com/bedrock/), simplifying the embedding generation process. -* **Index**: Store the generated embeddings along with any associated metadata in valkey-search. Each stored item is indexed with a primary key and a set of attributes spanning multiple modalities, for example, tags (categories), numbers (pricing), etc. -* **Search**: The query is converted into an embedding using the same AI model as was used in the **Encode** step above. This embedding is used with the vector search capability of valley-search to locate the most similar vectors. The located vectors correspond to chunks of the original input that have the most similar meaning to the query. +2. **Index**: Store the generated embeddings along with any associated metadata in valkey-search. Each stored item is indexed with a primary key and a set of attributes spanning multiple modalities, for example, tags (categories), numbers (pricing), etc. +* **Search**: The query is converted into an embedding using the same AI model as was used in the **Encode** step above. This embedding is used with the vector search capability of valkey-search to locate the most similar vectors. The located vectors correspond to chunks of the original input that have the most similar meaning to the query. ![Semantic search phases](images/highlevel-flow.png) @@ -42,32 +42,29 @@ Valkey-search’s ability to search billions of vectors with millisecond latenci Valkey-search allows the creation of any number of named indexes. A valkey-search index can be thought of like a relational database table where a row is a Valkey key and a column is an attribute (field) within that key. Each index is defined to cover a portion of the Valkey keyspace and some list of attributes within those keys. Any mutation of a key within the scope of an index synchronously updates that index before that mutation command is acknowledged. Query operations can be performed on a single index, returning the located key names and optionally their contents. -Indexes can be constructed over HASH or JSON keys. For HASH keys, the indexable attributes of the keys are just the hash fields. For JSON keys, the indexable attributes are identified using the JSON path notation. Regardless of key type, an index can have any number of attributes. Each attribute of an index is declared with a type and sometimes type-specific modifiers. Currently, three index attribute types are supported: Vector, Numeric and Tag. +Indexes can be constructed over hash or JSON keys. For hash keys, the indexable attributes of the keys are just the hash fields. For JSON keys, the indexable attributes are identified using the JSON path notation. Regardless of key type, an index can have any number of attributes. Each attribute of an index is declared with a type and sometimes type-specific modifiers. Currently, three index attribute types are supported: Vector, Numeric and Tag. ### Index Creation -The `FT.CREATE` command is used to define a new index which is created empty. This causes the system to automatically initiate an asynchronous background process to scan the keyspace for keys that belong in the index – backfilling. The backfill process runs until the entire keyspace has been scanned for the index. The `backfill_in_progress` and `backfill_complete_percent` fields of the `FT.INFO` command result can be used to monitor the progress of the backfill. Once the backfill is complete it need not be executed against the index again. +The [FT.CREATE](https://valkey.io/commands/ft.create/) command is used to create a new, empty index. This causes the system to automatically initiate an asynchronous background process to scan the keyspace for keys that belong in the index in a process called backfilling. The backfill process runs until the entire keyspace has been scanned for the index. The `backfill_in_progress` and `backfill_complete_percent` fields of the [FT.INFO](https://valkey.io/commands/ft.info/) command result can be used to monitor the progress of the backfill. Once the backfill is complete it need not be executed against the index again. -Note that during the backfill process, query and ingestion operations proceed normally. Queries will be executed against the current state of the index. Newly mutated data will be placed into the index as usual and remain unaffected by the backfill process. Thus after the creation of an index – while it is backfilling – the application can be certain that queries will contain the results of all data that has been ingested *after* the creation of the index and *some *of the data ingested *before*. Once the backfill has completed then queries will consider all data covered by the index. +During the backfill process, query and ingestion operations proceed normally. Queries will be executed against the current state of the index. Newly mutated data will be placed into the index as usual and remain unaffected by the backfill process. Thus after the creation of an index – while it is backfilling – the application can be certain that queries will contain the results of all data that has been ingested *after* the creation of the index and *some* of the data ingested *before*. Once the backfill has completed then queries will consider all data covered by the index. -In cluster mode, the `FT.CREATE` command can be sent to any primary shard of the cluster and the system will automatically distribute the new index definition to all cluster members. The distribution is done using a combination of the cluster bus and direct gRPC communication between nodes. In the rare case where the distribution machinery detects an inconsistency between nodes, a last-writer-wins (LWW) collision resolution protocol is invoked to enable eventual cluster-wide consistency. +In cluster mode, the `FT.CREATE` command can be sent to any primary node of the cluster and the system will automatically distribute the new index definition to all cluster members. The distribution is done using a combination of the cluster bus and direct gRPC communication between nodes. In the rare case where the distribution machinery detects an inconsistency between nodes, a last-writer-wins (LWW) collision resolution protocol is invoked to enable eventual cluster-wide consistency. -## Valkey-search Capabilities +## Vector Search Algorithms - -### Vector Search Algorithms - -Valkey-search supports K Nearest Neighbor (KNN) searching. Applications provide a reference vector and request that the system locate the K vectors which are closest to a supplied reference vector using the selected distance function (L2, IP or cosine). KNN searching is a classic problem which lacks an efficient exact ideal solution. Valkey-search addresses this problem by providing two different algorithms that the developer can select from: +Valkey-search offers K Nearest Neighbor (KNN) search. Applications supply a reference vector and request that the system locate the K vectors which are closest to the reference vector using the a specified distance function (L2, IP or cosine). KNN searching is a classic problem which lacks an efficient exact ideal solution. Valkey-search addresses this problem by providing two different algorithms that the developer can select from: The first algorithm performs an exhaustive linear search, providing exactly correct answers but with a run-time that may be intolerable on large data sets. -The second algorithm addresses this problem by compromising on accuracy in exchange for superior run-times. In other words, it runs very fast but may not deliver exactly the correct answer. This type of algorithm is often known as Approximate Nearest Neighbor (ANN). The term "recall" is used to measure the quality of an ANN algorithm result and is expressed as the ratio (or percentage) of the found answers to the correct answers, e.g., a recall of 0.95 (or 95%) means that for a search with K = 100, 95 of the correct answers were found. There is a tradeoff between the recall of an ANN algorithm and its time/space resource consumption. +The second algorithm addresses this problem by compromising on accuracy in exchange for shorter run-times. In other words, it runs very fast but may not deliver exactly the correct answer. This type of algorithm is often known as Approximate Nearest Neighbor (ANN). The term "recall" is used to measure the quality of an ANN algorithm result and is expressed as the ratio (or percentage) of the found answers to the correct answers, e.g., a recall of 0.95 (or 95%) means that for a search with K = 100, 95 of the correct answers were found. There is a tradeoff between the recall of an ANN algorithm and its time/space resource consumption. -Valkey-search supports the [Hierarchical Navigable Small Worlds](https://en.wikipedia.org/wiki/Hierarchical_navigable_small_world) (HNSW) ANN algorithm as it provides the best performance at the highest levels of recall demanded by real-time applications. The HNSW algorithm has O(log N) time complexity and offers three parameters to which provide the developer some control over the CPU and memory consumption vs recall. The relationship between these parameters and the resulting operation latency and recall is complex and data dependent. It is recommended that developers test with data that closely approximates production environments. +Valkey-search supports the [Hierarchical Navigable Small Worlds](https://en.wikipedia.org/wiki/Hierarchical_navigable_small_world) (HNSW) ANN algorithm as it provides the best performance at the highest levels of recall demanded by real-time applications. The HNSW algorithm has (`O(log N)`) time complexity and gives the developer three parameters to adjust the CPU and memory consumption vs recall. The relationship between these parameters and the resulting operation latency and recall is complex and data dependent. It is recommended that developers test with data that closely approximates production environments. -### Hybrid Query Support +## Hybrid Query Support Valkey-search query operations are not limited to just vector searching. Documents can contain additional metadata that can be used to enhance searches. Two types of metadata are currently supported: Numeric and Tag. Numeric metadata supports range queries, i.e., you can include or exclude documents with metadata in the particular range. Tag metadata is an enumerated list of words. Tag searches can be done with an exact word match or a prefix match (trailing wild card). @@ -76,53 +73,51 @@ Hybrid queries are vector query operations which have been augmented with a filt Hybrid queries are particularly powerful for real-world applications, where a mix of vector and non-vector attributes defines the relevance of results. For example, a numeric field could be used as a timestamp, meaning that search operations could be automatically confined to a particular period of time. Another example would be to use a tag field to indicate a language. -#### Query Execution +### Query Execution -There are multiple strategies for executing hybrid queries, each suited to different use cases. Valkey-search automatically selects from two strategies as part of the query execution planning phase. This is done by breaking down the query filter into predicates and estimating the selectivity of each predicate to estimate the least expensive execution strategy. +When executing hybrid queries, valkey-search automatically selects from one of two strategies as part of the query execution planning phase. This is done by breaking down the query filter into predicates and estimating the selectivity of each predicate to estimate the least expensive execution strategy. -**Pre-filtering:** This algorithm has two sequential steps: -* First, a temporary dataset is created using only the documents which pass the filter expression. -* Second, a linear `KNN` similarity search of the temporary dataset is performed. +**Pre-filtering:** This algorithm has two sequential steps: first, a temporary dataset is created using only the documents which pass the filter expression, then a linear KNN similarity search of is performed on the temporary dataset. Pre-filtering is particularly effective for high selectivity queries, i.e., the filter significantly narrows down the dataset. Pre-filtering is particularly effective for high selectivity queries, i.e., the filter significantly narrows down the dataset -**Inline-filtering:** In this algorithm, filtering is done *during *the vector search itself. As the HNSW search graph is traversed, each candidate document is tested against the filter criteria before being added to the result set. This method is best suited for cases where the filter isn’t highly selective, i.e., the filter matches a large amount of the dataset. +**Inline-filtering:** In this algorithm, filtering is done *during* the vector search itself. As the HNSW search graph is traversed, each candidate document is tested against the filter criteria before being added to the result set. This method is best suited for cases where the filter isn’t highly selective, i.e., the filter matches a large amount of the dataset. -### High Availability +## High Availability Valkey-search is built on top of Valkey, leveraging its primary/replica-based architecture to provide high availability (HA). Diagram #2 shows a typical configuration of one primary and three replicas. In the event of a primary node failure, the system automatically promotes one of the replicas to become the new primary. -Clients must send data mutation (write) commands to the primary node which are executed and then automatically asynchronously transmitted to each replica. Clients can send data read operations to any node in the cluster, recognizing that reading from a replica delivers a result reflecting a historical point in time. +Clients must send data mutation (write) commands to the primary node which are executed and then automatically asynchronously transmitted to each replica. Clients can send data read operations to any node in the cluster, recognizing that reading from a replica is eventually consistent. When valkey-search is used, each node, whether a primary or a replica, builds and maintains its own indexes. No additional traffic on the replication channel is generated for index maintenance. Search query operations sent to a replica will be executed against its indexes, reflecting the historical point in time of the data within that node. ![High availability](images/ha.png) -### Scaling +## Scaling -Valkey-search supports all three methods of scaling: horizontal, vertical and replicas. When scaling for capacity, valkey-search behaves just like regular Valkey, i.e., increasing the memory of individual nodes (vertical scaling) or increasing the number of shards (horizontal scaling) will increase the overall capacity. +Valkey-search supports all three methods of scaling: horizontal, vertical and replicas. When scaling for capacity, valkey-search behaves just like regular Valkey, i.e., increasing the memory of individual nodes (vertical scaling) or increasing the number of nodes (horizontal scaling) will increase the overall capacity. -However, from a performance perspective, valkey-search behaves very differently from regular Valkey. The multi-threaded implementation of valkey-search means that additional CPUs yield up to linear increases in both query and ingestion throughput. Horizontal scaling (CME) yields linear increases in ingestion throughput but may provide little to no benefit on query throughput. If additional query throughput is required, scaling through replicas or additional CPUs is required. +However, from a performance perspective, valkey-search behaves very differently from regular Valkey. The multi-threaded implementation of valkey-search means that additional CPUs yield up to linear increases in both query and ingestion throughput. Horizontal scaling yields linear increases in ingestion throughput but may provide little to no benefit on query throughput. If additional query throughput is required, scaling through replicas or additional CPUs is required. -![High availability](images/cluster.png) +![Scaling](images/cluster.png) -### Snapshots +## Snapshots Valkey’s point-in-time RDB snapshotting mechanism is a key component for maintaining high availability, zero downtime, and minimal operational overhead. Beyond persistence and loading from disk snapshots, RDB plays a crucial role in full-sync operations, where a primary node synchronizes its in-memory data with a replica node in an HA setup. Full-sync is commonly triggered when a new replica joins the cluster but may also occur if a secondary falls too far behind due to prolonged lag. -valkey-search enhances Valkey snapshotting mechanism to include index definitions and vector indexes and is built for resilience and efficiency: +Valkey-search enhances the Valkey snapshotting mechanism to include index definitions and vector indexes and is built for resilience and efficiency: **Fast Turn-up:** New nodes must become fully operational in minimal time. While rebuilding an index on startup is an option, ingesting a large volume of vectors can be prohibitively slow, delaying system readiness. A snapshot captures not only the index metadata but also the vector index content which significantly reduces downtime and operational burden. -**Backward/Forward Compatibility:** Cluster upgrades or downgrades often result in a temporary mix of node versions. valkey-search seamlessly handles such scenarios with a serialization format based on Protocol Buffers (Protobuf), ensuring both backward and forward compatibility. This simplifies version transitions and reduces the chance of costly re-indexing. +**Backward/Forward Compatibility:** Cluster upgrades or downgrades often result in a temporary mix of node versions. valkey-search seamlessly handles such scenarios with a serialization format based on [Protocol Buffers (Protobuf)](https://en.wikipedia.org/wiki/Protocol_Buffers), ensuring both backward and forward compatibility. This simplifies version transitions and reduces the chance of costly re-indexing. ## RediSearch API Compatibility -Valkey-search implements a subset of RediSearch’s functionality, with compatibility across key vector search APIs. This enables integration with most existing RediSearch client libraries, allowing you to continue using familiar tools. Developers already experienced with RediSearch can adopt valkey-search with minimal changes, as the API remains largely consistent. This compatibility helps reduce adoption friction for teams and organizations building on Redis OSS-based solutions. +Valkey-search implements a subset of RediSearch’s functionality, with compatibility across key vector search APIs. This enables integration with most existing RediSearch client libraries, allowing you to continue using familiar tools. Developers already experienced with RediSearch can adopt valkey-search with minimal changes, as the vector search API remains largely consistent. ## Performance & Low Latency From 7df800cbe26336f90dff42b9e0f9fbcf61f72f1d Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Fri, 27 Jun 2025 11:10:57 -0700 Subject: [PATCH 27/29] Update index.md Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index fcc5d446..7711f7c6 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -79,8 +79,6 @@ When executing hybrid queries, valkey-search automatically selects from one of t **Pre-filtering:** This algorithm has two sequential steps: first, a temporary dataset is created using only the documents which pass the filter expression, then a linear KNN similarity search of is performed on the temporary dataset. Pre-filtering is particularly effective for high selectivity queries, i.e., the filter significantly narrows down the dataset. -Pre-filtering is particularly effective for high selectivity queries, i.e., the filter significantly narrows down the dataset - **Inline-filtering:** In this algorithm, filtering is done *during* the vector search itself. As the HNSW search graph is traversed, each candidate document is tested against the filter criteria before being added to the result set. This method is best suited for cases where the filter isn’t highly selective, i.e., the filter matches a large amount of the dataset. From 0f48fffde147bf580350201e17bab599a65d2de4 Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Fri, 27 Jun 2025 14:39:01 -0700 Subject: [PATCH 28/29] Update index.md Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 7711f7c6..0a6ace96 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -1,7 +1,7 @@ +++ title= "Introducing Vector Search To Valkey" description = "Learn how to build high-performance, reliable vector similarity search with valkey-search." -date= 2025-06-13 01:01:01 +date= 2025-07-07 01:01:01 authors= ["yairgott", "allenss"] [extra] From bd6cd7d1257340f6d6caf03a6e1ca3730865b7e2 Mon Sep 17 00:00:00 2001 From: Yair Gottdenker Date: Tue, 1 Jul 2025 20:11:23 -0700 Subject: [PATCH 29/29] Update index.md Signed-off-by: Yair Gottdenker --- content/blog/2025-06-13-introducing-valkey-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025-06-13-introducing-valkey-search/index.md b/content/blog/2025-06-13-introducing-valkey-search/index.md index 0a6ace96..43d52ce9 100644 --- a/content/blog/2025-06-13-introducing-valkey-search/index.md +++ b/content/blog/2025-06-13-introducing-valkey-search/index.md @@ -120,7 +120,7 @@ Valkey-search implements a subset of RediSearch’s functionality, with compatib ## Performance & Low Latency -Valkey-search was designed from the group up as an in-memory secondary index. A multi-threaded architecture optimizes query and mutation processing with minimal thread contention, enabling near-linear vertical scalability. +Valkey-search was designed from the ground up as an in-memory secondary index. A multi-threaded architecture optimizes query and mutation processing with minimal thread contention, enabling near-linear vertical scalability. At its core, valkey-search’s threading architecture follows a common design pattern: a worker thread pool combined with task queues. It employs advanced synchronization mechanisms to maintain index consistency while minimizing contention among worker threads. By time-slicing CPU access between read and write operations, the system minimizes locks on the read path, delivering high performance and consistently low search latency.