Skip to content

Supercache dev extern&mock#20

Open
qinyufei63 wants to merge 38 commits into
zchuango:supercache_devfrom
qinyufei63:supercache_dev_extern&mock
Open

Supercache dev extern&mock#20
qinyufei63 wants to merge 38 commits into
zchuango:supercache_devfrom
qinyufei63:supercache_dev_extern&mock

Conversation

@qinyufei63

@qinyufei63 qinyufei63 commented Jun 12, 2026

Copy link
Copy Markdown

Description

将 UbDiag 从 Mooncake 编译期硬依赖(find_package(REQUIRED))改为三层 CMake 自动回退机制,确保用户无论是否安装 UbDiag 均可编译 Mooncake。

  • 新增 extern/ubdiag git submodule,指向 v0.4.0
  • 新增 mooncake-common/FindUbDiag.cmake,实现 Layer 1 submodule → Layer 2 system → Layer 3 mock 三层分发
  • 新增 mooncake-common/ubdiag-mock/ubdiag/auto_perf.h header-only mock,全签名对齐真实 UbDiag v0.4.0(含模板构造函数、Abandon、析构、PerfLevel:uint8_t)
  • mooncake-transfer-engine/src/CMakeLists.txtmooncake-store/src/CMakeLists.txtmooncake-integration/CMakeLists.txt 三处将 find_package(UbDiag REQUIRED) 替换为 include(FindUbDiag.cmake)
  • 新增 mooncake-common/ubdiag-mock/README.md 集成说明文档

Module

  • Transfer Engine (mooncake-transfer-engine)
  • Mooncake Store (mooncake-store)
  • Mooncake EP (mooncake-ep)
  • Mooncake PG (mooncake-pg)
  • Integration (mooncake-integration)
  • P2P Store (mooncake-p2p-store)
  • Python Wheel (mooncake-wheel)
  • Common (mooncake-common)
  • Mooncake RL (mooncake-rl)
  • CI/CD
  • Docs
  • Other

Type of Change

  • Bug fix(修复 Layer1 目标名和 include 路径两个 bug)
  • New feature
  • Refactor
  • Breaking change
  • Documentation update
  • Performance improvement
  • Other

How Has This Been Tested?

Ubuntu 22.04 三层分发全链路编译验证:

Layer cmake configure make 编译 标识
Layer 1 — submodule 通过 通过(libubdiag.a + 7 Mooncake target) UbDiag: using submodule (extern/ubdiag)
Layer 2 — system package 通过 通过(find_package 成功,全 Mooncake target) UbDiag: using system package
Layer 3 — mock fallback 通过 通过(header-only,零 ubdiag 依赖报错) UbDiag: using mock (no-op PerfPoint)
  • 93+ 处现有 PerfPoint 调用点一行未改,mock 签名完全对齐
  • transfer_engine/config.cpp glog API 不兼容为预存 issue,与本次变更无关

测试命令:

# Layer 1
cmake .. -DWITH_STORE=ON -DUSE_CUDA=OFF -DUSE_REDIS=OFF \
  -DUSE_ETCD=OFF -DBUILD_UNIT_TESTS=OFF -DBUILD_EXAMPLES=OFF \
  -DENABLE_OB_MEMORY=OFF -DENABLE_OB_CACHE=OFF -DENABLE_MEMPOINT=OFF
make -j$(nproc)

# Layer 2(先 make install ubdiag 到 /usr/local,移除 extern/ubdiag)
cmake .. (同上参数)
make -j$(nproc)

# Layer 3(移除 extern/ubdiag,无系统 UbDiag)
cmake .. (同上参数)
make -j$(nproc)

Checklist

  • I have performed a self-review of my own code
  • I have formatted my code using ./scripts/code_format.sh(auto_perf.h 通过 clang-format;FindUbDiag.cmake 通过 cmake-format,缩进 4→2 空格符合项目惯例)
  • I have run pre-commit run --all-files and all hooks pass(ruff/codespell 的 43 个报错全部在基线已有代码中,与本次变更无关;新增文件零报错)
  • I have updated the documentation (if applicable)
  • I have added tests to prove my changes are effective(三层编译验证通过,Layer1 实测修复 target/include 路径两个 bug)
  • For changes >500 LOC: N/A(8 文件 265 行)

AI Assistance Disclosure

  • No AI tools were used
  • AI tools were used (specify below)

DeepSeek V4 Pro 辅助了代码审查、mock 签名对齐验证、README 文档撰写、pre-commit 运行与修复、Ubuntu 22.04 环境部署与三层编译验证、commit 管理。人工检查并确认了所有变更的正确性。

qinyufei and others added 10 commits June 12, 2026 19:28
① Ubuntu 22.04 三层分发全链路编译验证通过:Layer1 submodule (libubdiag.a + 7 target)、Layer2 system package (find_package成功)、Layer3 mock fallback (header-only零依赖错误),三层cmake configure + make全目标零ubdiag相关报错,仅transfer_engine因glog预存问题失败与本次变更无关

② pre-commit格式化自动修正:FindUbDiag.cmake缩进从4空格改为2空格(与项目其他CMake文件一致);auto_perf.h模板声明从两行折为一行(Google风格80列内);375个基线文件被pre-commit修改后已全部恢复,仅保留我们的变更

③ 修复Layer1目标名bug:ubdiag add_subdirectory只创建ubdiag_lib目标不含UbDiag::命名空间,改为if(TARGET ubdiag_lib)+ALIAS创建UbDiag::ubdiag_lib

④ 修复Layer1 include路径bug:ubdiag CMake用CMAKE_SOURCE_DIR引用include,被Mooncake add_subdirectory后指向错误路径,手动补齐BUILD_INTERFACE include目录
@qinyufei63 qinyufei63 force-pushed the supercache_dev_extern&mock branch from 748d242 to af0244e Compare June 15, 2026 01:59
qinyufei added 11 commits June 15, 2026 10:19
- read.sh: 补完整 summary(exit code + stdout benchmark + key metrics + stderr 错误检测)
- write.sh: 同上补 summary(write progress + 错误检测)
- verify_3layers_245.sh: 新,逐层编译(L1/L2/L3) + 每层串行 master-client-write-read + 最终三层汇总
…segment_size;read.sh关键指标提取改用sed提取FINAL SUMMARY整块;verify_3layers_245.sh 添加-fPIC编译选项并修复rm -f build无法删除目录的问题
qinyufei added 12 commits June 17, 2026 09:18
…real_client_main加IsGoogleLoggingInitialized防御,verify脚本补全9010/8980端口清理
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Jun 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant