63 lines
2.1 KiB
Markdown
63 lines
2.1 KiB
Markdown
# Plan — Round 1 Performance Evaluation (2026-05-26)
|
||
|
||
> Agent: council/PerformanceBenchmarker
|
||
|
||
## Phase: Draft → Review → Finalize
|
||
|
||
---
|
||
|
||
## 评估任务清单
|
||
|
||
- [x] **Task 1**: [Done: PerformanceBenchmarker] 检查 git log 和文件结构
|
||
- [x] **Task 2**: [Done: PerformanceBenchmarker] 探索 SeatMapService + seatmap API + SKIP LOCKED 实现
|
||
- [x] **Task 3**: [Done: PerformanceBenchmarker] 输出性能评估报告 → `docs/council-eval-performancebenchmark.md`
|
||
- [ ] **Task 4**: [Pending] 等待其他成员完成后,汇总至最终报告(西莉雅负责)
|
||
|
||
---
|
||
|
||
## 阶段划分
|
||
|
||
| 阶段 | 内容 | 状态 |
|
||
|------|------|------|
|
||
| **Draft** | Task 1-3(独立评估 + 输出报告) | ✅ 完成 |
|
||
| **Review** | 等待 BackendArchitect、FrontendDeveloper、SecurityEngineer 完成评估 | ⏳ 等待 |
|
||
| **Finalize** | 西莉雅汇总所有成员报告,输出综合决策报告 | ⏳ 等待 |
|
||
|
||
---
|
||
|
||
## 依赖关系
|
||
|
||
- 本轮评估无对其他成员的依赖,可独立完成
|
||
- 最终综合报告由西莉雅(协调者)负责
|
||
|
||
---
|
||
|
||
## 投票结果
|
||
|
||
**议题:下一步主攻方向**
|
||
- 投票:**C(双线并行)**
|
||
- 备选:A(后端优先,补充 seatSpecMap + 性能 P0 同步修复)
|
||
|
||
详见 `docs/council-eval-performancebenchmark.md`
|
||
|
||
---
|
||
|
||
## 关键发现摘要
|
||
|
||
| # | 严重程度 | 问题 | 量化 |
|
||
|---|----------|------|------|
|
||
| P1 | 🔴 严重 | `GoodsSpecBase` 全量扫描无分页 | 响应体 1-5 MB,TTFB > 2s |
|
||
| P2 | 🔴 严重 | 无 `FOR UPDATE SKIP LOCKED`,超卖竞态 | 超卖率 = f(并发 × 事务时长) |
|
||
| P3 | 🟡 高 | 轮询无差异化,缓存击穿 | 500 并发 DB QPS = 2500+ |
|
||
| P4 | 🟡 高 | SoldSeats API stub | 支付后状态短暂不一致 |
|
||
| P5 | 🟢 中 | 模板缓存 TTL=60s 与轮询周期耦合 | 感知延迟 0-60s |
|
||
|
||
---
|
||
|
||
## 优先级建议
|
||
|
||
1. **P0**:实现库存行锁(FOR UPDATE SKIP LOCKED)— 消除超卖
|
||
2. **P0**:添加 `(goods_id, inventory)` 复合索引 — 消除全表扫描
|
||
3. **P1**:实现细粒度库存轮询 API(差量更新)— 降低 80% DB 负载
|
||
4. **P2**:Tree API 实现(Phase 4)
|