第四范式:现代存储架构下的系统优化实践
8月21日,白玉蘭開源聯(lián)合示說網(wǎng)主辦的“開源大數(shù)據(jù)技術(shù)線上meetup”特邀約大數(shù)據(jù)領(lǐng)域的前沿技術(shù)專家,就大數(shù)據(jù)存儲(chǔ)的關(guān)鍵技術(shù)、挑戰(zhàn)和當(dāng)前應(yīng)用展開交流討論,陣容強(qiáng)大、內(nèi)容全面。第四范式體系架構(gòu)科學(xué)家,高性能計(jì)算Team leader盧冕,一直專注于研發(fā)在異構(gòu)架構(gòu)下的系統(tǒng)優(yōu)化實(shí)踐和探索,我們根據(jù)盧冕講師的現(xiàn)場(chǎng)分享《現(xiàn)代存儲(chǔ)架構(gòu)下的系統(tǒng)優(yōu)化實(shí)踐》,整理成以下內(nèi)容。
前言
隨著存儲(chǔ)技術(shù)的發(fā)展,現(xiàn)代存儲(chǔ)架構(gòu)呈現(xiàn)出了前所未有的分級(jí)復(fù)雜性和功能上的革命(比如內(nèi)存數(shù)據(jù)持久化),因此也對(duì)上層軟件如何優(yōu)化提出了新的挑戰(zhàn)。
本次分享基于我們的實(shí)踐經(jīng)驗(yàn),從現(xiàn)代存儲(chǔ)架構(gòu)的概念、特征工程數(shù)據(jù)庫在PMem上的優(yōu)化、基于分級(jí)存儲(chǔ)架構(gòu)的Kafka優(yōu)化、MemArk技術(shù)社區(qū)這四個(gè)方面出發(fā),演示如何在現(xiàn)代存儲(chǔ)架構(gòu)下,通過創(chuàng)新性的技術(shù),比如持久化內(nèi)存數(shù)據(jù)結(jié)構(gòu)、分級(jí)存儲(chǔ)、冷熱數(shù)據(jù)分離等技術(shù)進(jìn)行系統(tǒng)優(yōu)化,以利用現(xiàn)代存儲(chǔ)架構(gòu)的特性。
一、現(xiàn)代存儲(chǔ)架構(gòu)
首先著眼于關(guān)鍵存儲(chǔ)技術(shù):硬件技術(shù)、軟件技術(shù),在此可劃分成外存和內(nèi)存。
1外存
例如SSD、硬盤,即數(shù)據(jù)可以在該設(shè)備上持久化。1956年已出現(xiàn)機(jī)械硬盤,NAND Flash在1989年開始首個(gè)專利申請(qǐng)。如今,Flash已經(jīng)發(fā)展迅猛、應(yīng)用廣泛,例如B+tree數(shù)據(jù)庫系統(tǒng)在1973年已繁榮發(fā)展。
2內(nèi)存
直接將數(shù)據(jù)存儲(chǔ)并且讀寫較快,但是掉電會(huì)造成數(shù)據(jù)丟失。內(nèi)存的典型技術(shù),例如SRAM、DRAM,其中SRAM用于CPU的cache,DDR、GDDR普遍應(yīng)用于計(jì)算機(jī)。由于追求高性能、高吞吐,特異化的內(nèi)存技術(shù)應(yīng)運(yùn)而生,例如,HBM2、GDDR6,上述都是高帶寬、高吞吐的內(nèi)存形態(tài),在家用機(jī)器上運(yùn)用較少,較多運(yùn)用在數(shù)據(jù)中心和大密度計(jì)算。
在2015年,數(shù)據(jù)可持久化和高性能易失性內(nèi)存出現(xiàn)在交匯融合,非易失性內(nèi)存技術(shù)由此進(jìn)入大眾視野。該技術(shù)是存儲(chǔ)架構(gòu)的革命性變化。
3非易失性內(nèi)存技術(shù)
2015年,英特爾和鎂光在工業(yè)界共同提出了3D XPoint,目的是為了把非易失性內(nèi)存技術(shù)落實(shí)到工業(yè)界,而不是僅限于學(xué)術(shù)界的模擬研究和討論。
2018年,英特爾把非易失性內(nèi)存技術(shù)實(shí)現(xiàn)了商業(yè)化,推出了傲騰持久內(nèi)存,這意味著非易失性內(nèi)存真正實(shí)現(xiàn)了落地,能圍繞商業(yè)化產(chǎn)品去做工業(yè)級(jí)應(yīng)用,而不是止步于紙上談兵。
4現(xiàn)代存儲(chǔ)架構(gòu)金字塔
Computer Science課本中也會(huì)碰到過存儲(chǔ)架構(gòu)金字塔,其組織架構(gòu)較簡(jiǎn)單。在課本上,底層是硬盤,中間是DRAM或者叫內(nèi)存,上面是cache。實(shí)際上,今天工業(yè)界存儲(chǔ)架構(gòu)金字塔已經(jīng)演化得非常復(fù)雜,它不再是課本上簡(jiǎn)單的兩三級(jí)結(jié)構(gòu),已演化到六七級(jí),此處還不包括異構(gòu)算力所帶來的存儲(chǔ)架構(gòu)。
如圖:金字塔下面藍(lán)色部分具有持久性,上面紅色部分是存儲(chǔ)介質(zhì)。最特殊的是,中間部分非易失性內(nèi)存或者持久內(nèi)存商品,這一部分在金字塔用兩種不同顏色已標(biāo)注。內(nèi)存數(shù)據(jù)的持久化特性具有革命性,是現(xiàn)今存儲(chǔ)架構(gòu)的顯著特點(diǎn)。
5非易失性內(nèi)存
下圖就是英特爾推出的傲騰持久內(nèi)存(PMem)第一代和第二代。該內(nèi)存條和普通的內(nèi)存條沒太大區(qū)別,可直接插在server上的內(nèi)存插槽里,但只能匹配英特爾CPU。
傲騰持久內(nèi)存的顯著特點(diǎn):
? 大容量:單根容量可達(dá)到512 GB,在server上很容易把它配到T級(jí)別的容量,即1.5T或3T容量的PMem服務(wù)器配置。
? 低成本:單位價(jià)格即每GB成本比普通DRAM低。如果從 server角度去思考問題,例如,如果用DRAM去跑3T的應(yīng)用,可能至少要七八臺(tái)機(jī)器;如果用PMem機(jī)器去跑,它只需要一臺(tái)機(jī)器。從機(jī)器數(shù)量和運(yùn)營成本節(jié)省角度而言,低成本特征顯著。
? 高性能持久化:內(nèi)存數(shù)據(jù)持久化。把傳統(tǒng)軟件中的內(nèi)存數(shù)據(jù)做持久化,具有快速恢復(fù)的意義。此外,也可作為存儲(chǔ),其性能相比較于HDD、SSD,性能優(yōu)勢(shì)明顯。
持久內(nèi)存的工作模式:Memory Mode,即內(nèi)存模式,持久內(nèi)存直接插到server上,對(duì)應(yīng)用程序是黑盒化的。整個(gè)server容量會(huì)變成持久內(nèi)存的容量,DRAM會(huì)變成持久內(nèi)存的一層cache。內(nèi)存容量就是整個(gè)PMem的容量,應(yīng)用程序不需要修改代碼便可直接使用,直接享受大容量低成本的好處。但是這種模式可能會(huì)造成幾個(gè)問題,存儲(chǔ)架構(gòu)的層級(jí)對(duì)程序員透明,程序員無法精確操控存儲(chǔ)架構(gòu)層級(jí),從而無法去做細(xì)粒度優(yōu)化,例如cache層級(jí)優(yōu)化。為了克服以上問題,推了APP Direct Mode。在APP Direct Mode,可以看到從PMem到DRAM內(nèi)存整個(gè)存儲(chǔ)層級(jí)完全暴露在程序員視角下,程序員可以根據(jù)它的應(yīng)用去做定制化優(yōu)化,也能享受到持久化所帶來的好處。
綜上所述,現(xiàn)代存儲(chǔ)架構(gòu)的特點(diǎn):分級(jí)存儲(chǔ)架構(gòu)復(fù)雜且豐富。現(xiàn)今存儲(chǔ)層級(jí)已達(dá)5-7層,這會(huì)讓大眾在容量、性能和成本之間權(quán)衡利弊,即在容量、性能、成本之間取舍。挑戰(zhàn)在此也迎面而來,即做優(yōu)化。引入分級(jí)存儲(chǔ)、分級(jí)持久化等分級(jí)緩存算法來更好地做系統(tǒng)優(yōu)化。
在此強(qiáng)調(diào)的是:內(nèi)存數(shù)據(jù)持久化,這是革命性功能。如果把PMem當(dāng)做內(nèi)存使用,一旦機(jī)器掉電或者程序崩潰,只要做好了持久化工作,在下次重新上電時(shí),數(shù)據(jù)還是會(huì)持久化在內(nèi)存中。優(yōu)勢(shì)就是內(nèi)存數(shù)據(jù)的快速恢復(fù)。現(xiàn)實(shí)生活中,像線上服務(wù),如果節(jié)點(diǎn)離線,數(shù)據(jù)要從外存或者從網(wǎng)絡(luò)中重新拉回來做內(nèi)存數(shù)據(jù)的構(gòu)建,這非常影響線上服務(wù)質(zhì)量。因?yàn)榫€上服務(wù)不允許長時(shí)間離線,若用持久內(nèi)存,它就會(huì)持久化。在掉線以后,該線上節(jié)點(diǎn)恢復(fù)。基于此,對(duì)現(xiàn)在傳統(tǒng)軟件最大挑戰(zhàn)是需要做持久化編程模型。
總而言之,分級(jí)存儲(chǔ)架構(gòu)和內(nèi)存數(shù)據(jù)持久化,需要做一些傳統(tǒng)軟件的系統(tǒng)優(yōu)化。
PMem在學(xué)術(shù)界非常火熱,今年在丹麥舉行的國際頂級(jí)數(shù)據(jù)庫學(xué)術(shù)會(huì)議VLDB就有兩個(gè)專門收錄PMem相關(guān)論文的research sessions,共有8篇paper,出現(xiàn)了井噴。這些paper有工業(yè)界的影子,例如第一篇論文是做SSD的廠商。從工業(yè)界的角度來看,加之英特爾的推介,包括像第四范式、阿里巴巴也在做積極探索。在工業(yè)界,在接下來的1-2年內(nèi),PMem會(huì)普遍進(jìn)入數(shù)據(jù)中心采購名單,會(huì)迎來非常大規(guī)模應(yīng)用熱潮。
6第四范式在現(xiàn)代存儲(chǔ)架構(gòu)上一些技術(shù)實(shí)踐
對(duì)內(nèi):面向AI流程的優(yōu)化。這里有兩種用法:Memory Mode(為了低成本擴(kuò)容)和HyperPS(針對(duì)推理的參數(shù)服務(wù)器)。
對(duì)外:除了對(duì)內(nèi)部產(chǎn)品優(yōu)化,也開始對(duì)外開源,目的是把核心技術(shù)往外推,讓更多企業(yè)開發(fā)者能夠意識(shí)到異構(gòu)多級(jí)存儲(chǔ)、現(xiàn)代存儲(chǔ)架構(gòu)上帶來的優(yōu)化工作,也可以推進(jìn)持久內(nèi)存的普及。
對(duì)內(nèi)+對(duì)外:(已開源工作)。VLDB 2021:主要是針對(duì)特征工程數(shù)據(jù)庫,做基于PMem的優(yōu)化,核心持久化跳表即將合入PMDK核心庫,這在國內(nèi)是領(lǐng)先的。基于Pafka的Kafka優(yōu)化:10x性能提升,且無需修改代碼。還有一些打算開源、正在開發(fā)中的工作,例如OpenEmbedding,就是針對(duì)訓(xùn)練的參數(shù)服務(wù)器,它是和TensorFlow整合,方便快捷,包括向量、Elasticsearch、PMemStore、OpenMLDB,OpenMLDB就是已經(jīng)開源的特征工程數(shù)據(jù)庫。這兩者整合起來,會(huì)在明年進(jìn)行開源。另一方面,第四范式和英特爾也在打造代化存儲(chǔ)架構(gòu)的技術(shù)社區(qū)MemArk。
7面向AI全流程的異構(gòu)存儲(chǔ)優(yōu)化
從第四范式的產(chǎn)品角度看,主要包含了離線訓(xùn)練和在線推理。在離線訓(xùn)練中,對(duì)內(nèi)存消耗量會(huì)特別高,所以會(huì)做低成本擴(kuò)容工作,使用PMem做內(nèi)存擴(kuò)容。在線推理中,因?yàn)樗鼘?duì)性能要求高,有持久化需求,所以會(huì)用AD Mode在參數(shù)服務(wù)器、特征功能數(shù)據(jù)庫、消息隊(duì)列方面去做優(yōu)化。
PMem具體如何使用?其實(shí)是取決于實(shí)際情況去做優(yōu)化。
二、特征工程數(shù)據(jù)庫在PMem上的優(yōu)化
下圖講了特征工程數(shù)據(jù)庫用在哪里。
從第四范式的角度,它大部分用于決策場(chǎng)景。例如,反欺詐、反洗錢以及推薦系統(tǒng)。
如下圖,左邊是Off-line Training,右邊是On-line Inference。那么Off-line Training的特征在哪里?其實(shí)就在這OpenMLDB, 當(dāng)在線請(qǐng)求產(chǎn)生一條數(shù)據(jù)記錄時(shí),它就會(huì)去做一個(gè)實(shí)時(shí)的特征抽取,產(chǎn)生額外的有用的特征,然后這個(gè)特征抽取會(huì)為 On-line Inference系統(tǒng)去做模型推理,所以它是在線場(chǎng)景下關(guān)鍵組件。因?yàn)樗窃诰€系統(tǒng),所以它有強(qiáng)的時(shí)間限制,延時(shí)不能太高。在此,我們更關(guān)注于OpenMLDB怎么去做性能優(yōu)化以及做持久內(nèi)存優(yōu)化。
接下來著重介紹什么是特征(features)。特征在決策類場(chǎng)景中非常重要,一般從在線請(qǐng)求中產(chǎn)生的數(shù)據(jù)并不能直接去用來做推理,而是需要進(jìn)一步做特征抽取。例如,我們需要拿到當(dāng)前交易產(chǎn)生之前10秒、1分鐘、5分鐘內(nèi)產(chǎn)生的交易做多的商店信息,這些都是通過實(shí)時(shí)的特征抽取拿到的而不能提前計(jì)算出來。所以這些基于時(shí)間窗口的實(shí)時(shí)特征抽取,就是在線特征工程。
Future Extraction會(huì)有挑戰(zhàn):
第一,它大部分的特征不能被提前算好,例如一個(gè)交易,要算當(dāng)前這個(gè)點(diǎn)往前推的時(shí)間窗口里面的信息,可能一分鐘或者一小時(shí)或者幾天的時(shí)間信息。這跟當(dāng)前發(fā)生的時(shí)間狀態(tài)是有關(guān)系的,所以不能去做提前處理。
第二,特征抽取會(huì)基于很多個(gè)時(shí)間窗口,計(jì)算量會(huì)比較高。
第三,此時(shí)會(huì)有很多特征產(chǎn)生,為了做在線推理,傳統(tǒng)商業(yè)數(shù)據(jù)庫并不能滿足需求,一個(gè)是隨著時(shí)間窗口的增長,Latency會(huì)增長得非常快,那么它性能很快就會(huì)超過幾十個(gè)milliseconds,這可能會(huì)影響到線上服務(wù)質(zhì)量,這種情況下它就不符合線上服務(wù)需求。
綜上所述,我們需要去開發(fā)一個(gè)專門面向人工智能決策場(chǎng)景的特征工程數(shù)據(jù)庫。
在這個(gè)大背景下,對(duì)于第四范式而言,OpenMLDB的設(shè)計(jì)包含兩方面:第一,它提供FEQL引擎,FEQL引擎提供了FEQL語法,FEQL語法類似于SQL-like language。但是它可以更好地支持,比如基于時(shí)間窗口的特征抽取。第二,從存儲(chǔ)引擎角度來講,使用了雙層跳表結(jié)構(gòu),去支持專門為時(shí)間窗口查詢來做一些優(yōu)化。
FEQL語法與SQL基本相似。除了有如Time_Window比較特殊的、專門給時(shí)間窗口查詢做的語法,也會(huì)針對(duì)此類語法做優(yōu)化。
底層的存儲(chǔ)引擎結(jié)構(gòu)是雙層的 Skiplist。
基于這些優(yōu)化,OpenMLDB它本身相比較于其他的database,就具有非常大的性能優(yōu)勢(shì)。同樣與前面的DB-X、DB-Y相比,性能優(yōu)勢(shì)非常大,它性能上的 Latency,延遲能符合線上服務(wù)的需求。
基于OpenMLDB,我們DRAM版本的OpenMLDB也看到兩大痛點(diǎn):
第一,是因?yàn)镺penMLDB是為了線上推理用的,線上推理為了達(dá)到高性能的一般數(shù)據(jù)和索引都會(huì)放在內(nèi)存當(dāng)中,為了能夠及時(shí)響應(yīng),這對(duì)內(nèi)存需求會(huì)特別高。運(yùn)用一個(gè)實(shí)際的銀行反欺詐業(yè)務(wù)場(chǎng)景,這里只有三個(gè)月的數(shù)據(jù)量,該數(shù)據(jù)可能需要占用10TB,如果用普通DRAM去搭建,成本很高。而且部分客戶反映,他們并不是為了性能而去擴(kuò)展設(shè)備數(shù)量、機(jī)器資源,而只是為了能兜住內(nèi)存容量,他們需要配備可能十幾臺(tái)機(jī)器,才能去兜住OpenMLDB。
第二,OpenMLDB都有把 data通過snapshot或者binlog這種方式,也就是Sync到磁盤、外部存儲(chǔ),去做數(shù)據(jù)備份。那么當(dāng)這個(gè)操作發(fā)生時(shí),它就會(huì)對(duì)延遲性能帶來很大影響。因?yàn)榇蟛糠植僮鞫紩?huì)在內(nèi)存中,但是當(dāng) Sync操作發(fā)生時(shí),就會(huì)涉及到磁盤,由此產(chǎn)生長尾的延遲效應(yīng)。
OpenMLDB是為了在線服務(wù)所設(shè)計(jì)的,需要保證線上服務(wù)質(zhì)量,不允許線上的節(jié)點(diǎn)過長時(shí)間離線。在這種背景下,如果節(jié)點(diǎn)離線,則需要從網(wǎng)絡(luò)磁盤中去重新拉回來去構(gòu)建內(nèi)存數(shù)據(jù),由此恢復(fù)的時(shí)間會(huì)比較長。
因此,在該種情況下需要用PMem優(yōu)化OpenMLDB。
PMem的用法有多種:數(shù)據(jù)和 index放在DRAM,log Snapshot存在外存。其中最簡(jiǎn)單的用法是把PMem當(dāng)成memory mode,這種用法可以通過大容量解決成本問題,但無法享受內(nèi)存數(shù)據(jù)持久化帶來的快速恢復(fù)優(yōu)勢(shì)。
所以需要進(jìn)一步通過AD mode做OpenMLDB優(yōu)化,在這種優(yōu)化情況下,整個(gè)系統(tǒng)數(shù)據(jù)庫架構(gòu)將發(fā)生改變,DRAM版本的OpenMLDB,需要將log Snapshot持久化到外部存儲(chǔ)上。
在這種模式下,由于整個(gè)內(nèi)存具有持久化功能,所以不需要將數(shù)據(jù)持久化到外存上。內(nèi)部的Skiplist跳表數(shù)據(jù)結(jié)構(gòu)具有持久化功能,數(shù)據(jù)會(huì)整體持久化在內(nèi)存中。
顯然,這有諸多優(yōu)勢(shì),第一,沒有 Sync的過程。第二,掉電后數(shù)據(jù)會(huì)立即從內(nèi)存中恢復(fù),無需漫長的時(shí)間恢復(fù)。
然而,這會(huì)遇到一個(gè)問題:如何保證持久化、語義的正確性和高效性。
其中最主要問題就是做Compare-And-Swap操作,在很多系統(tǒng)中去做無鎖的并發(fā)情況,其實(shí)在 OpenMLDB里面也應(yīng)用。在PMem環(huán)境下,CAS操作其實(shí)并不具有持久化語義。在多線程情況下,它會(huì)對(duì)Data inconsitency造成問題。
舉個(gè)例子,第一個(gè)Thread進(jìn)行Compare-And-Swap操作,第二個(gè)Thread基于計(jì)算出來的 t值做特征工程計(jì)算,然后把計(jì)算出來的特征進(jìn)行flush。t1的值本來也應(yīng)該被flush到 PMem,但可能在這個(gè)點(diǎn)掉電或者程序崩潰。在這種情況下,f1計(jì)算出來的特征被刷到了持久內(nèi)存當(dāng)中,然而原來的數(shù)據(jù)t1反而沒有,這就造成了data inconsistency。
為了解決Compare-And-Swap問題,提出了Persistent-Compare-And-Swap。解決的思路是進(jìn)行flush on read操作,每次做read時(shí)都去做持久化操作,能從根本上解決正確性問題。但是它會(huì)引入比較大的overhead,因?yàn)閷?duì)每一個(gè)read都進(jìn)行flush顯然不對(duì),某些read根本無需這樣做。
在此情況下,本文引入smart pointer技術(shù),即智能指針。在x86的架構(gòu)上,內(nèi)存地址要求八字節(jié)對(duì)齊,指針?biāo)赶虻牡刂返淖詈笕灰恢笔?。將三位的最后一位作為dirty的 flag,用于標(biāo)記數(shù)據(jù)是否已被flush,如果已被flush,就無需再做 flush操作。基于該技術(shù),可以做 persistent 操作,同時(shí)避免無效的、多余的、多次的flush持久化操作。
對(duì)于FEDB,本文使用真實(shí)的銀行反欺詐數(shù)據(jù),數(shù)據(jù)共有10TB,這里是一些優(yōu)化過的不同版本。(在Paper里面稱FEDB,開源以后叫open MLDB,所以表格里還是FEDB。)
首先,從性能角度來看,相較于這些傳統(tǒng)的這種數(shù)據(jù)庫,不管是DRAM版本的FEDB還是PMem版本的FEDB,都會(huì)達(dá)到相當(dāng)好的性能。
基于 PMem版本優(yōu)化有諸多優(yōu)勢(shì):
一是long tail latency方面。黃色柱子和藍(lán)色柱子分別代表了DRAM版本和典型的PMem版本,在 TP-99999標(biāo)準(zhǔn)下的long tail latency,大概有20%的性能改進(jìn)。
二是 recovery time方面。基于DRAM需要6個(gè)小時(shí)才能完成一個(gè)完整的鏡像恢復(fù),但如果基于內(nèi)存做持久化OpenMLDB,只需一分鐘就能從內(nèi)存重新恢復(fù)。其次,從CPU的角度來看,節(jié)省了一半左右的成本投入。
三、基于分級(jí)存儲(chǔ)架構(gòu)的Kafka優(yōu)化
Kafka廣泛用于大數(shù)據(jù)處理、人工智能,主要用于消息傳輸日志的搜集。Kafka架構(gòu)具有高性能、高可擴(kuò)展、高可用的特性。然而,由于它的logo文件需要做持久化,所以當(dāng)壓力上來時(shí),無論是latency還是super都會(huì)受限于存儲(chǔ)設(shè)備。
Pafka是Kafka的優(yōu)化版本,Pafka版本在存儲(chǔ)方面進(jìn)行了優(yōu)化。首先,由于整體上基于Kafka架構(gòu),所以客戶業(yè)務(wù)代碼是零遷移成本,他們無需做任何改造,即可零成本遷移到Kafka平臺(tái)上,使用持久內(nèi)存的Pafka可當(dāng)做持久設(shè)備。它可打破性能瓶頸,在成本和性能上都有大幅度的提升。
從具體實(shí)現(xiàn)角度來講,本來是通過這個(gè)文件 channel去存儲(chǔ)到外部存儲(chǔ)HDD或者SSD上,現(xiàn)在是通過PMDK將Kafka的 broker和 SEGMENT的存儲(chǔ),,將它賦能為可存儲(chǔ)在PMem上。
在此,引入 MixChannel的概念,它不僅可存儲(chǔ)在單一介質(zhì),還可以存儲(chǔ)在PMem或者存儲(chǔ)在第二級(jí)的外存上。例如,考慮到PMem的容量比較小,可以同時(shí)用 PMem和SSD或者HDD。
怎樣把容量都用起來,保證一定的性能優(yōu)勢(shì)?在此引入分級(jí)存儲(chǔ)的概念,然后引入數(shù)據(jù)遷移策略,將冷熱數(shù)據(jù)分開存儲(chǔ),希望大部分熱數(shù)據(jù)的讀寫能落到PMem上,冷數(shù)據(jù)落到速度比較慢的存儲(chǔ)設(shè)備上。這個(gè)特性會(huì)在0.2.0版本中引入,在這個(gè)月底或者下個(gè)月初發(fā)布。現(xiàn)在的0.1.1版本全部存在PMem上。
0.1.1版本使用PMem做整個(gè)Kafka的性能兜底,是性能優(yōu)化的表現(xiàn)。相比于 HDD或者SSD,它具有非常大的性能優(yōu)勢(shì),例如SATA SSD,可以達(dá)到將近20倍的性能改善。
Pafka工作是下半年的重點(diǎn)工作,目前0.1.1版本已經(jīng)開源,可以去試用,包括跟其他partner的合作,也已開始測(cè)試性能。0.1.1版本引入了PMem作為持久化介質(zhì),但并沒有真正引入分級(jí)存儲(chǔ)的概念。在0.2.0版本,會(huì)引入分級(jí)存儲(chǔ)和數(shù)據(jù)遷移機(jī)制,能夠在性能和容量上達(dá)到權(quán)衡,希望在數(shù)據(jù)量要求比較大的場(chǎng)景下,也能達(dá)到加速效果。
四、MenArk社區(qū)
該社區(qū)由第四范式主導(dǎo)創(chuàng)立,英特爾是贊助者之一。MenArk社區(qū)主要關(guān)注先進(jìn)的存儲(chǔ)架構(gòu)技術(shù),基于現(xiàn)代化存儲(chǔ)架構(gòu)為一些流行的開源軟件做系統(tǒng)性優(yōu)化。例如,Kafka、數(shù)據(jù)庫系統(tǒng)、社區(qū),將來都會(huì)去做優(yōu)化工作。MenArk社區(qū)是一個(gè)開放性社區(qū),歡迎合作伙伴的加入。同時(shí),在此可以查看開源項(xiàng)目,主要包括:Kafka、OpenMLDB、PMems。
總結(jié)
以上是生活随笔為你收集整理的第四范式:现代存储架构下的系统优化实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 明明还有空间,硬盘却写不进去了!
- 下一篇: 1024 程序员节专题论坛来袭,聚焦企业