【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
哪里是2rpc呢???
【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
哪里是2rpc呢???
第一张图的出处麻烦发下
根据您提供的两张图及其描述,可以看出它们分别展示了传统两阶段提交(2PC)协议与 OceanBase 数据库中优化后的两阶段提交协议的不同之处。下面我将针对您的疑问进行详细解释:
关于“2RPC”的疑问:
两张图的对比:
是否存在冲突:
综上所述,“2RPC”指的是两次远程过程调用,这是两阶段提交协议的核心特征之一。而两张图之间的差异反映了 OceanBase 在传统 2PC 基础上所做的创新,旨在提升系统性能的同时保证事务的正确性。希望以上解释能帮助您更好地理解两阶段提交协议及其在 OceanBase 中的具体实现。
更多信息请查看:
这个就是1次log2次rpc,黄色的是log持久化,虚线箭头是rpc,从协调者到参与者就是2次rpc的
OB对两阶段提交做了优化,prepare阶段完成就认为事务已经提交成功了,这时候用户就已经收到commit ok的返回信息了,后面的commit阶段和clear阶段可以认为是对用户是无感知的。
你说的是那个图 ???
这个图就可以提现1次log2次rpc的,用户感知的只是prepare log的持久化延迟,和协调者发送prepare req的rpc以及参与者返回的prepare ok的rpc
能帮忙标出 那个是 2次 rpc 那个是 1次log不?
参考一下这个帖子看看符合你的问题么
课程
https://open.oceanbase.com/course/detail/9258
再20分到21分讲的 , 多了一次rpc延迟是为了增加版本号
实在没明白 什么叫做日志延迟? 什么叫做rpc延迟?
这个老师讲的 。
要是您回答的正确的话,这个官方的图无法体现出 2次 rpc延迟, 能否修正下呢 ?
也不是说冲突,这个文档这里解释的比较简单,没有述说pre commit阶段,这里是1次日志延迟+1次RPC延迟,下面这篇文章是这个的原理版本,当然4.x这里放这个图不太合适
https://open.oceanbase.com/blog/27200124
官方文档里的两阶段提交就是没提到pre commit和 clear log 这个两个阶段罢了,楼主你就看阶段最复杂的那个就行了。