国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

morgan / 879人閱讀

摘要:另外,結(jié)合技術(shù)與盤古存儲(chǔ)直接進(jìn)行數(shù)據(jù)交換,達(dá)到接近于本地的時(shí)延和更高的吞吐,從而使得今年跨網(wǎng)絡(luò)的極低時(shí)延成為可能,為大規(guī)模存儲(chǔ)計(jì)算分離打下了堅(jiān)強(qiáng)的基礎(chǔ)。為了避免擴(kuò)容而帶來的數(shù)據(jù)遷移,結(jié)合底層盤古實(shí)現(xiàn)的在線。

一、2017年我們做了什么?

記得早在2017年的時(shí)候,王堅(jiān)博士就曾召大家就關(guān)于“IDC As a Computer”是否能做到,進(jìn)行過激烈的討論。而要做到此,必須要實(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è)界來看,存儲(chǔ)計(jì)算分離又是一個(gè)未來的技術(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ù)突破?

如果說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)單。

2018年,為了使得在存儲(chǔ)計(jì)算分離下數(shù)據(jù)庫(kù)的I/O達(dá)到最高性能和吞吐,我們自研了用戶態(tài)集群文件系統(tǒng)DADI DBFS。我們通過將技術(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

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

過去使用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資源。

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集群,可以說是在規(guī)模上為業(yè)界最大的一個(gè)集群。

2.2 Page cache

為了實(shí)現(xiàn)buffer I/O的能力,我們多帶帶實(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ā);總體容量可配置

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特性:

無鎖隊(duì)列實(shí)現(xiàn)

可配置的I/O depth,能夠使得針對(duì)數(shù)據(jù)庫(kù)不同的I/O類型進(jìn)行精確時(shí)延控制

polling adaptive,減少CPU消耗

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è)問題。

2.5 Online Resize

為了避免擴(kuò)容而帶來的數(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ù)無損的高效擴(kuò)容,完全優(yōu)于傳統(tǒng)的ext4文件系統(tǒng)。

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

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

2.6 TCP與RDMA互切

RDMA在集團(tuán)數(shù)據(jù)庫(kù)大規(guī)模的引入使用也是一個(gè)非常大的風(fēng)險(xiǎn)點(diǎn),DBFS與盤古一起實(shí)現(xiàn)了RDMA與TCP互切的功能,并在全鏈路過程中進(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ù)通過大促全鏈路的考驗(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)的形式訪問不同的底層存儲(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(constcharpath,constchar*mode);

FILE fdopen(int fildes,constcharmode);

size_t fread(voidptr, size_t size, size_t nmemb, FILE stream);

size_t fwrite(constvoidptr, 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)維操作。

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

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)共同訪問盤古數(shù)據(jù)。上層數(shù)據(jù)庫(kù)對(duì)M/S節(jié)點(diǎn)進(jìn)行了限制,M節(jié)點(diǎn)的數(shù)據(jù)訪問是可讀可寫的,S節(jié)點(diǎn)的數(shù)據(jù)訪問是只讀的。如果主庫(kù)發(fā)生故障,就會(huì)進(jìn)行切換。主從切換步驟:

業(yè)務(wù)監(jiān)控指標(biāo)探測(cè)發(fā)現(xiàn)M 節(jié)點(diǎn)出現(xiàn)無法訪問或者異常的時(shí)候,進(jìn)行決策,是否要進(jìn)行切換。

如果發(fā)生切換,由管控平臺(tái)發(fā)起切換命令,切換命令完成,代表DBFS和上層數(shù)據(jù)庫(kù)都已經(jīng)完成角色切換。

在DBFS 切換的過程中,最主要的動(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ī)劃來看,從性能到容量,會(huì)形成AEP,Optane和SSD這三種產(chǎn)品,而在向大容量方向上,又會(huì)有QLC的出現(xiàn)。所以綜合性能和成本來看,我們覺得Optane是一個(gè)比較不錯(cuò)的cache產(chǎn)品。我們選擇它作為DBFS 機(jī)頭持久化filecache的實(shí)現(xiàn)。

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)圖:

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

其中帶有“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)。未來結(jié)合更多的軟硬件結(jié)合、分層存儲(chǔ)、NVMeoF等技術(shù)賦能更多的數(shù)據(jù)庫(kù),實(shí)現(xiàn)其更大的價(jià)值。


本文作者:呂健

閱讀原文

