You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Current state: Under Discussion

ISSUE: https://github.com/milvus-io/milvus/issues/9481

PRs: 

Keywords: load balance, handoff, query node, query coord, sealed segment

Released:

Summary

This article focuses on the importance of handoff and load balance segment features, as well as proposing a scenario for handoff and load balance segments without interrupting queries.

Motivation

The query node of milvus currently has the following issues:

  1. In the load collection/partition process, query nodes not only load the sealed segments, but also watch dmChannels so that they can receive vectors inserted in real time, and if new vectors are continuously inserted after the load collection operation, the query nodes will create a large number of growing segments, which can only service query requests in a near-brutal manner. At the same time, data node may have flushed these vectors into persistent storage and created the corresponding index.
  2. Query nodes may experience unbalanced sealed segments during dynamic expansion. This results in a relatively slow query for high-load query node, which will becomes the final bottleneck for queries

So we want to do the following:

  1. handoff:After datanode flushes segment to persistent storage, query node loads the segment from the persistent storage and replaces the growing segment with sealed segment.
  2. load balance:Automatically balance allsealed segments on query nodes to avoid some of the idle computing and storage resources,and speed up the overall query.

Public Interfaces


Design Details

  • No labels