《性能比MySQL提升70%,秒殺場(chǎng)景提升百倍?阿里云即將開源的AliSQL什么來頭?》要點(diǎn):
本文介紹了性能比MySQL提升70%,秒殺場(chǎng)景提升百倍?阿里云即將開源的AliSQL什么來頭?,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
“
阿里云近日宣布啟動(dòng)AliSQL數(shù)據(jù)庫開源項(xiàng)目.AliSQL是基于MySQL官方版本的一個(gè)分支,由阿里云數(shù)據(jù)庫團(tuán)隊(duì)維護(hù),目前也應(yīng)用于阿里巴巴集團(tuán)業(yè)務(wù)以及阿里云數(shù)據(jù)庫服務(wù).該版本性能優(yōu)于社區(qū)版MySQL 70%左右,可贊助中小企業(yè)和開發(fā)者提升數(shù)據(jù)運(yùn)營(yíng)能力.
配景介紹
8月9日,在2016云棲大會(huì)·北京峰會(huì)上,阿里云宣布啟動(dòng)AliSQL數(shù)據(jù)庫開源項(xiàng)目.預(yù)計(jì)在9月份邀請(qǐng)部門用戶內(nèi)測(cè),預(yù)計(jì)在10月份,開發(fā)者可在阿里云Code平臺(tái)和GitHub網(wǎng)站上可以下載AliSQL,感興趣的讀者可以關(guān)注.
AliSQL是基于MySQL官方版本的一個(gè)分支,由阿里云數(shù)據(jù)庫團(tuán)隊(duì)維護(hù),目前也應(yīng)用于阿里巴巴集團(tuán)業(yè)務(wù)以及阿里云數(shù)據(jù)庫服務(wù).該版本在社區(qū)版的基礎(chǔ)上做了大量的性能與功能的優(yōu)化改進(jìn).尤其適合電商、云計(jì)算以及金融等行業(yè)環(huán)境.該版本性能優(yōu)于社區(qū)版MySQL 70%左右,可贊助中小企業(yè)和開發(fā)者提升數(shù)據(jù)運(yùn)營(yíng)能力.
阿里云數(shù)據(jù)庫資深專家丁奇介紹,AliSQL版本在強(qiáng)度和廣度上都經(jīng)歷了極大的考驗(yàn).最新的AliSQL版本不僅從其他開源分支比如:Percona,MariaDB,WebScaleSQL等社區(qū)汲取精華,也沉淀了阿里巴巴多年在MySQL領(lǐng)域的經(jīng)驗(yàn)和解決方案.AliSQL增加更多監(jiān)控指標(biāo),并針對(duì)電商秒殺、物聯(lián)網(wǎng)大數(shù)據(jù)壓縮、金融數(shù)據(jù)平安等場(chǎng)景提供個(gè)性化的解決方案.
丁奇表現(xiàn),“在通用基準(zhǔn)測(cè)試場(chǎng)景下,AliSQL版本比MySQL官方版本有著 70% 的性能提升.在秒殺場(chǎng)景下,性能提升 100倍”.這樣的性能提升數(shù)據(jù)是如何得出的?即將開源的AliSQL又將為開發(fā)者帶來哪些功能?針對(duì)于不同行業(yè),AliSQL做了哪些工作呢?
老司機(jī)簡(jiǎn)介
丁奇,阿里云關(guān)系數(shù)據(jù)庫服務(wù)內(nèi)核開發(fā)和運(yùn)維團(tuán)隊(duì)負(fù)責(zé)人,活躍的MySQL社區(qū)貢獻(xiàn)者.專注于數(shù)據(jù)存儲(chǔ)系統(tǒng)、MySQL源碼研究和改良、MySQL性能優(yōu)化和功能改良.
AliSQL的汗青
大概在2009年,阿里巴巴集團(tuán)開始大規(guī)模的使用MySQL數(shù)據(jù)庫來持久化業(yè)務(wù)數(shù)據(jù).隨著集團(tuán)業(yè)務(wù)的高速發(fā)展,官方的MySQL版本遇到了不小的挑戰(zhàn),包含性能、部署、功能、成本等方面.
隨同著業(yè)務(wù)的驅(qū)動(dòng)和對(duì)源代碼的熟悉,集團(tuán)開始嘗試在MySQL官方的開源版本上進(jìn)行修改,這就形成了AliSQL的雛形.
電商業(yè)務(wù)的高速發(fā)展,對(duì)MySQL的性能提出了更高的要求.出于節(jié)省本錢,AliSQL持續(xù)進(jìn)行了性能優(yōu)化,同時(shí),多核CPU和SSD等新硬件的采用,也反過來促進(jìn)AliSQL能夠盡可能利用硬件的紅利.
雙11大促賡續(xù)刷新記錄,數(shù)據(jù)庫的穩(wěn)定性也變得越來越重要,AliSQL開始定制基于限流、線程池、秒殺等功能的patch,提升AliSQL的穩(wěn)定性.
針對(duì)小微金融業(yè)務(wù)對(duì)數(shù)據(jù)掩護(hù)的高要求,AliSQL定制了適合金融業(yè)務(wù)的數(shù)據(jù)掩護(hù)方案,例如金融云上使用的雙通道日志高可靠方案.
從阿里云RDS上線服務(wù)開始,阿里云數(shù)據(jù)庫團(tuán)隊(duì)就遇到了前所未有的挑戰(zhàn),分歧的行業(yè)用戶,分歧的使用習(xí)慣和要求,AliSQL也迎來了發(fā)展最為迅速的時(shí)刻,影響力也越來越大.
所以,AliSQL的版本,是隨同著業(yè)務(wù)的發(fā)展,一起成長(zhǎng)起來的,經(jīng)歷過雙11大促這樣大壓力的考驗(yàn),同時(shí)也經(jīng)歷了阿里云各行各業(yè)用戶差異化的需求.可以說是身經(jīng)百戰(zhàn).
與其他產(chǎn)物的關(guān)系、各自特點(diǎn)
阿里云是開源組織 WebScaleSQL 的第五位成員,與Facebook、Google、Twitter和LinkedIn團(tuán)隊(duì)配合研發(fā)WebScaleSQL,同時(shí),阿里巴巴還擁有OceanBase 自研數(shù)據(jù)庫.AliSQL、WebScaleSQL、OceanBase三者的關(guān)系和各自的特點(diǎn)是怎樣的?
OceanBase是Alibaba集團(tuán)自研的分布式數(shù)據(jù)庫,經(jīng)歷了集團(tuán)業(yè)務(wù)的洗禮,具有通用性,高擴(kuò)展才能.
WebScaleSQL是由這五家公司發(fā)起的基于MySQL官方的一個(gè)分支,旨在辦理大家在互聯(lián)網(wǎng)業(yè)務(wù)上遇到的問題,是五個(gè)成員公司將各自足夠通用的功能提交到一起的集合,每家公司的研發(fā)同學(xué)都可以提交代碼.實(shí)際上每個(gè)公司自己生產(chǎn)環(huán)境使用的是自己維護(hù)的一個(gè)分支,因?yàn)槊總€(gè)公司都有自己定制化的需求.
AliSQL同樣基于MySQL官方版本,汲取了官方和社區(qū)的技術(shù)紅利,具有很高的性能和穩(wěn)定性,并適應(yīng)不同行業(yè)的特點(diǎn)進(jìn)行了定制.AliSQL的改進(jìn)方向主要集中在平安性、穩(wěn)定性、性能、新功能等方面.
AliSQL是顛末幾年的生產(chǎn)環(huán)境、幾萬個(gè)用戶實(shí)例的實(shí)際業(yè)務(wù)錘煉的.
AliSQL的一些定制化功能都是為了解決DBA維護(hù)、業(yè)務(wù)使用中碰到的實(shí)際問題.比如5.5以上的版本由于有metadata lock,DBA對(duì)表加字段等操作可能導(dǎo)致阻塞查詢,進(jìn)而導(dǎo)致整庫不可服務(wù).我們新增alter ..wait N ..方法,保證了操作的平安性.再比如通過提供 set rds_reset_connection這樣的語句,解決了長(zhǎng)連接占用資源和短連接性能問題的矛盾.
性能晉升的數(shù)據(jù)如何得出?
AliSQL在相關(guān)報(bào)道中提到,“在通用基準(zhǔn)測(cè)試場(chǎng)景下,AliSQL 版本比 MySQL 官方版本有著 70% 的性能晉升.在秒殺場(chǎng)景下,性能晉升 100 倍.”
通用基準(zhǔn)的測(cè)試,我們是采用sysbench進(jìn)行的測(cè)試,也是公開的標(biāo)準(zhǔn)測(cè)試辦法,AliSQL在吞吐能力上,比MySQL官方大概70%的性能提升.
秒殺場(chǎng)景是一個(gè)比較特殊的場(chǎng)景,AliSQL有專門的定制patch針對(duì)這種場(chǎng)景的優(yōu)化,如果沒有限流和排隊(duì),大并發(fā)的哀求下,系統(tǒng)很容易產(chǎn)生雪崩效應(yīng),導(dǎo)致吞吐量急劇下降,而非線性關(guān)系.
所以,秒殺場(chǎng)景下,在不可預(yù)知的業(yè)務(wù)哀求量的時(shí)候,類似減庫存這樣的場(chǎng)景,性能下跌非常厲害,而AliSQL的秒殺解決方案能夠保證這類場(chǎng)景維持高性能.
AliSQL與電商行業(yè)、秒殺場(chǎng)景
電商行業(yè)的環(huán)境,其實(shí)提供了一個(gè)非常綜合的場(chǎng)景,在擴(kuò)展性、穩(wěn)定性、性能等方面對(duì)數(shù)據(jù)庫都提出了非常高的要求,AliSQL便是順應(yīng)著這樣的要求進(jìn)行的定制版本.
好比應(yīng)對(duì)大量應(yīng)用集群的線程池功能,秒殺場(chǎng)景的排隊(duì)功能,以及sql的限流功能.
好比大寫入量備庫延遲,AliSQL提供的基于表的并行復(fù)制功能. 又好比結(jié)構(gòu)化數(shù)據(jù)的壓縮功能等.
電商的秒殺場(chǎng)景,其實(shí)就是減庫存,對(duì)數(shù)據(jù)庫而言,就是對(duì)一條記錄的更新,因?yàn)槭聞?wù)的特點(diǎn),單條記錄的更新必需串行完成,但秒殺的特點(diǎn),就是在某個(gè)時(shí)刻,大量的并發(fā)進(jìn)行減庫存,這就造成了大量的線程因獲取不到鎖而處在死鎖檢測(cè)狀態(tài),消耗了大量的CPU資源,最終導(dǎo)致系統(tǒng)無法響應(yīng),而引起雪崩效應(yīng).
AliSQL針對(duì)這樣的場(chǎng)景,提供了排隊(duì)和限流的功能,經(jīng)過了雙11零點(diǎn)時(shí)刻高并發(fā)哀求的考驗(yàn),保持了系統(tǒng)的穩(wěn)定性和持續(xù)吞吐能力.
電商業(yè)務(wù)高峰有兩個(gè)對(duì)數(shù)據(jù)庫挑戰(zhàn)比擬大的場(chǎng)景:
1、超年夜并發(fā)
MySQL能夠支持的并發(fā)活躍連接數(shù)是有上限的,理想情況下是大約(CPU核心數(shù)乘以2)個(gè)活躍連接數(shù),當(dāng)活躍連接數(shù)遠(yuǎn)超這個(gè)值時(shí),性能會(huì)急劇下降,導(dǎo)致整個(gè)業(yè)務(wù)不可用.AliSQL有水位控制,超過一定閾值的活躍連接數(shù),當(dāng)我們判斷到當(dāng)前壓力超過數(shù)據(jù)庫的處理能力時(shí),會(huì)主動(dòng)放棄后到的哀求,這樣保證數(shù)據(jù)庫還能保持很高的能夠正常響應(yīng)的吞吐量.
2、秒殺場(chǎng)景
在秒殺場(chǎng)景里面有一個(gè)減庫存的問題.大量用戶同時(shí)搶購?fù)粋€(gè)商品的時(shí)候,必要同時(shí)更新商品庫存,這時(shí)候InnoDB的行鎖加上死鎖檢測(cè)機(jī)制會(huì)導(dǎo)致數(shù)據(jù)庫CPU短時(shí)間內(nèi)被占滿,導(dǎo)致整庫幾乎無法響應(yīng).
在AliSQL我們有針專門針對(duì)秒殺的方案,保證在大量線程同時(shí)減庫存時(shí)仍能堅(jiān)持很高的TPS.除了阿里自己的秒殺業(yè)務(wù),這個(gè)功能同樣適用于搶紅包這樣的業(yè)務(wù),已經(jīng)在2015、2016年春節(jié)經(jīng)過大量的業(yè)務(wù)驗(yàn)證.
AliSQL的個(gè)性化優(yōu)化
在云計(jì)算的環(huán)境下,用戶的使用場(chǎng)景和方式都千差萬別,為了適應(yīng)分歧的環(huán)境,AliSQL定制了很多個(gè)性化的功能.
比如,為了保障在線業(yè)務(wù)的安穩(wěn),針對(duì)用戶的分析型的SQL,AliSQL提供了資源使用限流、全表掃描buffer pool不緩存的特性,用戶可以通過設(shè)置環(huán)境變量或者使用hint來方便的使用這些功能,又比如為了加快大表的掃描,提供了邏輯預(yù)讀的功能, 這些特性,用戶在不同的場(chǎng)景下可以自由選擇.
除了這些,AliSQL在公有云上針對(duì)不同行業(yè)定制了很多功能.好比:
游戲行業(yè)
我們?cè)趐roxy這一層進(jìn)行了AliSQL的橋接認(rèn)證,提供防閃斷功效.
物聯(lián)網(wǎng)行業(yè)
AliSQL集成了TokuDB引擎,提供高壓縮比和大吞吐寫才能.
金融行業(yè)
AliSQL定制了多通道的半同步策略,以及一主兩備的三機(jī)房零數(shù)據(jù)丟失的數(shù)據(jù)掩護(hù)級(jí)別.
針對(duì)分歧應(yīng)用場(chǎng)景增加了哪些監(jiān)控指標(biāo)?
AliSQL增加了很多監(jiān)控指標(biāo),以贊助用戶或者DBA更了解自己的數(shù)據(jù)庫,比如,AliSQL針對(duì)四個(gè)不同的維度的統(tǒng)計(jì):
SQL維度.增加每個(gè)SQL執(zhí)行的開銷統(tǒng)計(jì),除了響應(yīng)時(shí)間,鎖等待等,還包含邏輯讀,物理讀,臨時(shí)空間使用等
對(duì)象維度.增加了每個(gè)表的DML次數(shù),索引的使用情況,贊助用戶理解業(yè)務(wù)和索引使用效率.
事務(wù)維度.增加了每個(gè)事務(wù)持續(xù)的時(shí)間,和操作的對(duì)象.贊助用戶定位問題
線程維度.增長(zhǎng)了線程的內(nèi)存使用統(tǒng)計(jì)
AliSQL的開源方案
我覺得,公司首先是支持開源的,基于開源的協(xié)議,有著回饋社區(qū)的初志,并懷著促進(jìn)社區(qū)發(fā)展的良好愿景.
AliSQL開源會(huì)堅(jiān)持著一個(gè)好的節(jié)奏,持續(xù)的高質(zhì)量回饋社區(qū).具體在9月中旬放出binary, 10月份會(huì)放出源代碼的第一個(gè)穩(wěn)定版本.
開發(fā)者可以自由下載使用,并在平臺(tái)上進(jìn)行反饋或者提出建議,后續(xù)AliSQL也會(huì)定期組織論壇,邀請(qǐng)開發(fā)者介入進(jìn)行討論.
我們希望AliSQL能夠形成一個(gè)活躍的社區(qū),開發(fā)者能夠從中受益,也能夠提出需求和改進(jìn)建議,促進(jìn)分支連續(xù)發(fā)展.
阿里云code平臺(tái)地址:
https://code.aliyun.com/users/sign_in
AliSQL的真實(shí)性能數(shù)據(jù)畢竟如何,還有待開源之后開發(fā)者們使用檢驗(yàn).
▽
天貓互動(dòng)創(chuàng)意年夜賽報(bào)名啦!
創(chuàng)意無限,想要得到鼓勵(lì)?50萬獎(jiǎng)金等你來領(lǐng)!
技術(shù)領(lǐng)先,希望更多肯定?近2億用戶等待你的作品!
產(chǎn)物優(yōu)秀,計(jì)劃拓展市場(chǎng)?百萬品牌等你合作簽約!
天貓互動(dòng)創(chuàng)意大賽,互動(dòng)技術(shù)形式不限,專業(yè)評(píng)審團(tuán)點(diǎn)評(píng),豐厚獎(jiǎng)金誘惑,獲獎(jiǎng)團(tuán)隊(duì)可獲得完整商業(yè)方案支持,成為天貓歷久合作伙伴.
戳瀏覽原文,即刻報(bào)名!
喜歡咱們的會(huì)點(diǎn)贊,愛咱們的會(huì)分享!
維易PHP培訓(xùn)學(xué)院每天發(fā)布《性能比MySQL提升70%,秒殺場(chǎng)景提升百倍?阿里云即將開源的AliSQL什么來頭?》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/8698.html