feat: 完善 RecordStream 的协议协商、运行观测与文档说明
- 将 RecordStream 出站路径收敛为单 writer loop - 支持在 batch header 中 piggyback AckSeq,保留独立 ack 作为兼容回退 - 增加 record stream 打开阶段能力协商,支持 mixed-version peer 自动降级 - 补充 RecordSnapshot 与 diagnostics summary 的 record-plane 观测项 - 增加 batch/ack/error frame、piggyback ack、barrier 等待拆分与 apply backlog 指标 - 收紧 TransportConn detach 后的 runtime snapshot 语义 - 补充 README 中的 RecordStream 语义、兼容行为与诊断快照说明 - 补充相关单测与 race 回归验证
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
- 记录流数据面:`OpenRecordStream`
|
||||
- 批量数据面:`OpenBulk`(`shared` / `dedicated`)
|
||||
- 文件传输内核:transfer control / progress / resume
|
||||
- 观测面:runtime snapshot / diagnostics summary
|
||||
- 会话模型:`LogicalConn`(逻辑会话)与 `TransportConn`(物理承载)分离
|
||||
|
||||
## 版本要求
|
||||
@@ -82,6 +83,51 @@ func main() {
|
||||
}
|
||||
```
|
||||
|
||||
## RecordStream 说明
|
||||
|
||||
`RecordStream` 构建在 `Stream` 之上,适合“有边界的顺序记录”场景。
|
||||
|
||||
- 写入入口:`OpenRecordStream`、`WriteRecord`
|
||||
- 接收入口:`ReadRecord`
|
||||
- 确认入口:`AckRecord`
|
||||
- 检查点:`Barrier`、`BarrierTo`
|
||||
- 错误回包:`RecordFailure`
|
||||
|
||||
确认语义:
|
||||
|
||||
- `AckRecord` 表示“该序号及其之前的连续记录已完成 apply”,不是“已收到”
|
||||
- `Barrier` / `BarrierTo` 等待的是对端 `apply-complete` 的最大连续序号
|
||||
- `RecordFailure` 会返回 `FailedSeq`、`Code`、`Retryable`、`Message`
|
||||
|
||||
兼容与传输:
|
||||
|
||||
- record stream 在打开阶段协商 batch ack 能力
|
||||
- 双端都支持时,累计 `AckSeq` 会随 batch header piggyback 发送
|
||||
- 对端不支持时,自动回退到独立 ack frame
|
||||
- mixed-version peer 可以互通,不要求双方同时升级
|
||||
|
||||
## 诊断快照
|
||||
|
||||
顶层诊断入口:
|
||||
|
||||
- `GetClientDiagnosticsSnapshot`
|
||||
- `GetServerDiagnosticsSnapshot`
|
||||
|
||||
快照内容:
|
||||
|
||||
- 会话运行态:client / server runtime
|
||||
- 数据面快照:`StreamSnapshot`、`BulkSnapshot`、`RecordSnapshot`
|
||||
- 文件传输快照:`TransferSnapshot`
|
||||
- 汇总视图:`DiagnosticsSummary`
|
||||
|
||||
`RecordSnapshot` / `DiagnosticsSummary.RecordTelemetry` 当前覆盖:
|
||||
|
||||
- batch / ack / error frame 收发计数
|
||||
- piggyback ack 命中计数
|
||||
- barrier 等待时间拆分:`flush` / `apply`
|
||||
- `outstanding records/bytes`
|
||||
- `pending apply / pending ack / peak pending apply`
|
||||
|
||||
## 传输与 IPC
|
||||
|
||||
- `tcp`
|
||||
|
||||
Reference in New Issue
Block a user