新一代數據庫技術在雙11中的黑科技

BucVardon 7年前發布 | 38K 次閱讀 數據庫

摘要: 12月13-14日,由云棲社區與阿里巴巴技術協會共同主辦的《2017阿里巴巴雙11技術十二講》順利結束,集中為大家分享了2017雙11背后的黑科技。本文是《新一代數據庫技術在雙11中的應用》演講整理,本文主要從數據庫上云和彈性調度開始談起,重點分享了新一代數據庫以及其在雙11中的應用,包括X-DB、X-KV和ESDB等。

12月13-14日,由云棲社區與阿里巴巴技術協會共同主辦的《2017阿里巴巴雙11技術十二講》順利結束,集中為大家分享了2017雙11背后的黑科技。本文是《新一代數據庫技術在雙11中的應用》演講整理,本文主要從數據庫上云和彈性調度開始談起,重點分享了新一代數據庫以及其在雙11中的應用,包括X-DB、X-KV和ESDB等。內容如下。

分享嘉賓:

張瑞:阿里巴巴研究員,阿里集團數據庫技術團隊負責人,經歷阿里數據庫技術變革歷程,連續六年作為數據庫總負責人參與雙11備戰工作。

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

數據庫如何實現極致彈性能力

數據庫上云

數據庫實現彈性是比較難的,數據庫對性能要求非常高,因此,必須實現數據庫上云,但是如何上云呢?

數據庫上云面臨以下幾個難點:

  1. 數據庫如何上云,并快速構建混合云?
  2. 如何降低虛擬化帶來的性能損耗?
  3. 公有云環境和內部網絡的互通問題。

經過幾年的探索,這些難點都已得到解決。第一,高性能ECS可以和物理機性能一樣,主要使用了SPDK、DPDK技術和NVMe存儲,讓虛擬化損耗非常小,接近物理機;第二,數據庫彈性混合云問題得到解決,可以同時管理云上和云下環境,用戶可以在雙11前把混合云構建起來,支撐雙十一峰值。

數據庫彈性調度

只有上云是遠遠不夠的,還要進行離在線混布。而數據庫實現彈性調度的兩大基礎條件是容器化和計算存儲分離。容器性能需要與物理機持平,存儲計算分離依賴于硬件的發展,25G網絡和高性能分布式存儲盤古讓其成為可能。

數據庫存儲計算分離架構如圖,包括存儲層、網絡層和計算層,存儲使用阿里自研分布式存儲系統-盤古,數據庫計算節點則部署在阿里自研容器(Pouch)中,除此以外,還有存儲管控系統。

為了實現存儲和計算分離,我們在存儲上做了許多工作,包括:

二三異步:第三個副本異步完成,平均延時降低10%以上,4個9 latency降低3-4倍;

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

快速Failover:存儲集群單機FO優化為5s,達到業界領先水平;

高可用部署:單集群四Rack部署,將數據可靠性提升到10個9。

在數據庫方面我們也做了大量優化,最重要的是降低網絡吞吐,以此來降低網絡延遲對于數據庫性能的影響。比如:redo 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,應用可以透明遷移。

TDDL for X-KV優化如下:

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

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

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

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

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

ESDB是基于ES打造的分布式文檔數據庫,我們在ES的基礎上,支持了SQL接口,應用可以從MySQL無縫遷移到ESDB;針對大賣家,提供動態二級散列功能,解決大賣家同步的性能瓶頸。同時還做了大量的性能優化和限流保護等功能。

數據庫監控系統演進

數據庫秒級監控的技術挑戰有很多,具體有以下四點:

  1. 海量數據:平均每秒處理1000萬項監控指標,峰值1400萬;
  2. 復雜的聚合邏輯:地域、機房、單元、業務集群、數據庫主備等多維度數據聚合;
  3. 實時性要求高:監控盯屏需要立即看到上一秒的監控數值;
  4. 計算資源:占用盡可能少的資源進行采集和計算。

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

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

CloudDBA在雙11中的應用

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

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

展望明年雙11,Higher,Faster,Smarter

更高:更高交易創建峰值;

更快:高性能數據庫、高性能存儲;

更智能:CloudDBA發揮更大價值。

 

來自:https://segmentfault.com/a/1190000012540062

 

 本文由用戶 BucVardon 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!