中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

新一代數(shù)據(jù)庫技術(shù)在雙11中的黑科技

2018-07-20    來源:編程學(xué)習(xí)網(wǎng)

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

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

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

分享嘉賓:

張瑞:阿里巴巴研究員,阿里集團數(shù)據(jù)庫技術(shù)團隊負責(zé)人,經(jīng)歷阿里數(shù)據(jù)庫技術(shù)變革歷程,連續(xù)六年作為數(shù)據(jù)庫總負責(zé)人參與雙11備戰(zhàn)工作。

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

數(shù)據(jù)庫如何實現(xiàn)極致彈性能力

數(shù)據(jù)庫上云

數(shù)據(jù)庫實現(xiàn)彈性是比較難的,數(shù)據(jù)庫對性能要求非常高,因此,必須實現(xiàn)數(shù)據(jù)庫上云,但是如何上云呢?

數(shù)據(jù)庫上云面臨以下幾個難點:

  1. 數(shù)據(jù)庫如何上云,并快速構(gòu)建混合云?
  2. 如何降低虛擬化帶來的性能損耗?
  3. 公有云環(huán)境和內(nèi)部網(wǎng)絡(luò)的互通問題。

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

數(shù)據(jù)庫彈性調(diào)度

只有上云是遠遠不夠的,還要進行離在線混布。而數(shù)據(jù)庫實現(xiàn)彈性調(diào)度的兩大基礎(chǔ)條件是容器化和計算存儲分離。容器性能需要與物理機持平,存儲計算分離依賴于硬件的發(fā)展,25G網(wǎng)絡(luò)和高性能分布式存儲盤古讓其成為可能。

數(shù)據(jù)庫存儲計算分離架構(gòu)如圖,包括存儲層、網(wǎng)絡(luò)層和計算層,存儲使用阿里自研分布式存儲系統(tǒng)-盤古,數(shù)據(jù)庫計算節(jié)點則部署在阿里自研容器(Pouch)中,除此以外,還有存儲管控系統(tǒng)。

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

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

QoS流控:根據(jù)前臺業(yè)務(wù)負載情況控制后臺IO流量,保證寫入性能;

快速Failover:存儲集群單機FO優(yōu)化為5s,達到業(yè)界領(lǐng)先水平;

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

在數(shù)據(jù)庫方面我們也做了大量優(yōu)化,最重要的是降低網(wǎng)絡(luò)吞吐,以此來降低網(wǎng)絡(luò)延遲對于數(shù)據(jù)庫性能的影響。比如:redo sync優(yōu)化,吞吐提升100%;由于盤古存儲支持原子寫,所以我們關(guān)閉Double Write Buffer,高壓力下吞吐提升20%,帶寬節(jié)省100%。

雙11數(shù)據(jù)庫混布技術(shù)

容器化和存儲計算分離,使得數(shù)據(jù)庫無狀態(tài)化,具備調(diào)度能力。在雙11高峰,通過將共享存儲掛載到不同的計算集群(離線集群),實現(xiàn)數(shù)據(jù)庫的快速彈性。

阿里新一代數(shù)據(jù)庫技術(shù)

阿里最早是商業(yè)數(shù)據(jù)庫,然后我們做去IOE,研發(fā)出阿里MySQL分支AliSQL和分布式中間件TDDL。2016年,我們開始思考新一代數(shù)據(jù)庫技術(shù)X-DB,X代表追求極限性能,挑戰(zhàn)無限可能的含義。

阿里的業(yè)務(wù)場景對于數(shù)據(jù)庫有很高的要求:

數(shù)據(jù)要可擴展;

持續(xù)可用、數(shù)據(jù)要強一致;

數(shù)據(jù)量大、重要程度高;

數(shù)據(jù)有明顯的生命周期特性,冷熱數(shù)據(jù)特點鮮明;

交易、庫存,支付等業(yè)務(wù),操作邏輯簡單,要求高性能。

因此,定義新一代數(shù)據(jù)庫就要包含幾個重要特點:具備數(shù)據(jù)強一致、全球部署能力;內(nèi)置分布式、高性能、高可用能力;具備自動數(shù)據(jù)生命周期管理能力。

X-DB架構(gòu)圖

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

X-DB核心技術(shù)之一:高性能Paxos基礎(chǔ)庫X-Paxos是實現(xiàn)三節(jié)點能力的核心,可實現(xiàn)跨AZ、Region的數(shù)據(jù)強一致能力,實現(xiàn)5個9以上的持續(xù)可用率。

