知识卡片
Intent轻量化提交
内容
CockroachDB 写入先留下 intent,提交只需把 transaction record 改成 COMMITTED,后续异步清理 intent。发散:把提交成本从全量清理变成一个线性一致 key 写入,是延迟优化的典型手法。
参考来源
- 位置:《分布式系统与一致性》第9章《分布式数据库CockroachDB》事务提交流程一节(源文件:_epub-src/OEBPS/Text/chapter13.xhtml)
- 结论依据:原文明确写入使用"写入意图(write intent)"(简称intent)暂存新值,提交时"CockroachDB将transaction record的状态改为COMMITTED,之后就可以给客户端返回事务完成",随后才"异步清除intent";并总结"CockroachDB事务的提交阶段只是一个轻量级的key的写入操作,提交后的intent清除是异步处理的"。
- 原始内容:如果是提交事务,则CockroachDB将transaction record的状态改为COMMITTED,之后就可以给客户端返回事务完成……异步清除intent……与传统的两阶段提交不同的是,CockroachDB事务的提交阶段只是一个轻量级的key的写入操作,提交后的intent清除是异步处理的。