RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用可計(jì)算SSD加速云原生數(shù)據(jù)庫(kù)

SSDFans ? 來(lái)源:SSDFans ? 2023-05-25 09:33 ? 次閱讀

背景

PolarDB是阿里云設(shè)計(jì)的云原生OLTP數(shù)據(jù)庫(kù),每個(gè)數(shù)據(jù)庫(kù)實(shí)例由多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)組成,節(jié)點(diǎn)間通過(guò)高速RDMA網(wǎng)絡(luò)連接在一起。為了保證原子性,每個(gè)POLARDB實(shí)例同時(shí)僅允許一個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)處理寫(xiě)請(qǐng)求,且通過(guò)Parallel-Raft協(xié)議在寫(xiě)入時(shí)同時(shí)向存儲(chǔ)節(jié)點(diǎn)寫(xiě)入3個(gè)副本。

2c9daad8-fa1e-11ed-90ce-dac502259ad0.png

計(jì)算存儲(chǔ)設(shè)備CSD是在具備基本存儲(chǔ)功能同時(shí)具備數(shù)據(jù)處理能力的存儲(chǔ)設(shè)備,相比使用CPU處理的模型,CSD采用的異構(gòu)計(jì)算架構(gòu)可以達(dá)到更好的性能和效率。但是CSD同時(shí)存在硬件成本更高、實(shí)際部署適配開(kāi)發(fā)成本更高等問(wèn)題。

動(dòng)機(jī)

當(dāng)前的POLARDB在數(shù)據(jù)庫(kù)節(jié)點(diǎn)中處理表掃描任務(wù),將掃操作下移到存儲(chǔ)節(jié)點(diǎn)可以更好提升數(shù)據(jù)庫(kù)處理分析型負(fù)載的性能、降低網(wǎng)絡(luò)流量,而列存儲(chǔ)需要掃描時(shí)更高的數(shù)據(jù)處理能力。

關(guān)鍵在于如何擴(kuò)展存儲(chǔ)節(jié)點(diǎn)使之支持處理額外的掃描任務(wù)。第一種方法是擴(kuò)展存儲(chǔ)節(jié)點(diǎn)的CPU,然而這會(huì)帶來(lái)過(guò)高的成本問(wèn)題;第二種方法是使用PCIe卡模式的FPGA擴(kuò)展,但是這種方式同樣存在:掃描作為數(shù)據(jù)密集型負(fù)載帶來(lái)的數(shù)據(jù)傳輸流量過(guò)高導(dǎo)致的高功耗、負(fù)載間沖突,以及PCIe擴(kuò)展卡帶寬瓶頸等問(wèn)題。最后一種是本文提出方式,即分布式異構(gòu)架構(gòu),將表scan操作分散到每個(gè)存儲(chǔ)設(shè)備中,由此帶來(lái)的挑戰(zhàn)包括:如何修改整個(gè)軟件存儲(chǔ)站以支持掃描操作下移;和如何降低FPGA的成本、提高FPGA并行性。

方法

本文首先解決了如何實(shí)現(xiàn)跨軟件棧的掃描下移工作,包括了POLARDB的存儲(chǔ)引擎、下層的分布式文件系統(tǒng)POLARFS以及可計(jì)算存儲(chǔ)器CSD。

首先作者講解了如何擴(kuò)展POLARDB存儲(chǔ)引擎,使得存儲(chǔ)引擎可以將掃描任務(wù)傳遞給下層的POALRFS,并負(fù)責(zé)回收CSD返回的掃描結(jié)果,掃描任務(wù)的參數(shù)包括:被掃描數(shù)據(jù)的位置、被掃描表的結(jié)構(gòu)以及掃描的條件。由于CSD難以支持所有的掃描條件(如LIKE),因此POLARDB的存儲(chǔ)引擎在收到掃描請(qǐng)求時(shí)需要首先分析掃描條件,并將CSD可以處理的條件子集傳遞下去,并在收到CSD的結(jié)果后進(jìn)行二次檢查。

