Skip to content

About

Standalone fulltext/vector benchmarks and investigation for MatrixOne

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

MO Search Lab

MO 全文与向量能力的性能评测、问题复现和调查工具。当前支持现场检索健康检查:连接已有 MatrixOne 服务,导入公开数据包,测量检索质量、延迟、吞吐和重复结果稳定性,生成原始 JSON、HTML 图表报告和交互式终端报告。

这是独立 Git 仓库和独立 Go module。运行器通过 MySQL 协议连接 MO;源码和构建依赖均不引用 MatrixOne 内核。

现场 Quick Start

现场只需 Linux x86_64 二进制、数据包和可访问的 MO SQL 服务。账号需要建库、建表、建索引、导入、查询及删库权限。数据包已提前准备,现场无需 Go、Python、ES、模型或互联网。

解压交付包后:

sha256sum -c SHA256SUMS
./mo-search-lab version

# Bash;替换地址、端口及账号。
CONN=(--host 10.0.0.10 --port 6001 --user BENCH_USER)
read -r -s -p 'MO 密码:' MO_BENCH_PASSWORD
export MO_BENCH_PASSWORD

./mo-search-lab run "${CONN[@]}" \
  --pack packs/gist_1m_filtered_v7 --report-dir reports/gist-001
./mo-search-lab run "${CONN[@]}" \
  --pack packs/t2ranking_anli_full_500q_ngram_v3 --report-dir reports/t2-001
./mo-search-lab run "${CONN[@]}" \
  --pack packs/gist_t2_sql_workload_v7 --mixed-scenarios vector,fulltext \
  --report-dir reports/mixed-001

./mo-search-lab ui --reports reports

完整现场包包含上面三个 pack。make release 生成的工具包只包含二进制和 packs/smoke 小样本,用于验证流程;大数据包另外交付。完整现场包解压后约 15.73 GB,共享 CSV 只存一份。MO 存储另需容纳导入数据和索引。

每个 run 自动完成校验、建测试库、导入、建索引、预热、测量、生成报告及删测试库。使用 --keep-db 可保留测试库。报告目录每次用新路径。

打开生成的 report.html,通过顶部 性能测试 / 运行环境 Tab 查看图表和同次运行的环境配置;环境页保留诊断详情与原始记录下载入口。HTML 可离线打开,无外部依赖。

默认设置 值
普通查询 所选 pack 的全部查询,各测量一次
客户端并发 1、4、8;过滤验证专用 pack 默认串行(1)
预热 每个场景/并发档位 5 次,不计入测量
包内稳定性场景 最多 5 条查询,各重复 30 次,并发 1
单查询超时 3 分钟;导入/建索引为该预算的 10 倍

时间紧时追加 --query-limit 20 --stability-repeat 10。这减少查询次数,仍导入全量数据和建立索引。

看报告

终端使用 ui --reports reports:d 选择数据集/运行记录,1~6 切换页面,p 切换 P90/P95/P99,q 退出。

浏览器直接打开每个运行目录中的 report.html。在远程机器执行时,通过 SSH/SFTP 把 reports 拷回电脑再打开。HTML 自包含,可离线查看;report.json 保存原始测量、SQL、输入校验和和执行计划。

MO 环境与配置

run 自动采集 MO 版本、构建信息、选定 SQL 默认变量、账号可见 CN 及节点上报缓存/内存配置(含默认值)。也可先进行只读检查:

./mo-search-lab inspect "${CONN[@]}" \
  --mo-config /path/to/cn.toml --report-dir reports/environment-001

--mo-config 可重复提供多个节点 TOML,展示内存/磁盘缓存等显式配置。--environment-file 补充部署与资源声明,--monitoring-config 接入有明确目标的 Grafana/Prometheus 曲线;三者都可用于 run。报告区分 SQL、文件配置、声明、监控与客户端来源,未采集的信息显示未知。格式和示例见 环境与配置说明。

环境报告按版本与部署、节点与缓存、检索参数、资源监控分区。配置差异、异常节点和采集失败集中在“诊断详情”;完整文件身份与校验和保留在原始 JSON。CLI 环境页按 e,纯文本追加 --environment-details。节点配置标为启动上报快照,不采集 Iceberg、ETL 或 TMP 配置。

数据包

公开数据包:datasets-v1 Release。下载、分卷合并及校验步骤见 数据包分发说明。

Pack 数据 主要用途
GIST filtered v7 100 万条、960 维公开向量 IVF 召回、PRE/POST 过滤、1/4/8 并发、重复稳定性
T2Ranking anli ngram v3 230 万段落、500 条冻结查询与相关性标注 anli 查询形态的全文 TF-IDF/BM25 质量、并发与稳定性
GIST/T2 SQL workload v7 共享前两份 CSV 两路数据库 SQL 同时执行时的延迟和吞吐

数据包和运行结果存放在源码仓库之外。运行时通过 --pack 和 --report-dir 指定位置。共享交付应保留 CSV 硬链接。

质量分数作为观测值,不设统一验收线。稳定性与召回/相关性分别检查。并发数表示客户端并发请求,CN 数量由客户部署决定。

开发与构建

构建使用 go.mod 指定的 Go 版本;离线准备脚本的测试使用 Python 3.10+。现场交付不需要这些开发环境。

make build        # 生成 ./mo-search-lab,纯 Go 静态构建
make check        # Go 测试、vet、格式检查及 Python 脚本测试
make release      # 生成 dist/ 下的 Linux amd64 工具包及 SHA-256

默认版本为 v0.9.9;可用 make release VERSION=v0.9.9 显式指定。构建和测试均使用本仓库的 go.mod、go.sum,关闭父目录 Go workspace。

验证小样本数据包:

./mo-search-lab validate --pack cmd/mo-search-lab/testdata/smoke

小样本仅验证执行流程,不用于客户性能结论。

目录与扩展

cmd/mo-search-lab/   Go 运行器、报告、终端界面、单元测试、小样本
tools/                   离线数据准备、报告发布、独立复算及其测试
docs/design/             pack/报告/稳定性设计与仓库迁移记录
scripts/                 发布打包
.github/workflows/       独立构建与测试 CI
go.mod / go.sum          工具自己的依赖

客户新问题通常通过新增场景 JSON、固定查询 JSONL、真值/断言及 manifest 校验和加入数据包,再用同一运行器执行。新增指标或检查类型时扩展运行器和对应测试。

详细命令、pack schema、测量口径和离线准备流程见 运行器参考。迁移来源与验证见 独立仓库设计,当前名称与兼容说明见 MO Search Lab。

License

继承原工具的 Apache License 2.0 和 Matrix Origin 版权声明。公开数据集的许可与来源随各自数据包记录。

About

Standalone fulltext/vector benchmarks and investigation for MatrixOne

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages