第 3.2 节定义了 ErrCommitUnknown:当 WAL bytes 已写入但 fsync 返回错误时,提交结果是不确定的。调用方不能把它当作写入一定失败并盲目重试。
ErrCommitUnknown
当前文档说明了调用方需要通过读取 key 或事务层提供的事务 ID / commit record 查询提交状态,但尚未定义 API 层最小约束。
单 key autocommit 阶段可以通过读 key 做弱确认,但以下场景会有歧义:
如果 API 层不明确,用户可能在 ErrCommitUnknown 后盲目重试,导致事务重复提交、Delete 状态误判或业务层非幂等副作用。
在 3.2 或后续 API / 事务章节中补充:
docs/design.md:119
docs/design.md:121
docs/design.md:322
No dependencies set.
The note is not visible to the blocked user.
背景
第 3.2 节定义了
ErrCommitUnknown:当 WAL bytes 已写入但 fsync 返回错误时,提交结果是不确定的。调用方不能把它当作写入一定失败并盲目重试。问题
当前文档说明了调用方需要通过读取 key 或事务层提供的事务 ID / commit record 查询提交状态,但尚未定义 API 层最小约束。
单 key autocommit 阶段可以通过读 key 做弱确认,但以下场景会有歧义:
风险
如果 API 层不明确,用户可能在
ErrCommitUnknown后盲目重试,导致事务重复提交、Delete 状态误判或业务层非幂等副作用。建议
在 3.2 或后续 API / 事务章节中补充:
ErrCommitUnknown只支持弱状态确认参考
docs/design.md:119fsync unknown 处理docs/design.md:121ErrCommitUnknown 调用方语义docs/design.md:322事务边界与 commit sequence