接著作者描述了如何擴(kuò)展作為存儲(chǔ)底層的分布式文件系統(tǒng)POLARFS,POLARFS負(fù)責(zé)管理所有存儲(chǔ)節(jié)點(diǎn)上的數(shù)據(jù)。為了盡可能讓文件的大部分?jǐn)?shù)據(jù)塊落在同一個(gè)CSD上,POLARFS采用了大粒度(4MB)條帶,當(dāng)出現(xiàn)極少數(shù)的一個(gè)壓縮條帶橫跨兩個(gè)CSD時(shí),存儲(chǔ)節(jié)點(diǎn)采用CPU處理對(duì)應(yīng)的scan操作。在傳遞scan請(qǐng)求時(shí),POLARDB存儲(chǔ)引擎?zhèn)鬟f給POLARFS的是文件偏移表示的被掃描數(shù)據(jù)位置,而CSD僅能定位以L(fǎng)BA形式的數(shù)據(jù)位置,因此,POLARFS在收到POLARDB存儲(chǔ)引擎的掃描請(qǐng)求書(shū),會(huì)將橫跨m個(gè)CSD的請(qǐng)求分割成m個(gè)掃描請(qǐng)求,并將掃描請(qǐng)求中的偏移轉(zhuǎn)換到CSD的LBA。

之后作者描述了如何擴(kuò)展CSD功能。CSD通過(guò)內(nèi)核空間的驅(qū)動(dòng)進(jìn)行管理,每個(gè)CSD都暴露為一個(gè)塊設(shè)備。驅(qū)動(dòng)將收到的POLARFS轉(zhuǎn)發(fā)的掃描請(qǐng)求分割成多個(gè)子任務(wù),以解決大掃描任務(wù)長(zhǎng)期占據(jù)NAND帶寬,影響普通IO請(qǐng)求延遲性能的問(wèn)題。同時(shí),子任務(wù)有助于降低硬件資源的使用率,提高NAND訪(fǎng)問(wèn)的并行性,同時(shí)降低后臺(tái)GC可能的過(guò)高延遲。

為了更好的降低成本,作者修改了POLARDB存儲(chǔ)的數(shù)據(jù)塊格式,以充分利用FPGA實(shí)現(xiàn)掃描功能。增加了1字節(jié)壓縮類(lèi)型,4字節(jié)的鍵值對(duì)數(shù)量和restarts鍵數(shù)量,這樣使得CSD不需要POLARDB存儲(chǔ)引擎?zhèn)鬟f塊大小即可直接解壓,同時(shí)可以高效處理restarts,并探測(cè)塊結(jié)束情況。

2cafdc1c-fa1e-11ed-90ce-dac502259ad0.png

由于FPGA難以實(shí)現(xiàn)多類(lèi)型比較器,因此作者進(jìn)一步修改POLARDB存儲(chǔ)引擎,將所有數(shù)據(jù)都存儲(chǔ)成同一的可比較格式,這樣CSD只需要實(shí)現(xiàn)單一類(lèi)型比較器,有助于降低FPGA資源開(kāi)銷(xiāo)。

在實(shí)現(xiàn)時(shí),作者采用了終端的FPGA同時(shí)用作閃存管理和存儲(chǔ)計(jì)算單元,集成了軟LDPC編碼器,因此可以使用低成本的3D TLC/QLC以降低成本。作者使用FPGA實(shí)現(xiàn)了2個(gè)數(shù)據(jù)解壓引擎和3個(gè)數(shù)據(jù)掃描引擎,支持 支持Snappy解壓和=, ≠、>、≥、<、≤、NULL和!NULL條件。

2cb8eeb0-fa1e-11ed-90ce-dac502259ad0.png

評(píng)估

為了實(shí)際可用,CSD需要在滿(mǎn)足存儲(chǔ)計(jì)算的同時(shí)提供一流的IO性能,因此作者使用64層3D-TLC閃存,并支持了PCIe GEN3x4接口,達(dá)到了3.0GB/s和2.2GB/s的順序讀、寫(xiě)帶寬,并做到在滿(mǎn)盤(pán)、GC觸發(fā)時(shí)590K/160K的4K隨機(jī)讀、寫(xiě)IOPS。在解壓性能上,CSD的兩個(gè)解壓引擎實(shí)現(xiàn)了在60%和30%壓縮率下,2.3GB/s和2.8GB/s的總解壓吞吐量。

在使用TPC-H基準(zhǔn)測(cè)試的LINEITEM表作為測(cè)試負(fù)載測(cè)試下,作者分別對(duì)比了下移掃描任務(wù)前后整體的掃描延遲和PCIe數(shù)據(jù)流量。對(duì)比項(xiàng)共有4個(gè),分別是基于CPU、不進(jìn)行壓縮的掃描下移;基于CSD,無(wú)壓縮的掃描下移;基于CPU有Snappy壓縮的掃描下移以及基于CSD、有Snappy壓縮的掃描下移。測(cè)試結(jié)果表明:相對(duì)于基于CPU的掃描下移,CSD將平均掃描延遲從55s降低到39s,同時(shí)CPU占用率從514%降低到140%,收益最低的TS-6測(cè)試項(xiàng)中,延遲依然從65s下降到53s,同時(shí)CPU利用率從558%降低到374%。測(cè)試同時(shí)發(fā)現(xiàn),基于CSD的負(fù)載中,CPU負(fù)載與數(shù)據(jù)選擇性正相關(guān),即傳輸?shù)紺PU的數(shù)據(jù)越少,CPU負(fù)載越低,而基于CPU的掃描則與數(shù)據(jù)選擇性無(wú)關(guān)。這說(shuō)明基于CSD的掃描效率更高,且效率隨著CSD規(guī)模增加可以擴(kuò)展。

2cbe7da8-fa1e-11ed-90ce-dac502259ad0.png

而從PCIe流量對(duì)比中可以發(fā)現(xiàn),CSD的數(shù)據(jù)移動(dòng)量更少,因此額外功耗更低。

2cc5a72c-fa1e-11ed-90ce-dac502259ad0.png

之后作者進(jìn)行了系統(tǒng)級(jí)評(píng)估,在POLARDB的云實(shí)例上運(yùn)行TPC-H負(fù)載進(jìn)行測(cè)試。每個(gè)實(shí)例運(yùn)行32個(gè)SQL引擎容器,分布在7個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)和3個(gè)后端存儲(chǔ)節(jié)點(diǎn)上,每個(gè)存儲(chǔ)節(jié)點(diǎn)包括12個(gè)3.7TB的CSD。分別考慮3個(gè)場(chǎng)景:1. 基準(zhǔn)場(chǎng)景,即所有數(shù)據(jù)由存儲(chǔ)節(jié)點(diǎn)傳輸?shù)綌?shù)據(jù)庫(kù)節(jié)點(diǎn)進(jìn)行處理;2. 基于CPU的下移場(chǎng)景,即掃描任務(wù)下移到存儲(chǔ)節(jié)點(diǎn)的CPU上;3. 基于CSD的下移場(chǎng)景,即掃描任務(wù)下移到CSD上。

2cced8c4-fa1e-11ed-90ce-dac502259ad0.png

測(cè)試結(jié)果表明,隨著請(qǐng)求數(shù)量增加,基于CSD的下移相比基于CPU的下移帶來(lái)更多的延遲性能提升,這是由于隨著并行請(qǐng)求數(shù)量增長(zhǎng),每個(gè)存儲(chǔ)節(jié)點(diǎn)有更多的并行掃描任務(wù),更利于硬件并行化;另外,基于CSD的下移在表進(jìn)行壓縮時(shí)表現(xiàn)出更高的性能提升,這是由于基于CPU的下移需要更多資源進(jìn)行解壓。

流量測(cè)試結(jié)果表明,基于CSD的掃描下移相比與基于CPU的掃描下移,在7個(gè)TPC-H并行查詢(xún)時(shí)可以降低50%的PCIe流量,最大PCIe傳輸流量降低了97%,而12個(gè)并行TPC-H查詢(xún)的網(wǎng)絡(luò)總流量降低了70%。

總結(jié)

本文報(bào)告了跨軟-硬件協(xié)同的阿里云關(guān)系型數(shù)據(jù)庫(kù)POLARDBDA設(shè)計(jì)優(yōu)化,以更高效處理分析型負(fù)載。其基本思想是將高開(kāi)銷(xiāo)的表掃描操作分發(fā)到CSD中,核心思想簡(jiǎn)單且與當(dāng)前異構(gòu)計(jì)算的工業(yè)趨勢(shì)吻合。測(cè)試結(jié)果表明本文的設(shè)計(jì)在查詢(xún)測(cè)試中可以獲得超過(guò)30%的延遲性能提升,同時(shí)減少50%的存儲(chǔ)-內(nèi)存數(shù)據(jù)移動(dòng)。作者表示,希望本工作可以激勵(lì)更多關(guān)于如何在云基礎(chǔ)設(shè)施更好利用CSD的探索。

The End

致謝

感謝本次論文解讀者,來(lái)自華東師范大學(xué)的碩士生黃奕陽(yáng),主要研究方向?yàn)榇鎯?chǔ)壓縮、存儲(chǔ)計(jì)算。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4296

    瀏覽量

    85797
  • SSD
    SSD
    +關(guān)注

    關(guān)注

    21

    文章

    2857

    瀏覽量

    117366
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3794

    瀏覽量

    64355
  • 阿里云
    +關(guān)注

    關(guān)注

    3

    文章

    952

    瀏覽量

    43006
  • 云原生
    +關(guān)注

    關(guān)注

    0

    文章

    248

    瀏覽量

    7947

原文標(biāo)題:使用可計(jì)算SSD加速云原生數(shù)據(jù)庫(kù)

