Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
291 commits
Select commit Hold shift + click to select a range
3adc78c
Merge branch 'supercache_dev' into ubdiag
yuanhao-426 May 26, 2026
b50bf0b
Merge pull request #5 from yyyuanhao426-hash/ubdiag
zchuango May 26, 2026
60ddbcf
feat(allocation): 添加独立的 DDR 准入水位控制
May 26, 2026
41e12b1
docs: 补充存储后端配置参数说明
May 26, 2026
16b946d
Merge branch 'supercache_dev' into ssd_balance
May 26, 2026
858e81e
feat(allocation): 新增DDR水位线拒绝分配的错误码
May 26, 2026
ce1c963
docs: 添加日志配置和异步改造方案文档
yuanhao-426 May 26, 2026
0f418c8
fix: 修复 DDR 高水位判断逻辑错误
May 26, 2026
8a9bfc9
Merge pull request #7 from syliudf/ssd_balance
zchuango May 26, 2026
d6475cb
feat(tests): 添加冷热数据交换机制验证脚本和指南
May 26, 2026
c55d1db
docs: update SSD balance allocation design with DDR admission control
May 26, 2026
e8d7f9a
docs: 更新 offload promotion 测试指南
May 26, 2026
16d9e4f
docs(tests): 更新测试指南中的命令以指定master地址
May 26, 2026
17a0759
test: 确保SSD卸载路径目录存在
May 26, 2026
9e71f87
test: 分批写入以支持 SSD 卸载和提升测试
May 26, 2026
019e35a
test: 将默认段大小从32MB增加到64MB
May 27, 2026
2d89f88
docs(tests): 更新 offload promotion 测试为 10 倍规模并调整参数
May 27, 2026
eaa76d1
feat(logging): 为读写链路添加异步日志、TraceId 和性能监控
yuanhao-426 May 27, 2026
da89e61
fix(测试): 调整offload/promotion测试参数以应对流水线瓶颈
May 27, 2026
40cb75b
docs(tests): 更新测试指南
May 27, 2026
c6084d2
perf: 集成性能监控与慢操作告警
yuanhao-426 May 27, 2026
ecec9ca
feat(logging): 细化副本类型日志并更新文档
yuanhao-426 May 27, 2026
7aff875
refactor(测试): 引入安全清理函数避免段错误
May 27, 2026
dddb030
docs(tests): 更新测试指南和脚本以反映实际行为
May 28, 2026
dfb496c
feat(transfer): 为异步传输任务添加 trace_id 支持
yuanhao-426 May 28, 2026
9a16629
Merge pull request #9 from syliudf/ssd_balance
zchuango May 28, 2026
7cb6e76
Merge branch 'main' into supercache_dev
zchuango May 28, 2026
ebe9064
format and clean code
zchuango May 28, 2026
45e4ea8
build: 在链接库中添加 ubdiag 依赖
yuanhao-426 May 28, 2026
fffd272
feat: 添加 trace_id 支持以增强分布式追踪能力
yuanhao-426 May 28, 2026
2c79876
update log-reference.md
yuanhao-426 May 28, 2026
0bfae4f
add the dummy client for go store
zchuango May 29, 2026
6c7fa2e
Merge branch 'supercache_dev' into ubdiag
yuanhao-426 May 30, 2026
2ff72ad
feat(性能监控): 为传输数据性能点添加操作类型后缀
yuanhao-426 May 30, 2026
696bbac
fix: 防止重复初始化 Google Logging
yuanhao-426 May 30, 2026
a7e3d27
fix: 防止重复初始化 Google Logging
yuanhao-426 May 30, 2026
d430beb
fix: 仅在未设置MC_LOG_DIR环境变量时启用日志输出到标准错误
yuanhao-426 May 30, 2026
f2197d9
add the segment read/write for stress cluster bench
zchuango May 30, 2026
17334e5
add the autodiscovery segments
zchuango May 30, 2026
6b768a7
remove some log
zchuango May 31, 2026
628b0e1
fix the bug
zchuango May 31, 2026
f9b3060
modify the code for coredump
zchuango May 31, 2026
d94b47f
refine the data for stress bench
zchuango Jun 1, 2026
ff965c1
optimize the code for urma endpoint
zchuango Jun 1, 2026
e98a784
fix the bug for data
zchuango Jun 1, 2026
52a2890
docs: 补充 URMA 端建连日志的触发时机、顺序和排查指引
yuanhao-426 Jun 1, 2026
e3902f6
feat(urma): 支持通过环境变量配置 URMA 传输模式
yuanhao-426 Jun 1, 2026
d4dd370
Merge pull request #10 from yyyuanhao426-hash/urma_mode
zchuango Jun 1, 2026
4429cb6
- 在 `UrmaContext` 中缓存传输模式,避免重复解析配置。
yuanhao-426 Jun 2, 2026
98212f5
Merge pull request #11 from yyyuanhao426-hash/urma_mode
zchuango Jun 2, 2026
56b49c8
fix the numa affiniaty for segment
zchuango Jun 2, 2026
d5cf2e9
feat(master): 集成性能打点并优化客户端日志开销
Jun 2, 2026
d080c58
add the rpm_build
zchuango Jun 2, 2026
0f5edfe
fix(logging): 修复日志总开关默认行为并统一配置
Jun 2, 2026
375e6e8
Merge branch 'supercache_dev' into ubdiag
Jun 2, 2026
1b079da
fix: 移除日志中多余的bind_us字段
Jun 2, 2026
6d24ff1
fix(urma): 在绑定jetty日志中添加bind_us时间信息
Jun 2, 2026
ae4e64a
fix the numa affiniaty for segment and add the rpm build script
zchuango Jun 2, 2026
34ff8bf
Merge branch 'supercache_dev' into ubdiag
Jun 2, 2026
3a33bd5
merge supercache_dev
Jun 2, 2026
380bbaf
Merge pull request #12 from yyyuanhao426-hash/ubdiag
zchuango Jun 2, 2026
7ac14b5
add the urma bonding multipath entable
zchuango Jun 3, 2026
c7a0a3e
fix: 移除 MC_LOG_ENABLE 对 FLAGS_minloglevel 的全局影响
Jun 3, 2026
ce7b686
refactor: 统一日志宏从 MC_LOG 改为 LOG
Jun 3, 2026
a6a480f
Merge pull request #13 from yyyuanhao426-hash/ubdiag
zchuango Jun 3, 2026
ccf5499
add the rpm build script
zchuango Jun 3, 2026
79295d3
perf(logging): 移除冗余日志以提升性能
Jun 3, 2026
78a02e2
feat(logging): 添加高频 breakdown 日志采样支持
Jun 3, 2026
934e94c
Merge pull request #18 from yyyuanhao426-hash/log
zchuango Jun 3, 2026
79fd242
test: 为 MemcpyTask 构造函数添加 trace_id 参数
Jun 4, 2026
253beb2
Merge pull request #19 from yyyuanhao426-hash/log
zchuango Jun 4, 2026
3beb861
rollback for store go api
zchuango Jun 6, 2026
bfbbf6b
fix: remove stale hot cache on remove
Le1zyCatt Jun 10, 2026
3f739f9
fix: refine hot cache invalidation on remove
Le1zyCatt Jun 11, 2026
c380d18
fix: 防止重复初始化glog并添加客户端主机信息到RPC日志
Jun 13, 2026
03616e8
optimize the stress cluster bench bug
zchuango Jun 13, 2026
b12de66
add the cuda dependency on store
zchuango Jun 13, 2026
0481e75
refactor(logging): 移除 MC_LOG_ENABLE 环境变量并简化日志控制
Jun 13, 2026
c51bc4d
Merge pull request #22 from yyyuanhao426-hash/supercache_log
zchuango Jun 13, 2026
ef840d2
Merge branch 'main' into supercache_dev
zchuango Jun 13, 2026
f9371ca
format and fix some bug
zchuango Jun 13, 2026
63dfb7e
fix: refine hot cache invalidation logic
Le1zyCatt Jun 15, 2026
d86fb0b
removed some useless tests
Le1zyCatt Jun 15, 2026
1d241ad
Merge branch 'kvcache-ai:main' into fix-hot-cache-precise-invalidatio…
Le1zyCatt Jun 15, 2026
d5ecf8c
feat(logging): 增加异步日志队列的定期刷新机制
Jun 15, 2026
a268bc4
fix(store): invalidate hot cache after Upsert/BatchUpsert succeeds
Le1zyCatt Jun 15, 2026
6ccb0a5
Merge branch 'supercache_dev' into supercache_log
Jun 16, 2026
977fd58
Merge branch 'fix-hot-cache-precise-invalidation' into supercache_dev
Le1zyCatt Jun 16, 2026
cc414b4
perf(logging): 用环形缓冲区替换队列以提升异步日志性能
Jun 16, 2026
3ff8ed9
feat(日志与监控): 为关键操作添加详细性能日志和采样支持
Jun 16, 2026
c23d3fd
perf: 添加性能监控点以跟踪关键操作耗时
Jun 16, 2026
01f9498
fix(master): 调整 glog 初始化顺序以正确处理 MC_LOG_DIR
Jun 16, 2026
db09972
feat: 为关键操作添加跟踪ID以增强可观测性
Jun 16, 2026
eb40c13
fix(master_client): 将硬编码的trace_id替换为实际值
Jun 16, 2026
df24f2a
bench: improve stress_cluster_bench latency and throughput metrics
liangxu2000 Jun 17, 2026
7ad7312
bench: fix avg latency integer division bug in MeanLatencyUs
liangxu2000 Jun 17, 2026
95727b5
bench: fix avg latency always 0 in duration mode final summary
liangxu2000 Jun 17, 2026
34c9608
Merge pull request #23 from yyyuanhao426-hash/supercache_log
zchuango Jun 17, 2026
950d09f
fix(urma): 为导入段操作添加互斥锁保护
Jun 18, 2026
b20acb2
fix: 修正批量获取卸载对象时参数名错误
Jun 20, 2026
0c7b5b6
Merge pull request #25 from yyyuanhao426-hash/debug/malloc
zchuango Jun 21, 2026
ae1277a
Merge pull request #24 from liangxu2000/supercache_dev
zchuango Jun 21, 2026
b181c79
optimize the stress cluster bench
zchuango Jun 21, 2026
5b5ba1a
Merge pull request #26 from yyyuanhao426-hash/debug/storage_key
zchuango Jun 21, 2026
8c9e67f
add the port env parameter
zchuango Jun 21, 2026
c510dc2
modify the active port type to int8_t
zchuango Jun 21, 2026
66a8131
feat(offload): 新增推送模式卸载以优化远程数据获取
Jun 23, 2026
9cfdfba
feat(perf): 为所有者端SSD卸载操作添加性能监控点
Jun 23, 2026
aaa4456
perf(offload): 将性能点移至 FileStorage 以精确测量 SSD 读取阶段
Jun 23, 2026
99983ae
修复urma rpc和urma transport冲突问题
Gzure Jun 24, 2026
46c3cc4
feat(offload): 新增 SSD offload push 模式以优化读取性能
Jun 24, 2026
14bde4f
支持urma rpc编译选项
Gzure Jun 24, 2026
662e105
去掉ylt_urma选项
Gzure Jun 24, 2026
2554300
Merge pull request #2 from Gzure/supercache_dev_zjw
JerryLX Jun 24, 2026
e5d16f9
add doc for offload failure
Jun 25, 2026
af50016
add muiltiple threads handshake listener
zchuango Jun 27, 2026
0dc18fd
add the warmup method
zchuango Jun 27, 2026
d713e04
fix the bug for warmup
zchuango Jun 27, 2026
1de6449
fix the get metadata bug
zchuango Jun 27, 2026
279973d
Merge pull request #6 from LinQuickDev/supercache-warmup
zchuango Jul 2, 2026
c4d5c5a
Merge pull request #7 from yyyuanhao426-hash/feature/offloadrpc
zchuango Jul 2, 2026
6323801
feat: 为分布式存储系统添加跨进程和线程的高频日志采样与诊断
Jul 2, 2026
7efe9df
feat: 在文件存储模块中添加日志记录支持
Jul 2, 2026
868ed55
feat(诊断): 在获取操作中增加本地端点与副本选择耗时细分
Jul 2, 2026
75dbd3d
perf(offload): 为SSD卸载路径添加详细的性能监控和日志
Jul 3, 2026
bdd1e8c
perf: 优化日志初始化和RPC耗时统计
Jul 3, 2026
f5870a5
refactor(client): 重命名 RPC 时序字段以更清晰反映阶段
Jul 3, 2026
32d3aac
perf(master_client): 添加RPC调用的详细耗时日志记录
Jul 6, 2026
2300894
add the stress cluster rages benchmark
zchuango Jul 6, 2026
e9cb815
fix: 将RPC日志文件大小限制从10MB增加到100MB
Jul 6, 2026
74ed2ee
fix: 将offload RPC服务器线程数从1增加到8
Jul 7, 2026
d80e169
feat: 为分段读取基准测试添加确定性键顺序支持
Jul 7, 2026
2417a40
feat(client): 增加预热卸载RPC连接池支持
Jul 8, 2026
dffa1db
feat(offload): 增加RPC连接池预热和端点发现功能
Jul 8, 2026
f3a1b0c
feat(基准测试): 添加客户端初始化等待时间配置
Jul 8, 2026
6942716
perf: 将RPC日志文件大小限制从100MB增加到1000MB
Jul 8, 2026
e05ecf6
Merge branch 'linqu_supercache' into supercache
Jul 9, 2026
336c53c
feat: 为 RPC 连接池添加空闲超时环境变量配置
yyyuanhao426-hash Jul 11, 2026
98c0b2f
feat: 支持配置 yalantinglibs 日志路径和文件轮转参数
yyyuanhao426-hash Jul 20, 2026
06b56ba
ci(qoder-review): 缺少 token 时跳过审查
yyyuanhao426-hash Jul 20, 2026
d74cea6
Merge pull request #9 from yyyuanhao426-hash/supercache
zchuango Jul 27, 2026
749603c
add design doc for distributed metadata plane
Jul 28, 2026
8baf433
feat: 基于 UBDIAG_DISABLE 重构 ubdiag 集成,FetchContent 替代 submodule
qinyufei63 Jul 21, 2026
411e9b8
fix: 修正 DISABLE 层源码拉取和编译开关传播
qinyufei63 Jul 21, 2026
14a15a7
feat: 切换 UbDiag GitHub 镜像并固定主仓提交
qinyufei63 Jul 21, 2026
f240448
fix: 固定 UbDiag v0.5.1 并修正全流程验证
qinyufei63 Jul 21, 2026
e5b447b
fix: 隔离UbDiag构建选项并裁剪CachePoint
qinyufei63 Jul 22, 2026
9dbac6b
docs: 补充UbDiag两层分发用户指南
qinyufei63 Jul 22, 2026
8e8074c
fix: 锁定RPM内置UbDiag源码与构建产物
qinyufei63 Jul 25, 2026
a52a405
fix: 修正UbDiag RPM来源校验与可选产物打包
qinyufei63 Jul 25, 2026
0534957
fix: 更新UbDiag精确版本并包含聚合器修复
qinyufei63 Jul 27, 2026
0392794
fix: 清除RPM内UbDiag构建路径RPATH
qinyufei63 Jul 27, 2026
c09ee50
docs: 完善UbDiag两层分发用户说明
qinyufei63 Jul 27, 2026
05927d6
fix: 收紧UbDiag两层配置异常门禁
qinyufei63 Jul 28, 2026
8a2304a
style: 清理RPM脚本行尾空格
qinyufei63 Jul 28, 2026
ba2c643
feat: 改为使用系统UbDiag完成两层分发
qinyufei63 Jul 28, 2026
480fe3d
docs: 更新UbDiag两层集成与单RPM说明
qinyufei63 Jul 28, 2026
362bbc8
refactor: 精简UbDiag两层集成保护逻辑
qinyufei63 Jul 30, 2026
9997920
docs: 精简并保留UbDiag用户指南
qinyufei63 Jul 30, 2026
64f45d2
fix: 修正系统UbDiag目标作用域与CLI选择
qinyufei63 Jul 30, 2026
e42c08c
Merge pull request #13 from qinyufei63/supercache_dev_ubdiag
zchuango Jul 30, 2026
f8e2128
feat(supercache): import supercache feature from LinQuickDev/Mooncake
Jul 31, 2026
8d12958
fix(environ): remove duplicate method defs and place them in mooncake…
Jul 31, 2026
8675c41
fix(store): resolve merge conflicts in master_service and rpc_service
Jul 31, 2026
8f0d2f2
fix(transfer-engine): replace continue with return in handleConnection
Jul 31, 2026
9b4f4ee
fix: add missing supercache headers and fix types.h enum comma
Jul 31, 2026
950f8c4
fix: remove non-existent SsdFreeRatioFirstAllocationStrategy and fix …
Jul 31, 2026
8897477
fix: bridge .hpp to .h to avoid redefinition errors
Jul 31, 2026
9247639
fix: remove duplicate for-loop and redeclaration in storage_backend.cpp
Jul 31, 2026
e2a669e
fix: fix header_iov→header_iovs typo and add missing metadata_store.h…
Jul 31, 2026
8b48fb6
fix(store): add missing headers - master_admin_service.h, ha_metric_m…
Jul 31, 2026
628917d
fix(store): convert client_buffer.hpp to bridge header to resolve red…
Jul 31, 2026
d605ea7
fix(store): add missing mooncake_logging.h include for client_service
Jul 31, 2026
7bd6187
fix(store): resolve header/impl mismatch and merge artifacts in maste…
Jul 31, 2026
df97067
fix(store): fix setup_internal param order, remove duplicate function…
Jul 31, 2026
60b0e96
fix(store): move HttpSegment types and shared helpers to master_admin…
Jul 31, 2026
36e4403
fix(store): expose drain job types and helpers in master_admin_service.h
Jul 31, 2026
e89d997
fix(store): fix decl order and remove anon-ns conflicts in master_adm…
Jul 31, 2026
ce10f4d
fix(store): remove duplicate default arg, expose HttpSegmentStatusRes…
Jul 31, 2026
6641b3b
fix(store): remove duplicate MasterAdminServer impls from rpc_service…
Jul 31, 2026
475504b
fix(store): add missing BuildHealthJson/BuildLeaderJson and Client me…
Jul 31, 2026
7a4348a
Merge branch 'main' into supercache_ha
zchuango Aug 1, 2026
64292c2
resolve confliction and remain
zchuango Aug 1, 2026
8e677bf
resolve confliction for bug
zchuango Aug 1, 2026
3ce536d
conflictions for client
zchuango Aug 1, 2026
d1d2274
conflictions for storage_backend.h
zchuango Aug 1, 2026
e615c88
Merge branch 'supercache_ha' into supercache
zchuango Aug 1, 2026
a47a75c
fix the bug for date
zchuango Aug 1, 2026
7029995
[Store] Add strict_replica_allocation flag to enforce exact memory re…
liangxu2000 Aug 1, 2026
70afdf5
[Store] Record one LOCAL_DISK replica per client in replicaList (#17)
liangxu2000 Aug 1, 2026
d5c9e30
Urma mode (#18)
yyyuanhao426-hash Aug 1, 2026
e8a5b13
fix the code format error
zchuango Aug 1, 2026
bfbaa0e
feat(ha): reduce DEFAULT_MASTER_VIEW_LEASE_TTL_SEC from 5s to 3s for …
Aug 3, 2026
39b30f8
!28 merge sync-supercache into dev-master_ub_transport
Aug 3, 2026
2bd73a1
重构: 将 UbDiag 重命名为 SpDiag
yyyuanhao426-hash Aug 5, 2026
8d0d7ce
etcd reporter, endpoint log
Aug 5, 2026
bea906b
fix: replace non-existent error_code.h with types.h in master_metrics…
Aug 5, 2026
3e7e010
fix: resolve type mismatch and const-correctness errors in MasterMetr…
Aug 5, 2026
3839141
debug: add hex dump for transport_endpoint in NotifyOffloadSuccess
Aug 5, 2026
3d30a4e
debug: add hex dump after AddReplicas to trace transport_endpoint cor…
Aug 5, 2026
e81a19b
fix: replace insert+move_iterator with reserve+push_back in AddReplic…
Aug 6, 2026
5c3222f
debug: add AfterConstruct and AfterEmplaceBack hex dumps to trace str…
Aug 6, 2026
c60e328
fix: resolve dangling references from get_descriptor() returning temp…
Aug 6, 2026
58e5666
chore: remove debug hex dump logs, keep only the fix for dangling ref…
Aug 6, 2026
7a61e6a
feat: change metrics etcd key to /masters/primary for single-primary …
Aug 6, 2026
a828e9e
add cluster diag python
Aug 6, 2026
fd277cb
fix: use localtime_r instead of gmtime_r for updated_at timestamp to …
Aug 6, 2026
f0d5f6d
fix: filter stale LOCAL_DISK replica endpoints by client liveness
Aug 6, 2026
3c88987
fix: use CleanupStaleHandles for startup cleanup to handle all stale …
Aug 6, 2026
d0ea077
fix: clear standby_allocator_keepalive_ before startup cleanup to exp…
Aug 6, 2026
1473755
diagnostic: add startup cleanup detail logs to identify surviving rep…
Aug 6, 2026
a7626f5
fix: decrement allocated_mem_size metric after startup cleanup of sta…
Aug 6, 2026
5bf5e6c
revert: remove overly aggressive startup cleanup to align with upstream
Aug 6, 2026
e05ce63
pr 21 + ha
Aug 6, 2026
95da514
post_promotion_cleanup_sec define
Aug 6, 2026
daf7bff
add check client
Aug 6, 2026
2de0528
revert change
Aug 6, 2026
fdf4581
rm request
Aug 6, 2026
182ac3b
fix bug for offload
Aug 6, 2026
246bfb1
merge boostkit/dev-master_ub_transport into supercache_ha
Aug 6, 2026
b3349a4
fix: remove undefined retry variable in persist_evict_oplog_or_skip
Aug 6, 2026
7590edb
fix: metrics reporter lease race + missing lease binding + remove unu…
Aug 7, 2026
bea2c4c
[Store] Protect all offload source replicas from eviction (#21)
liangxu2000 Aug 7, 2026
f153498
refactor: remove OpLog reservation retry loop in NoFBatchEvict
Aug 7, 2026
bfbb3c4
fix: remove leftover retry reference in NoFBatchEvict log
Aug 7, 2026
6128f2f
store: release offset recovery gaps
Jul 24, 2026
fc6d0f1
store: avoid false memory eviction triggers
Jul 24, 2026
801fe07
store: grant lease after memory replica recovery
Jul 24, 2026
1bbcf79
store: stop batch eviction on oplog backpressure
Jul 24, 2026
a5b2301
store: document recovery eviction invariants
Jul 27, 2026
84ef383
store: clarify eviction oplog submission results
Jul 27, 2026
8d1454d
store: protect restored replicas from eviction
Aug 4, 2026
5f3c8d1
[Bugfix][Store] Keep unreadable recovered replicas out of eviction
Aug 7, 2026
6839d97
fix for oplog reserve
Aug 7, 2026
233dc55
fix for local_disk remount
Aug 7, 2026
660f036
add for replica
Aug 7, 2026
3f9a19c
fix for local_disk replica
Aug 7, 2026
b9f4cee
add for retry clearup for ha
Aug 7, 2026
a224d1d
fix whitebox
Aug 8, 2026
e7473de
chore(spdiag): 更新 SpDiag 仓库地址与分支
yyyuanhao426-hash Aug 8, 2026
f101c64
fix for ub segment
Aug 8, 2026
febacb7
fix for python version bug
Aug 8, 2026
441ec78
Merge branch 'supercache' into supercache_ha
wangyuqi0429 Aug 8, 2026
9f12da4
chore(spdiag): pin layer0 source to v1.0.0 commit
qinyufei63 Aug 10, 2026
1e6d36b
Merge pull request #1 from qinyufei63/codex/spdiag-pin-v1.0.0
yyyuanhao426-hash Aug 10, 2026
643be4f
Merge pull request #24 from wangyuqi0429/supercache_ha
zchuango Aug 10, 2026
f1fd6d2
Merge pull request #25 from yyyuanhao426-hash/spdiag
zchuango Aug 10, 2026
5a10f35
fix(tracing): 添加缺失的 span 结束调用
yyyuanhao426-hash Aug 14, 2026
ec7a438
Merge pull request #28 from yyyuanhao426-hash/supercache
zchuango Aug 17, 2026
b874ea5
feat(spdiag): 为 vLLM 调用路径添加 PerfPoint 打点与 MC_LOG 日志
ZhiningPan Aug 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
165 changes: 165 additions & 0 deletions docs/analyze/offload_failure_log_matrix.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mooncake Offload Failure Log Matrix</title>
<style>
body {
margin: 24px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
color: #1f2933;
background: #f7f8fa;
line-height: 1.5;
}
h1 {
margin: 0 0 8px;
font-size: 24px;
font-weight: 700;
}
p {
margin: 0 0 16px;
color: #52616f;
}
.table-wrap {
overflow-x: auto;
background: #ffffff;
border: 1px solid #d8dee6;
border-radius: 8px;
}
table {
width: 100%;
border-collapse: collapse;
min-width: 1180px;
}
th, td {
padding: 10px 12px;
border-bottom: 1px solid #e5e9ef;
border-right: 1px solid #e5e9ef;
vertical-align: top;
text-align: left;
font-size: 14px;
}
th:last-child, td:last-child {
border-right: none;
}
thead th {
position: sticky;
top: 0;
background: #eef2f6;
color: #243447;
font-weight: 700;
z-index: 1;
}
tbody tr:nth-child(even) {
background: #fbfcfd;
}
code {
padding: 1px 4px;
border-radius: 4px;
background: #eef2f6;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 13px;
}
.yes {
color: #9f1239;
font-weight: 700;
}
.no {
color: #166534;
font-weight: 700;
}
.mixed {
color: #92400e;
font-weight: 700;
}
</style>
</head>
<body>
<h1>enable_offload=true, offload_on_evict=false 场景下 offload 失败路径与日志矩阵</h1>
<p>说明:“是否有 ERROR 日志”按代码里的 <code>LOG(ERROR)</code> / <code>MC_LOG(ERROR)</code> 统计;<code>WARNING</code>/<code>INFO</code> 在备注中单独标注。</p>

<div class="table-wrap">
<table>
<thead>
<tr>
<th>阶段</th>
<th>失败路径 / 条件</th>
<th>错误码 / 结果</th>
<th>是否有 ERROR 日志</th>
<th>日志位置 / 备注</th>
</tr>
</thead>
<tbody>
<tr><td>Client 初始化</td><td><code>RegisterLocalMemory()</code> 失败</td><td>返回底层错误</td><td class="yes">有</td><td><code>FileStorage::Init()</code> 打印 <code>Failed to register local memory</code></td></tr>
<tr><td>Client 初始化</td><td>storage backend <code>Init()</code> 失败</td><td>返回底层错误</td><td class="yes">有</td><td><code>FileStorage::Init()</code> 打印 <code>Failed to init storage backend</code></td></tr>
<tr><td>Client 初始化</td><td><code>IsEnableOffloading()</code> 返回错误</td><td>返回底层错误</td><td class="yes">有</td><td><code>FileStorage::Init()</code> 打印 <code>Failed to get enable persist result</code></td></tr>
<tr><td>Client 初始化</td><td><code>IsEnableOffloading()</code> 返回 <code>false</code></td><td>挂载成功但 <code>enable_offloading_=false</code></td><td class="no">无 ERROR</td><td>只有 INFO:<code>IsEnableOffloading result: false</code></td></tr>
<tr><td>Client 初始化</td><td><code>MountLocalDiskSegment()</code> 失败</td><td>返回底层错误</td><td class="yes">有</td><td>Client 打印 <code>Failed to mount file storage</code>;Master 未启用 offload 时也有 ERROR</td></tr>

<tr><td>PutEnd 入队</td><td>MEMORY replica 没有 segment name</td><td><code>PushOffloadingQueue()</code> 返回 OK 但不入队</td><td class="no">无</td><td>静默跳过</td></tr>
<tr><td>PutEnd 入队</td><td>segment name 找不到 client</td><td><code>SEGMENT_NOT_FOUND</code></td><td class="yes">有</td><td><code>PushOffloadingQueue()</code> 打印 <code>Segment ... not found</code>;<code>PutEnd()</code> 不再额外打印</td></tr>
<tr><td>PutEnd 入队</td><td>client local disk segment 不存在</td><td><code>UNABLE_OFFLOADING</code></td><td class="no">无</td><td><code>PutEnd()</code> 忽略返回值</td></tr>
<tr><td>PutEnd 入队</td><td>local disk segment <code>enable_offloading=false</code></td><td><code>UNABLE_OFFLOADING</code></td><td class="no">无</td><td><code>PutEnd()</code> 忽略返回值</td></tr>
<tr><td>PutEnd 入队</td><td>offloading queue 达到 <code>offloading_queue_limit_</code></td><td><code>KEYS_ULTRA_LIMIT</code></td><td class="no">无</td><td><code>PutEnd()</code> 忽略返回值</td></tr>
<tr><td>PutEnd 入队</td><td>同一个 tenant/key 已在 queue 中</td><td><code>OBJECT_ALREADY_EXISTS</code></td><td class="no">无</td><td><code>PutEnd()</code> 忽略返回值</td></tr>

<tr><td>Heartbeat 下发</td><td>Master 找不到 client local disk segment</td><td><code>SEGMENT_NOT_FOUND</code></td><td class="yes">有</td><td>Master 打印 <code>Local disk segment not found</code>;Client 先 WARNING 并尝试 remount</td></tr>
<tr><td>Heartbeat 下发</td><td>remount 后 heartbeat 仍失败</td><td>返回 heartbeat 错误</td><td class="yes">有</td><td>Client 打印 <code>Heartbeat failed after re-registration</code></td></tr>
<tr><td>Heartbeat 下发</td><td>remount local disk segment 失败</td><td>返回 remount 错误</td><td class="yes">有</td><td>Client 打印 <code>Failed to re-register local disk segment</code></td></tr>
<tr><td>Heartbeat 下发</td><td>Client 传 <code>enable_offloading=false</code></td><td>Master 清空 pending queue</td><td class="no">无 ERROR</td><td>代码路径无 ERROR;会清理 task/refcnt</td></tr>
<tr><td>Heartbeat 下发</td><td>RPC / Master 其他错误</td><td>返回底层错误</td><td class="yes">有</td><td>Client 打印 <code>Failed to send heartbeat with error</code></td></tr>

<tr><td>源数据查询</td><td><code>BatchQuery()</code> 返回空</td><td><code>INVALID_REPLICA</code></td><td class="yes">上层有</td><td>本函数无 ERROR;调用方打印 <code>BatchQuerySlices failed</code></td></tr>
<tr><td>源数据查询</td><td>key 不存在 / metadata 查询失败</td><td>原始错误码</td><td class="yes">有</td><td><code>BatchQuerySegmentSlices()</code> 打印 <code>Key not found</code>;调用方也打印 ERROR</td></tr>
<tr><td>源数据查询</td><td>找不到本地 MEMORY replica</td><td><code>INVALID_KEY</code></td><td class="yes">有</td><td><code>BatchQuerySegmentSlices()</code> 打印 <code>Key not found</code>;调用方也打印 ERROR</td></tr>

<tr><td>Bucket 分组</td><td>object size 大于 <code>bucket_size_limit</code></td><td>跳过该 object</td><td class="yes">有</td><td><code>GroupOffloadingKeysByBucket()</code> 打印 <code>Object size exceeds bucket size limit</code></td></tr>
<tr><td>Bucket 分组</td><td><code>IsExist()</code> 检查失败</td><td>记录错误但继续</td><td class="yes">有</td><td>打印 <code>Failed to check existence in storage backend</code></td></tr>
<tr><td>Bucket 分组</td><td>key 已存在于 SSD backend</td><td>跳过</td><td class="no">无</td><td>静默跳过</td></tr>
<tr><td>Bucket 分组</td><td>凑不满 bucket</td><td>放入 <code>ungrouped_offloading_objects_</code></td><td class="no">无 ERROR</td><td>只有 VLOG</td></tr>
<tr><td>Bucket 分组</td><td><code>AllocateOffloadingBuckets()</code> 返回错误</td><td>返回错误</td><td class="yes">有</td><td><code>OffloadObjects()</code> 打印 <code>AllocateOffloadingBuckets failed</code></td></tr>

<tr><td>GPU 源数据</td><td>device slice D2H copy 失败</td><td>跳过该 object</td><td class="yes">有</td><td><code>OffloadObjects()</code> 打印 <code>D2H staging failed for key</code></td></tr>
<tr><td>GPU 源数据</td><td>D2H 后整批为空</td><td>调用 backend 后可能 <code>INVALID_KEY</code></td><td class="yes">有</td><td>backend 打印 empty batch;Client 打印 <code>Failed to store objects</code></td></tr>

<tr><td>Backend 通用</td><td><code>BatchOffload()</code> 收到空 batch</td><td><code>INVALID_KEY</code></td><td class="yes">有</td><td>各 backend 均有 empty batch ERROR</td></tr>
<tr><td>Backend 通用</td><td><code>IsEnableOffloading()</code> 出错</td><td>返回底层错误</td><td class="mixed">视 backend</td><td>Bucket 有 <code>Failed to get store metadata</code>;Offset 未初始化有 ERROR;File-per-key meta 未加载有 ERROR</td></tr>
<tr><td>Backend 容量</td><td><code>IsEnableOffloading()</code> 返回 false</td><td><code>KEYS_ULTRA_LIMIT</code></td><td class="yes">上层有</td><td>backend 本身无 ERROR;Client 打印 <code>Failed to store objects with error</code>,并置 <code>enable_offloading_=false</code></td></tr>

<tr><td>Bucket backend</td><td>backend 未初始化</td><td><code>INTERNAL_ERROR</code></td><td class="yes">有</td><td><code>Storage backend is not initialized</code></td></tr>
<tr><td>Bucket backend</td><td><code>BuildBucket()</code> object slice 为空</td><td><code>INVALID_KEY</code></td><td class="yes">有</td><td><code>Failed to create bucket, object is empty</code>;调用方再打印 <code>Failed to build bucket</code></td></tr>
<tr><td>Bucket backend</td><td>获取 bucket data path 失败</td><td><code>INTERNAL_ERROR</code></td><td class="yes">有</td><td><code>Failed to get bucket data path</code></td></tr>
<tr><td>Bucket backend</td><td>打开 bucket 文件失败</td><td><code>FILE_OPEN_FAIL</code></td><td class="yes">有</td><td><code>Failed to open file for bucket writing</code></td></tr>
<tr><td>Bucket backend</td><td>aligned buffer 分配失败</td><td><code>INTERNAL_ERROR</code></td><td class="yes">有</td><td><code>Failed to allocate aligned buffer for WriteBucket</code></td></tr>
<tr><td>Bucket backend</td><td><code>write_aligned()</code> 失败</td><td>底层错误码</td><td class="yes">有</td><td><code>write_aligned failed</code></td></tr>
<tr><td>Bucket backend</td><td><code>vector_write()</code> 失败</td><td>底层错误码</td><td class="yes">有</td><td><code>vector_write failed</code></td></tr>
<tr><td>Bucket backend</td><td>写入字节数不匹配</td><td><code>FILE_WRITE_FAIL</code></td><td class="yes">有</td><td><code>Write size mismatch</code></td></tr>
<tr><td>Bucket backend</td><td><code>datasync()</code> 失败</td><td><code>FILE_WRITE_FAIL</code></td><td class="yes">有</td><td><code>datasync failed for bucket</code></td></tr>
<tr><td>Bucket backend</td><td>写 bucket metadata 失败</td><td><code>FILE_WRITE_FAIL</code></td><td class="yes">有</td><td><code>Failed to store bucket metadata</code>;清理 orphan 失败也会 ERROR</td></tr>
<tr><td>Bucket backend</td><td><code>NotifyOffloadSuccess()</code> 失败</td><td>Master 错误码</td><td class="yes">有</td><td>Client 打印 <code>NotifyOffloadSuccess failed</code>;backend 打印 <code>Complete handler failed</code></td></tr>
<tr><td>Bucket backend</td><td>commit metadata 前发现 duplicate key</td><td><code>OBJECT_ALREADY_EXISTS</code></td><td class="no">无 ERROR</td><td>只有 WARNING:<code>Duplicate key detected</code></td></tr>

<tr><td>File-per-key backend</td><td>单 key <code>StoreObject()</code> 失败</td><td>跳过该 key</td><td class="yes">有</td><td><code>Failed to store object for key</code></td></tr>
<tr><td>File-per-key backend</td><td>complete handler 失败</td><td>Master 错误码</td><td class="yes">有</td><td><code>Complete handler failed</code></td></tr>
<tr><td>File-per-key backend</td><td>test failure predicate 命中</td><td>跳过该 key</td><td class="no">无 ERROR</td><td>只有 INFO:<code>[TEST] Injecting failure</code></td></tr>

<tr><td>Offset allocator backend</td><td>backend 未初始化</td><td><code>INTERNAL_ERROR</code></td><td class="yes">有</td><td><code>Storage backend is not initialized</code></td></tr>
<tr><td>Offset allocator backend</td><td>slice 为空</td><td>跳过该 key</td><td class="no">无</td><td>静默跳过</td></tr>
<tr><td>Offset allocator backend</td><td>test failure predicate 命中</td><td>跳过该 key</td><td class="no">无 ERROR</td><td>只有 INFO</td></tr>
<tr><td>Offset allocator backend</td><td>allocator 分配空间失败</td><td>停止处理本 batch</td><td class="yes">有</td><td><code>Failed to allocate ... bytes for key</code></td></tr>
<tr><td>Offset allocator backend</td><td><code>vector_write()</code> 失败</td><td>跳过该 key</td><td class="yes">有</td><td><code>Failed to write record for key</code></td></tr>
<tr><td>Offset allocator backend</td><td>写入字节数不匹配</td><td>跳过该 key</td><td class="yes">有</td><td><code>Write size mismatch for key</code></td></tr>
<tr><td>Offset allocator backend</td><td>complete handler 失败</td><td>Master 错误码</td><td class="yes">有</td><td><code>Complete handler failed</code></td></tr>

<tr><td>Notify Master</td><td><code>tasks.size() != metadatas.size()</code></td><td><code>INVALID_PARAMS</code></td><td class="yes">上层有</td><td>Master 本函数无 ERROR;Client complete handler 打印 <code>NotifyOffloadSuccess failed</code></td></tr>
<tr><td>Notify Master</td><td><code>AddReplica()</code> 失败,且不是 <code>OBJECT_NOT_FOUND</code></td><td>返回 AddReplica 错误</td><td class="yes">有</td><td>Master 打印 <code>Failed to add replica</code></td></tr>
<tr><td>Notify Master</td><td>object 已不存在</td><td><code>OBJECT_NOT_FOUND</code> 被忽略</td><td class="no">无</td><td>Master 显式忽略该错误</td></tr>

<tr><td>任务超时</td><td><code>offloading_tasks</code> 超过 <code>put_start_release_timeout_sec_</code></td><td>清理 task 并 dec refcnt</td><td class="no">无 ERROR</td><td>只有 WARNING:<code>Offloading task expired for key</code></td></tr>
<tr><td>Client 失活</td><td>Master 清理 stale handles / unmount local disk segment</td><td>metadata / offloading task 被清理</td><td class="mixed">视具体路径</td><td>相关清理路径不一定有 ERROR;后续 heartbeat 找不到 segment 时会有 ERROR</td></tr>
</tbody>
</table>
</div>
</body>
</html>
Loading
Loading