分布式数据库 | 浅谈 OceanBase 演进的一点思考

[复制链接]
; u, ~0 F% ], S

引入 | 图解那些分布式数据库中的 DBMS

1 L' B9 E' ~/ l- T
) y* G; \, n" w9 E5 Z) V& F
9 Y& @+ Q7 _: Z) }2 T

开篇:想必大家都有一个疑问?何为分布式数据库?OLTP,OLAP,HTAP?它又能够给我们带来什么?

8 ~8 P7 b6 R: w0 {, v, T( c0 A
+ [# k- K2 F- K$ X P) _# Z: P5 `# q

背景:在数据库技术 DBMS 领域,尤其是针对其中很多核心技术组成部分攻关的突破,国产化数据库一直都起着模范带头作用。许多国内互联网公司,包括现在很多成熟的技术框架,数据库都来自于国外。早期,依赖于核心技术的引进,在引进的基础上做上层应用,进而不断迭代。而现在核心技术自研,数据库自研等成了技术攻关的新浪潮。阿里曾一直提出“去 IOE ”的概念-其中 IBM 是服务器提供商,Oracle 是数据库软件提供商,EMC 则是存储设备提供商。

+ r+ h2 O5 d2 j

思考:

' ]! _ ]- h- ^9 [6 D& C" X. f

1、当使用 K8、Docker 容器化编排技术受到限制,假若 Oracle、MySql 数据存储等数据库软件不再向我们提供正常的服务?

: M: K0 [5 ~' {9 Q

2、在我们的项目工程中,若是没有了这些数据库技术去提供正常的服务,如何能够去及时地采取补救的措施,使得业务能够平滑过渡,做到让用户无感知体验?

a; p4 L, ^" D8 C0 V

3、从传统关系型数据库到非关系型数据库,NOSQL ,NewSQL 再到数据湖,以及兼顾 OLAP 跟 OLTP 的各种分布式数据库-HTAP(混合事务/分析处理),在拥有自己的数据存储解决方案基础之上,现有技术框架体系是否能够较好适配,能否做到更好地兼容?

& J! l: P, l" ?- K% i' t

场景:在现有渠道产品上的适配,推进国产化数据库进程,包括信创自主可控等领域,都值得作为技术人的我们去深思......

3 J% l! O, x+ b4 v4 b

诚然,技术多元化是一个趋势,多语言并存,多数据库适配,多环境兼容......

* D: i: g9 V& Y

现状:OracleElasticSearchMySQL 架构

6 x4 Q O6 j. R! g- i

目前,在 Oracle 中多个业务库中,数据规模已经非常庞大,MySQL 中多个业务库,其单表数据量都已超过千万级别,数据每天在不断的增长......

) U* J! N- z, ^$ t
# T+ n# r0 }$ N. z7 U5 G

尤其,在许多老旧的项目中,Oracle 视图数据量非常大,DMP 文件数百G,数据存储成本极其昂贵,这里也提供下大数据量的一些数据库导入导出方式(相比较工具导入导出或许速度更快一个数量级)

Y! O2 f0 N" Y9 Y' T

MySQL:

- q# s' F8 ]* J5 R; |

备份数据库命令:

d9 E z' w# n9 x# k
mysqldump -u root -p 数据库名 > /home/user/2021.12.26.sql; + M$ F% s5 _8 |# @
5 h/ I. u3 F2 C4 n' a$ B

只需导出表结构:

+ B; t* @2 I$ N) z
mysqldump -u applyun -p -d bi > /home/applyun/bi.sql;* ?6 o5 ?" p* o& T5 d8 ^
/ u2 F) L z. u8 y# P

数据库迁移导入:

2 X. L; p7 C4 i8 k
mysql -u root -p 数据库名 < /home/user/2021.12.26.sql; . x6 n, M, V- x& N: i- X/ U
# x; k: }& A, t( Z7 M; Q m

Oracle:

2 U8 P- z L( N$ u$ r2 l* H! G" {7 x

数据库迁移导入:

, B. a/ o* i" o! q6 c
imp yd_dev_tmp/user@ip/orcl file=/home/oracle/xxx.dmp ignore=y full=y; # b2 W- c: Y, v% N7 o
* v+ H. o" V0 V+ X* C
! m) x- i, ?0 Y+ P8 F3 R8 b2 Q

成功导入数据泵. dmp 文件。(其中,可通过su - oracle进入oracle目录,dmp文件可上传到/home/oracle路径)

8 e7 J0 u$ M% y- U5 a

猜想:

, h( p3 W Z' q$ K% h8 M

当下的数据库技术体系,正如春秋时期百家争鸣的局面,已然无法像传统关系型数据库那样三足鼎立,各个大厂,尤其是互联网,根据其自身业务需求体系定制化了很多产品,像 OceanBase ,TiDB ,Vertica,ClickHouse,Greenplum......

9 e' ], q$ N6 C

那么,拥有这么多的选择权,是不是意味着学习的成本会不断抬高,我们需要了解扩充的知识面更多?上述仅列举了正在项目中移植预研的几款 DBMS,更多详情请回顾->数仓进阶 | 记一次OLAP分析引擎演进思考过程

! V! k" k3 W, N) _

构思:

- U. K: F Z3 k7 l$ ]

当我们的业务系统发展到一定规模,不论是累计数据量,亦或用户并发量。早期,通过单体架构进行设计,应付自如,再大就是分库分表,解决数据库单点瓶颈(I/O)。

7 H6 l% `* D6 V

随着业务持续发展,单机有着明显的单点效应,并且单机的容量跟性能都是极其局限的。

( F% X" x$ T6 _' H, ]

进一步,对某些应用进行水平扩容,渐渐的,虽然各个应用服务器CPU都正常,但是你会发现还是有很多慢请求依然存在,究其缘由-单点数据库性能瓶颈?

9 p6 S7 Y0 b0 X z

更进一步,数据库集群-主从架构,大部分读操作可直接访问从库,减轻主库的负担,但依旧还是无法解决主库写的瓶颈?

' T5 }+ `# k7 l& A* C& ]: j

接下来,就是上述提到的分库分表,分库分表可作水平拆分-对表进行进一步拆分,垂直拆分-不同功能表放置不同的库,按业务功能进行拆分。

6 E' O3 r& O% e) v2 z

然而,当相同的应用扩展越多,每个数据库的链接数,长久以往必会让数据库本身的资源再度成为瓶颈,简言之,资源隔离性依然不彻底->未形成单元化的雏形。

! ~% A) E5 a" G: H* S0 N
! q" F& h, n/ ?$ s, j: [

