苏真
2013.4
1
阿里自研数据库Oceanase实践
课程大纲
 Why OceanBase
 系统架构
 数据模型
 如何使用
2
WHY OCEANBASE
了解OceanBase的特点
• 恋爱通常是从了解开始的,想用好OceanBase,得先了解它。
• OceanBase设计目标:
 关系型数据库、结构化数据
 分布式、扩展性
 千亿级数据量
 跨行跨表事务
 支持SQL、兼容MYSQL协议
Why OceanBase
• 传统数据库(mysql&oracle),功能完善,唯一缺点
是数据库本身不可扩展,业务高速增长时需要不
断折库折表、需要TDDL等中间层支持
 OceanBase  RDBMS + Scalability
= 关系数据库:ACID & SQL
> 持续可用 + 水平扩展 + 低成本 + 高性能
< 功能&性能
数据库进化的时代到了
• mysql和oracle为代表的传统数据库
• Nosql很热:hbase,cassandra,mongodb等
遍地开发
• 大数据时代,数据库变革时期正在到来,
谁将占据主流?
现有存储方案对照
7
数
据
规
模
事务与数据一致性
万亿记录
(十PB)
千亿记录
(百TB)
千万记录
(百GB)
十亿记录
(TB)
最终一致 单行事务 跨行跨表事务
RDBMS
Cassandra
HBase
Megastore
OceanBase
Dynamo
Bigtable
不同数据库的对比
数据库类型 代表 特点
关系型数据库 mysql,oracle 支持事务、数据一致性好、功能强大,
成熟稳定。但扩展性不足
自主开发 OceanBase 支持事务、SQL。功能上接近关系型数
据库,兼顾扩展性
NoSQL类型 Cassandra、
Hbase
可扩展性好,功能单一;一般不支持
事务、不支持表关联查询、数据一致
性较弱、有些还没有范围查询
数据库选型
• 关于开源数据库OceanBase( http://oceanbase.taobao.org/ )的应用场景:
如果你不需要事务(transaction),MongoDB等是不错的选择;
如果你的数据量很大,HBase也是不错的选择;
如果你需要事务(transaction),并且数据量不大,或者你可以接受分库(sharding)
后的事务,关系数据库(例如MySQL)是不错的选择;
如果你需要事务(transaction),并且数据量比较大(例如1TB~几百TB),或者虽然目
前数据量不大,但数据增长很快,你希望免除分库分表的麻烦,那么欢迎你选择
OceanBase
参考如标题的等式:OceanBase = transactionality + scalability
9
10
系统架构
11
OceanBase设计思路
 数据存储:多机磁盘
 修改增量:单机内存
Data 基线数据
(磁盘)
修改增量
(内存)
Query 数据增删改
物理架构
12
App(Client)
ChunkServer/
MergeServer
ChunkServer/
MergeServer
ChunkServer/
MergeServer
ChunkServer/
MergeServer
RootServer/
UpdateServer
(primary)
RootServer/
UpdateServer
(secondary)
RootServer/
UpdateServer
(read secondary)
meta data
increment data
base data
data merge
13
每日合并:修改增量
 很多数据库每天有明显的访
问低谷(e.g.,2:00am-5:00am)
Data 基线数据 修改增量
新的修
改增量
读写事务
照常进行
14
OceanBase系统架构
 使用MySQL客户端,兼容MySQL应用
Update
Server
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
修改增量
应用接口
基线数据
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
Root
Server
配置管理
15
OceanBase读写事务
Update
Server
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
修改增量
应用接口
基线数据
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
 写事务(UpdateServer):Redo log + 主备同步
Root
Server
配置管理
16
每日合并期间的query
 使用新或旧基线数据,查询结果一样
Data 基线数据 修改增量
新的修
改增量
Query 旧基线 旧增量 新增量
Query 新基线 新增量
水平扩展-CS/MS
 新增服务器:数据自动迁移且对应用透明
 应用不再需要分库分表
 应用不再需要耗费时间配合数据库进行扩容
3
3
3
4
4
4
5
5
5
6
6
6
7
77
8
8
8
0
0
0
2
2 2
1
1
1
服务器
水平扩展-UPS
 备UPS线性扩展
Root
Server
Update
Server
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
修改增量
应用接口
基线数据
Root
ServerHA
Update
Server
Update
Server
Update
Server
Update
Server
Root
Server
配置管理
跨机房容灾
 在二个机房部署主备二个群集,群集之间通过
updateserver的commitlog实现自动同步
Update
Server
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
Update
Server
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
Root
Server
Root
Server
持续可用:RS/UPS
 RS/UPS异常,数据不丢,
服务不停
Root
Server
Update
Server
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
修改增量
应用接口
基线数据
Root
ServerHA
Update
Server
Update
Server
Update
Server
Update
Server
Root
Server
配置管理
持续可用:CS
 CS异常,数据不丢,服务不停
3
3
3
4
4
4
5
5
5
6
6
6
7
77
8
8
8
0
0
0
2
2 2
1
1
1
基线数据
服务器(CS)
持续可用:MS
Update
Server
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
MergeServer
ChunkServer
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
Root
Server
 MS异常,数据不丢,服务不停
持续可用-跨数据中心
 IDC异常,数据不丢,服务不停
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
SQ
L
Root
Server
Root
Server
持续可用-数据校验
 磁盘读写:每条记录带64位checksum
 网络传输:每个网络包带64位checksum
 每个文件多副本(3~6):每个文件都有64位checksum
 修改增量多副本(2~N):每个UPS内存数据都有64位checksum
 Redo log:每条都带checksum及对应于UPS内存的checksum
持续可用-小结
 假设:硬件、软件、人随时可能故障或犯错
 OceanBase目标:用不可靠的硬件和软件提供稳定、持续可用的服务
 年可用率99.999+%(计划内停机属于不可用)
 措施
 配置服务(RS):HA
 更新增量服务(UPS):实时热备
 基线数据服务(CS):数据多副本
 应用接口(MS):多实例
 跨机房数据同步
 数据正确性:记录/网络包、文件和内存checksum
26
数据模型
数据模型
TABLE
sstable
sstable
sstable
chunkserver1
chunkserver2
chunkserver3
chunkserver4
chunkserver5
chunkserver6
sstable
sstable
sstable
数据模型
Primary Key field1 field2 field3 … fieldn
Primary Key:
用于定位记录的唯一标识, 不可以重复
数据物理存储按Primary Key排序
Field(字段):
类型:int,double, varchar, datetime,timestamp, create_time,
modify_time.
表,记录,字段,数据类型。数据模型与传统RDBMS一样
记录构成:
基准数据和增量数据
 Oceanbase数据结构
 增量数据:单机B+树
 基准数据:分布式B+树
 新的基准数据 = 老的基准数据 + 增量数据
29
基线数据
(Chunkserver)
增量数据
(Updateserver)
数据分布
30
Updateserver
Chunkserver 4Chunkserver 3Chunkserver 2Chunkserver 1
Rootserver
数据分片
(元数据)
增量数据
(B+树)
31
如何使用
完全兼容mysql客户端
32
实例
33
Create table t1(
c1 int,
c2 int,
c3 varchar(20),
c4 datatime,
c5 int,
c6 createtime,
primary key (c1,c2,c3)
)
C1+C2+C3组成主键,C4,C5,C6为普通字段
C1 C2 C3 C4 C5 C6
实例
34
C1+C2+C3组成主键,C4,C5,C6为普通字段
OK
Select * from t1 where c1=x and c2 =x and c3=‘xxxx’;
Select * from t1 where c1=x and c2=x;
Select * from t1 where c1=x;
Select * from t1 where c1=x and c2=x and c4=x;
Select * from t1 where c1=x and c6=x;
Select sum(c5) where c1=x;
C1 C2 C3 C4 C5 C6
实例
35
C1+C2+C3组成主键,C4,C5,C6为普通字段
NOT OK
Select * from t1 where c2=x and c3 =‘xxxx’;
Select * from t1 where c3=‘xxxx’;
Select * from t1 where c2=x;
Select * from t1 where c5=x ;
更多OceanBase SQL手册参见:
http://oceanbase.alibaba-inc.com/wiki/index.php?title=SQL_User_manual
C1 C2 C3 C4 C5 C6
 Select,update,replace,delete,insert
 where 条件过滤(and, or)
 like
 group by
 having
 order by
 limit,offset
 reverse scan
 aggregate(count,sum,average)
支持的SQL操作
OceanBase应用接口
 应用接口:MySQL兼容 (JDBC/ODBC)
APP
OceanBase
OBSQL客户端库
MySQL
客户端库
PRELOAD
38
感谢聆听
HTTPS://GITHUB.COM/ALIBABA/OCEANBASE

More Related Content

PPTX
No sql数据库杂谈—理论篇
PPTX
大规模数据库存储方案
PPT
新浪微博redis技术演化
PPT
数据库高可用架构
PDF
MySQL5.6&5.7 Cluster 7.3 Review
PPTX
浅谈数据库优化
PPTX
No sql带来了什么 孙立
PDF
MySQL 網路參考架構
No sql数据库杂谈—理论篇
大规模数据库存储方案
新浪微博redis技术演化
数据库高可用架构
MySQL5.6&5.7 Cluster 7.3 Review
浅谈数据库优化
No sql带来了什么 孙立
MySQL 網路參考架構

What's hot (20)

PDF
MySQL设计、优化、运维
PPT
新浪微博分布式缓存与队列-2013版
PPTX
分布式缓存与队列
PDF
美团点评技术沙龙010-点评RDS系统介绍
PDF
大型系统的缓存标准化之路—从主从多级重client到一体化
PDF
MySQL 高可用方案及成功案例
PDF
Stand out your presentation - 让演讲PPT脱颖而出
PPTX
Feed服务架构-新浪微博新员工培训议题
PDF
MySQL5.6新功能
PDF
MySQL运维那些事
PDF
美团点评技术沙龙14:美团云对象存储系统
PPT
03.web sphere培训 websphere集群技术
PDF
我们的MySQL
PDF
阿里开源经验分享
PDF
MySQL数据库设计、优化
PPT
Sina my sq概述及优化
PPTX
賽門鐵克 Storage Foundation 6.0 簡報
PPT
大规模网站架构
PDF
浅谈 MySQL 性能调优
PPSX
MySQL性能调优最佳实践
MySQL设计、优化、运维
新浪微博分布式缓存与队列-2013版
分布式缓存与队列
美团点评技术沙龙010-点评RDS系统介绍
大型系统的缓存标准化之路—从主从多级重client到一体化
MySQL 高可用方案及成功案例
Stand out your presentation - 让演讲PPT脱颖而出
Feed服务架构-新浪微博新员工培训议题
MySQL5.6新功能
MySQL运维那些事
美团点评技术沙龙14:美团云对象存储系统
03.web sphere培训 websphere集群技术
我们的MySQL
阿里开源经验分享
MySQL数据库设计、优化
Sina my sq概述及优化
賽門鐵克 Storage Foundation 6.0 簡報
大规模网站架构
浅谈 MySQL 性能调优
MySQL性能调优最佳实践
Ad

Similar to 阿里自研数据库 Ocean base实践 (20)

PPTX
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
PPSX
浅谈 My sql 性能调优
PPSX
MySQL应用优化实践
PDF
【诗檀软件】Mysql高可用方案
PPT
Sequoia db 技术概述_sacc
PDF
Oracle Instance 介紹
PDF
Databases on AWS
PPTX
大數據
PPT
内存数据库[1]
PPTX
現代資料庫
PDF
王涛:基于Cloudera impala的非关系型数据库sql执行引擎
PDF
基于MySQL的分布式数据库实践
PDF
基于My sql的分布式数据库实践
PDF
Tdsql在微众银行核心交易系统中的实践 雷海林
PPSX
No sql应用场景及cassandra架构分析
PDF
Raising The MySQL Bar-Manyi Lu
PDF
大型网站架构的发展
PDF
大型网站架构的发展
PDF
为什么学习MySQL-20220530.pdf
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
浅谈 My sql 性能调优
MySQL应用优化实践
【诗檀软件】Mysql高可用方案
Sequoia db 技术概述_sacc
Oracle Instance 介紹
Databases on AWS
大數據
内存数据库[1]
現代資料庫
王涛:基于Cloudera impala的非关系型数据库sql执行引擎
基于MySQL的分布式数据库实践
基于My sql的分布式数据库实践
Tdsql在微众银行核心交易系统中的实践 雷海林
No sql应用场景及cassandra架构分析
Raising The MySQL Bar-Manyi Lu
大型网站架构的发展
大型网站架构的发展
为什么学习MySQL-20220530.pdf
Ad

More from drewz lin (20)

PPTX
Web security-–-everything-we-know-is-wrong-eoin-keary
PDF
Via forensics appsecusa-nov-2013
PPTX
Phu appsec13
PPTX
Owasp2013 johannesullrich
PDF
Owasp advanced mobile-application-code-review-techniques-v0.2
PPTX
I mas appsecusa-nov13-v2
PDF
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
ODP
Csrf not-all-defenses-are-created-equal
PPTX
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
PPTX
Appsec usa roberthansen
PDF
Appsec usa2013 js_libinsecurity_stefanodipaola
PPT
Appsec2013 presentation-dickson final-with_all_final_edits
PPTX
Appsec2013 presentation
PPTX
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
PPTX
Appsec2013 assurance tagging-robert martin
PPTX
Amol scadaowasp
PPTX
Agile sdlc-v1.1-owasp-app sec-usa
PPTX
Vulnex app secusa2013
PDF
基于虚拟化技术的分布式软件测试框架
PPTX
新浪微博稳定性经验谈
Web security-–-everything-we-know-is-wrong-eoin-keary
Via forensics appsecusa-nov-2013
Phu appsec13
Owasp2013 johannesullrich
Owasp advanced mobile-application-code-review-techniques-v0.2
I mas appsecusa-nov13-v2
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Csrf not-all-defenses-are-created-equal
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Appsec usa roberthansen
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec2013 assurance tagging-robert martin
Amol scadaowasp
Agile sdlc-v1.1-owasp-app sec-usa
Vulnex app secusa2013
基于虚拟化技术的分布式软件测试框架
新浪微博稳定性经验谈

阿里自研数据库 Ocean base实践