文档章节

淘宝的OceanBase

蓝狐乐队
 蓝狐乐队
发布于 2014/06/04 15:33
字数 878
阅读 272
收藏 3
点赞 0
评论 0

OceanBase架构图

OceanBase架构图(引自 rdc.taobao.com)

OceanBase 是淘宝研发的一套分布式 NoSQL 数据库系统。具体它是什么、怎样实现的,可以参考李震老师(花名楚材)的《OceanBase介绍》和杨传辉老师(花名日照)的《Oceanbase – 千亿级海量数据库》。这里我只是谈一下自己的感想,如有谬误,敬请指正。

OceanBase 相较于其它分布式存储系统,有一个特性是支持跨行跨表事务。这个特性太明星了,让几乎所有其它系统黯然失色。但实现这个是有代价和局限 的,OceanBase 只能使用单机接受更新,也就是说它的 UpdateServer 只能有一个(或者准确地说,一组)。由于 UpdateServer 失去了扩展性,OceanBase 的应用必须建立在单机能够满足增量更新和查询性能需求(查询可以通过从机部分缓解)的前提下(或者硬件性能的增长快于性能需求的发展)。为满足这一点,需 要对软件和硬件都进行很好的优化,幸运的是从淘宝核心系统团队成员的文章来看淘宝应该不缺这样的专家,也不缺买设备的钱。值得一提的是,每个公司看来都有 自己的基因,看到 OceanBase 我脑子里就浮现出淘宝数据库架构中单机 Oracle 挂一堆 MySQL 的景象,何其相似啊!

阳振坤老师(花名正祥)在《淘宝海量数据库之二:一致性选择》这篇文章中说 OceanBase 是支持强一致性的。如果 UpdateServer 没有从库的话, 能够很容易理解。但考虑到 UpdateServer 从库也提供读服务,且 UpdateServer 之间使用 binlog 进行同步,那么还能否保证强一致性这一点我比较怀疑。也许会有其它的辅助机制来保证这一点,例如在 MergeServer 上做一定的策略。

在高可用性方面,对 RootServer 的说明较少,不清楚 OceanBase 有没有实现 UpdateServer 宕机后的 Master 选举。由于使用 binlog 同步,可能宕机恢复方面还是有一些风险的。

将 MergeServer 和 ChunkServer 部署在一起是个很好的选择,这样查询时能够利用一定的局部性。但除非根据业务需求非常精妙地部署,否则不可避免需要请求其它 ChunkServer 上的数据。我不知道它的查询是 MergeServer->(UpdateServer, ChunkServer0, ChunkServer1...),还是 MergeServer->(UpdateServer, MergeServer0, MergeServer1)。不同的模式有同的优缺点,如果 ChunkServer 只做存储的话,查询的过滤、合并应该是在 MergeServer 上做的。如果选用第一种方式请求,ChunkServer 间传输的数据没有过滤和合并,数据量较大;如果选用第二种方式请求,UpdateServer 的压力可能会被放大,视 MergeServer 封装的功能而定。

OceanBase 的介绍中没有提到 Chunk 或者 ChunkServer 是否分主从,也没有提到整体更新机制。考虑到更新是以批量方式合并到 Chunk 中,也许为了简化,Chunk 或者 ChunkServer 只是互备,没有主从。为了保证 ChunkServer 合并 UpdateServer 上冻结/转储数据时查询的正确性,可能用两阶段提交,不过我想仍然是一个很复杂的过程。

早上起来就想到这里,以后有问题再补充吧。

PS: 之前将楚材错当成了阳振坤老师的花名,已更正之。


本文转载自:http://blog.solrex.org/articles/oceanbase-architecture-note.html

共有 人打赏支持
蓝狐乐队
粉丝 98
博文 321
码字总数 89120
作品 0
昌平
程序员
阳振坤:数据库天然选择了计算机,但计算机天然并不适合数据库

小蚂蚁说: 2018年6月25日,清华大学计算机科学与技术系60周年系庆系列讲座第11场报告在清华大学东主楼举行。蚂蚁金服高级研究员、OceanBase负责人阳振坤在本次学术报告中发表了题为《Ocean...

