天天看點

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

阿裡資料庫技術團隊負責人張瑞

張瑞:雙11是一場技術大練兵,是網際網路界的超級工程。需要做到支撐盡可能高的零點峰值,給使用者最好的體驗;也要做到成本盡可能低,要求極緻的彈性能力;還要做到整體系統的穩定。

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

資料庫如何實作極緻彈性能力?

資料庫上雲

大家都知道,資料庫實作彈性能力是比較困難的,一方面是因為資料庫對性能要求非常高,另一方面是需要進行大量資料的搬遷,成本很高。資料庫彈性的第一個方向是資料庫上雲,通過雲的彈性能力來解決資料庫的資源問題。

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

資料庫上雲面臨以下幾個難點:

資料庫如何快速上雲,建構混合雲?

如何降低虛拟化帶來的性能損耗?

公有雲環境和内部網絡的互通問題。

經過幾年的探索,這些難點都已得到解決。第一,資料庫使用了高性能ECS,通過使用SPDK、DPDK技術和NVMe存儲,可以讓虛拟化損耗非常小,接近實體機;第二,我們建設了一套資料庫混合雲管理系統,可以同時管理雲上和雲下環境,在雙11前快速把混合雲建構起來,支撐雙十一。第三,我們通過VPC網絡連接配接阿裡内部和公有雲的網絡,解決了混合雲場景下的網絡互聯問題。

資料庫彈性排程

使用雲的資源還不夠,為了實作更加極緻的彈性能力,我們通過離線上混部技術,可以讓資料庫使用離線叢集的計算資源,最大程度的降低成本。為了實作離線上混部技術,有兩大基礎條件:第一是容器化,通過容器實作了計算節點的資源隔離和統一排程,第二是計算存儲分離,它是資料庫彈性排程能力的基礎。非常幸運的是,這幾年技術的發展讓存儲計算分離成為可能,比如:25G高速網絡、RDMA技術,高性能分布式存儲等。

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

資料庫存儲計算分離架構如圖,包括存儲層、網絡層和計算層,存儲使用阿裡自研分布式存儲系統-盤古,資料庫計算節點則部署在阿裡自研容器(Pouch)中,通過25G網絡與存儲節點連接配接。

為了實作資料庫存儲和計算分離,我們在分布式存儲-盤古上做了非常多的優化,比如:

響應延時:單路讀寫響應延時0.4ms,RDMA網絡響應延時小于0.2ms;

二三異步:第三個資料副本異步完成,極大提升了延時的穩定性;

QoS流控:根據前台業務負載情況控制背景IO流量,保證寫入性能;

快速Failover:存儲叢集單機failover優化為5秒,達到業界領先水準;

高可用部署:單叢集四Rack部署,将資料可靠性提升到10個9。

同時,在資料庫方面我們也做了大量優化,最重要的是降低計算節點和存儲節點的網絡傳輸量,以此來降低網絡延遲對于資料庫性能的影響。第一是redo log sync優化,将資料庫吞吐提升了100%。第二是由于盤古支援原子寫功能,是以我們關閉了資料庫的Double Write Buffer,高壓力下資料庫吞吐提升20%,網絡帶寬節省了100%。

雙11資料庫混部技術

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

容器化和存儲計算分離,使得資料庫無狀态化,具備排程能力。在雙11高峰,通過将共享存儲挂載到不同的計算叢集(離線叢集),實作資料庫的快速彈性。

阿裡新一代資料庫技術

阿裡最早是商業資料庫,然後我們做去IOE,研發出阿裡MySQL分支AliSQL和分布式中間件TDDL。2016年,我們開始研發阿裡新一代資料庫技術,我們把它命名為X-DB,X代表追求極限性能,挑戰無限可能的含義。

阿裡的業務場景對于資料庫有很高的要求:

資料要可擴充;

持續可用、資料要強一緻;

資料量大、重要程度高;

資料有明顯的生命周期特性,冷熱資料特點鮮明;

交易、庫存,支付等業務,操作邏輯簡單,要求高性能。

是以,定義新一代資料庫就要包含幾個重要特點:具備資料強一緻、全球部署能力;内置分布式、高性能、高可用能力;具備自動資料生命周期管理能力。

X-DB架構圖

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

X-DB架構如圖,引入Paxos分布式一緻性協定解決問題;可異地部署,雖然網絡延時增加,但能夠保持高性能(吞吐),在同城三節點部署模式下,性能與單機持平,同時具備網絡抖動的高容忍性。

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

X-DB核心技術之一:高性能Paxos基礎庫X-Paxos是實作三節點能力的核心,可實作跨AZ、Region的資料強一緻能力,實作5個9以上的持續可用率。

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

X-DB核心技術之二:Batching & Pipelining。X-DB在事務送出時,必須保證日志在資料庫節點的多數派收到并送出,這是保證資料強一緻基礎,由于事務在送出時必須需要跨網絡,這一定會導緻延時增加,要保證高延時下的吞吐是非常困難的。Batching & Pipelining技術保證盡可能批量送出,資料可以亂序接收和确認,最終保證日志順序送出。可以在高延時的情況下,保持很高的吞吐能力。

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

