背景
#1414 为 #1408 增加了 SESSION_RESPONSE_BODY_MAX_BYTES,限制单份 session response body
写入 Redis 的大小。当前响应正文仍可能同时写入三类 key:
- legacy/request response:
session:{sessionId}:req:{sequence}:response
- response before snapshot body
- response after snapshot body
当 before、after 与最终 response 内容相同或高度重合时,Redis 会保存最多三份完整正文。#1408
的隔离复现中,64 个约 7.5 MiB SSE 响应因此形成约 1.4 GiB 原始正文值,并在 RDB 保存窗口把
Redis 峰值推到约 1.5 GiB。
#1414 先通过单份大小上限控制风险,默认值按当前运维取舍设为 5 MiB;三份复制需要独立设计和
负载验证,避免在 OOM 修复中混入未经验证的数据布局迁移。
目标
- 同一 request sequence 的 response 正文只保留一份物理 Redis value,或使用具有相同内存上界的
内容寻址/引用机制。
- before、after 和 legacy/request response 继续保持现有读取语义;内容确实不同时仍能分别查看。
STORE_SESSION_MESSAGES=false 的脱敏结果必须在去重/哈希前生效,原始敏感正文不得通过共享值泄漏。
- 单请求正文总 Redis 预算由一个明确上限控制,不再随视图数量线性放大。
兼容边界
- 兼容 TTL 窗口内由旧版本写入的现有 key;滚动部署期间新旧读取路径可互操作。
- headers/meta 继续独立保存,正文超限或缺失时仍可查看请求阶段、状态码和 URL 等诊断信息。
STORE_SESSION_RESPONSE_BODY=false 继续完全跳过正文写入。
- 不改变代理响应、token/费用统计、SSE 协议检测或 Replay durable payload 语义。
验收标准
关联
背景
#1414 为 #1408 增加了
SESSION_RESPONSE_BODY_MAX_BYTES,限制单份 session response body写入 Redis 的大小。当前响应正文仍可能同时写入三类 key:
session:{sessionId}:req:{sequence}:response当 before、after 与最终 response 内容相同或高度重合时,Redis 会保存最多三份完整正文。#1408
的隔离复现中,64 个约 7.5 MiB SSE 响应因此形成约 1.4 GiB 原始正文值,并在 RDB 保存窗口把
Redis 峰值推到约 1.5 GiB。
#1414 先通过单份大小上限控制风险,默认值按当前运维取舍设为 5 MiB;三份复制需要独立设计和
负载验证,避免在 OOM 修复中混入未经验证的数据布局迁移。
目标
内容寻址/引用机制。
STORE_SESSION_MESSAGES=false的脱敏结果必须在去重/哈希前生效,原始敏感正文不得通过共享值泄漏。兼容边界
STORE_SESSION_RESPONSE_BODY=false继续完全跳过正文写入。验收标准
used_memory_peak、容器峰值、OOM/退出状态和清理后的 key 数量。关联