兔子酱
06/29
0
0
支付宝何以支撑双十一4200万次/秒的数据库请求峰值?

本文根据DBAplus社群第144期线上分享整理而成。 各位关心OceanBase数据库的同学,大家好!我是OceanBase团队的蒋志勇。借DBAplus社群直播平台,和大家聊一聊近八年来OceanBase的发展以及关键...

蒋志勇
04/23
0
0
秘诀!支付宝支撑双十一4200万次/秒的数据库请求峰值的技术实现

各位关心OceanBase数据库的同学,大家好!我是OceanBase团队的蒋志勇。借DBAplus社群直播平台,和大家聊一聊近八年来OceanBase的发展以及关键特性。 一、发展历程 OceanBase数据库是阿里巴巴...

技术小能手
05/10
0
0
OceanBase的正确使用方法

OceanBase不是设计出来的,而是在使用过程中不断进化出来的。因此,系统使用以及运维的方便性至关重要。 OceanBase的使用者是业务系统开发人员,并交由专门的OceanBase DBA来运维。为了方便业...

凌洛
05/19
0
0
专访丨七个尖锐的问题,听OceanBase如何回应

  【IT168 评论】导语:阳振坤的恩师,北大王选院士一句话让他铭记至今:“高科技产业应实现‘顶天立地’模式。‘顶天’就是不断追求技术上的新突破;‘立地’就是把技术商品化,并大量推广...

it168网站
05/17
0
0
思考:真正的分布式数据库是否让“数据湖”概念成为历史?

原文地址:http://www.fromgeek.com/ai/152830.html 最近吴宁川一篇《厉害了,蚂蚁金服!创造了中国自己的数据库OceanBase》报道了OceanBase诞生的前因后果。内容非常详实,值得分享。同时自...

巨杉数据库
05/01
0
0
专访丨七个尖锐的问题, 听 OceanBase 如何回应

小蚂蚁说: 导语:阳振坤的恩师,北大王选院士一句话让他铭记至今:“高科技产业应实现‘顶天立地’模式。‘顶天’就是不断追求技术上的新突破;‘立地’就是把技术商品化,并大量推广应用。”...

兔子酱
06/04
0
0
蚂蚁金服OceanBase,让客户越过山丘,抵达云和山的彼端

本文作者介绍 冯柯:2014年加入蚂蚁金服,入职前在数据库厂商神舟通用任CTO,浙江大学计算机应用专业博士,十五年数据库研发和产业化经验。目前在基础数据部(OceanBase团队)任架构师,参与...

兔子酱
04/12
0
0
蚂蚁金服自研数据库OceanBase的技术秘密

  【IT168 专稿】本文根据陈萌萌老师在2018年5月10日【第九届中国数据库技术大会】现场演讲内容整理而成。   讲师简介: ▲蚂蚁金服资深技术专家 陈萌萌   陈萌萌,蚂蚁金服资深技术专...

it168网站
05/23
0
0
浅谈OceanBase的锁机制原理

OceanBase锁定粒度为行锁,默认情况下的隔离级别为读取已提交(read committed)。另外,读操作总是读取某个版本的快照数据,不需要加锁。 只写事务(修改单行):事务预提交时对待修改的数据...

凌洛
06/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Git GUI Client

Git GUI Client   这里我们为大家收藏了众多Git的GUI客户端,下载请点击这里

qwfys
6分钟前
0
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
10分钟前
2
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
17分钟前
1
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
31分钟前
1
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 #!/usr/bin/expectset passwd "123456"spawn rsync -av root@192.168.133.132:/tmp/12.txt /tmp/expect {"yes...

lyy549745
32分钟前
0
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
40分钟前
0
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
44分钟前
1
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
0
0
nginx负载均衡

一、nginx 负载均衡 拓扑图: 主机信息: 1、负载均衡器1(lb1):192.168.10.205 RHEL7.5 2、负载均衡器2(lb2):192.168.10.206 RHEL7.5 3、web服务器1(web01):192.168.10.207 Centos...

人在艹木中
昨天
0
0
做了一个小网站

做了一个小网站 www.kanxs123.com

叶落花开
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部