X-DB核心技術之三:異步化送出,資料庫線程池在送出時會等待,為了最大程度提升性能,我們采用了異步化送出技術,最大可能保證資料庫線程池可以高效工作。通過這些技術保證X-DB在三節點模式下的高吞吐量。

X-DB與MySQL Group Replication對比測試

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

我們與Oracle官方的Group Replication作對比。在三節點同IDC部署模式下,sysbench标準化測試。Insert場景,我們可以做到MySQL官方的2.4倍,響應時間比官方低。

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

在異地部署模式下,sysbench标準化測試。Insert場景,X-DB(5.04萬)性能優勢特别明顯,是MySQL GR(0.85萬)的5.94倍,響應延時X-DB(58ms)是MySQL GR(150ms)的38%。

典型應用場景

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

同城跨AZ部署替代傳統主備模式,我們把原來主備模式變成三節點,解決跨AZ資料品質問題和高可用問題。跨AZ資料強一緻,單AZ不可用資料零丢失、單AZ不可用秒級切換、切換自封閉,無第三方元件。相對主備模式零成本增加。

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

跨Region部署,用更底層的資料庫技術解決異地多活問題,三地六副本(主備模式)降低為三地五副本(三地五節點四資料),對于業務來說,可以享受跨Region資料強一緻,單個Region不可用零資料丢失;跨Region強同步下依然保持高性能;切換政策靈活,可以優先切換同Region,也可定制跨Region切換順序。資料庫在雙11中的黑科技

X-KV在雙11中的應用

X-KV是基于官方MySQL Memcached plugin的增強,今年我們做了大幅度的改進,支援更多資料類型,支援非唯一索引、組合索引,multi get功能,還支援Online Schema change。最大變化是通過TDDL支援SQL轉換。對于業務方,X-KV優勢是超高讀取性能,資料強一緻,減少應用響應時間,降低了成本,同時因為支援SQL,應用可以透明遷移,使用成本大幅降低。

TDDLfor X-KV實作了如下功能:

獨立的連接配接池:SQL和KV連接配接池互相獨立;變更時,兩套連接配接池保持協同一緻;應用可以快速在兩套接口之間切換。

優化的KV通信協定:不再需要分隔符,協定實作。

結果集自動類型轉換:字元串自動轉換為MySQL類型。

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

交易賣家庫的性能瓶頸解決方案

随着雙11交易量增長,近兩年交易買家庫和賣家庫的同步延時一直比較大,導緻商戶不能及時處理雙11訂單;且賣家庫有大量複雜的查詢,性能差。我們曾經通過為大賣家設定獨立隊列、同步鍊路合并操作和賣家庫限流等進行優化,但仍然沒有完全解決問題。

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

ESDB是基于ES打造的分布式文檔資料庫,我們在ElasticSearch的基礎上,支援了SQL接口,應用可以從MySQL無縫遷移到ESDB;針對大賣家,提供動态二級散列功能,徹底解決了資料同步的性能瓶頸,而且ESDB還可以提供複雜的查詢能力。

資料庫監控系統演進

資料庫監控系統的技術挑戰具體有以下四點:

海量資料:平均每秒1000萬項監控名額,峰值1400萬;

複雜的聚合邏輯:地域、機房、單元、業務叢集、資料庫主備等多元度資料聚合;

實時性要求高:監控盯屏需要立即看到上一秒的監控數值;

計算資源:占用盡可能少的資源進行采集和計算。

整個鍊路經曆三代架構:第一代Agent + MySQL;第二代Agent + datahub + 分布式NoSQL;第三代Agent + 實時計算引擎 + HiTSDB

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

HiTSDB是阿裡自研的時序型資料庫,非常适合存儲海量的監控類資料。通過實時計算引擎将秒級性能資料、全量SQL運作狀況進行預先處理後,存儲在HiTSDB中。通過第三代架構,實作了雙11高峰不降低的秒級監控能力,這對我們了解系統運作狀況、診斷問題是非常有幫助的。

CloudDBA在雙11中的應用

阿裡擁有業界最富有經驗的DBA,海量的性能診斷資料。我們的目标是把阿裡DBA的經驗、大資料和機器智能技術結合起來,目标是三年後不再需要DBA做資料庫診斷、優化等工作,而是讓機器來完成資料庫的智能化管理。我們認為自診斷、自優化、自運維是未來資料庫技術發展的重要方向。

直擊阿裡新一代資料庫技術:如何實作極緻彈性能力?

CloudDBA在今年雙11也做了一些探索,通過對全量SQL以及監控資料的分析,我們實作了SQL自動優化(慢SQL調優)、空間優化(無用表無用索引分析)、通路模型優化(SQL和KV)和存儲空間增長預測等功能。

展望明年雙11

展望明年的雙11,我總結了三個關鍵詞:Higher,Faster,Smarter

Higher意味着更高的交易峰值,背後其實是更低成本的追求,用極緻的彈性能力支援更高的峰值,給使用者最好的購物體驗,希望有一天可以做到不限流。

Faster是我們技術人一直不變的追求,更快的應用系統、更快的資料庫,更快的存儲,更快的硬體等等。天下武功,唯快不破。

Smarter是機器智能在雙11中的應用,不管是資料庫、排程、個性化推薦甚至客服等方面,我們都希望機器智能可以得到更多的應用,産生更大的技術突破。

原文釋出時間為:2017-12-27

本文作者:張瑞