Skip to content

docs(readme): systematic refresh — v0.10 reality + drop stale migration + 2026-06-25 bench#143

Merged
Liam0205 merged 4 commits into
masterfrom
docs/readme-systematic-refresh-v010
Jun 25, 2026
Merged

docs(readme): systematic refresh — v0.10 reality + drop stale migration + 2026-06-25 bench#143
Liam0205 merged 4 commits into
masterfrom
docs/readme-systematic-refresh-v010

Conversation

@Liam0205

Copy link
Copy Markdown
Owner

Summary

README.md / README-en.md 上一次系统刷新是 2026-06-09(82c1ef1b),自那以来主干合入了 ~100 个 commit,涵盖 wangshu 默认翻转、Redis cascade-safety、/stats fan-out 分子树、PR #139 自动 -u 接力、daily sanitized fuzz、v0.10 系列 perf 优化等多个生产关键变化。本 PR 把双语 README 系统性对齐到 v0.10.9 的实际状态。

Commit 拆分(单 PR 多 commit,单域隔离)

  1. b4bc0c56 删 v0.7 迁移段(-167 行)

    • v0.7 把 Go 引擎搬进 pine-go/ + row_dependency→consumes_row_set + barrier→marker + Field Accessor 三态翻转,到 v0.10 已经 3 个 minor + 14 个 patch 版本,生产用户都迁移完了
    • 继续放在 README 首屏 80 行只挡住核心特性。设计文档 + git log + CHANGELOG.md 仍持有完整语义描述,不构成知识丢失
  2. a0bc690c 核心特性同步 v0.10

    • Lua: 显式 pine-go 默认 wangshu(-tags=lua_gopher 切 gopher-lua)、pine-java LuaJC、pine-cpp LuaJIT
    • 资源: 拆「数据型 (snapshot)」/「句柄型 (borrow + RAII)」双通道
    • 新增 Redis cascade-safety 条目(5 参数 + 4-state per-command 指标 + fail-on-error 静默降级)
    • 可观测: 点名 /stats.http + /stats.resources 子树
    • 一致性: 19 cross-validate section + 差分 fuzz + 每日 sanitized fuzz 三层
  3. d22b1de9 工程基础设施新章节

  4. 59fc37ff Benchmark 表 2026-06-25 重测

    • 全 14 fixture × 3 runtime × row 模式重跑 10k req × 16 conc,cgroup 2C/4G 隔离
    • 三个 calibrated 变体(_2c4g / 主 / _itemlua)都单独成行;现有 README 折叠成 1 行,把 itemlua 完全藏起来
    • C++ 领先 1.8x → 1.9x(calibrated QPS 237 vs 121/127;P50 60.8ms vs 117/122ms)
    • itemlua 与 calibrated 三引擎统计持平的现象写进要点,引用 llmdoc/memory/decisions/perf-evolution-roadmap.md 的"calibration fact 2 — end-to-end dilution"
    • Source data: bench-results/report-20260625-090834.txt

双语对齐

