1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?

      一、2017年我們做了什么?

      創(chuàng)新互聯(lián)建站一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!為您提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、成都網(wǎng)頁(yè)設(shè)計(jì)、小程序開發(fā)、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、app軟件開發(fā)公司是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)公司,等你一起來(lái)見證!

      記得早在2017年的時(shí)候,王堅(jiān)博士就曾召大家就關(guān)于“IDC As a Computer”是否能做到,進(jìn)行過(guò)激烈的討論。而要做到此,必須要實(shí)現(xiàn)存儲(chǔ)計(jì)算分離,分離后由調(diào)度對(duì)計(jì)算和存儲(chǔ)資源進(jìn)行獨(dú)立自由調(diào)度。而在實(shí)現(xiàn)存儲(chǔ)計(jì)算分離的所有業(yè)務(wù)中,數(shù)據(jù)庫(kù)是最難的。因?yàn)閿?shù)據(jù)庫(kù)對(duì)I/O的時(shí)延和穩(wěn)定性有著極高的要求。但是從業(yè)界來(lái)看,存儲(chǔ)計(jì)算分離又是一個(gè)未來(lái)的技術(shù)趨勢(shì),因?yàn)橄馟oogle spanner以及Aurora都已經(jīng)實(shí)現(xiàn)了。

      所以2017年,我們抱著堅(jiān)定的信念,去實(shí)現(xiàn)數(shù)據(jù)庫(kù)的存儲(chǔ)計(jì)算分離。事實(shí)上,2017年我們做到了,基于盤古和AliDFS(ceph分支) ,在張北單元存儲(chǔ)計(jì)算分離承擔(dān)10%的交易量。2017年是數(shù)據(jù)庫(kù)實(shí)現(xiàn)存儲(chǔ)計(jì)算分離的元年,為2018年大規(guī)模實(shí)現(xiàn)存儲(chǔ)計(jì)算分離打下了堅(jiān)實(shí)的基礎(chǔ)。

      二、2018技術(shù)突破?

      如果說(shuō)2017年是數(shù)據(jù)庫(kù)實(shí)現(xiàn)存儲(chǔ)計(jì)算分離的突破之年的話,那么2018年就是追求極致性能的一年,也是由試驗(yàn)走向大規(guī)模部署的一年,其技術(shù)的挑戰(zhàn)可想而知。在2017年的基礎(chǔ)上,2018年的挑戰(zhàn)更為巨大,需要讓存儲(chǔ)計(jì)算分離更加的高性能、普適、通用以及簡(jiǎn)單。

      阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?cdn.com/7feb17e169ca3276773e24f0317606d8d68a7b78.png">

      2018年,為了使得在存儲(chǔ)計(jì)算分離下數(shù)據(jù)庫(kù)的I/O達(dá)到最高性能和吞吐,我們自研了用戶態(tài)集群文件系統(tǒng)DADI DBFS。我們通過(guò)將技術(shù)沉淀到DADI DBFS用戶態(tài)集群文件上,賦能集團(tuán)數(shù)據(jù)庫(kù)交易全單元規(guī)模化存儲(chǔ)計(jì)算分離。那么成為存儲(chǔ)中臺(tái)級(jí)產(chǎn)品,DBFS又做了那些技術(shù)上的創(chuàng)新呢?

      2.1 用戶態(tài)技術(shù)

      2.1.1 “ZERO” copy

      我們直接通過(guò)用戶態(tài),旁路kernel,實(shí)現(xiàn)I/O路徑的“Zero”copy。避免了核內(nèi)核外的copy,使得吞吐和性能都有了非常大的提高。

      過(guò)去使用kernel態(tài)時(shí),會(huì)有兩次數(shù)據(jù)copy,一次由業(yè)務(wù)的用戶態(tài)進(jìn)程copy數(shù)據(jù)到核內(nèi),一次由核內(nèi)copy到用戶態(tài)網(wǎng)絡(luò)轉(zhuǎn)發(fā)進(jìn)程。這兩次copy會(huì)影響整體吞吐和時(shí)延。

      切到純用戶態(tài)之后,我們使用polling模型進(jìn)行I/O request請(qǐng)求的發(fā)送。另外對(duì)于polling mode下CPU的消耗,我們使用了adaptive sleep技術(shù),使得空閑時(shí),不會(huì)浪費(fèi)core資源。

      阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?

      2.1.2 RDMA

      另外,DBFS結(jié)合RDMA技術(shù)與盤古存儲(chǔ)直接進(jìn)行數(shù)據(jù)交換,達(dá)到接近于本地SSD的時(shí)延和更高的吞吐,從而使得今年跨網(wǎng)絡(luò)的極低時(shí)延I/O成為可能,為大規(guī)模存儲(chǔ)計(jì)算分離打下了堅(jiān)強(qiáng)的基礎(chǔ)。今年集團(tuán)參加大促的RDMA集群,可以說(shuō)是在規(guī)模上為業(yè)界最大的一個(gè)集群。

      2.2 Page cache

      為了實(shí)現(xiàn)buffer I/O的能力,我們單獨(dú)實(shí)現(xiàn)了page cache。Page cahce采用touch count based LRU算法實(shí)現(xiàn)。引入touch count的意義是為了更好的與數(shù)據(jù)庫(kù)的I/O特性結(jié)合。因?yàn)閿?shù)據(jù)庫(kù)中時(shí)常會(huì)有大表掃描等行為,我們不希望這種使用頻率低的數(shù)據(jù)頁(yè)沖刷掉LRU的效率。我們會(huì)基于touch count將page在hot端和cool端進(jìn)行移動(dòng)。

      Page cache的頁(yè)大小可配置,與數(shù)據(jù)庫(kù)的頁(yè)大小進(jìn)行結(jié)合時(shí),會(huì)發(fā)揮更好的cache效率。總體上DBFS的page cache具備以下的能力:

       ●   基于touch count進(jìn)行page的冷熱端遷移
       ●   冷熱端比例可配置,目前為熱冷比例為2:8
       ●   page size可配置,結(jié)合數(shù)據(jù)庫(kù)頁(yè)進(jìn)行最優(yōu)化配置

       ●   多shard,提高并發(fā);總體容量可配置

      阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?

      2.3 異步I/O

      為了提高數(shù)據(jù)庫(kù)的I/O吞吐能力,大部分?jǐn)?shù)據(jù)庫(kù)都使用了異步I/O。我們?yōu)榱思嫒萆蠈訑?shù)據(jù)庫(kù)的I/O特性,實(shí)現(xiàn)了異步I/O。異步I/O特性:

       ●   無(wú)鎖隊(duì)列實(shí)現(xiàn)
       ●   可配置的I/O depth,能夠使得針對(duì)數(shù)據(jù)庫(kù)不同的I/O類型進(jìn)行精確時(shí)延控制

       ●   polling adaptive,減少CPU消耗

      阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?

      2.4 原子寫

      為了保證數(shù)據(jù)庫(kù)頁(yè)寫出的時(shí)候不出現(xiàn)partial write,DBFS實(shí)現(xiàn)了原子寫功能。基于DBFS的Innodb,可以安全的將double write buffer關(guān)掉,從而使得在存計(jì)分離下數(shù)據(jù)庫(kù)帶寬節(jié)省100%。

      另外,如PostgreSQL使用的是buffer I/O,也避免了PG在dirty page flush時(shí)偶發(fā)性遇到的缺頁(yè)問(wèn)題。

      2.5 Online Resize

      為了避免擴(kuò)容而帶來(lái)的數(shù)據(jù)遷移,DBFS結(jié)合底層盤古實(shí)現(xiàn)volume的在線resize。DBFS有自己的bitmap allocator,用于實(shí)現(xiàn)底層存儲(chǔ)空間的管理。我們對(duì)bitmap allocator進(jìn)行了優(yōu)化,在文件系統(tǒng)層級(jí)做到了lock free的resize,使得上層業(yè)務(wù)可以在任何時(shí)候進(jìn)行對(duì)業(yè)務(wù)無(wú)損的高效擴(kuò)容,完全優(yōu)于傳統(tǒng)的ext4文件系統(tǒng)。

      Online Resize的支持,避免了存儲(chǔ)空間的浪費(fèi),因?yàn)椴挥胷eserve如20%的存儲(chǔ)空間了,可以做到隨擴(kuò)隨寫。

      以下為擴(kuò)容時(shí)的bitmap變化過(guò)程:

      阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?

      2.6 TCP與RDMA互切

      RDMA在集團(tuán)數(shù)據(jù)庫(kù)大規(guī)模的引入使用也是一個(gè)非常大的風(fēng)險(xiǎn)點(diǎn),DBFS與盤古一起實(shí)現(xiàn)了RDMA與TCP互切的功能,并在全鏈路過(guò)程中進(jìn)行了互換演練,使得RDMA的風(fēng)險(xiǎn)在可控的范圍內(nèi),穩(wěn)定性保障更加完善。

      另外,DBFS,盤古以及網(wǎng)絡(luò)團(tuán)隊(duì),針對(duì)RDMA進(jìn)行了非常多的容量水位壓測(cè),故障演練等工作,為業(yè)界最大規(guī)模RDMA上線做了非常充足的準(zhǔn)備。

      2.7 2018年大促部署

      在做到了技術(shù)上的突破和攻關(guān)后,DBFS最終完成艱巨的任務(wù)通過(guò)大促全鏈路的考驗(yàn)以及雙“十一”大考,再次驗(yàn)證了存儲(chǔ)計(jì)算分離的可行性和整體技術(shù)趨勢(shì)。

      三、存儲(chǔ)中臺(tái)利器DBFS

      除了以上做為文件系統(tǒng)必須實(shí)現(xiàn)的功能以外,DBFS還實(shí)現(xiàn)了諸多的特性,使得業(yè)務(wù)使用DBFS更加的通用化,更加易用性,更加穩(wěn)定以及安全。

      3.1 技術(shù)沉淀與賦能

      我們將所有的技術(shù)創(chuàng)新和功能以產(chǎn)品的形式沉淀在DBFS中,使得DBFS能夠賦能更多的業(yè)務(wù)實(shí)現(xiàn)以用戶態(tài)的形式訪問(wèn)不同的底層存儲(chǔ)介質(zhì),賦能更多數(shù)據(jù)庫(kù)實(shí)現(xiàn)存儲(chǔ)計(jì)算分離。

      3.1.1 POSIX兼容

      目前為了支撐數(shù)據(jù)庫(kù)業(yè)務(wù),我們兼容了大多數(shù)常用的POSIX文件接口,以方便上層數(shù)據(jù)庫(kù)業(yè)務(wù)的對(duì)接。另外也實(shí)現(xiàn)了page cache,異步I/O以及原子寫等,為數(shù)據(jù)庫(kù)業(yè)務(wù)提供豐富的I/O能力。另外,我們也實(shí)現(xiàn)了glibc的接口,用于支持文件流的操作和處理。這兩種接口的支持,大大簡(jiǎn)化了數(shù)據(jù)庫(kù)接入的復(fù)雜度,增加了DBFS易用性,使得DBFS可以支撐更多的數(shù)據(jù)庫(kù)業(yè)務(wù)。

      posix部分大家比較熟悉就不再列出,以下僅為部分glibc接口供參考:

      // glibc interface

      FILE *fopen(constchar*path,constchar*mode);

      FILE *fdopen(int fildes,constchar*mode);

      size_t fread(void*ptr, size_t size, size_t nmemb, FILE *stream);

      size_t fwrite(constvoid*ptr, size_t size, size_t nmemb, FILE *stream);

      intfflush(FILE *stream);

      intfclose(FILE *stream);

      intfileno(FILE *stream);

      intfeof(FILE *stream);

      intferror(FILE *stream);

      voidclearerr(FILE *stream);

      intfseeko(FILE *stream, off_t offset,int whence);

      intfseek(FILE *stream,long offset,int whence);

      off_t ftello(FILE *stream);

      longftell(FILE *stream);

      voidrewind(FILE *stream);

      3.1.2 Fuse實(shí)現(xiàn)

      另外,為了兼容Linux生態(tài)我們實(shí)現(xiàn)了fuse,打通VFS的交互。Fuse的引入使得用戶在不考慮極致性能的情況下,可以不需要任何代碼改動(dòng)而接入DBFS,大大提高產(chǎn)品的易用性。另外,也大大方便了傳統(tǒng)的運(yùn)維操作。

      阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?

      3.1.3 服務(wù)化能力

      DBFS自研了shmQ組件,基于內(nèi)享內(nèi)存的IPC通信,從而拉通了對(duì)于PostgreSQL基于進(jìn)程架構(gòu)和MySQL基于線程架構(gòu)的支持,使得DBFS更加的通用化和安全,為以后在線升級(jí)提供堅(jiān)實(shí)的基礎(chǔ)。

      shmQ基于無(wú)鎖實(shí)現(xiàn),性能和吞吐表現(xiàn)優(yōu)異,從目前測(cè)試來(lái)看,在16K等數(shù)據(jù)庫(kù)大頁(yè)下能控制在幾個(gè)us以內(nèi)的訪問(wèn)時(shí)延。服務(wù)化以及多進(jìn)程架構(gòu)的支持,目前性能與穩(wěn)定性符合預(yù)期。

      阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?

      3.1.4 集群文件系統(tǒng)

      集群功能是DBFS的又一大明顯特性,賦能數(shù)據(jù)庫(kù)基于shared-disk模式,實(shí)現(xiàn)計(jì)算資源的線性擴(kuò)展,為業(yè)務(wù)節(jié)省存儲(chǔ)成本。另外,shared-disk的模式也為數(shù)據(jù)庫(kù)提供了快速的彈性能力,也大大提高了主備快速切換的SLA。集群文件系統(tǒng)提供一寫多讀以及多點(diǎn)寫入的能力,為數(shù)據(jù)庫(kù)shared-disk和shared nothing架構(gòu)打下堅(jiān)實(shí)的基礎(chǔ)。與傳統(tǒng)的OCFS相比,我們?cè)谟脩魬B(tài)實(shí)現(xiàn),性能更好,更加自主可控。OCFS嚴(yán)重依賴于Linux的VFS,如沒有獨(dú)立的page cache等。

      DBFS 支持一寫多讀模式時(shí),提供多種角色可選(M/S),可以存在一個(gè)M節(jié)點(diǎn)多個(gè)S節(jié)點(diǎn)使用共享數(shù)據(jù),M 節(jié)點(diǎn)和S節(jié)點(diǎn)共同訪問(wèn)盤古數(shù)據(jù)。上層數(shù)據(jù)庫(kù)對(duì)M/S節(jié)點(diǎn)進(jìn)行了限制,M節(jié)點(diǎn)的數(shù)據(jù)訪問(wèn)是可讀可寫的,S節(jié)點(diǎn)的數(shù)據(jù)訪問(wèn)是只讀的。如果主庫(kù)發(fā)生故障,就會(huì)進(jìn)行切換。主從切換步驟:

      阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?

       ●   業(yè)務(wù)監(jiān)控指標(biāo)探測(cè)發(fā)現(xiàn)M 節(jié)點(diǎn)出現(xiàn)無(wú)法訪問(wèn)或者異常的時(shí)候,進(jìn)行決策,是否要進(jìn)行切換。
       ●   如果發(fā)生切換,由管控平臺(tái)發(fā)起切換命令,切換命令完成,代表DBFS和上層數(shù)據(jù)庫(kù)都已經(jīng)完成角色切換。
       ●   在DBFS 切換的過(guò)程中,最主要的動(dòng)作就是IO fence,禁止掉原本的M節(jié)點(diǎn)IO能力,防止雙寫情況。

      DBFS在多點(diǎn)寫入時(shí),對(duì)所有節(jié)點(diǎn)進(jìn)行全局的metalock控制,blockgroup allocation優(yōu)化等。另外也會(huì)涉及到基于disk的quorum算法等,內(nèi)容比較復(fù)雜,暫不做詳細(xì)陳述。

      3.2 軟硬件結(jié)合

      隨著新存儲(chǔ)介質(zhì)的出現(xiàn),數(shù)據(jù)庫(kù)勢(shì)必需要借其發(fā)揮更好的性能或者更低成本優(yōu)化,并且做到對(duì)底層存儲(chǔ)介質(zhì)的自主可控。

      從Intel對(duì)存儲(chǔ)介質(zhì)的規(guī)劃來(lái)看,從性能到容量,會(huì)形成AEP,Optane和SSD這三種產(chǎn)品,而在向大容量方向上,又會(huì)有QLC的出現(xiàn)。所以綜合性能和成本來(lái)看,我們覺得Optane是一個(gè)比較不錯(cuò)的cache產(chǎn)品。我們選擇它作為DBFS 機(jī)頭持久化filecache的實(shí)現(xiàn)。

      阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?

      3.2.1 持久化file cache

      DBFS實(shí)現(xiàn)了基于Optane的local持久化cache功能,使得在存計(jì)分離下更近一步提升數(shù)據(jù)庫(kù)的讀寫性能。File cache為了達(dá)到生產(chǎn)可用性,做了非常多的工作,如:

       ●   穩(wěn)定可靠的故障處理
       ●   支持動(dòng)態(tài)enable和disable
       ●   支持負(fù)載均衡
       ●   支持性能指標(biāo)采集和展示
       ●   支持?jǐn)?shù)據(jù)正確性scrub

      這些功能的支撐,為線上穩(wěn)定性打下堅(jiān)實(shí)的基礎(chǔ)。其中,針對(duì)Optane的I/O為SPDK的純用戶態(tài)技術(shù),DBFS結(jié)合Fusion Engine的vhost實(shí)現(xiàn)。File Cache的頁(yè)大小可以根據(jù)上層數(shù)據(jù)庫(kù)的block大小進(jìn)行最佳配置,以達(dá)到最好的效果。

      以下為file cache的架構(gòu)圖:

      阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?

      以下是測(cè)試所得讀寫性能收益數(shù)據(jù):

      阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?

      其中帶有“cache”的為基于filecache所得。整體表現(xiàn)隨著命中率提高,讀時(shí)延開始下降。另外,我們針對(duì)file cache,進(jìn)行了諸多性能指標(biāo)的監(jiān)控。

      3.2.2 Open Channel SSD

      X-Engine和DBFS以及Fusion Engine團(tuán)隊(duì)展開合作,基于object SSD進(jìn)一步打造存儲(chǔ)自主可控的系統(tǒng)。在降低SSD磨損,提高SSD吞吐,降低讀寫相互干擾等領(lǐng)域,進(jìn)行了深度探索與實(shí)踐,都取得了非常不錯(cuò)的效果。目前已經(jīng)結(jié)合X-Engine的分層存儲(chǔ)策略,打通了讀寫路徑,我們期待下一步更加深入的智能化存儲(chǔ)研發(fā)。

      四、總結(jié)與展望

      2018年DBFS已經(jīng)大規(guī)模支持了X-DB以存儲(chǔ)計(jì)算分離形態(tài)支持“11.11”大促;與此同時(shí)也賦能ADS實(shí)現(xiàn)一寫多讀能力以及Tair等。

      在支持業(yè)務(wù)的同時(shí),DBFS本身已經(jīng)拉通了PG進(jìn)程與MySQL線程架構(gòu)的支持,打通了VFS接口,做到了與Linux生態(tài)的兼容,成為真正意義上的存儲(chǔ)中臺(tái)級(jí)產(chǎn)品——集群用戶態(tài)文件系統(tǒng)。未來(lái)結(jié)合更多的軟硬件結(jié)合、分層存儲(chǔ)、NVMeoF等技術(shù)賦能更多的數(shù)據(jù)庫(kù),實(shí)現(xiàn)其更大的價(jià)值。


      本文作者:呂健


      標(biāo)題名稱:阿里如何將“高峰前擴(kuò)容、高峰后縮容”的夢(mèng)想照進(jìn)現(xiàn)實(shí)?
      網(wǎng)頁(yè)網(wǎng)址:http://www.ef60e0e.cn/article/jhgeei.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        芷江| 崇信县| 潍坊市| 海伦市| 城口县| 怀化市| 体育| 台中县| 永清县| 常熟市| 清涧县| 苍南县| 石景山区| 仲巴县| 丹凤县| 旬阳县| 工布江达县| 肃北| 龙州县| 当雄县| 天峻县| 贵港市| 迭部县| 南城县| 古田县| 兴仁县| 当雄县| 大方县| 原平市| 玉龙| 揭西县| 同江市| 马关县| 油尖旺区| 炉霍县| 宁明县| 台东市| 南雄市| 桂平市| 建宁县| 金寨县|