海量分布式关系型数据库

原创
移动开发 分布式
OceanBase是一个支持海量数据的高性能分布式数据库系统,实现了数千亿条记录、数百TB数据上的跨行跨表事务,由淘宝核心系统研发部、运维、DBA、广告、应用研发等部门共同完成。在设计和实现OceanBase的时候暂时摒弃了不紧急的DBMS的功能,例如临时表,视图(view),研发团队把有限的资源集中到关键点上,当前 OceanBase主要解决数据更新一致性、高性能的跨表读事务、范围查询、join、数据全量及增量dump、批量数据导入。

2013年4月26日-27日,由51CTO传媒集团旗下WOT(World Of Tech)品牌主办的2013大数据全球技术峰会在北京富力万丽酒店召开。本次峰会将围绕大数据基础架构与上层应用的生态系统,解决大规模数据引发的问题,探索大数据基础的解决方案,激发数据挖掘带来的竞争力,让数据发出声音。51CTO作为本次峰会的主办方,将全程视频、图文直播报道这场数据的盛宴,更多内容请点击专题:2013大数据全球技术峰会

 

2013大数据全球技术峰会专题

OceanBase是一个支持海量数据的高性能分布式数据库系统,实现了数千亿条记录、数百TB数据上的跨行跨表事务,由淘宝核心系统研发部、运维、DBA、广告、应用研发等部门共同完成。在设计和实现OceanBase的时候暂时摒弃了不紧急的DBMS的功能,例如临时表,视图(view),研发团队把有限的资源集中到关键点上,当前 OceanBase主要解决数据更新一致性、高性能的跨表读事务、范围查询、join、数据全量及增量dump、批量数据导入。

在4月26日的NoSQL&NewSQL专场论坛中,支付宝高级技术专家卢黄贵先生表了主题为“OceanBase: 海量分布式关系型数据库”的演讲。

关系数据库发展

1970-72:E.F.Codd 数据库关系模式

20世纪80年代

***个商业数据库Oracle V2

SQL成为“数据库行业标准”

可扩展性

Mainframe:小型机 => 中型机 => 大型机

Sharding:全局索引? 事务? 跨库查询?

性能

Disk-based design:SSD? Memory?

开源数据库:主备同步?锁? Schema变更?

并发事务管理

使用MVCC保证写事务不阻塞只读事务

每行为每次事务保存修改历史,根据事务ID读取到指定数据

修改历史的合并,不在被读取的多个历史版本将被定期合并

Btree和Hash修改的原子性保证

写事务

0.3版,单线程写+repalce语义,在MemTable层实现SnapShot

0.4版,多线程读写事务+完备的DB语义,使用Snapshot+两阶段行互斥锁控制读写事务并发

并发日志回放

以单个事务日志作为并行的最小单位

并行回放的事务隔离性、一致性、原子性保证,并行提交的排序算法

主备同步

日志多线程回放

Innodb:记录binlog逻辑日志,备机单线程回放

Oracle:记录物理日志,备机多线程并发回放

OceanBase:记录逻辑日志(无UNDO),备机多线程并发回放

主备同步协议

Mysql:异步,不保证数据一致性

Oracle

Maximum Performance(异步)

Maximum Protection(强同步)

Maximum Availability(强同步 => 写本地) 

OceanBase:改进的Oracle MA模式

数据安全主备checksum校验:保证增量数据的完全一致

tablet副本checksum 每次合并由rs做校验,保证基线数据的一致

主备集群按行进行checksum,保证主备集群一致

一致性选择

用户可以通过sql hint选择一致性

写事务必须是一致的,选择主ups

读事务可以选择不一致读,容忍一定数据延时获得更好的性能

对于一次导入,全天查询的olap应用

只读基准数据提高性能

优化技术举例

高性能网络框架:万兆网卡、减少上下文切换

无锁队列:push, pop每秒达到600万 ~ 1000万次

避免Linux gettimeofday()调用

定制化内存池:绝大部分事务执行过程中无需动态内存分配

完全避免随机写,适合SSD

定制SSD驱动?

OceanBase架构小结

OceanBase = Bigtable + MemSQL

保证数据不丢失,可扩展、高性能、低成本、持续可用

基线数据 + 修改增量,每日合并

分布式存储引擎:水平扩展 + 自动容错

数据库:MVCC,多线程并发回放,UPS定制优化

OceanBase vs 关系数据库

线性可扩展,无需分库分表

持续可用:硬件故障、软件升级、人为故障、etc

线上集群概况

30+应用,***单个应用80台服务器

线上数据无丢失,无影响业务故障

***表格:收藏夹 10031274509

***qps/tps:45000 / 2500(一次scan 60行)

单日更新数据量:5亿条(约120GB redo log)

OLAP业务

***表格:P4P 49412041894

单次请求最多行数:约500万,RT < 3秒

***导入数据量:SNS每天2TB(4台机器)

开源

获取更多信息,请访问:

http://oceanbase.alibaba-inc.com/

以上是51CTO.com记者从一线为您带来的精彩报道。后续我们还有更加精彩的独家报道,敬请关注。

责任编辑:闫佳明 来源: 51CTO
相关推荐

2022-05-31 07:58:49

TiDB数据库开源

2018-06-07 08:31:33

Oracle分布式内存

2017-07-07 14:41:43

阿里云分布式关系

2023-06-01 07:30:42

分析数据源关系型数据库

2021-08-30 11:21:03

数据库工具技术

2018-01-02 20:00:28

数据库MySQL分布式存储

2019-07-10 08:00:00

数据库关系数据库分布式

2013-11-29 09:58:27

巨彬软件NoSQL文档型数据库

2021-11-08 10:52:02

数据库分布式技术

2023-12-06 13:33:09

腾讯云IDC数据库

2021-12-20 15:44:28

ShardingSph分布式数据库开源

2023-03-26 12:43:31

数据库KeyValue

2023-12-05 07:30:40

KlustronBa数据库

2014-06-30 14:20:05

NoSQL数据库

2018-07-18 09:16:39

关系型非关系型数据库

2023-11-14 08:24:59

性能Scylla系统架构

2024-03-11 08:57:02

国产数据库证券

2021-07-30 06:58:28

数据库分布式映射

2013-03-05 15:36:43

NoSQL分布式系统

2011-11-29 09:49:16

数据库其他数据库NoSQL
点赞
收藏

51CTO技术栈公众号