|
第8章 OceanBase架构初探
2 E7 Q6 i8 R3 R [9 TOceanBase是阿里集团研发的可扩展的关系数据库,实现了数千亿条记录、数百, a6 q* V ^" e. M, ^6 i6 L
TB数据上的跨行跨表事务,截止到2012年8月,支持了收藏夹、直通车报表、天猫评( M( Z W0 W& ~
价等OLTP和OLAP在线业务,线上数据量已经超过一千亿条。; g. Z( s* L, f1 I& q/ g) J
从模块划分的角度看,OceanBase可以划分为四个模块:主控服务器& C- U F" N$ F0 v* @# X! l; L
RootServer、更新服务器UpdateServer、基线数据服务器ChunkServer以及合并服务器# K+ Q' |- l' M+ [
MergeServer。OceanBase系统内部按照时间线将数据划分为基线数据和增量数据,基
! W) H3 u" \# N! N$ ]3 Q. o2 C线数据是只读的,所有的修改更新到增量数据中,系统内部通过合并操作定期将增
/ C0 P$ _1 ~- L7 k量数据融合到基线数据中。本章介绍OceanBase系统的设计思路和整体架构。; s' N* m# t# A" E) i" H, I4 b
8.1 背景简介
+ N' J3 S2 n9 [: d" T淘宝是一个迅速发展的网站。全球网站排名公司Alexa提供的数据显示,2010年
9 Z$ }9 K3 g* e, l% j' ~. M: D4月27日,Amazon、EBay的用户占全球互联网用户的百分比分别为3.47%和2.68%,& N4 B6 I6 o' q0 S
而淘宝的用户占全球互联网用户的百分比则达到了4.1%,淘宝网日独立访问量从此7 r) f* _) N0 N7 v( ~( b k
超过了Amazon和EBay。/ q2 B2 m" d0 \8 \& \( F$ b Q
淘宝的数据规模及其访问量对关系数据库提出了很大挑战:数百亿条的记录、
* |& ]1 G. W/ |' E9 V数十TB的数据、数万TPS、数十万QPS让传统的关系数据库不堪重负,单纯的硬件升5 J4 O# x. n5 H1 j Q0 p3 F
级已经无法使问题得到解决,分库分表也并不总是凑效。下面来看一个实际的例
* }' D" |% U% F5 `子。
% C; |* C- A( w淘宝收藏夹是淘宝线上应用之一,淘宝用户在其中保存自己感兴趣的宝贝(即$ g) |, T$ O$ ~) B8 W5 a* I
商品,此外用户也可以收藏感兴趣的店铺)以便下次快速访问、对比和购买等,用* x) y" P7 {) S B0 n
户可以展示和编辑(添加/删除)自己的收藏。& L2 z. t% i' {
淘宝收藏夹数据库包含了收藏info表(一条一条的收藏信息)和收藏item表(被* W+ X; z6 x3 ?. i- C u
收藏的宝贝和店铺)等:+ e h; \7 n7 O7 y* d- b$ {% e
●收藏info表保存收藏信息条目,数百亿条。
/ S2 m8 ]! ~8 g! f, H3 o●收藏item表保存收藏的宝贝和店铺的详细信息,数十亿条。
4 B$ I7 _$ R% r. C' J- P( T0 d●热门宝贝可能被多达数十万买家收藏。* |% p3 x6 I c) E3 R/ r: A4 E; X
●每个用户可以收藏千个宝贝。1 X J% ^$ c0 e# ?" c& I4 M
●宝贝的价格、收藏人气等信息随时变化。, j) d6 q _1 {8 W2 @& J2 g
如果用户选择按宝贝价格排序后展示,那么数据库需要从收藏item表中读取收藏
3 W( M8 P2 [6 Z3 F) j0 p! z/ U! V的宝贝的价格等最新信息,然后进行排序处理。如果用户的收藏条目比较多(例如
% \* K6 M1 E3 ^/ w1 W4 e7 P( d4000条),那么查询对应的item的时间会较长:假设如果平均每条item查询时间是
+ E; g- I) b- ~4 b" _( V1 s5ms,则4000条的查询时间可能达到20s,如果真如此,则用户体验会很差。8 S5 |, H+ V3 ?+ U
如果把收藏的宝贝的详细信息实时冗余到收藏info表,则上述查询收藏item表的# y9 ]& y6 `' \" i. q% \
操作就不再需要了。但是,由于许多热门商品可能有几千到几十万人收藏,这些热- S* S3 x$ @' h8 [( h
门商品的价格等信息的变动可能导致收藏info表的大量修改,并压垮数据库。+ _1 a, b3 P& A1 B! n$ k
为此,阿里巴巴需要研发适合互联网规模的分布式数据库,这个数据库不仅要
/ G3 m( ]; J! e# ^1 E9 ^) x能解决收藏夹面临的业务挑战,还要能做到可扩展、低成本、易用,并能够应用到! [: [; U2 U& N
更多的业务场景。为此,淘宝研发了千亿级海量数据库OceanBase,并且已经于2011' y, `: X- P, G. g. i3 H9 r
年8月底开源(http://oceanbase.taobao.org/)。虽然距离OceanBase开源已经超过一年 \3 t, A- s4 U3 V3 k9 B& }0 P* d
多的时间,但OceanBase系统还有很多的问题,其中以易用性和可运维性最为严重。! y! _7 i7 d: f. `0 Y
OceanBase团队一直在不断完善着系统,同时,我们也很乐意把设计开发过程中的一3 F- p+ g' `* ?# l
些经验分享出来。1 u1 j! x# h& l n
/ ^0 x% z9 B$ M1 k. L `
2 z E- E" T- x8 y/ M. u |
|