海量分布式關(guān)系型數(shù)據(jù)庫
原創(chuàng)2013年4月26日-27日,由51CTO傳媒集團(tuán)旗下WOT(World Of Tech)品牌主辦的2013大數(shù)據(jù)全球技術(shù)峰會(huì)在北京富力萬麗酒店召開。本次峰會(huì)將圍繞大數(shù)據(jù)基礎(chǔ)架構(gòu)與上層應(yīng)用的生態(tài)系統(tǒng),解決大規(guī)模數(shù)據(jù)引發(fā)的問題,探索大數(shù)據(jù)基礎(chǔ)的解決方案,激發(fā)數(shù)據(jù)挖掘帶來的競爭力,讓數(shù)據(jù)發(fā)出聲音。51CTO作為本次峰會(huì)的主辦方,將全程視頻、圖文直播報(bào)道這場數(shù)據(jù)的盛宴,更多內(nèi)容請(qǐng)點(diǎn)擊專題:2013大數(shù)據(jù)全球技術(shù)峰會(huì)。
2013大數(shù)據(jù)全球技術(shù)峰會(huì)專題
OceanBase是一個(gè)支持海量數(shù)據(jù)的高性能分布式數(shù)據(jù)庫系統(tǒng),實(shí)現(xiàn)了數(shù)千億條記錄、數(shù)百TB數(shù)據(jù)上的跨行跨表事務(wù),由淘寶核心系統(tǒng)研發(fā)部、運(yùn)維、DBA、廣告、應(yīng)用研發(fā)等部門共同完成。在設(shè)計(jì)和實(shí)現(xiàn)OceanBase的時(shí)候暫時(shí)摒棄了不緊急的DBMS的功能,例如臨時(shí)表,視圖(view),研發(fā)團(tuán)隊(duì)把有限的資源集中到關(guān)鍵點(diǎn)上,當(dāng)前 OceanBase主要解決數(shù)據(jù)更新一致性、高性能的跨表讀事務(wù)、范圍查詢、join、數(shù)據(jù)全量及增量dump、批量數(shù)據(jù)導(dǎo)入。
在4月26日的NoSQL&NewSQL專場論壇中,支付寶高級(jí)技術(shù)專家盧黃貴先生表了主題為“OceanBase: 海量分布式關(guān)系型數(shù)據(jù)庫”的演講。
關(guān)系數(shù)據(jù)庫發(fā)展
1970-72:E.F.Codd 數(shù)據(jù)庫關(guān)系模式
20世紀(jì)80年代
***個(gè)商業(yè)數(shù)據(jù)庫Oracle V2
SQL成為“數(shù)據(jù)庫行業(yè)標(biāo)準(zhǔn)”
可擴(kuò)展性
Mainframe:小型機(jī) => 中型機(jī) => 大型機(jī)
Sharding:全局索引? 事務(wù)? 跨庫查詢?
性能
Disk-based design:SSD? Memory?
開源數(shù)據(jù)庫:主備同步?鎖? Schema變更?
并發(fā)事務(wù)管理
使用MVCC保證寫事務(wù)不阻塞只讀事務(wù)
每行為每次事務(wù)保存修改歷史,根據(jù)事務(wù)ID讀取到指定數(shù)據(jù)
修改歷史的合并,不在被讀取的多個(gè)歷史版本將被定期合并
Btree和Hash修改的原子性保證
寫事務(wù)
0.3版,單線程寫+repalce語義,在MemTable層實(shí)現(xiàn)SnapShot
0.4版,多線程讀寫事務(wù)+完備的DB語義,使用Snapshot+兩階段行互斥鎖控制讀寫事務(wù)并發(fā)
并發(fā)日志回放
以單個(gè)事務(wù)日志作為并行的最小單位
并行回放的事務(wù)隔離性、一致性、原子性保證,并行提交的排序算法
主備同步
日志多線程回放
Innodb:記錄binlog邏輯日志,備機(jī)單線程回放
Oracle:記錄物理日志,備機(jī)多線程并發(fā)回放
OceanBase:記錄邏輯日志(無UNDO),備機(jī)多線程并發(fā)回放
主備同步協(xié)議
Mysql:異步,不保證數(shù)據(jù)一致性
Oracle
Maximum Performance(異步)
Maximum Protection(強(qiáng)同步)
Maximum Availability(強(qiáng)同步 => 寫本地)
OceanBase:改進(jìn)的Oracle MA模式
數(shù)據(jù)安全主備checksum校驗(yàn):保證增量數(shù)據(jù)的完全一致
tablet副本checksum 每次合并由rs做校驗(yàn),保證基線數(shù)據(jù)的一致
主備集群按行進(jìn)行checksum,保證主備集群一致
一致性選擇
用戶可以通過sql hint選擇一致性
寫事務(wù)必須是一致的,選擇主ups
讀事務(wù)可以選擇不一致讀,容忍一定數(shù)據(jù)延時(shí)獲得更好的性能
對(duì)于一次導(dǎo)入,全天查詢的olap應(yīng)用
只讀基準(zhǔn)數(shù)據(jù)提高性能
優(yōu)化技術(shù)舉例
高性能網(wǎng)絡(luò)框架:萬兆網(wǎng)卡、減少上下文切換
無鎖隊(duì)列:push, pop每秒達(dá)到600萬 ~ 1000萬次
避免Linux gettimeofday()調(diào)用
定制化內(nèi)存池:絕大部分事務(wù)執(zhí)行過程中無需動(dòng)態(tài)內(nèi)存分配
完全避免隨機(jī)寫,適合SSD
定制SSD驅(qū)動(dòng)?
OceanBase架構(gòu)小結(jié)
OceanBase = Bigtable + MemSQL
保證數(shù)據(jù)不丟失,可擴(kuò)展、高性能、低成本、持續(xù)可用
基線數(shù)據(jù) + 修改增量,每日合并
分布式存儲(chǔ)引擎:水平擴(kuò)展 + 自動(dòng)容錯(cuò)
數(shù)據(jù)庫:MVCC,多線程并發(fā)回放,UPS定制優(yōu)化
OceanBase vs 關(guān)系數(shù)據(jù)庫
線性可擴(kuò)展,無需分庫分表
持續(xù)可用:硬件故障、軟件升級(jí)、人為故障、etc
線上集群概況
30+應(yīng)用,***單個(gè)應(yīng)用80臺(tái)服務(wù)器
線上數(shù)據(jù)無丟失,無影響業(yè)務(wù)故障
***表格:收藏夾 10031274509
***qps/tps:45000 / 2500(一次scan 60行)
單日更新數(shù)據(jù)量:5億條(約120GB redo log)
OLAP業(yè)務(wù)
***表格:P4P 49412041894
單次請(qǐng)求最多行數(shù):約500萬,RT < 3秒
***導(dǎo)入數(shù)據(jù)量:SNS每天2TB(4臺(tái)機(jī)器)
開源
獲取更多信息,請(qǐng)?jiān)L問:
http://oceanbase.alibaba-inc.com/
以上是51CTO.com記者從一線為您帶來的精彩報(bào)道。后續(xù)我們還有更加精彩的獨(dú)家報(bào)道,敬請(qǐng)關(guān)注。































