摘要:端基于生成列進(jìn)行內(nèi)部分區(qū),不侵入業(yè)務(wù)。總結(jié)天貓雙全球狂歡節(jié)成交額超過(guò)億,成功經(jīng)受住了考驗(yàn),全面支撐了支付寶核心鏈路,平穩(wěn)抗住時(shí)的峰值壓力,夯實(shí)三年戰(zhàn)略百萬(wàn)支付的底盤能力。
小螞蟻說(shuō):
你們都很關(guān)心的 “OB雙11大促實(shí)戰(zhàn)分享” 專題來(lái)啦!本系列將為你系統(tǒng)性的介紹OceanBase支撐螞蟻雙11背后的技術(shù)原理和實(shí)戰(zhàn)分享。從平臺(tái)到架構(gòu),再到實(shí)現(xiàn),一起來(lái)探索螞蟻雙11這場(chǎng)神秘的技術(shù)之旅吧!
?背景伴隨著螞蟻業(yè)務(wù)的蓬勃發(fā)展,特別是每年雙11大促不斷創(chuàng)造新的高峰, 交易支付核心鏈路提出了未來(lái)實(shí)現(xiàn)百萬(wàn)筆支付/秒的能力 。為了實(shí)現(xiàn)這個(gè)宏偉目標(biāo),特別是提高數(shù)據(jù)庫(kù)層面分布式擴(kuò)展能力,如原生sharding/分布式事務(wù)優(yōu)化,OceanBase 2.0分布式數(shù)據(jù)庫(kù)應(yīng)運(yùn)而生。
百萬(wàn)支付傳統(tǒng)數(shù)據(jù)庫(kù)擴(kuò)容方案,主要是依賴分庫(kù)分表拆分進(jìn)行水平擴(kuò)容,螞蟻數(shù)據(jù)庫(kù)初期也是同樣思路,通過(guò)LDC單元化改造,核心表按用戶UID維度拆分成百庫(kù)百表。
但是隨著業(yè)務(wù)發(fā)展,特別是2017年的雙11大促,峰值需求已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)單庫(kù)單機(jī)的最大容量。針對(duì)這個(gè)問題,我們使用彈性架構(gòu),即在大促前,新增兩套彈性數(shù)據(jù)庫(kù),多套庫(kù)共同支持大促峰值。彈性架構(gòu)雖然解決了大促容量需求,但是也存在一些缺陷,業(yè)務(wù)在數(shù)據(jù)路由、后期維護(hù)及數(shù)據(jù)配套設(shè)施都非常復(fù)雜繁瑣。有沒有更優(yōu)雅的分布式數(shù)據(jù)庫(kù)解決方案,即只使用一個(gè)庫(kù),就可以支持百萬(wàn)甚至更高的支付峰值,OceanBase 2.0分區(qū)提供了完美的解決方案。
OceanBase 2.0整體架構(gòu)
原理分析
OceanBase 2.0分區(qū)方案思路和傳統(tǒng)的分庫(kù)分表拆分一樣。我們?cè)诮灰字Ц逗诵膸?kù)上,在原有百庫(kù)百表的基礎(chǔ)上繼續(xù)按用戶UID進(jìn)行更深層次拆分,每個(gè)分表再拆分成多個(gè)partition,應(yīng)用端只看到一張表,在用戶無(wú)感知的前提下把數(shù)據(jù)拆分到無(wú)限多的機(jī)器上,突破單機(jī)性能瓶頸,自動(dòng)負(fù)載均衡,從而實(shí)現(xiàn)百萬(wàn)支付的能力。
同時(shí)為了極致性能,OceanBase 2.0提供了partition group功能,將業(yè)務(wù)使用的多張邏輯表(table_1、table_2、... table_n),按共同的partition聚合在同一臺(tái)服務(wù)器上面,從而避免了分布式事務(wù)帶來(lái)的額外開銷。
OceanBase 2.0分區(qū)方案
關(guān)鍵點(diǎn):
APP端請(qǐng)求SQL,帶上包含分區(qū)的字段—UID信息(如payment_id列)。
SQL如果沒有分區(qū)信息,則在OBServer端并行計(jì)算優(yōu)化。
OBClient負(fù)責(zé)分區(qū)計(jì)算及路由,確保第一跳準(zhǔn)確定位到對(duì)應(yīng)分區(qū)所在服務(wù)器,避免遠(yuǎn)程執(zhí)行。
OBServer端基于生成列partition_id進(jìn)行內(nèi)部分區(qū),不侵入業(yè)務(wù)。
OBServer端約束描述多維度分區(qū),實(shí)現(xiàn)分區(qū)裁剪功能。
優(yōu)點(diǎn):
業(yè)務(wù)友好:不改變SQL語(yǔ)義,應(yīng)用代碼不感知分區(qū)信息。
架構(gòu)通用:約束功能,實(shí)現(xiàn)分區(qū)裁剪;OBServer提供兜底訪問能力。
高性能低成本:使用低配置服務(wù)器,自動(dòng)負(fù)載均衡,資源利用率高。
OceanBase 2.0性能優(yōu)化
分布式事務(wù)消除:partition group方式,事務(wù)涉及所有表的partition按照分區(qū)鍵存儲(chǔ)至同一物理機(jī)。
兩階段提交協(xié)議優(yōu)化:結(jié)合事務(wù)與日志,事務(wù)prepare成功后內(nèi)存不用持久保存狀態(tài),按需從日志中查詢;commit狀態(tài)持久化轉(zhuǎn)換成后臺(tái)批量完成。
Commit異步化:異步化后Worker不等待繼續(xù)執(zhí)行隊(duì)列中下一個(gè)請(qǐng)求,日志持久化成功后會(huì)異步回調(diào)。
內(nèi)存分配器優(yōu)化:組織了兩層映射關(guān)系,既要提升性能又要支持大量分區(qū)。
存儲(chǔ)優(yōu)化:數(shù)據(jù)編碼技術(shù)實(shí)現(xiàn)高壓縮。
優(yōu)化結(jié)果:
整體性能OceanBase 2.0版本較OceanBase 1.4版本性能提升50%,存儲(chǔ)空間節(jié)省30%。
總結(jié)2018天貓雙11全球狂歡節(jié)成交額超過(guò)2135億,OceanBase 2.0成功經(jīng)受住了考驗(yàn),全面支撐了支付寶核心鏈路 ,平穩(wěn)抗住0:00:00時(shí)的峰值壓力,夯實(shí)三年戰(zhàn)略“百萬(wàn)支付”的底盤能力。
OceanBase 2.0還有很多重要特性,比如分布式全局索引、分布式全局一致性快照、分布式存儲(chǔ)過(guò)程、索引實(shí)時(shí)生效、Flashback閃回功能等,這些新功能將強(qiáng)有力支持企業(yè)不同業(yè)務(wù)場(chǎng)景下的持續(xù)創(chuàng)新。
加入我們【數(shù)據(jù)庫(kù)智能化開發(fā)】
崗位描述:
1、負(fù)責(zé)螞蟻金服數(shù)據(jù)庫(kù)智能運(yùn)維平臺(tái)應(yīng)用架構(gòu)設(shè)計(jì)和實(shí)施落地,使系統(tǒng)體系化并具有前瞻性,能快速發(fā)現(xiàn)異常和風(fēng)險(xiǎn)隱患,自動(dòng)識(shí)別原因并修復(fù)故障源/風(fēng)險(xiǎn)點(diǎn),實(shí)現(xiàn)self-healing、self-scaling、self-tuning的自治數(shù)據(jù)庫(kù)目標(biāo);
2、負(fù)責(zé)構(gòu)建數(shù)據(jù)庫(kù)統(tǒng)一技術(shù)風(fēng)險(xiǎn)、業(yè)務(wù)容量和穩(wěn)定性的數(shù)據(jù)模型,以數(shù)據(jù)為支撐驅(qū)動(dòng)診斷、容量、高可用、業(yè)務(wù)最佳實(shí)踐等核心問題的數(shù)據(jù)庫(kù)智能運(yùn)維發(fā)展;
3、獨(dú)立完成大型項(xiàng)目的系統(tǒng)分析設(shè)計(jì),并負(fù)責(zé)核心模塊研發(fā),完成系統(tǒng)Code Review的任務(wù),提供相關(guān)性能以及安全的建議。
【數(shù)據(jù)庫(kù)平臺(tái)前端開發(fā)】
崗位描述:
負(fù)責(zé)螞蟻金服數(shù)據(jù)庫(kù)DevOps平臺(tái)產(chǎn)品的前端研發(fā),通過(guò)專業(yè)的前端技術(shù)能力為整套數(shù)據(jù)庫(kù)產(chǎn)品提供優(yōu)秀的前端解決方案。
【數(shù)據(jù)庫(kù)平臺(tái)后端開發(fā)】
崗位描述:
1、負(fù)責(zé)螞蟻金服數(shù)據(jù)庫(kù)基礎(chǔ)平臺(tái)、容器化、高可用體系等領(lǐng)域的平臺(tái)研發(fā);
2、通過(guò)平臺(tái)化思路,持續(xù)優(yōu)化系統(tǒng)維護(hù)工作效率,把控技術(shù)風(fēng)險(xiǎn),用工程的思路解決遇到的問題;
3、負(fù)責(zé)螞蟻金服數(shù)據(jù)庫(kù)智能平臺(tái)應(yīng)用架構(gòu)設(shè)計(jì)和系統(tǒng)實(shí)施,使系統(tǒng)體系化并具有前瞻性,能快速發(fā)現(xiàn)業(yè)務(wù)風(fēng)險(xiǎn)和及時(shí)管控;獨(dú)立完成大型項(xiàng)目的系統(tǒng)分析設(shè)計(jì),并負(fù)責(zé)核心模塊研發(fā);負(fù)責(zé)完成系統(tǒng)Code Review的任務(wù),確保相關(guān)代碼的有效性和正確性,并能夠通過(guò)Code Review提供相關(guān)性能以及安全的建議。
【數(shù)據(jù)庫(kù)SRE】
崗位描述:
1、負(fù)責(zé)數(shù)據(jù)庫(kù)高可用平臺(tái)體系、基礎(chǔ)設(shè)施的開發(fā)和建設(shè),追求100%的服務(wù)持續(xù)可用、秒級(jí)故障恢復(fù)能力;
2、負(fù)責(zé)數(shù)據(jù)庫(kù)成本優(yōu)化,通過(guò)新技術(shù)、新產(chǎn)品、新方案全方位地優(yōu)化系統(tǒng)性能;
3、負(fù)責(zé)數(shù)據(jù)庫(kù)相關(guān)平臺(tái)和工具產(chǎn)品的建設(shè),持續(xù)改進(jìn)業(yè)務(wù)研發(fā)和系統(tǒng)維護(hù)效率,用工程的思路解決遇到的問題;
4、負(fù)責(zé)數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì),基于高可用、高性能、防資損等視角,與業(yè)務(wù)團(tuán)隊(duì)一起進(jìn)行數(shù)據(jù)架構(gòu)設(shè)計(jì);
5、負(fù)責(zé)公司重大業(yè)務(wù)活動(dòng)(如雙11/雙12)數(shù)據(jù)庫(kù)保障,致力于讓用戶感覺絲般順滑;
6、負(fù)責(zé)數(shù)據(jù)庫(kù)新技術(shù)的探索及落地,如存儲(chǔ)計(jì)算分離、數(shù)據(jù)庫(kù)容器化等。
可直接發(fā)送簡(jiǎn)歷到 qijie.tianqj@alibaba-inc.com,我們等的就是你!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/17875.html
摘要:小螞蟻說(shuō)相信大家對(duì)螞蟻金服自主研發(fā)的金融級(jí)分布式關(guān)系數(shù)據(jù)庫(kù)的故事不再陌生了。文末有彩蛋在普通硬件上提供極限性能的數(shù)據(jù)庫(kù)服務(wù)是完全自主研發(fā)的金融級(jí)分布式關(guān)系數(shù)據(jù)庫(kù),從架構(gòu)上可以通過(guò)擴(kuò)展機(jī)器來(lái)解決集群服務(wù)能力的擴(kuò)展需求。 小螞蟻說(shuō):相信大家對(duì)螞蟻金服自主研發(fā)的金融級(jí)分布式關(guān)系數(shù)據(jù)庫(kù)OceanBase的故事不再陌生了。在剛剛過(guò)去的2018年天貓雙11中,成交額2135億再次創(chuàng)造了新紀(jì)錄,而支...
閱讀 1157·2023-04-26 01:35
閱讀 2512·2021-11-02 14:44
閱讀 7639·2021-09-22 15:38
閱讀 2204·2021-09-06 15:11
閱讀 3719·2019-08-30 15:53
閱讀 795·2019-08-29 16:54
閱讀 630·2019-08-26 13:48
閱讀 1762·2019-08-26 13:47