再谈经典,

% X. X/ o1 r1 A

Google 三驾马车,在分布式系统工程实践领域:

" ~) g; y! v0 j; o5 Y p; P% ~+ X

《Google File System》、《Google MapReduce》、

! N4 V b' ]0 t j! G* R" L( {! v

《Google BigTable》在很大程度上奠定了业界大规模分布式存储系统的理论基础.

7 m3 b) X: L$ ?' X2 D' B; p/ {+ \

回到 CAP 理论,想必在分布式领域中这个著名的定理都有所耳闻,即 C 为数据一致性,A 为服务可用性,P 为服务对网络分区故障的容错性。

9 l; M( ]) ^+ o# b, q5 H# b% g: A

谈及 CAP,这里暂不详赘,各有各自不同深度层次的见解,但这里需要说明下的就是选择 CP 的分布式系统,并不代表可用性就完全没有了,比如像我们常用的中间件,为了增加可用性保障,往往提供了分片集群-复制的一些方案。

$ _4 q: H/ G& Y( Y* n0 i

包括常说的 BASE 理论-对 CAP 理论的延伸,核心思想-即使无法做到强一致性(Strong Consistency),但我们的应用可以采用适合的方式达能够到最终一致性(Eventual Consitency)。

% b! L" m+ J& r! V S0 e0 u

从上述提到由单点现状->分布式架构演进构思的过程中,出现诸多不同阶段性痛点,想必这也是为什么那么多分布式数据库产品如雨后春笋般不断涌出?

2 K: [' M# g) z' {# ?

OceanBase-中国第一款自主研发的分布式数据库(简称OB)

* H! ?8 i9 F; K, x0 p

企业级分布式关系数据库

* I9 ~4 ^- x& b: k

a)数据强一致

! I. ]1 W' h3 @$ P

b)高可靠

$ R0 n( C; w* ?

分区-副本机制

% p1 x7 m3 V9 L6 t; w

c)高性能

3 F. r8 M& p# A% s/ w& R5 q

Paxos协议,在数据强一致的情况下,具有极高的可用性及性能

; Y; Q6 _- Y+ n* `

d)在线扩展

# ^ k! W9 F. X: T

当集群存储容量或是处理能力不足时,可以加入新的 OBServer

8 H& ~8 y6 W" U% P; [& j# t

e)高度兼容 SQL 标准和主流关系数据库

2 W; X2 l$ i# _6 ]! {

f)低成本

1 R' H, `$ e7 D+ K1 _+ R' A# u

CPU、操作系统、数据库

; o* C8 K! P( P6 L

如何既兼顾处理 TP 场景的能力,又具备 AP 场景的分析能力?

1 _) a/ q3 B# S) F* i) z7 f

想必 HTAP 架构希望打破 TP 和 AP 的边界,虽然存在很多技术难关需要攻克,一直在路上,期待 OceanBase(OB)一直会有新的突破......

7 A! `1 f* x9 n/ Z: ~: L

延伸思考:HTAP(混合事务/分析处理),相比 OLTP、OLAP 能够给我们带来?OceanBase 又是如何支持 HTAP?

2 ^/ h4 {( h0 Q# i& g; i% M

在高并发海量数据场景下,是否能让系统中诸多计算节点同时运行 OLTP 类型的应用和复杂的 OLAP 类型的应用......

0 b; _: X4 {+ r 4 ~$ h8 c! {* J# | 9 m! S' {! Q! d" X) @ ! B9 p- d+ w" J& S0 y1 F$ e' j3 e/ Y! t8 Y, v0 m
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
开悟余生
活跃在7 天前
快速回复 返回顶部 返回列表