本文來自云棲社區(qū)合作伙伴“阿里技術(shù)”,如需轉(zhuǎn)載請(qǐng)聯(lián)系原作者。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/11935.html

相關(guān)文章

  • 阿里如何高峰擴(kuò)容高峰縮容夢(mèng)想照進(jìn)現(xiàn)實(shí)

    摘要:另外,結(jié)合技術(shù)與盤古存儲(chǔ)直接進(jìn)行數(shù)據(jù)交換,達(dá)到接近于本地的時(shí)延和更高的吞吐,從而使得今年跨網(wǎng)絡(luò)的極低時(shí)延成為可能,為大規(guī)模存儲(chǔ)計(jì)算分離打下了堅(jiān)強(qiáng)的基礎(chǔ)。為了避免擴(kuò)容而帶來的數(shù)據(jù)遷移,結(jié)合底層盤古實(shí)現(xiàn)的在線。 一、2017年我們做了什么? 記得早在2017年的時(shí)候,王堅(jiān)博士就曾召大家就關(guān)于IDC As a Computer是否能做到,進(jìn)行過激烈的討論。而要做到此,必須要實(shí)現(xiàn)存儲(chǔ)計(jì)算分離,...

    Object 評(píng)論0 收藏0
  • 理想終照進(jìn)現(xiàn)實(shí),算法也終回歸本來之美

    摘要:江湖傳聞年,也就是比特幣創(chuàng)立初期,向中本聰發(fā)難,認(rèn)為必須改變比特幣的共識(shí)機(jī)制并提出改進(jìn)方案。至此,單純的機(jī)制已無完備性可言,也背離了中本聰?shù)脑O(shè)計(jì)初衷。理想終將照進(jìn)現(xiàn)實(shí),算法也終將回歸本來之美。 江湖傳聞:2010年,也就是比特幣創(chuàng)立初期,BM向中本聰發(fā)難,認(rèn)為必須改變比特幣的共識(shí)機(jī)制并提出改進(jìn)方案。不過,傲嬌的中本聰本尊并沒有采納,他在強(qiáng)調(diào)了比特幣去中心化的重要性和必要性之后,霸氣回應(yīng)...

    calx 評(píng)論0 收藏0
  • 企業(yè)級(jí)容器安全最佳實(shí)踐

    由于容器虛擬化技術(shù)可以充分利用硬件資源,對(duì)于開發(fā)團(tuán)隊(duì)就像夢(mèng)想照進(jìn)了現(xiàn)實(shí)。盡管容器化沒有推翻虛擬機(jī)在企業(yè)應(yīng)用開發(fā)和部署上的地位,但是Docker等工具在實(shí)現(xiàn)開發(fā)、測(cè)試和部署大規(guī)模現(xiàn)代軟件的速度和敏捷性方面大展身手。Docker容器具有諸多優(yōu)點(diǎn):無需復(fù)雜的hypervisor、可移植性、資源隔離性、輕量級(jí)、開放標(biāo)準(zhǔn)、完美適應(yīng)微服務(wù)架構(gòu)。眾多的應(yīng)用通過容器隔離起來,相互獨(dú)立地運(yùn)行在同一臺(tái)宿主機(jī)上,哪家公...

    AJie 評(píng)論0 收藏0
  • 一 iOS 開發(fā)因“玩手機(jī)”被開除,段子照進(jìn)現(xiàn)實(shí)了......

    摘要:碼君必須在此強(qiáng)調(diào),勞動(dòng)法中沒有任何一條規(guī)定,示意過上班看手機(jī)是可以被開除的。吐槽歸吐槽,碼君也不禁在想,到底是出于何種心態(tài),能讓這些管理層設(shè)立出如此罔顧現(xiàn)實(shí)的規(guī)定。 ...

    gggggggbong 評(píng)論0 收藏0
  • 程序人生:心中那朵花

    摘要:先不閑聊,今天說說年剛剛讀完的第二本書,其實(shí)還不算書吧,應(yīng)該是繪本,幾米繪本其中的一個(gè)小作品我的心中每天開出一朵花。希望你在你的程序人生中,能將一個(gè)美好的有效期限增大,這取決于你對(duì)他的期望值,還有就是去發(fā)現(xiàn)屬于你的美好。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出處 前言 3月到的時(shí)候,我的腦子中都是各種雜七雜八的預(yù)想,關(guān)于工作、生活、情感、現(xiàn)實(shí)等等,甚至都沒來的及準(zhǔn)備一下,2019年就已經(jīng)過了...

    MycLambert 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<