Commit fe3cb82
committed
docs(llmdoc): record Lua VM pool bounded-overflow divergence as accepted (#91)
Issue #91 flagged that pine-go (warm + sync.Pool with STW reclaim),
pine-java (unbounded ConcurrentLinkedQueue), and pine-cpp (unbounded
vector + unique_ptr) have materially non-equivalent pool overflow / GC
reachability semantics. Decision after fresh end-to-end measurement on
2026-06-24: accept the divergence rather than build cross-language
near-equivalents.
Rationale, archived in dag-engine.md alongside the other "known runtime
ops risks" so future audits hit the archive directly:
- Metric layer (5-tuple borrow/return/create/reuse/active) is already
byte-equal across runtimes, locked by H6/M10 cross-validate
- Calibrated end-to-end three-fixture × three-runtime rerun shows Java
and C++ are not penalised by their unbounded pools (Java 123-127 QPS,
Go 121-122, cpp 225-234)
- No portable approximation of Go's "sync.Pool cleared on STW" exists in
Java (SoftReference triggers differently and is JVM-only) or C++ (no
GC; would need a jthread + idle-TTL background shrink). Issue #91
Option C falls in the same "isolated win, end-to-end invisible"
bucket as #119 outputPool — perf-evolution-roadmap calibration fact 2
- Production has no data-driven OOM report tying back to either pool
Re-open trigger documented inline: production data showing Java/cpp pool
RSS growing monotonically over long-lived runs.
Cross-references:
- lua-backend.md gets a one-line pointer at the warm/sync.Pool section
noting the divergence is pine-go specific and pointing to the archive
- index.md description for dag-engine.md mentions the accepted-divergence
archive so the index is still a discoverable map1 parent e6f5982 commit fe3cb82
3 files changed
Lines changed: 20 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
622 | 622 | | |
623 | 623 | | |
624 | 624 | | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
625 | 642 | | |
626 | 643 | | |
627 | 644 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| 89 | + | |
| 90 | + | |
89 | 91 | | |
90 | 92 | | |
91 | 93 | | |
| |||
0 commit comments