CN/EN 双侧逐 commit 保持结构对齐。验证:

  • make verb 表 13 行全部 cross-check 过 make 输出存在
  • 文档链接 10 条全部 ls 验证存在(双语)
  • 章节结构数双侧一致(24 个 ## / ###)

Test plan

Liam0205 added 4 commits June 25, 2026 09:09
v0.7 把 Go 引擎搬进 pine-go/ 子目录 + row_dependency→consumes_row_set
+ barrier→marker interface + Field Accessor 三态翻转,这些破坏性变更
到 v0.10 已经过去 3 个 minor + 14 个 patch 版本,生产用户都早已迁移
完成。继续放在 README 主线只会让首屏被 80 行历史变更挡住,新读者
找不到核心特性。

迁移指南本身没失效,但归档价值已耗尽——查 git log / CHANGELOG.md
或 design_doc 即可。design_doc 仍持有完整的语义描述(05_operator_
types.md 的 consumes_row_set DSL 字段、04_operator_registration.md
的注册形态、03_xxx 的 DAG 调度模型),不构成知识丢失。
…fan-out

Core features list was last refreshed pre-v0.10; this batch syncs to
v0.10.9 reality:

- Lua: explicit pine-go default = wangshu (with build-tag escape to
  gopher-lua), pine-java = LuaJC, pine-cpp = LuaJIT. The default flip
  landed in v0.10 series.
- Resources: split into data-typed (snapshot) vs handle-typed (borrow +
  RAII teardown) — `redis_connection` is the canonical handle-typed
  resource. The old one-liner "background-refreshed in-memory resource
  manager" hides the architecture.
- Redis: add dedicated bullet for the 5 cascade-safety params and the
  4-state per-command metrics + fail-on-error contract. These shipped
  in #137 and are production-load-bearing.
- Observability: /stats is no longer just a single endpoint — call out
  /stats.http and /stats.resources sub-trees so readers can find the
  resource fan-out and HTTP middleware metrics.
- Cross-validation bullet: name the actual verification surface (19
  cross-validate sections + differential fuzz + daily sanitized fuzz)
  instead of the vague "verified for schema/DAG/exec/error parity".

EN side kept structurally aligned with the CN edits.
… CI row

The README has grown out of sync with how dev work actually happens now.
Three additions:

1. **Makefile section** at the top of the dev block. The top-level
   Makefile + pine-go/Makefile are the actual unified entry — CI and
   local share the exact verb sequence. Up to now scripts/ was the only
   surface readers saw, which understates the project's task plumbing.
   Cross-checked the listed verbs against `make` output: all exist.

2. **Local Git Hooks section**. .githooks/{pre-commit,pre-push} ships
   in-tree and is the source of three concrete dev ergonomics:
   staged-only format gate (no surprise overwrites), four-language lint
   on push, and the auto `--set-upstream` relay landed in pine #139
   (absorbed from wangshu#24 / ctex-kit#888). Without docs, first-time
   contributors miss `core.hooksPath` and lose the lint gate.

3. **Daily sanitized fuzz** added to the CI list — promoted from weekly
   to daily in ef24382 (#109) and load-bearing for race / memory-bug
   surveillance separate from the per-push fuzz fast lane.

Also added `llmdoc/` to the Documentation table since it is now the
canonical AI-collaboration knowledge map and constantly referenced from
issue comments. clang-format -Werror clarified as the actual C++ lint
form (the bare "-Werror" was ambiguous).

EN side kept structurally aligned.
Re-ran the full 14-fixture cross-runtime bench on the standard 2C/4G
cgroup (10000 req × 16 conc) on the same machine that produced the
previous 2026-06-11 numbers. v0.10 series picked up wangshu CallInto /
GlobalsSlot fast paths, outputPool (#119), and Redis cascade-safety
(#137) — re-baseline so the README reflects measured reality.

Changes worth calling out:

- Three calibrated fixtures now listed instead of one. Until now the
  README collapsed the calibrated family to a single row, hiding the
  itemlua variant entirely. itemlua (3000 Lua calls/request) is the
  boundary-dominated workload that anchors the perf-evolution-roadmap
  "calibration fact 2 — end-to-end dilution" finding; it deserves to
  show up.
- C++ headline lift: 1.8x → 1.9x against Go/Java on calibrated. P50
  60.8ms vs 117/122ms is the more legible framing than the QPS ratio.
- Synthetic small/medium movements are all within ±10 % run-to-run
  noise; the relative shape (Go highest at small, Java reverses on
  large_1000+) is unchanged.
- Reproduce command now lists `make bench-cross-runtime` first.

Source data: bench-results/report-20260625-090834.txt
@github-actions

Copy link
Copy Markdown
Contributor

🔍 PR 审查

项目 结果
结论 ✅ APPROVE
审查截止 59fc37ff7a70b62cd59b7245569b4deecd4a2312

纯文档刷新,对 README v0.10 现状的逐项核对全部通过——所列设施与代码库一致,benchmark 数字 EN/CN 双语同步无偏差。

✅ 事实核对清单(逐项验证通过)

  • Lua 后端默认方向 — README 称 pine-go 默认 wangshu、-tags=lua_gopher 切回 gopher-lua。代码侧 pool_wangshu.go//go:build !lua_gopherpool_gopher_lua.go//go:build lua_gopher,方向正确。
  • Makefile 目标 — 表中 11 个 target(fmt/lint/test/bench/bench-cross-runtime/bench-lua-backends/differential-fuzz/cross-validate/codegen/codegen-check/check-pr-ci)在 Makefile 中全部存在。
  • Git Hooks.githooks/{pre-commit,pre-push} 存在;pre-push 确含自动 --set-upstream 接力 + 自包装 check-pr-ci.sh 调用,与描述吻合。
  • 新增脚本scripts/bench-lua-backends.shscripts/check-pr-ci.sh 均存在。
  • Daily sanitized fuzzdaily-sanitized-fuzz.yml cron 0 4 * * *(=北京时间 12:00)、默认 3000 ASan + 2000 TSan,与 README 完全一致。
  • Redis cascade-safetyredis_connection.go 暴露 {dial,read,write,pool}_timeout_ms + pool_size 五参数;pine_redis_command_{total,duration_seconds} 指标存在。
  • llmdoc 引用llmdoc/memory/decisions/perf-evolution-roadmap.md 存在,highlights 引用有效。
  • Benchmark 表 — EN/CN 双侧 QPS / P50 数字逐格一致,C++ ~1.9x 要点(QPS 237 vs 121/127;P50 60ms vs 117/122ms)两侧措辞同步。

🟢 小问题 (0)

  • 无。删除 v0.7 迁移段落的判断合理(语义仍由 design_doc / CHANGELOG 持有,未造成知识丢失)。

说明:commit message 引用的 bench-results/report-20260625-090834.txt 不在仓库内(应为 gitignore),但 README 正文未引用该路径,不构成失效链接。

@Liam0205 Liam0205 merged commit 7b2ba00 into master Jun 25, 2026
21 checks passed
@Liam0205 Liam0205 deleted the docs/readme-systematic-refresh-v010 branch June 25, 2026 01:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant