Current state: Under Discussion

ISSUE: 

PRs: 

Keywords: Segment, QueryNode, QueryCoord, Multiple memory replications

Released:

Summary

We want to add a new feature that maintain multiple segment replications in memory to improve the QPS and support fast failover.

Motivation

Milvus holds a replication per segment in memory for now. To improve the search request concurrency, Milvus can have multiple replications of a segment on different QueryNodes. If a QueryNode is doing a search request on a segment and another request arrives, we can send this request to another QueryNode which have a replication of the same segment. Besides, if a QueryNode crashes, now we have to wait for a segment being loaded to search. If we have multiple replications, we can resend the search request to another QueryNode immediately.

Public Interfaces

No public interfaces need to be added or changed. It's transparent to users.

Design Details


Test Plan