Milvus开发环境搭建与测试指南

Milvus开发环境搭建与测试指南

milvus A cloud-native vector database, storage for next generation AI applications milvus 项目地址: https://gitcode.com/gh_mirrors/mi/milvus

前言

Milvus作为一款开源的向量数据库系统,其开发环境搭建和测试流程对于开发者而言至关重要。本文将详细介绍如何在本地环境中搭建Milvus开发环境,并运行各类测试,帮助开发者快速上手Milvus的开发工作。

开发环境搭建

硬件要求

建议开发环境满足以下硬件配置:

  • 内存:8GB及以上
  • 磁盘空间:50GB可用空间

操作系统支持

Milvus支持在多种操作系统上进行开发,包括:

  • Linux发行版(推荐Ubuntu 20.04或更新版本)
  • MacOS(x86_64和Apple Silicon架构)

软件依赖安装

基础工具链
  1. 编译器

    • Linux:GCC 7.5或更高版本
    • MacOS:LLVM 15或更高版本
  2. 构建工具

    • CMake 3.18或更高版本
    • Make工具

验证安装:

gcc --version
make --version
cmake --version
依赖管理工具
  1. Conan

    • 版本要求:1.61(注意:2.x版本暂不支持)
    • 安装命令:
    pip install conan==1.64.1
    
  2. Go语言环境

    • 版本要求:1.21或更高
    • 配置GOPATH和GOBIN环境变量
    • 验证安装:
    go version
    
  3. Docker环境

    • 用于运行依赖服务(etcd、Pulsar、MinIO)
    • 安装Docker和Docker Compose
一键安装依赖

在Milvus项目根目录下运行:

./scripts/install_deps.sh

项目构建

完整构建
make
跳过第三方依赖检查(网络不佳时使用)
make SKIP_3RDPARTY=1
生成Proto文件
make generated-proto-go
运行Milvus

构建成功后,可执行文件位于bin/milvus,运行命令:

LD_LIBRARY_PATH=./internal/core/output/lib:lib:$LD_LIBRARY_PATH ./bin/milvus

测试流程

预提交验证

运行所有预提交检查:

make verifiers

单元测试

准备测试环境
  1. 启动依赖服务:

    cd deployments/docker/dev
    docker compose up -d
    cd ../../../
    
  2. 运行所有单元测试:

    make unittest
    
特定测试
  • 仅运行C++测试:

    make test-cpp
    
  • 仅运行Go测试:

    make test-go
    
  • 运行单个测试用例(示例):

    source scripts/setenv.sh && go test -v ./internal/proxy/ -test.run TestSearchTask
    

代码覆盖率

生成代码覆盖率报告:

make codecov

报告路径:

  • Go:go_coverage.html
  • C++:cpp_coverage/index.html

端到端测试

  1. 启动Milvus服务:

    • 集群模式:
      ./scripts/start_cluster.sh
      
    • 单机模式:
      ./scripts/start_standalone.sh
      
  2. 运行E2E测试:

    cd tests/python_client
    pip install -r requirements.txt
    pytest --tags=L0 -n auto
    

常见问题解决方案

MacOS特定问题

  1. Go构建失败(Apple Silicon)

    • 确认安装ARM64架构的Go版本
  2. 链接错误(-lSystem)

    sudo rm -rf /Library/Developer/CommandLineTools
    sudo xcode-select --install
    
  3. Rocksdb编译警告

    • 通过系统更新安装最新命令行工具

系统页大小问题

当系统使用大内存页时(如64KB),需在编译时明确声明:

  1. 检查页大小:

    getconf PAGESIZE
    
  2. 修改构建配置(scripts/core_build.sh):

    + -DMILVUS_JEMALLOC_LG_PAGE=16 \
    

其他问题

  • Conan版本不兼容:使用1.61版本
  • Python模块缺失:降级到Python 3.11
  • Brew连接问题:调整git配置:
    git config --global http.postBuffer 1M
    

开发建议

  1. IDE配置:使用VSCode时,可配置C++和Go的集成开发环境
  2. 代码风格:遵循项目代码规范,使用gofumpt格式化工具
  3. 测试覆盖:确保新代码有足够的测试覆盖率

通过本文的指导,开发者应该能够顺利搭建Milvus开发环境,并运行各类测试。如在开发过程中遇到其他问题,建议查阅项目文档或与社区交流获取支持。

milvus A cloud-native vector database, storage for next generation AI applications milvus 项目地址: https://gitcode.com/gh_mirrors/mi/milvus

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐举跃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值