事务系统实现模式很简单?你确定没忽视这些差异?
发布时间:2019-02-20 10:43:15 所属栏目:优化 来源:hellocode
导读:本文试图讨论这几个问题: MySQL的redo log和binlog为什么要用XA? MongoDB的oplog是按照什么顺序复制? Raft真的只能串行Apply吗? 数据库的复制和事务是完全独立的两回事? 为什么MySQL不早点做一个Raft插件,直接用Raft实现高可用? 本文旨在阐述Fault-Toler
它们在复制上的区别:
从复杂度来看:
从事务并发的角度来看:
从读写开销的角度来看:
不过这仅仅是理论上的分析,实际的复杂度、性能,很大程度上取决于实现而非理论。 三、总结 如果我们从很粗的层面来看,会觉得这些系统不过都是几个技术点的组合,而每一个技术点看起来都很简单,进而觉得事务系统不过是如此。 但实际上事务系统绝非简单的KV+Raft+Snapshot Isolation,它们之间不同的组合方式,会最终造就不同的系统。 本文留下了很多问题,RSM的Order往往认为是全序的,而Transaction 的Serialization Order是偏序的(偏序关系由事务冲突定义),它们之间如何统一? RSM的Checkpoint和Transaction Checkpoint的统一?RSM的Recovery和Transaction Recovery的关系?写两条日志的系统(journal和binlog)两条日志之间的关系是什么? 【编辑推荐】
点赞 0 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |