陳 超,顧青峰
(中國氣象局氣象發(fā)展與規(guī)劃院,北京 100081)
氣象數(shù)據(jù)是一種典型的科學(xué)大數(shù)據(jù),而且基于氣象觀測(cè)數(shù)據(jù)的天氣預(yù)報(bào)與大眾生活息息相關(guān),影響非常廣泛。在氣象大數(shù)據(jù)中,最大規(guī)模的一類數(shù)據(jù)是模式數(shù)據(jù)。模式數(shù)據(jù)是由氣象專用高性能計(jì)算機(jī)根據(jù)最新的天氣實(shí)況數(shù)據(jù),通過物理方程計(jì)算產(chǎn)生,其內(nèi)容包含了我國和地球上各個(gè)經(jīng)緯度、不同海拔上的多種預(yù)測(cè)的物理量(例如溫度、濕度、風(fēng)向、風(fēng)速等),而且每個(gè)物理量都包括未來不同時(shí)間點(diǎn)的預(yù)測(cè)值(如未來3 h,6 h,9 h和72 h等)。根據(jù)國家氣象中心(中央氣象臺(tái))的統(tǒng)計(jì),氣象數(shù)據(jù)中約有70%的數(shù)據(jù)為模式數(shù)據(jù)[1]。
氣象模式數(shù)據(jù)規(guī)模大,不僅每天高性能計(jì)算機(jī)會(huì)多次將計(jì)算模式數(shù)據(jù)導(dǎo)入氣象數(shù)據(jù)管理系統(tǒng),而且預(yù)報(bào)員要頻繁地通過模式數(shù)據(jù)進(jìn)行各種查詢,用于生成正式的數(shù)值預(yù)報(bào)、集合預(yù)報(bào)等。因此,氣象模式數(shù)據(jù)同時(shí)面臨海量數(shù)據(jù)規(guī)模、大量寫入和大量查詢的挑戰(zhàn)。傳統(tǒng)的氣象數(shù)據(jù)管理系統(tǒng)一般采用關(guān)系數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)的文件存儲(chǔ)位置、分布式文件系統(tǒng)存儲(chǔ)具體模式數(shù)據(jù)的形式。用戶訪問這類系統(tǒng)時(shí),一方面需要經(jīng)過多個(gè)系統(tǒng)訪問,訪問延遲較大;另一方面文件系統(tǒng)處理復(fù)雜數(shù)據(jù)查詢的能力很差,需要提取大量數(shù)據(jù)到應(yīng)用系統(tǒng)中,也會(huì)造成很大的訪問延遲,不利于確保天氣預(yù)報(bào)的實(shí)時(shí)性。
但是,氣象模式數(shù)據(jù)也存在一個(gè)顯著的訪問特征,即對(duì)延遲敏感的天氣預(yù)報(bào)工作需要經(jīng)常訪問最新的模式數(shù)據(jù),而大量的歷史模式數(shù)據(jù)主要是氣候變化分析等延遲不敏感的應(yīng)用訪問。因此,基于氣象模式數(shù)據(jù)的特征,本文設(shè)計(jì)了一種基于最新的快速非易失內(nèi)存NVM(Non-Volatile Memory)[2,3]的混合內(nèi)存高速氣象數(shù)據(jù)管理系統(tǒng),充分利用NVM和傳統(tǒng)隨機(jī)訪問內(nèi)存DRAM(Dynamic Random Access Memory)的硬件特征,基于混合內(nèi)存支持對(duì)實(shí)時(shí)性要求較高的天氣預(yù)報(bào)查詢;非最新的模式數(shù)據(jù)在負(fù)載低谷期逐漸導(dǎo)入基于固態(tài)硬盤或磁盤的大容量、低成本氣象數(shù)據(jù)管理系統(tǒng)中。實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)和研發(fā)的基于NVM混合內(nèi)存的高速氣象數(shù)據(jù)管理系統(tǒng)比基于純內(nèi)存的數(shù)據(jù)管理系統(tǒng),性能增幅為114.2%,而且相對(duì)于內(nèi)存數(shù)據(jù)管理系統(tǒng)具有存儲(chǔ)密度更高、成本更低的優(yōu)勢(shì),能夠很好地滿足對(duì)容量和訪問速度要求都非常高的天氣預(yù)報(bào)業(yè)務(wù)。
傳統(tǒng)的高速數(shù)據(jù)管理系統(tǒng)一般都基于隨機(jī)訪問內(nèi)存DRAM構(gòu)建。DRAM訪問速度快,但是,不能保證數(shù)據(jù)的持久化,即斷電時(shí)數(shù)據(jù)會(huì)丟失。因此內(nèi)存數(shù)據(jù)管理系統(tǒng)同時(shí)需要部署持久化存儲(chǔ)介質(zhì)(例如基于閃存的固態(tài)硬盤或磁盤)來存儲(chǔ)寫前日志W(wǎng)AL(Write-Ahead Logging),這樣即使斷電,也可以從持久化設(shè)備中恢復(fù)原始數(shù)據(jù)。但是,由于固態(tài)硬盤和磁盤等持久化設(shè)備的訪問速度比DRAM慢幾個(gè)數(shù)量級(jí),因此日志部分往往是內(nèi)存數(shù)據(jù)管理系統(tǒng)的性能瓶頸,明顯影響了整個(gè)數(shù)據(jù)管理系統(tǒng)的性能。
非易失內(nèi)存NVM是近年來涌現(xiàn)的一種新型存儲(chǔ)介質(zhì),最大的特點(diǎn)是具備接近DRAM的訪問速度,同時(shí)具備持久化存儲(chǔ)能力,其訪問速度、存儲(chǔ)密度、成本都介于內(nèi)存和外存之間,是一種全新的存儲(chǔ)形態(tài),為計(jì)算機(jī)系統(tǒng)帶來很多新的發(fā)展機(jī)會(huì)。2019年4月,Intel正式推出了雙列直插式內(nèi)存DIMM(Dual-Inline-Memory-Modules)接口的NVM產(chǎn)品,即Optane Persistent Memory[4],目前已有很多實(shí)際應(yīng)用。對(duì)于數(shù)據(jù)管理系統(tǒng)來說,NVM一方面可以利用更高的存儲(chǔ)密度和更低的成本來大幅擴(kuò)展DRAM的存儲(chǔ)空間;另一方面可以利用其持久化存儲(chǔ)的能力替代傳統(tǒng)外存的日志存儲(chǔ)功能,構(gòu)建更高速的數(shù)據(jù)管理系統(tǒng)。
但是,NVM相對(duì)于DRAM、磁盤等傳統(tǒng)存儲(chǔ)介質(zhì),同時(shí)也具備一些更加復(fù)雜的硬件特征,需要軟件訪問盡可能與硬件特征相匹配,才能充分發(fā)揮NVM的硬件優(yōu)勢(shì)[5]。NVM的這些硬件特征主要包括:
(1) 讀寫不平衡,NVM的寫性能,尤其是隨機(jī)寫帶寬明顯小于其他訪問模式的,如表1[5]所示;NVM的連續(xù)訪問模式和隨機(jī)訪問模式之間的性能差距較大,且比DRAM和固態(tài)硬盤SSD(Solid State Drive)的要更大。
(2) NVM的訪問延遲和帶寬相對(duì)于DRAM的仍然有明顯的差距,因此在系統(tǒng)中用好DRAM緩存仍然對(duì)整體性能非常重要。
(3) NVM對(duì)小于256 B的訪問會(huì)將其放大為256 B,從而造成性能下降。
(4) NVM的性能對(duì)訪問的并行度非常敏感:單條NVM讀操作最優(yōu)并行度一般為4個(gè)線程;寫操作如果使用ntstore匯編指令,最佳并行度為1,如果使用clwb指令則最優(yōu)并行度為2。
Table 1 Main performance indicators of DRAM, NVM and SSD表1 DRAM、NVM和SSD的主要性能指標(biāo)
近幾年來關(guān)于NVM的研究工作主要包括基于NVM的新型索引技術(shù)[6-10]、基于NVM的日志方法[11,12]和基于NVM的存儲(chǔ)數(shù)據(jù)組織[13,14]等,這些都是對(duì)模塊和方法的研究,還缺少完整的數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)。
模式數(shù)據(jù)是非常重要的一種氣象數(shù)據(jù)。模式數(shù)據(jù)生成和使用的主要過程如圖1所示。首先,氣象系統(tǒng)部署了大量的地面、高空、衛(wèi)星氣象傳感器,這些傳感器一般間隔數(shù)秒會(huì)采集、記錄和發(fā)送一次氣象狀態(tài)信息,這些信息通過各種類型的網(wǎng)絡(luò)匯聚到氣象大數(shù)據(jù)管理系統(tǒng)中。然后,氣象高性能計(jì)算機(jī)根據(jù)預(yù)設(shè)的物理方程和傳感器發(fā)來的最新天氣狀態(tài)信息進(jìn)行計(jì)算,生成模式數(shù)據(jù),一般每天進(jìn)行2~4次或更多次計(jì)算,每次計(jì)算都會(huì)更新模式數(shù)據(jù)。目前主流的氣象模式有多種,一般高性能計(jì)算會(huì)根據(jù)模式同時(shí)生成多種模式數(shù)據(jù),并存儲(chǔ)在氣象模式數(shù)據(jù)管理系統(tǒng)中。
Figure 1 Schematic diagram of generation, management,and use of model data圖1 模式數(shù)據(jù)的產(chǎn)生、管理和使用示意圖
如圖2所示,在進(jìn)行模式數(shù)據(jù)計(jì)算時(shí),首先按照經(jīng)緯度將空間劃分為一些固定大小的網(wǎng)格(例如邊長(zhǎng)為幾十公里),每個(gè)網(wǎng)格是一個(gè)基本的氣象單元,每次模式數(shù)據(jù)計(jì)算一般都會(huì)對(duì)每個(gè)氣象網(wǎng)格產(chǎn)生大約1 000個(gè)物理量(包括氣溫、濕度、風(fēng)向、風(fēng)速等),每個(gè)物理量包括未來不同時(shí)間段的預(yù)測(cè)結(jié)果(例如未來3 h,6 h,9 h,24 h和72 h等),一般以3 h為間隔,從當(dāng)前時(shí)刻一直計(jì)算到未來240 h或更長(zhǎng)時(shí)間。每個(gè)氣象網(wǎng)格的數(shù)據(jù)量大約在MB級(jí)。然后每個(gè)典型海拔都需要計(jì)算這樣一個(gè)氣象網(wǎng)格平面的模式數(shù)據(jù),以供預(yù)報(bào)員查詢和生成最終的天氣預(yù)報(bào)使用。網(wǎng)格越小,天氣預(yù)報(bào)的精度越高,但是對(duì)高性能計(jì)算和氣象數(shù)據(jù)管理系統(tǒng)的要求就越高。隨著技術(shù)的進(jìn)步,天氣預(yù)報(bào)的精度在逐漸提高,目前空間分辨率主要是25 km,預(yù)計(jì)未來5年可以達(dá)到12.5 km。
Figure 2 Schematic diagram of weather model data圖2 氣象模式數(shù)據(jù)示意圖
對(duì)于天氣預(yù)報(bào)業(yè)務(wù),預(yù)報(bào)員會(huì)對(duì)模式數(shù)據(jù)進(jìn)行多種查詢,比如多種模式數(shù)據(jù)的比對(duì)(例如我國氣象結(jié)構(gòu)產(chǎn)生的模式數(shù)據(jù)與歐洲氣象中心的模式數(shù)據(jù)的對(duì)比)、查詢一定經(jīng)緯度范圍的網(wǎng)格平面數(shù)據(jù)(例如未來幾小時(shí)內(nèi)一個(gè)省的地面溫度)及查詢某個(gè)網(wǎng)格的時(shí)間序列數(shù)據(jù)(例如一個(gè)特定地點(diǎn)未來幾個(gè)時(shí)間段內(nèi)的溫度變化情況)等等。天氣預(yù)報(bào)業(yè)務(wù)一般主要關(guān)注最新的模式數(shù)據(jù),因此比較適合部署一個(gè)高速的小規(guī)模數(shù)據(jù)管理系統(tǒng)進(jìn)行管理,以滿足最新模式數(shù)據(jù)的不斷寫入和實(shí)時(shí)查詢需求。氣候變化研究等業(yè)務(wù)關(guān)注的是大規(guī)模歷史數(shù)據(jù)查詢,一般對(duì)實(shí)時(shí)性的要求遠(yuǎn)比天氣預(yù)報(bào)的要低,因此比較適合基于固態(tài)硬盤或磁盤等大容量、低成本的存儲(chǔ)介質(zhì)來構(gòu)建大數(shù)據(jù)管理系統(tǒng)。2個(gè)子系統(tǒng)可以配合,最新的模式數(shù)據(jù)周期性轉(zhuǎn)移到大數(shù)據(jù)管理系統(tǒng)中。
NVM的高性能、高存儲(chǔ)密度適合于拓展傳統(tǒng)內(nèi)存數(shù)據(jù)管理系統(tǒng)的存儲(chǔ)規(guī)模,并提升持久化日志部分的性能,構(gòu)建高速氣象數(shù)據(jù)管理系統(tǒng)。因此,本文主要聚焦基于NVM的軟硬件協(xié)同高速氣象數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)。
由于NVM的硬件特征比較復(fù)雜多樣,因此基于NVM的系統(tǒng)設(shè)計(jì)比傳統(tǒng)基于DRAM、磁盤、固態(tài)硬盤的設(shè)計(jì)要復(fù)雜很多,必須進(jìn)行深入的軟硬件協(xié)同設(shè)計(jì),才能充分發(fā)揮NVM的性能優(yōu)勢(shì),同時(shí)又盡可能規(guī)避其缺點(diǎn)。如表2所示,首先針對(duì)NVM的幾條關(guān)鍵硬件特征,推導(dǎo)出NVM數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)要點(diǎn)。
Table 2 Correspondence between NVM hardware characteristics and system design表2 NVM硬件特征與系統(tǒng)設(shè)計(jì)的對(duì)應(yīng)關(guān)系
基于NVM混合內(nèi)存的數(shù)據(jù)管理系統(tǒng)NVMDB(NVM Database)的架構(gòu)如圖3所示。索引、日志緩沖區(qū)放置于DRAM中用于性能加速。數(shù)據(jù)元組(每條記錄為一個(gè)元組Tuple)放置于DRAM和NVM中,這部分NVM不需要保證數(shù)據(jù)的持久性(即不需要通過ntstore、clwb等匯編指令從CPU緩存刷出數(shù)據(jù)到NVM控制器中),相當(dāng)于DRAM空間的擴(kuò)展空間,增加了NVMDB可以管理的數(shù)據(jù)規(guī)模。這種情況下,NVM的平均性能比保障持久化的情況性能要更好。同時(shí),保證持久化的NVM中部分用來存儲(chǔ)WAL日志,并定期從WAL轉(zhuǎn)到檢查點(diǎn)(Checkpoint)中,用于減小WAL的空間。由于檢查點(diǎn)中的數(shù)據(jù)有組織,可以通過索引直接訪問,因此,當(dāng)數(shù)據(jù)進(jìn)入檢查點(diǎn)后,可以從非持久化的“數(shù)據(jù)元組”中清理,避免數(shù)據(jù)重復(fù)導(dǎo)致的空間浪費(fèi)。NVMDB的具體模塊設(shè)計(jì)將在下面幾個(gè)小節(jié)中詳細(xì)介紹。
Figure 3 Data management system (NVMDB) architecture diagram圖3 NVM數(shù)據(jù)管理系統(tǒng)(NVMDB)架構(gòu)圖
NVM的存儲(chǔ)密度遠(yuǎn)高于DRAM的,而且未來還有很好的增長(zhǎng)空間,因此NVM可以有效擴(kuò)展DRAM空間。而且在內(nèi)存數(shù)據(jù)管理系統(tǒng)中,NVM擴(kuò)展DRAM空間時(shí)不需要進(jìn)行持久化保障,即不需要在寫入操作(如store指令)后立刻調(diào)用fence指令來保障指令完成順序,也不需要調(diào)用clflush或clwb指令來強(qiáng)制CPU緩存寫回NVM,這樣寫操作的性能更高。隨著后續(xù)CPU緩存的數(shù)據(jù)淘汰,NVM上的數(shù)據(jù)自然會(huì)逐漸達(dá)到持久化狀態(tài)。
目前Intel研發(fā)的Optane NVM設(shè)備具有memory、app-direct和block-device 3種工作模式。Memory模式下NVM不保證數(shù)據(jù)的持久化,而且DRAM會(huì)被自動(dòng)配置為NVM的硬件緩存,因此DRAM空間在系統(tǒng)中也“消失”,無法直接操作DRAM了。App-direct模式指用戶可以直接細(xì)粒度操作NVM空間,例如使用Intel的持久化內(nèi)存編程庫PMDK(Persistent Memory Development Kit)[15],可以進(jìn)行讀、寫、持久化等操作。Block-device模式是把NVM當(dāng)作和固態(tài)硬盤一樣的塊設(shè)備,采用標(biāo)準(zhǔn)的塊設(shè)備接口進(jìn)行訪問,這種模式性能損失較大,本文不做考慮。本文設(shè)計(jì)的NVMDB采用app-direct模式對(duì)NVM空間進(jìn)行管理,更為靈活高效,也避免了DRAM空間的浪費(fèi)。
在NVMDB中,由DRAM和NVM構(gòu)成的混合內(nèi)存按照?qǐng)D4所示的方式進(jìn)行管理。DRAM和NVM都映射到虛擬內(nèi)存空間,用戶進(jìn)程基于PMDK接口進(jìn)行訪問。具體來說,通過固定大小的頁面(Page)進(jìn)行空間的分配和回收,其中DRAM對(duì)應(yīng)的頁面為熱頁HP(Hot Page),NVM空間對(duì)應(yīng)的頁面為NVM頁NP(NVM Page)。其中HP主要用于放置元組、索引和寫緩存;NP主要用于放置元組、檢查點(diǎn)數(shù)據(jù)和WAL數(shù)據(jù)。
Figure 4 Hybrid memory space management圖4 混合內(nèi)存空間管理
由于DRAM的性能要優(yōu)于NVM的,除了索引與寫緩存固定使用HP外,NVMDB的數(shù)據(jù)放置策略為優(yōu)先使用HP放置元組。在4.3節(jié)將詳細(xì)介紹日志清理過程中對(duì)DRAM元組的釋放,釋放出HP空閑空間,用于存儲(chǔ)最新寫入的元組數(shù)據(jù)。因此,NVMDB可以充分利用DRAM資源提升性能。NVMDB的垃圾回收策略是以頁面為單位,后臺(tái)優(yōu)先選擇垃圾數(shù)據(jù)比例高的頁面進(jìn)行回收。
NVMDB中的事務(wù)處理采用組提交方式,事務(wù)預(yù)提交之后,最新的數(shù)據(jù)在DRAM寫緩沖區(qū),等待后臺(tái)的“日志寫”線程寫入NVM進(jìn)行持久化之后,才算提交成功。多個(gè)并行的事務(wù)處理線程會(huì)先把日志數(shù)據(jù)寫到每個(gè)線程自己本地的DRAM緩沖區(qū),事務(wù)預(yù)提交之后集中寫入全局DRAM緩沖區(qū),多個(gè)“日志寫”后臺(tái)線程會(huì)將數(shù)據(jù)從全局DRAM緩沖區(qū)寫入到NVM的日志空間中。“日志寫”后臺(tái)線程的數(shù)量設(shè)置為NVM硬件的最佳寫并行度(一般每個(gè)CPU配備6個(gè)線程)。
為了防止WAL空間過大,NVMDB的后臺(tái)日志清理進(jìn)程會(huì)定期將WAL中的數(shù)據(jù)轉(zhuǎn)入檢查點(diǎn)。具體轉(zhuǎn)換時(shí)先分析每條WAL日志,找到對(duì)應(yīng)的元組數(shù)據(jù);如果元組數(shù)據(jù)在NVM空間,則不用進(jìn)行額外操作,因?yàn)槿罩厩謇磉^程會(huì)延遲進(jìn)行,NVMDB的NVM空間會(huì)有周期性的Cache刷回操作以保證數(shù)據(jù)的持久化,在進(jìn)行日志清理時(shí),NVM元組空間中的數(shù)據(jù)已經(jīng)保證了持久化;如果元組數(shù)據(jù)在DRAM空間,會(huì)寫入NVM空間并進(jìn)行持久化,形成檢查點(diǎn)數(shù)據(jù)。整個(gè)過程如圖4所示。
NVMDB的數(shù)據(jù)恢復(fù)主要包括WAL日志處理和索引恢復(fù)2個(gè)部分:
(1) 在節(jié)點(diǎn)崩潰或系統(tǒng)重啟時(shí),DRAM中的數(shù)據(jù)會(huì)全部丟失,包括DRAM中存儲(chǔ)的元組數(shù)據(jù);而NVM中的元組數(shù)據(jù)由于無法保證能從CPU緩存中刷回到NVM中,因此這部分?jǐn)?shù)據(jù)需要與DRAM的進(jìn)行相同的處理,即全部丟棄。只有保障持久化存儲(chǔ)的NVM中的檢查點(diǎn)和WAL日志不會(huì)丟失。在恢復(fù)過程中需要將WAL日志按照標(biāo)準(zhǔn)流程進(jìn)行處理,包括分析、重做和撤銷3個(gè)階段,恢復(fù)DRAM和NVM元組數(shù)據(jù)部分的數(shù)據(jù)。由于系統(tǒng)會(huì)周期性進(jìn)行日志清理,本文將數(shù)據(jù)轉(zhuǎn)移到NVM的檢查點(diǎn)中,因此WAL日志的數(shù)量一般不多,恢復(fù)速度較快。在處理WAL恢復(fù)元組數(shù)據(jù)的同時(shí),也恢復(fù)了相應(yīng)數(shù)據(jù)對(duì)應(yīng)的索引。
(2) 對(duì)于索引來說,除了WAL日志中包括的合法數(shù)據(jù)外,NVM檢查點(diǎn)中的數(shù)據(jù)也需要與索引關(guān)聯(lián),以便后續(xù)查找。因此,恢復(fù)索引的過程還需要掃描整個(gè)檢查點(diǎn)中的數(shù)據(jù)。為了加快索引恢復(fù)速度,對(duì)NVM檢查的訪問采取并行讀取的方式。
本節(jié)對(duì)本文所設(shè)計(jì)與研發(fā)的基于NVM混合的數(shù)據(jù)管理系統(tǒng)NVMDB與經(jīng)典的內(nèi)存數(shù)據(jù)管理系統(tǒng)MMDB(Main Memory Database)進(jìn)行實(shí)驗(yàn)比較。MMDB的元組數(shù)據(jù)都存儲(chǔ)于DRAM中,按照持久化日志存儲(chǔ)介質(zhì)的不同,分為MMDB-SSD(采用固態(tài)硬盤作為持久化設(shè)備)和MMDB-NVM(采用NVM作為持久化設(shè)備)2種。其中,MMDB-SSD是目前普遍采用的方案,MMDB-NVM與本文設(shè)計(jì)的NVMDB采用同樣的NVM硬件進(jìn)行持久化。NVMDB的元組數(shù)據(jù)也大部分存儲(chǔ)于NVM中,數(shù)據(jù)存儲(chǔ)規(guī)模遠(yuǎn)大于MMDB-SSD和MMDB-NVM的。
本文實(shí)驗(yàn)采用標(biāo)準(zhǔn)的TPC-C測(cè)試基準(zhǔn)[16]。TPC-C測(cè)試基準(zhǔn)是國際事務(wù)處理性能委員會(huì)TPC(Transaction Processing Council)組織制定的數(shù)據(jù)庫聯(lián)機(jī)事務(wù)處理OLTP(Online Transactional Processing)系統(tǒng)性能的權(quán)威測(cè)試基準(zhǔn),非常具有代表性,受到廣泛認(rèn)可。TPC-C中有5種類型的事務(wù),每種事務(wù)有規(guī)定的比例。TPC-C采用數(shù)據(jù)管理系統(tǒng)在單位時(shí)間(如每秒鐘或每分鐘)內(nèi)能夠完成的事務(wù)數(shù)來反映系統(tǒng)性能。
實(shí)驗(yàn)使用的服務(wù)器配備了2個(gè)Intel?Xeon?Gold 5220 CPU @ 2.20 GHz CPU,每個(gè)CPU有18個(gè)物理核心,49.5 MB的三級(jí)高速緩存,每個(gè)CPU上都配置了6條32 GB的DRAM和6條128 GB的Optane DCPMM。實(shí)驗(yàn)平臺(tái)的操作系統(tǒng)內(nèi)核版本是Linux 5.11.0。
圖5給出了不同并行線程數(shù)的幾個(gè)系統(tǒng)的每秒平均事務(wù)數(shù)TPS(Transactions Per Second)對(duì)比。從圖5可以明顯看出,在并行線程數(shù)較低時(shí),由于遠(yuǎn)遠(yuǎn)沒有達(dá)到NVM的最佳并行度,NVM相對(duì)于SSD性能優(yōu)勢(shì)并不明顯,3個(gè)系統(tǒng)的TPS非常接近;當(dāng)并行線程數(shù)達(dá)到16時(shí),NVM的性能相對(duì)于SSD的開始逐漸明顯,因此MMDB-NVM的性能明顯優(yōu)于MMDB-SSD的,二者此時(shí)使用的軟件完全相同,只是日志設(shè)備不同;NVMDB的性能還略低于MMDB-NVM的,主要的原因是NVMDB采用NVM拓展了DRAM的元組數(shù)據(jù)存儲(chǔ)空間,擴(kuò)大了數(shù)據(jù)管理系統(tǒng)的數(shù)據(jù)規(guī)模,NVM存儲(chǔ)的性能低于DRAM的,雖然NVMDB的日志部分性能要優(yōu)于MMDB-NVM的,整體的性能還是略低;最后當(dāng)并行度達(dá)到64以后,由于并行度與NVM的硬件特征更為匹配,雖然NVMDB的數(shù)據(jù)存儲(chǔ)規(guī)模大于MMDB的,但其性能也明顯優(yōu)于MMDB-SSD和MMDB-NVM的。
Figure 5 Performance comparison between NVMDB and existing MMDBs圖5 NVMDB與已有MMDB方案的性能對(duì)比
圖6的2條折線分別表示NVMDB相對(duì)于MMDB-SSD和MMDB-NVM的性能提升百分比。在線程數(shù)為64時(shí),NVMDB的性能增幅分別約為300%和114.2%,加速效果非常顯著。
Figure 6 Performance improvement percentage of NVMDB compared with existing MMDBs圖6 NVMDB相對(duì)于已有MMDB方案的性能提升百分比
目前Intel推出的Optane NVM具有多種使用模式,其中易失性的memory模式看起來非常適合存儲(chǔ)元組數(shù)據(jù),拓展DRAM的存儲(chǔ)空間。Memory模式下,為了加速NVM訪問,控制器會(huì)隱藏DRAM空間,將其作為NVM的緩存來加速。而本文所實(shí)現(xiàn)的NVMDB采用了app-direct模式,由軟件層來管理DRAM和NVM空間,這樣系統(tǒng)中仍然可以使用DRAM空間,空間使用效率更高。
為了評(píng)價(jià)NVMDB與memory模式的性能差異,本文基于NVMDB構(gòu)建了一個(gè)變種:一部分NVM采用memory模式配置,用于存儲(chǔ)元組數(shù)據(jù);另一部分NVM仍然采用原方案存儲(chǔ)WAL日志和檢查點(diǎn)(標(biāo)記為Volatile NVM)。同時(shí),為了更全面地展示效果,NVMDB同時(shí)也與純DRAM存儲(chǔ)元組數(shù)據(jù)的方案(DRAM-Only)進(jìn)行比較;且實(shí)驗(yàn)中的數(shù)據(jù)規(guī)模在DRAM容量之內(nèi)。
3個(gè)方案的TPS情況如圖7所示。在并行線程數(shù)較低(例如1~4線程)時(shí),3個(gè)方案的性能差異很小;在線程數(shù)增加到16~64時(shí),Volatile NVM方案的性能增長(zhǎng)不大,遠(yuǎn)遠(yuǎn)落后于另外2個(gè)方案的,主要原因可能是目前Optane NVM的memory模式還不成熟,還無法充分發(fā)揮高并發(fā)時(shí)NVM的性能優(yōu)勢(shì)。當(dāng)線程數(shù)達(dá)到16~64時(shí),NVMDB的性能略低于DRAM-Only的,但是性能差距不大,尤其是在高并發(fā)(例如64線程)時(shí);考慮到NVMDB相對(duì)于DRAM-Only在存儲(chǔ)空間和成本方面的優(yōu)勢(shì),NVMDB的性能表現(xiàn)已經(jīng)不錯(cuò)了。圖8展示了NVMDB相對(duì)于這2種方案的性能提升百分比。從圖8可以更直觀地看到上述規(guī)律,NVMDB相對(duì)于Volatile NVM的性能優(yōu)勢(shì)非常明顯,而與DRAM-Only的性能差異非常小。
Figure 7 Performance comparison of NVMDB versus memory-mode and pure DRAM圖7 NVMDB與memory模式 和純DRAM元組方案的性能對(duì)比
Figure 8 Performance improvement percentage of NVMDB over memory-mode and pure DRAM圖8 NVMDB相對(duì)于memory模式 和純DRAM元組方案的性能提升百分比
本文提出了兩級(jí)氣象數(shù)據(jù)管理系統(tǒng)框架,其中基于NVM混合內(nèi)存的高速數(shù)據(jù)管理系統(tǒng)相對(duì)于傳統(tǒng)內(nèi)存數(shù)據(jù)管理系統(tǒng),具有更好的性能、更大的存儲(chǔ)規(guī)模和更低的單位數(shù)據(jù)容量成本,可以更好地滿足天氣預(yù)報(bào)和氣候變化分析等氣象業(yè)務(wù)與研究的需求。本文設(shè)計(jì)和研發(fā)的高速數(shù)據(jù)管理系統(tǒng)NVMDB在系統(tǒng)架構(gòu)、模塊和策略設(shè)計(jì)上充分考慮到DRAM和NVM 2種內(nèi)存的硬件特征,采用軟硬件協(xié)同設(shè)計(jì)方法,在混合內(nèi)存空間管理、并行日志寫入等方面顯著拓展存儲(chǔ)規(guī)模并提升了性能。相對(duì)于經(jīng)典的內(nèi)存數(shù)據(jù)庫系統(tǒng),NVMDB具有非常明顯的性能、空間和成本優(yōu)勢(shì),具有很好的推廣應(yīng)用價(jià)值。