How milvus-io/milvus works
Milvus is a distributed vector database for storing and searching vector and scalar data. The principal workflow is to define a collection, insert data, then issue vector or hybrid searches and receive ranked results. The README documents these user-facing capabilities and the separation of compute and storage; source excerpts show proxy/query reduction and WAL recovery internals. Several service-to-service links are therefore shown as unverified rather than asserted as inspected call paths.
Main entry points: proxy Proxy API · querynodev2 Query node · milvusclient Go client SDK · SegmentSealed.h Sealed segments
Components 18
Client and API
- Go client SDK
client/milvusclient - Server entry
cmd/milvus/run.go - Proxy API
internal/proxy
Cluster Coordination
- Root coordinator
internal/rootcoord - Data coordinator
internal/datacoord - Query coordinator
internal/querycoordv2 - Streaming coordinator
internal/streamingcoord
Ingestion and Storage
- Data node
cmd/components/data_node.go - WAL recovery
internal/streamingnode/server/wal/recovery/recovery_storage_impl.go - Storage serializer
internal/flushcommon/syncmgr/storage_serializer.go - Object storage
internal/storage
Query and Search
- Query node
internal/querynodev2 - Search pipeline
internal/proxy/dql/search_pipeline.go - Query reduction
internal/proxy/dql/query_pipeline.go
Core Search Engine
- Sealed segments
internal/core/src/segcore/SegmentSealed.h - Index engine
internal/core/src/index/Index.h - Schema and types
internal/core/src/common/Schema.h
Other components
- Application developer
Connections 18
- Application developer → Go client SDK: configures and writes
- Application developer → Go client SDK: searches
- Go client SDK → Server entry: connects to
- Server entry → Proxy API: routes requests
- Proxy API → Root coordinator: requests metadata
- Proxy API → Data coordinator: requests data services
- Proxy API → Query coordinator: requests query services
- Proxy API → Search pipeline: builds search
internal/proxy/dql/search_pipeline.go - Proxy API → Query reduction: builds reduction
internal/proxy/dql/query_pipeline.go - Search pipeline → Query node: dispatches searches
- Query node → Sealed segments: queries segments
- Query node → Query reduction: reduces results
- Data coordinator → Data node: assigns ingestion
- Streaming coordinator → WAL recovery: coordinates streams
- WAL recovery → Storage serializer: persists data
- Storage serializer → Object storage: writes files
internal/flushcommon/syncmgr/storage_serializer.go - Sealed segments → Index engine: loads indexes
internal/core/src/segcore/SegmentSealed.h - Schema and types → Sealed segments: defines fields