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