X-DB核心技術(shù)之二:Batching & Pipelining。X-DB在事務(wù)提交時,必須保證日志在數(shù)據(jù)庫節(jié)點的多數(shù)派收到并提交,這是保證數(shù)據(jù)強一致基礎(chǔ),由于事務(wù)在提交時必須需要跨網(wǎng)絡(luò),這一定會導(dǎo)致延時增加,要保證高延時下的吞吐是非常困難的。Batching & Pipelining技術(shù)保證盡可能批量提交,數(shù)據(jù)可以亂序接收和確認,最終保證日志順序提交?梢栽诟哐訒r的情況下,保持很高的吞吐能力。

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

X-DB與MySQL Group Replication的對比測試

我們與Oracle官方的Group Replication作對比。在三節(jié)點同IDC部署模式下,sysbench標(biāo)準(zhǔn)化測試。Insert場景,我們可以做到MySQL官方的2.4倍,響應(yīng)時間比官方低。

在三節(jié)點三地部署模式下,sysbench標(biāo)準(zhǔn)化測試。Insert場景,X-DB(5.04萬)性能優(yōu)勢特別明顯,是MySQL GR(0.85萬)的5.94倍,響應(yīng)延時X-DB(58ms)是MySQL GR(150ms)的38%。

典型應(yīng)用場景

同城跨AZ部署替代傳統(tǒng)主備模式,我們把原來主備模式變成三節(jié)點,解決跨AZ數(shù)據(jù)質(zhì)量問題和高可用問題。跨AZ數(shù)據(jù)強一致,單AZ不可用數(shù)據(jù)零丟失、單AZ不可用秒級切換、切換自封閉,無第三方組件。相對主備模式零成本增加。

跨Region部署,用更底層的數(shù)據(jù)庫技術(shù)解決異地多活問題,三地六副本(主備模式)降低為三地四副本(三地五節(jié)點四數(shù)據(jù)),對于業(yè)務(wù)來說,可以享受跨Region數(shù)據(jù)強一致,單個Region不可用零數(shù)據(jù)丟失;跨Region強同步下依然保持高性能;切換策略靈活,可以優(yōu)先切換同Region,也可定制跨Region切換順序。

數(shù)據(jù)庫在雙11中的黑科技

X-KV在雙11中的應(yīng)用

X-KV是基于MySQL Memcached plugin的增強,今年我們做了大幅度的改進,支持更多數(shù)據(jù)類型,支持非唯一索引、組合索引,支持Multi get 功能,支持Online Schema change,最大變化是通過TDDL支持SQL轉(zhuǎn)換。對于業(yè)務(wù)方,X-KV優(yōu)勢是超高讀取性能,數(shù)據(jù)強一致;減少應(yīng)用響應(yīng)時間,降低成本;同時支持SQL,應(yīng)用可以透明遷移。

TDDL for X-KV優(yōu)化如下:

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

優(yōu)化的KV通信協(xié)議:不再需要分隔符,協(xié)議實現(xiàn)。

結(jié)果集自動類型轉(zhuǎn)換:字符串自動轉(zhuǎn)換為MySQL類型。

交易賣家?guī)斓男阅芷款i解決方案

隨著雙11交易量增長,近兩年交易賣家?guī)斓耐窖訒r一直比較大,導(dǎo)致商戶不能及時處理雙11訂單;且賣家?guī)煊写罅繌?fù)雜的查詢,性能差。我們曾經(jīng)通過為大賣家設(shè)置獨立隊列、同步鏈路合并操作和賣家?guī)煜蘖鞯冗M行優(yōu)化,但仍然沒有完全解決問題。

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

數(shù)據(jù)庫監(jiān)控系統(tǒng)演進

數(shù)據(jù)庫秒級監(jiān)控的技術(shù)挑戰(zhàn)有很多,具體有以下四點:

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

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

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

CloudDBA在雙11中的應(yīng)用

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

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

展望明年雙11,Higher,F(xiàn)aster,Smarter

更高:更高交易創(chuàng)建峰值;

更快:高性能數(shù)據(jù)庫、高性能存儲;

更智能:CloudDBA發(fā)揮更大價值。

 

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

 

標(biāo)簽: idc Mysql 大數(shù)據(jù) 公有云 互聯(lián)網(wǎng) 機房 數(shù)據(jù)庫 通信 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:Redis 數(shù)據(jù)類型及應(yīng)用場景

下一篇:(譯)TensorFlow 廣度和深度學(xué)習(xí)的教程