摘要:云棲大會北京峰會上,阿里云宣布啟動數據庫開源項目。日前,用戶內測邀請正式啟動。測試報告樣例阿里云關系數據庫服務內核開發和運維團隊負責人,活躍的社區貢獻者丁奇表示,在通用基準測試場景下,版本比官方版本有著的性能提升。
2016 云棲大會·北京峰會上,阿里云宣布啟動 AliSQL 數據庫開源項目。日前,用戶內測邀請正式啟動。
根據阿里云數據庫團隊的規劃,今年 10 月,開發者將可以在阿里云 Code 平臺和 GitHub 網站上下載 AliSQL。
AliSQL
AliSQL 是基于 MySQL 官方版本的一個分支,由阿里云數據庫團隊維護,目前也應用于阿里巴巴集團業務以及阿里云數據庫服務。
該版本在社區版的基礎上做了大量的性能與功能的優化改進。尤其適合電商、云計算以及金融等行業環境。
的 AliSQL 版本不僅從其他開源分支比如:Percona,MariaDB,WebScaleSQL 等社區汲取了精華,也沉淀了阿里巴巴多年在 MySQL 領域的經驗和解決方案。
AliSQL 增加更多監控指標,并針對電商秒殺、物聯網大數據壓縮、金融數據安全等場景提供個性化的解決方案。
測試報告樣例
阿里云關系數據庫服務內核開發和運維團隊負責人,活躍的MySQL社區貢獻者丁奇表示,“在通用基準測試場景下,AliSQL版本比MySQL官方版本有著 70% 的性能提升”。
1測試環境
主機配置
CPU:Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz
OS kernel:Linux 2.6.32
Memory:512 G
Disk:SSD
2AliSQL實例配置
采用 RDS 配置的 8C-16G 的規格進行測試。
具體參數參考 AliSQL-8C-16G.cnf 。
?
3測試腳本
采用 sysbench 標準測試。
測試場景為 update_non_index.lua 。
Sysbench 主要參數:
max-requests=0
max-time=900
oltp_tables_count=20
oltp_table_size=200000
report-interval=10
num-threads=$count
?
4測試對比和結果
本次測試共對比了兩個版本:AliSQL 5.6.32 和 Oracle MySQL 5.6.32 。
測試數據如下:
5測試結論
從以上的基準測試數據可以看到 AliSQL 版本,對比 Oracle 官方 MySQL 版本,有非常高的吞吐量提升,較高達到 1 倍,接下來我們將陸續放出更多特點場景的測試。
丁奇談 AliSQL
開源的 AliSQL 又將為開發者帶來哪些功能?針對于不同行業,AliSQL 做了哪些工作呢?
InfoQ 專訪丁奇,解讀開發者最關心的話題。
InfoQ:AliSQL 是基于 MySQL 官方版本的一個分支,能否簡單介紹下 AliSQL 的歷史?AliSQL 版本在強度和廣度上都經歷了哪些考驗?
丁奇:大概在 2009 年,阿里巴巴集團開始大規模的使用 MySQL 數據庫來持久化業務數據。隨著集團業務的高速發展,官方的 MySQL 版本遇到了不小的挑戰,包括性能、部署、功能、成本等方面。
伴隨著業務的驅動和對源代碼的熟悉,集團開始嘗試在 MySQL 官方的開源版本上進行修改,這就形成了 AliSQL 的雛形。
電商業務的高速發展,對 MySQL 的性能提出了更高的要求。出于節省成本,AliSQL 持續進行了性能優化,同時,多核 CPU 和 SSD 等新硬件的采用,也反過來促進 AliSQL 能夠盡可能利用硬件的紅利。
雙 11 大促不斷刷新記錄,數據庫的穩定性也變得越來越重要,AliSQL 開始定制基于限流、線程池、秒殺等功能的 patch,提升 AliSQL 的穩定性。
針對小微金融業務對數據保護的高要求,AliSQL 定制了適合金融業務的數據保護方案,例如金融云上使用的雙通道日志高可靠方案。
從阿里云 RDS 上線服務開始,阿里云數據庫團隊就遇到了前所未有的挑戰,不同的行業用戶,不同的使用習慣和要求,AliSQL 也迎來了發展更為迅速的時刻,影響力也越來越大。
所以,AliSQL 的版本,是伴隨著業務的發展,一起成長起來的,經歷過雙 11 大促這樣大壓力的考驗,同時也經歷了阿里云各行各業用戶差異化的需求。可以說是身經百戰。
InfoQ:阿里云是開源組織 WebScaleSQL 的第五位成員,與 Facebook、Google、Twitter 和 LinkedIn 團隊共同研發 WebScaleSQL,同時,阿里巴巴還擁有 OceanBase 自研數據庫。能否請介紹下 AliSQL、WebScaleSQL、OceanBase 三者的關系和各自的特點?
丁奇: OceanBase 是 Alibaba 集團自研的分布式數據庫,經歷了集團業務的洗禮,具有通用性,高擴展能力。
WebScaleSQL 是由這五家公司發起的基于 MySQL 官方的一個分支,旨在解決大家在互聯網業務上遇到的問題,是五個成員公司將各自足夠通用的功能提交到一起的集合,每家公司的研發同學都可以提交代碼。實際上每個公司自己生產環境使用的是自己維護的一個分支,因為每個公司都有自己定制化的需求。
AliSQL 同樣基于 MySQL 官方版本,汲取了官方和社區的技術紅利,具有很高的性能和穩定性,并適應不同行業的特點進行了定制。AliSQL 的改進方向主要集中在安全性、穩定性、性能、新功能等方面。
AliSQL 是經過幾年的生產環境、幾萬個用戶實例的實際業務錘煉的。
AliSQL 的一些定制化功能都是為了解決 DBA 維護、業務使用中碰到的實際問題。比如 5.5 以上的版本由于有 metadata lock,DBA 對表加字段等操作可能導致阻塞查詢,進而導致整庫不可服務。我們新增 alter ..wait N .. 方法,保證了操作的安全性。再比如通過提供 set rds_reset_connection 這樣的語句,解決了長連接占用資源和短連接性能問題的矛盾。
InfoQ:AliSQL 在相關報道中提到,“在通用基準測試場景下,AliSQL 版本比 MySQL 官方版本有著 70% 的性能提升。在秒殺場景下,性能提升 100 倍。”能否詳細講解該數據是如何得出的?
丁奇: 通用基準的測試,我們是采用 sysbench 進行的測試,也是公開的標準測試方法, AliSQL 在吞吐能力上,比 MySQL 官方大概 70% 的性能提升。
秒殺場景是一個比較特殊的場景,AliSQL 有專門的定制 patch 針對這種場景的優化,如果沒有限流和排隊,大并發的請求下,系統很容易產生雪崩效應,導致吞吐量急劇下降,而非線性關系。所以,秒殺場景下,在不可預知的業務請求量的時候,類似減庫存這樣的場景,性能下跌非常厲害,而 AliSQL 的秒殺解決方案能夠保證這類場景維持高性能。
InfoQ:電商行業的環境特點是怎樣的?AliSQL 在電商行業環境下的優勢有哪些?或者說,為了更好地符合電商行業的需求,AliSQL 做了哪些性能與功能的優化工作?
丁奇: 電商行業的環境,其實提供了一個非常綜合的場景,在擴展性、穩定性、性能等方面對數據庫都提出了非常高的要求,AliSQL 就是順應著這樣的要求進行的定制版本。
比如應對大量應用集群的線程池功能,秒殺場景的排隊功能,以及 SQL 的限流功能。
比如大寫入量備庫延遲,AliSQL 提供的基于表的并行復制功能,又比如結構化數據的壓縮功能等。
InfoQ:電商秒殺場景有什么特點,為數據庫帶來的挑戰有哪些?AliSQL 針對該場景優化了哪些性能與功能?已經應用過的實際場景有哪些?實際效果如何?
丁奇: 電商的秒殺場景,其實就是減庫存,對數據庫而言,就是對一條記錄的更新,因為事務的特點,單條記錄的更新必須串行完成,但秒殺的特點,就是在某個時刻,大量的并發進行減庫存,這就造成了大量的線程因獲取不到鎖而處在死鎖檢測狀態,消耗了大量的 CPU 資源,最終導致系統無法響應,而引起雪崩效應。
AliSQL 針對這樣的場景,提供了排隊和限流的功能,經過了雙 11 零點時刻高并發請求的考驗,保持了系統的穩定性和持續吞吐能力。
電商業務高峰有兩個對數據庫挑戰比較大的場景:
1.超大并發
MySQL 能夠支持的并發活躍連接數是有上限的,理想情況下是大約(CPU 核心數 ×2)個活躍連接數,當活躍連接數遠超這個值時,性能會急劇下降,導致整個業務不可用。AliSQL 有水位控制,超過一定閾值的活躍連接數,當我們判斷到當前壓力超過數據庫的處理能力時,會主動放棄后到的請求,這樣保證數據庫還能保持很高的能夠正常響應的吞吐量。
2.秒殺場景
在秒殺場景里面有一個減庫存的問題。大量用戶同時搶購同一個商品的時候,需要同時更新商品庫存,這時候 InnoDB 的行鎖加上死鎖檢測機制會導致數據庫 CPU 短時間內被占滿,導致整庫幾乎無法響應。
在 AliSQL 我們有針專門針對秒殺的方案,保證在大量線程同時減庫存時仍能保持很高的 TPS。除了阿里自己的秒殺業務,這個功能同樣適用于搶紅包這樣的業務,已經在 2015、2016 年春節經過大量的業務驗證。
InfoQ:在個性化方面,AliSQL 針對云計算和金融行業做了哪些優化工作?應用過的實際場景有哪些?實際效果如何?AliSQL 在物聯網大數據壓縮、金融數據安全等場景又提供了哪些個性化功能?
丁奇: 在云計算的環境下,用戶的使用場景和方式都千差萬別,為了適應不同的環境,AliSQL 定制了很多個性化的功能,比如,為了保障在線業務的平穩,針對用戶的分析型的 SQL,AliSQL 提供了資源使用限流、全表掃描 buffer pool 不緩存的特性,用戶可以通過設置環境變量或者使用 hint 來方便的使用這些功能,又比如為了加快大表的掃描,提供了邏輯預讀的功能,這些特性,用戶在不同的場景下可以自由選擇。
除了這些,AliSQL 在公有云上針對不同行業定制了很多功能。比如:
游戲行業
我們在 proxy 這一層進行了 AliSQL 的橋接認證,提供防閃斷功能。
物聯網行業
AliSQL 集成了 TokuDB 引擎,提供高壓縮比和大吞吐寫能力。
金融行業
AliSQL 定制了多通道的半同步策略,以及一主兩備的三機房零數據丟失的數據保護級別。
InfoQ:針對不同的應用場景,AliSQL 增加了哪些監控指標?
丁奇: AliSQL 增加了很多監控指標,以幫助用戶或者 DBA 更了解自己的數據庫,比如,AliSQL 針對四個不同的維度的統計:
SQL 維度。增加每個 SQL 執行的開銷統計,除了響應時間,鎖等待等,還包括邏輯讀,物理讀,臨時空間使用等。
對象維度。增加了每個表的 DML 次數,索引的使用情況,幫助用戶理解業務和索引使用效率。
事務維度。增加了每個事務持續的時間,和操作的對象。幫助用戶定位問題。
線程維度。增加了線程的內存使用統計。
InfoQ:阿里巴巴一直在推進開源工作,您認為做好開源工作,公司應該從哪些方面出發?目前,AliSQL的開源計劃是怎樣的?將為開發者具體怎樣的幫助?
丁奇: 我覺得,公司首先是支持開源的,基于開源的協議,有著回饋社區的初衷,并懷著促進社區發展的良好愿景。
AliSQL 開源會保持著一個好的節奏,持續的高質量回饋社區。具體在9月中旬放出 binary, 10 月份會放出源代碼的第一個穩定版本。
開發者可以自由下載使用,并在平臺上進行反饋或者提出建議,后續 AliSQL 也會定期組織論壇,邀請開發者參與進行討論。
我們希望 AliSQL 能夠形成一個活躍的社區,開發者能夠從中受益,也能夠提出需求和改進建議,促進分支持續發展。
歡迎加入本站公開興趣群軟件開發技術群
興趣范圍包括:Java,C/C++,Python,PHP,Ruby,shell等各種語言開發經驗交流,各種框架使用,外包項目機會,學習、培訓、跳槽等交流
QQ群:26931708
Hadoop源代碼研究群
興趣范圍包括:Hadoop源代碼解讀,改進,優化,分布式系統場景定制,與Hadoop有關的各種開源項目,總之就是玩轉Hadoop
QQ群:288410967
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/4187.html
摘要:今天,阿里數據庫事業部研究員張瑞,將為你講述雙數據庫技術不為人知的故事。這十年,阿里巴巴數據庫團隊一直有一個使命推動中國數據庫技術變革。 第十個雙11即將來臨之際,阿里技術推出《十年牧碼記》系列,邀請參與歷年雙11備戰的核心技術大牛,一起回顧阿里技術的變遷。 今天,阿里數據庫事業部研究員張瑞,將為你講述雙11數據庫技術不為人知的故事。在零點交易數字一次次提升的背后,既是數據庫技術的一次...
摘要:淘寶定制基于,是國內第一個優化定制且開源的服務器版虛擬機。數據庫開源數據庫是基于官方版本的一個分支,由阿里云數據庫團隊維護,目前也應用于阿里巴巴集團業務以及阿里云數據庫服務。淘寶服務器是由淘寶網發起的服務器項目。 Java JAVA 研發框架 SOFAStack SOFAStack(Scalable Open Financial Architecture Stack)是用于快速構建金融...
閱讀 3200·2021-11-25 09:43
閱讀 3206·2021-11-23 09:51
閱讀 3518·2019-08-30 13:08
閱讀 1569·2019-08-29 12:48
閱讀 3594·2019-08-29 12:26
閱讀 396·2019-08-28 18:16
閱讀 2561·2019-08-26 13:45
閱讀 2428·2019-08-26 12:15