OceanBase架构剖析——一致性选择、数据结构、可靠性与可用性
1.一致性选择 Eric Brewer教授的CAP理论指出,在满足分区可容忍性的前提下,一致性和可用性不可兼得。虽然目前大量的互联网项目选择了弱一致性,但我们认为这是底层存储系统,比如MySQL数据库,在大数据量和高并发需求压力之下的无奈选择。弱一致性给应用带来了很多麻烦,比如数据不一致时需要人工订正数据。如果存储系统既能够满足大数据量和高并发的需求,又能够提供强一致性,且硬件成本相差不大,用户将毫不犹豫地选择它。强一致性将大大简化数据库的管理,应用程序也会因此而简化。因此,OceanBase选择支持强一致性和跨行跨表事务。 OccanBase UpdateServer为主备高可用架构,修改操作流程如下:1)将修改操作的操作日志(redo日志)发送到备机;2)将修改操作的操作日志写入主机硬盘;3)将操作日志应用到主机的内存表中;4)返回客户端写入成功。 OccanBase要求将操作日志同步到主备的情况下才能够返回客户端写入成功,即使主机出现故障,备机自动切换为主机,也能够保证新的主机拥有以前所有的修改操作,严格保证数据不丢失。另外,为了提高可用性,OceanBase还增加了一种机制,如...