文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ICDE:POLARDB定義云原生數(shù)據(jù)庫(kù)

    Native DataBase成為行業(yè)標(biāo)準(zhǔn)。以下為阿里云資深技術(shù)專(zhuān)家蔡松露演講實(shí)錄:現(xiàn)在我給大家介紹一下我們的云原生數(shù)據(jù)庫(kù)-POLARDB。大家可能要問(wèn)到底什么是“云原生數(shù)據(jù)庫(kù)”,
    發(fā)表于 04-20 18:10

    直擊DTCC2018 阿里數(shù)據(jù)庫(kù)技術(shù)干貨全面解析

    的主題吧。1、主題:深度解析云原生數(shù)據(jù)庫(kù)POLARDB直播時(shí)間:5月11日下午15:00簡(jiǎn)介:什么是“云原生數(shù)據(jù)庫(kù)”,云原生
    發(fā)表于 04-27 17:58

    數(shù)據(jù)庫(kù)廠(chǎng)商都怕低價(jià)競(jìng)爭(zhēng)?阿里云說(shuō)并不可懼

    ,我們來(lái)看看云原生數(shù)據(jù)庫(kù)由內(nèi)而外有哪些具體的與眾不同?經(jīng)過(guò)優(yōu)化的計(jì)算和存儲(chǔ)引擎使得POLARDB讀性能可達(dá)百萬(wàn)QPS,寫(xiě)性能超過(guò)13萬(wàn)QPS;采用計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)分離的設(shè)計(jì),滿(mǎn)足公有
    發(fā)表于 05-11 11:02

    重新定義數(shù)據(jù)庫(kù)的時(shí)刻,阿里云數(shù)據(jù)庫(kù)專(zhuān)家?guī)懔私釶OLARDB

    滿(mǎn)足了公有云計(jì)算環(huán)境下用戶(hù)業(yè)務(wù)快速?gòu)椥詳U(kuò)展的剛性需求,同時(shí)也滿(mǎn)足了互聯(lián)網(wǎng)環(huán)境下用戶(hù)對(duì)數(shù)據(jù)庫(kù)服務(wù)器高可用的需求。本文就帶領(lǐng)大家了解什么是“云原生數(shù)據(jù)庫(kù)”,
    發(fā)表于 05-30 16:58

    云棲干貨回顧 | 云原生數(shù)據(jù)庫(kù)POLARDB專(zhuān)場(chǎng)“硬核”解析

    POLARDB是阿里巴巴自主研發(fā)的云原生關(guān)系型數(shù)據(jù)庫(kù),目前兼容三種數(shù)據(jù)庫(kù)引擎:MySQL、PostgreSQL、Oracle。POLARDB的計(jì)算能力最高可擴(kuò)展至1000核以上,存儲(chǔ)容
    發(fā)表于 10-15 15:38

    如何使用原生hqc連接MySQL數(shù)據(jù)庫(kù)

    springboot項(xiàng)目中使用原生hqc連接MySQL數(shù)據(jù)庫(kù)
    發(fā)表于 06-08 12:12

    企業(yè)如何選擇云計(jì)算數(shù)據(jù)庫(kù)?

    近年來(lái),企業(yè)將本地部署的數(shù)據(jù)遷移云端越來(lái)越成為一種趨勢(shì)。但是,企業(yè)是否應(yīng)該使用在云端和本地運(yùn)行的云原生數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)
    發(fā)表于 06-04 01:41 ?912次閱讀

    OLAP數(shù)據(jù)庫(kù)將全面地進(jìn)入云原生時(shí)代,實(shí)現(xiàn)會(huì)數(shù)據(jù)庫(kù)就會(huì)大數(shù)據(jù)

    2020云棲大會(huì)期間,阿里巴巴正式成立云原生技術(shù)委員會(huì),阿里巴巴高級(jí)研究員蔣江偉擔(dān)任委員會(huì)負(fù)責(zé)人,達(dá)摩院數(shù)據(jù)庫(kù)首席科學(xué)家李飛飛、阿里云計(jì)算平臺(tái)高級(jí)研究員賈揚(yáng)清、阿里云原生應(yīng)用平臺(tái)研究員
    的頭像 發(fā)表于 09-23 15:43 ?3968次閱讀

    阿里云PolarDB數(shù)據(jù)庫(kù)云原生進(jìn)行到底!業(yè)內(nèi)首次實(shí)現(xiàn)三層池化

    智能數(shù)據(jù)庫(kù)事業(yè)部總負(fù)責(zé)人李飛飛表示,PolarDB將云原生進(jìn)行到底! ? 本次技術(shù)升級(jí)中,PolarDB實(shí)現(xiàn)了三項(xiàng)創(chuàng)新:第一,業(yè)內(nèi)首次實(shí)現(xiàn)內(nèi)存與計(jì)算、存儲(chǔ)的三層解耦,實(shí)現(xiàn)內(nèi)存池化,使得彈性能力呈數(shù)量級(jí)提升,同時(shí)大幅度降低成本;第
    的頭像 發(fā)表于 10-20 11:15 ?1863次閱讀
    阿里云PolarDB<b class='flag-5'>數(shù)據(jù)庫(kù)</b>將<b class='flag-5'>云原生</b>進(jìn)行到底!業(yè)內(nèi)首次實(shí)現(xiàn)三層池化

    NVIDIA引入云原生超級(jí)計(jì)算架構(gòu)

    隔離統(tǒng)一為超級(jí)計(jì)算服務(wù)。 Magnum IO 是數(shù)據(jù)中心的 I / O 子系統(tǒng),它引入了新的增強(qiáng)功能,以加速多租戶(hù)數(shù)據(jù)中心的 I / O 和通信。我們將這些增強(qiáng)功能稱(chēng)為 Magnum
    的頭像 發(fā)表于 11-21 10:43 ?2036次閱讀

    華為云云原生數(shù)據(jù)庫(kù),激發(fā)數(shù)據(jù)活力

    華為云云原生數(shù)據(jù)庫(kù) ,激發(fā)數(shù)據(jù)活力 伴隨數(shù)字化轉(zhuǎn)型步入“深水區(qū)”,企業(yè)的業(yè)務(wù)需求迭代迅速,數(shù)據(jù)量和并發(fā)訪(fǎng)問(wèn)量呈指數(shù)級(jí)增長(zhǎng),傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 01-12 20:26 ?615次閱讀

    深耕數(shù)據(jù)庫(kù)根技術(shù),華為云云原生數(shù)據(jù)庫(kù)推動(dòng)汽車(chē)產(chǎn)業(yè)數(shù)智升級(jí)

    佑卡車(chē)基地,并分享了華為云云原生數(shù)據(jù)庫(kù)的最新技術(shù)和發(fā)展方向,以云原生力量全新推動(dòng)汽車(chē)產(chǎn)業(yè)的數(shù)智升級(jí)。 汽車(chē)產(chǎn)業(yè)數(shù)智升級(jí)加速,福佑卡車(chē)迎勢(shì)而上 隨著汽車(chē)市場(chǎng)的蓬勃發(fā)展,業(yè)內(nèi)專(zhuān)家提出了電動(dòng)
    的頭像 發(fā)表于 06-29 16:44 ?432次閱讀
    深耕<b class='flag-5'>數(shù)據(jù)庫(kù)</b>根技術(shù),華為云<b class='flag-5'>云原生</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b>推動(dòng)汽車(chē)產(chǎn)業(yè)數(shù)智升級(jí)

    云原生數(shù)據(jù)庫(kù)GaiaDB架構(gòu)設(shè)計(jì)解析

    目前,云原生數(shù)據(jù)庫(kù)已經(jīng)被各行各業(yè)大規(guī)模投入到實(shí)際生產(chǎn)中,最終的目標(biāo)都是「單機(jī) + 分布式一體化」。但在演進(jìn)路線(xiàn)上,當(dāng)前主要有兩個(gè)略有不同的路徑。
    的頭像 發(fā)表于 12-14 14:48 ?580次閱讀
    <b class='flag-5'>云原生</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b>GaiaDB架構(gòu)設(shè)計(jì)解析

    華為云原生多模數(shù)據(jù)庫(kù) GeminiDB 架構(gòu)與應(yīng)用實(shí)踐

    近日,2023 全球分布式云大會(huì)·深圳站順利召開(kāi),華為云 NoSQL 數(shù)據(jù)庫(kù)研發(fā)總監(jiān)余汶龍?jiān)跁?huì)上發(fā)表了題為《華為云原生多模數(shù)據(jù)庫(kù) GeminiDB 架構(gòu)與應(yīng)用實(shí)踐》的精彩演講。 余汶龍?zhí)岢鲈谥悄?/div>
    的頭像 發(fā)表于 04-08 18:23 ?1172次閱讀
    華為<b class='flag-5'>云原生</b>多模<b class='flag-5'>數(shù)據(jù)庫(kù)</b> GeminiDB 架構(gòu)與應(yīng)用實(shí)踐

    云原生數(shù)據(jù)庫(kù)哪個(gè)好一些?

    云原生數(shù)據(jù)庫(kù)哪個(gè)好一些?云原生數(shù)據(jù)庫(kù)各有其獨(dú)特的優(yōu)勢(shì),適用于不同的場(chǎng)景。云原生強(qiáng)調(diào)高效資源利用、快速開(kāi)發(fā)部署和高可伸縮性,適合需要高度靈
    的頭像 發(fā)表于 11-29 10:07 ?127次閱讀
    RM新时代网站-首页