26 lines
1.4 KiB
Markdown
26 lines
1.4 KiB
Markdown
|
|
# Change: 新增 G4 热表独立双写能力
|
|||
|
|
|
|||
|
|
## Why
|
|||
|
|
当前系统仅写入旧明细表 `heartbeat.heartbeat_events`。需要新增对 `heartbeat.heartbeat_events_g4_hot` 的独立写入能力,两路写入完全解耦、可分别开关,支持后续平滑关闭旧表、仅保留新表。
|
|||
|
|
|
|||
|
|
## What Changes
|
|||
|
|
- 新增配置项:旧/新明细表写入开关、目标表名、`room_status` 独立开关
|
|||
|
|
- 重构 `DatabaseManager`:抽象通用批量 COPY 写入内核,支持面向不同目标表的复用
|
|||
|
|
- 新增双明细写入编排器:旧/新表各自独立执行、独立重试、独立 fallback
|
|||
|
|
- 调整 `HeartbeatProcessor.processBatch()`:`room_status` 从"依赖旧表成功"改为"始终独立执行"
|
|||
|
|
- 错误表 `heartbeat_events_errors` 仅记录新表写入失败,旧表失败不再写错误表
|
|||
|
|
- 重新定义消费暂停策略:基于"当前启用的关键 sink"判断,非全局一刀切
|
|||
|
|
- 补充按 sink 维度的统计项与启动日志
|
|||
|
|
|
|||
|
|
## Impact
|
|||
|
|
- Affected specs: `db`, `processor`
|
|||
|
|
- Affected code:
|
|||
|
|
- `src/config/config.js` — 新增配置项
|
|||
|
|
- `src/db/databaseManager.js` — 核心重构
|
|||
|
|
- `src/processor/heartbeatProcessor.js` — 主流程调整
|
|||
|
|
- `src/index.js` — 启动日志
|
|||
|
|
- `src/stats/statsManager.js` — 统计项
|
|||
|
|
- `src/config/config.example.js` — 配置示例
|
|||
|
|
- No breaking changes to external APIs or Kafka consumer behavior
|
|||
|
|
- Data source and transformation logic remain unchanged
|