
华东师范大学学报(自 然 科 学 版)
2014
年
交易和金融交易
.
对这些数 据 的 处 理 依 赖 于 严 格 的 数 据 库 事 务 语 义,即 原 子 性 (
Atomic
y
)、
一致性(
Consistenc
y
)、隔 离 性 (
Isolation
)和 持 久 性 (
Durabilit
y
)的 保 证
.
同 时 也 对 数 据 库 的
存储容量和事务处理能力提出了越来越高的要求
.
使用商业数据库、配置高端服务器和存储设备,在一段时间内确实能够解决互联网公司
对数据库的需求,但是随着业务的发展,对存储 容量 和 事 务 处理 能 力 的 需求 越 来 越 高,购 买
商业解决方案的成本变得难以接受,并且也同样遇到软硬件处理能力的瓶颈
.
一些公司开始
转向使用开源数据库软件如
M
y
SQL
,搭配廉价服 务 器,使 用分 库 分表 的方 式 对业 务 数 据 进
行拆分存储,而拆分后的数据库扩展困难,运维成本高,不支持跨域分库分表的事务,且基于
传统数据设计的
M
y
SQL
并不能充分发挥当前大容 量 内存 加
SSD
的 主 流服 务器 配 置优 势
.
一些新 兴的 内 存数 据库 如
MemSQL
,能 够 充分 利用 大 容量 内存 的 优势,但 是由 于 数据 必须
全部存放在内存中,而数据容量有限成本偏高,基于单机数据的设计,使得扩展能力也有限
.
Goo
g
le
的
Me
g
aStore
基于
Bi
g
Table
/
GFS
开发,有良好的可扩展性和较低的成本,但是对数
据库事务支持有限
,无法应用在对事务要求严格的电子商务领域
.
阿里巴巴集团自主研发的
数据 库
OceanBase
,适 应 电 子 商 务 领 域 对 数 据 库 事 务 的 严 格 要 求,充 分 发 挥 大 容 量 内 存 和
SSD
发展的优势,以较低的成 本 提 供 海 量 存 储 和 高 性 能 事 务,良 好 的 可 扩 展 性 和 容 错 能 力
很大程度上降低了运维成本
.
OceanBase
是一个分布式的关 系 数 据 库,采 用 基 线 数 据 与 动 态 数 据 分 离 存 储 的 架 构 设
计,其中 基 线 数 据 被 划 分 为 多 个 有 序 的 分 块 ,称 为
Tablet
,每个
Tablet
存储 若 干个 副本 随 机
地分布在机群的多台机器上;动态数据就是一段时间内的数据更新记录,每次查询需要将基
线数据与动态 数 据 合 并 后 产 生 最 终 结 果 返 回 给 客 户 端
.
整 个 机 群 主 要 由
4
个 模 块 组 成:
Chunkserver
提供基线数据的存储和 查 询 服 务,定 期 将 本 地 保 存 的 基 线 数 据 与 动 态 数 据 合
并
,生成 新 版 本 的 基 线 数 据 ;
U
p
dateserver
提供动态数据的存储、查询和写入服务,每隔 一 段
时间将当前动态数据“冻结”,并分配一个“冻结版本号”,用于
Chunkserver
合并新 版 本的 基
线数据;
Rootserver
提供
Tablet
在 多 台
Chunkserver
上 位 置 信 息 的 存 储 和 查 询 服 务,负 载
平衡、迁移、复 制 等 的 调度 管 理 ,以及
Schema
信 息的 管 理 ;
Mer
g
eserver
实 现
SQL
接 口,处
理 客 户 端 的 查 询 和 写 入 请 求 ,将
SQL
请求转化为
U
p
dateserver
和
Chunkserver
认识的执行
计划,同时负责从多台机器接收查询结果后的合并和处理
.
如上所述,
U
p
dateserver
提供了动态数据 的 存 储、写 入 和 查 询服 务,任何 数 据 写 入都 将
最终 被 发 送 到
U
p
dateserver
执行,并存储在内存中称为
Memtable
的数据结构,上面提 到 的
冻结则意味着当前
Memtable
停止数据 写入,构 造 新的
Memtable
来 接收 后 续 写 入的 数 据
.
Memtable
及 其周 边 的 事 务管 理 结 构 共同 组 成 了
U
p
dateserver
的 内存 事 务 引 擎,实 现 满足
ACID
特性的数据库事务
.
内存事务引擎提供交互式事务接口,使用多版本的并发控制技术实现读写相互不阻塞,
提供快照读事务;经典的两 阶 段 行锁 方 式 实 现写 的 并 发 控制
[
1
]
.
使 用
lo
gg
in
g
ahead
方 法 的
记录
redolo
g
来持久化事务
[
2
]
,并且通过同步实时的 备机 来 保证 服务 的 持续 可用
.
通 过批 处
理、预解锁、并发提交等技术,来优化事务提交 性能
.
本 文第
1
节 概述 内 存 事 务引 擎,第
2
节
介绍并发事务设计,第
3
节介绍事务引擎的持 久化 与 恢 复,第
4
节 介绍 性 能 优 化技 术,最 后
对整个
OceanBase
内存事务引擎做出总结,展望未来的发展方向
.
051
评论