国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

固態(tài)硬盤混合存儲(chǔ)數(shù)據(jù)庫的數(shù)據(jù)分布優(yōu)化算法

2015-01-02 02:00:52周世民柴云鵬
計(jì)算機(jī)工程 2015年4期
關(guān)鍵詞:數(shù)據(jù)分布磁盤次數(shù)

周世民,柴云鵬,王 良,王 鑫

(1.中國(guó)人民大學(xué)a.?dāng)?shù)據(jù)工程與知識(shí)工程教育部重點(diǎn)實(shí)驗(yàn)室;b.信息學(xué)院,北京100872;2.天津大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,天津300072)

1 概述

聯(lián)機(jī)事務(wù)處理(On-line Transaction Processing,OLTP)數(shù)據(jù)庫在IT系統(tǒng)中占有非常重要的地位,很多應(yīng)用系統(tǒng)大多離不開數(shù)據(jù)庫,系統(tǒng)整體性能往往也由數(shù)據(jù)庫的性能所制約。因此,提升數(shù)據(jù)庫的性能具有非常重要的意義。傳統(tǒng)數(shù)據(jù)庫一般基于磁盤,磁盤具有穩(wěn)定、非易失、大容量、成本低等優(yōu)點(diǎn),但主要的問題是訪問速度比較慢,因此不利于構(gòu)造高性能的數(shù)據(jù)庫。

近年來,閃存存儲(chǔ)得到長(zhǎng)足發(fā)展,不僅容量迅速增大,而且制造成本也逐漸降低,目前已經(jīng)以固態(tài)硬盤(Solid State Drive,SSD)的形式進(jìn)入了很多實(shí)際的存儲(chǔ)系統(tǒng)中,獲得實(shí)際的應(yīng)用。但SSD的成本目前仍然比磁盤高很多,因此目前多和磁盤構(gòu)成混合存儲(chǔ),這樣既能提升系統(tǒng)性能,又能用較低的成本得到很大的存儲(chǔ)容量?;赟SD-磁盤混合存儲(chǔ)來構(gòu)造OLTP數(shù)據(jù)庫系統(tǒng)是一種提升數(shù)據(jù)庫性能的有效方法。

OLTP數(shù)據(jù)庫要處理大量的交易請(qǐng)求,既需要大量的查詢等讀操作,同時(shí)也需要更新表和索引,有大量的隨機(jī)寫操作。在存儲(chǔ)層引入SSD,尤其是用來存儲(chǔ)一些訪問頻繁的數(shù)據(jù),能夠充分利用SSD的訪問性能明顯高于磁盤的優(yōu)點(diǎn),尤其是對(duì)于隨機(jī)讀寫操作,從而提升OLTP數(shù)據(jù)整體的性能和服務(wù)能力。

但各種應(yīng)用情況下數(shù)據(jù)庫中數(shù)據(jù)特征、訪問特征都有很大差別,數(shù)據(jù)庫不可能出廠時(shí)就確定一種普適的、面向混合存儲(chǔ)的數(shù)據(jù)分布優(yōu)化策略,最理想的情況就是在運(yùn)行時(shí)能夠自適應(yīng),根據(jù)應(yīng)用特征自動(dòng)調(diào)節(jié)數(shù)據(jù)分布。

本文提出一種面向混合存儲(chǔ)的OLTP數(shù)據(jù)庫數(shù)據(jù)分布自適應(yīng)優(yōu)化算法,可自動(dòng)適應(yīng)應(yīng)用的特征,并通過觀測(cè)判斷各個(gè)數(shù)據(jù)元素的性能,從而在SSD和磁盤之間自動(dòng)形成理想的數(shù)據(jù)分布。

2 相關(guān)工作

2.1 閃存和固態(tài)硬盤

隨著閃存在容量上的迅速增長(zhǎng)和成本的降低,以閃存作為存儲(chǔ)介質(zhì)的新型固態(tài)硬盤已經(jīng)在企業(yè)得到實(shí)際的應(yīng)用。SSD最大的優(yōu)點(diǎn)就是隨機(jī)讀寫性能高,較普通磁盤的讀寫性能要高出1個(gè)~3個(gè)數(shù)量級(jí)[1],其中隨機(jī)讀性能比隨機(jī)寫性能更好。對(duì)于連續(xù)讀寫操作,SSD較普通磁盤高出2倍~4倍[2]。

SSD的隨機(jī)和連續(xù)的讀性能都比相應(yīng)的寫性能要高,這個(gè)特性稱為讀寫不平衡[3],這不同于磁盤的讀寫性能平衡的特性,在一些情況下可能帶來不利的影響。比如數(shù)據(jù)從一塊SSD讀出并寫入另一塊SSD,那么由于讀性能高于寫性能,讀操作就必須等待寫操作。

SSD的另一個(gè)缺點(diǎn)是不支持寫覆蓋[3],和磁盤不同,SSD無法直接重用已經(jīng)寫入數(shù)據(jù)的存儲(chǔ)單元,只有先進(jìn)行擦除操作后才能執(zhí)行下次的寫操作。而且,對(duì)于每塊存儲(chǔ)單元,允許擦除的總次數(shù)是存在上限的,即SSD的使用壽命有限。在SSD內(nèi)部,如果部分存儲(chǔ)單元頻繁的執(zhí)行擦除寫入操作,相應(yīng)的存儲(chǔ)芯片就很容易出現(xiàn)擦寫壽命耗盡,從而變?yōu)閴膲K的問題,從而導(dǎo)致SSD無法使用。目前主流SSD中閃存芯片的每個(gè)單元只能擦除5 000次~10 000次[4-5]。

2.2 OLTP數(shù)據(jù)庫和性能測(cè)試

數(shù)據(jù)庫產(chǎn)品一般可以簡(jiǎn)單分為聯(lián)機(jī)事務(wù)處理(OLTP)和聯(lián)機(jī)分析處理(On-line Analytical Processing,OLAP)兩大類。OLTP是傳統(tǒng)關(guān)系型數(shù)據(jù)庫的主要應(yīng)用形式,例如銀行交易等。OLTP數(shù)據(jù)庫對(duì)性能要求非常高,因此引入基于SSD的混合存儲(chǔ)能夠有效緩解I/O瓶頸,提升OLTP數(shù)據(jù)庫的性能。

針對(duì)OLTP數(shù)據(jù)的性能測(cè)試,一般都采用數(shù)據(jù)庫性能委員會(huì)發(fā)布的TPC-C測(cè)試[10]。TPC-C模擬了一個(gè)比較復(fù)雜并具有代表意義的OLTP應(yīng)用環(huán)境:一個(gè)大型的商品批發(fā)銷售公司,它擁有若干個(gè)分布在不同區(qū)域的商品倉庫。當(dāng)業(yè)務(wù)擴(kuò)展時(shí),公司將添加新的倉庫。每個(gè)倉庫負(fù)責(zé)為10個(gè)銷售點(diǎn)供貨,其中每個(gè)銷售點(diǎn)為3 00個(gè)客戶提供服務(wù),每個(gè)客戶提交的訂單中,平均每個(gè)訂單有10項(xiàng)產(chǎn)品,所有訂單中約1%的產(chǎn)品在其直接所屬的倉庫中沒有存貨,必須由其他區(qū)域的倉庫來供貨。同時(shí),每個(gè)倉庫都要維護(hù)公司銷售的100 000種商品的庫存記錄。

2.3 基于SSD的混合存儲(chǔ)

盡管SSD在性能等方面有明顯的優(yōu)勢(shì),但由于其價(jià)格相對(duì)較高,而且具有擦除壽命的限制,因此一般企業(yè)還是多以混合存儲(chǔ)的形式使用SSD,即由SSD和HDD來構(gòu)成混合存儲(chǔ)。具體混合的方式分為兩大類:(1)SSD作為內(nèi)存之下的二級(jí)緩存;(2)SSD代替部分磁盤,負(fù)責(zé)存儲(chǔ)一部分?jǐn)?shù)據(jù)。

由于SSD緩存接入系統(tǒng)就可以直接使用,不需要對(duì)原有系統(tǒng)進(jìn)行修改,因此現(xiàn)在基于這種結(jié)構(gòu)的技術(shù)比較多,包括:EMC 的 FAST Cache[6],Intel的Turbo Memory[7],Solaris ZFS 文件系統(tǒng)中 L2ARC 算法管理的閃存緩存[8],以及Oracle數(shù)據(jù)庫中的智能閃存緩存[9]等。但是SSD緩存的主要挑戰(zhàn)是SSD的寫入量太大,容易導(dǎo)致SSD較短時(shí)間就報(bào)廢。SSD代替部分磁盤構(gòu)成混合存儲(chǔ)的方案如果設(shè)計(jì)合理,可以避免寫入量過大的問題,也能夠得到更好的性能加速,也是本文所關(guān)注的方案。

3 自適應(yīng)優(yōu)化算法

3.1 數(shù)據(jù)分布自適應(yīng)優(yōu)化算法

圖1給出了數(shù)據(jù)分布自適應(yīng)優(yōu)化算法的流程,算法周期性執(zhí)行,每個(gè)周期中分為觀測(cè)、決策、數(shù)據(jù)遷移幾個(gè)主要步驟。

圖1 數(shù)據(jù)分布自適應(yīng)優(yōu)化分布算法流程

首先經(jīng)過較長(zhǎng)時(shí)間的觀測(cè)期,算法會(huì)記錄每個(gè)表和索引的訪問特征,以便進(jìn)行后續(xù)的決策。在決策步驟中,會(huì)根據(jù)SSD的空間,以及各個(gè)表和索引的訪問特征對(duì)其進(jìn)行排序,排序方法由具體的決策策略決定。在決策之后,算法會(huì)判斷是否需要執(zhí)行數(shù)據(jù)遷移方案:如果是第一次決策,SSD還是空白狀態(tài),或者此次決策方案和目前SSD中存儲(chǔ)的數(shù)據(jù)差異較大,則執(zhí)行數(shù)據(jù)遷移;否則不執(zhí)行,此周期結(jié)束。如果需要執(zhí)行數(shù)據(jù)遷移,則目標(biāo)是將決策中排序最前面的若干個(gè)表和索引存入SSD中,直至SSD空間基本被占滿。

3.2 混合存儲(chǔ)優(yōu)化策略

自適應(yīng)數(shù)據(jù)分布優(yōu)化算法框架中,數(shù)據(jù)分布決策部分是整個(gè)算法的核心。但實(shí)際上算法框架可以支持多種決策策略,每種策略有自己的特點(diǎn),可以在不同環(huán)境下選擇不同的策略。

(1)I/O吞吐量?jī)?yōu)先策略

SSD的數(shù)據(jù)訪問性能全面高于磁盤。當(dāng)把SSD和磁盤組成混合存儲(chǔ)時(shí),SSD應(yīng)該承擔(dān)更多的I/O訪問,這樣才能充分發(fā)揮SSD的性能優(yōu)勢(shì);但是SSD的空間有限,因此SSD中單位容量的數(shù)據(jù)應(yīng)該承擔(dān)更多的I/O數(shù)據(jù)訪問。具體來說,數(shù)據(jù)庫中表和索引的按照rw/space因子進(jìn)行排序,rw/space因子的含義是某個(gè)數(shù)據(jù)元素(表或索引)單位存儲(chǔ)空間數(shù)據(jù)的讀寫總量的貢獻(xiàn)值。

(2)I/O次數(shù)優(yōu)先策略

由于SSD相對(duì)于磁盤在隨機(jī)讀、寫方面的性能優(yōu)勢(shì)更為明顯,因此應(yīng)該將小塊數(shù)據(jù)的隨機(jī)讀寫請(qǐng)求更多的數(shù)據(jù)元素存儲(chǔ)的SSD上。如果將盡可能多的I/O次數(shù)放到SSD上,那么很多小塊數(shù)據(jù)的隨機(jī)訪問都將由SSD承擔(dān),而磁盤則承擔(dān)自己比較擅長(zhǎng)的連續(xù)讀寫,即使訪問的數(shù)據(jù)量較大,性能相對(duì)也會(huì)比較高。因此,本文提出的I/O次數(shù)優(yōu)先策略按照io/space因子對(duì)所有表和索引進(jìn)行排序。io指每秒鐘完成的I/O請(qǐng)求次數(shù),它反映的是數(shù)據(jù)I/O訪問的頻繁程度。io/space因子的含義是某個(gè)數(shù)據(jù)元素單位空間的數(shù)據(jù)對(duì)訪問次數(shù)的貢獻(xiàn)值。

4 實(shí)驗(yàn)結(jié)果與分析

4.1 實(shí)驗(yàn)環(huán)境

OLTP數(shù)據(jù)庫的性能測(cè)試一般采用國(guó)際標(biāo)準(zhǔn)的TPC-C測(cè)試(見2.3節(jié)的介紹),因此本文采用TPCC測(cè)試來進(jìn)行數(shù)據(jù)分布自適應(yīng)優(yōu)化算法的實(shí)驗(yàn)。實(shí)驗(yàn)中生成的TPC-C測(cè)試數(shù)據(jù)總量約為13 GB,其中所涉及的9個(gè)表和11個(gè)索引,它們各自所占空間如表1所示。

表1 TPC-C測(cè)試中表元素和索引元素所占空間

為進(jìn)行準(zhǔn)確的測(cè)試,在服務(wù)器上搭建了完整的實(shí)驗(yàn)環(huán)境。服務(wù)器為HP Proliant DL380,其中包括Intel Xeon E5-2609 CPU 2.40 GHz、16 GB 內(nèi)存、4 塊SAS 1 TB 7200RPM構(gòu)成的RAID5磁盤陣列,以及1塊三星的128 GB SSD。

數(shù)據(jù)庫軟件采用開源的PostgreSQL,PostgreSQL是當(dāng)前最流行的對(duì)象關(guān)系型數(shù)據(jù)庫之一,主要用于OLTP應(yīng)用。其主要特點(diǎn)是開源、功能完備、高可擴(kuò)展性、可編程性強(qiáng)等[11]。而TPC-C測(cè)試工具采用開源的 BenchmarkSQL[12]。

4.2 性能測(cè)試

本部分在上述實(shí)驗(yàn)環(huán)境中應(yīng)用本文提出的數(shù)據(jù)分布自適應(yīng)優(yōu)化算法,分別測(cè)量了以下2種優(yōu)化策略的性能。性能指標(biāo)采用了TPC-C測(cè)試中常用的tpmC指標(biāo),即平均每分鐘可以完成多少次事務(wù)處理。

(1)I/O吞吐量?jī)?yōu)先策略

I/O吞吐量?jī)?yōu)先策略在觀測(cè)階段會(huì)按照數(shù)據(jù)元素單位存儲(chǔ)空間的讀寫訪問總量對(duì)所有數(shù)據(jù)元素進(jìn)行排序,并優(yōu)先選擇排名靠前的數(shù)據(jù)元素進(jìn)入SSD存儲(chǔ),TPC-C測(cè)試實(shí)驗(yàn)中排名前10位的數(shù)據(jù)元素如表2所示。

表2 I/O吞吐量?jī)?yōu)先策略對(duì)數(shù)據(jù)元素的排序

基于表2的結(jié)果,圖2給出了不同SSD大小的情況下,整個(gè)數(shù)據(jù)庫系統(tǒng)的tpmC值,即性能情況。由圖2可知,隨著混合存儲(chǔ)中SSD空間占總空間比重的增大,數(shù)據(jù)庫系統(tǒng)的性能提升非常明顯,基本上是線性增加。其中當(dāng)SSD空間占混合存儲(chǔ)總空間的比例約為40%左右時(shí),性能提升更為迅速。

圖2 OLTP數(shù)據(jù)庫性能隨SSD空間增長(zhǎng)的變化曲線1

值得注意的是SSD空間比例在40%附近經(jīng)歷一個(gè)性能快速上升的階段后,有一個(gè)性能短暫下降的過程。其原因主要是增大SSD空間存儲(chǔ)更多內(nèi)容時(shí),按照本文方案,SSD中新增內(nèi)容的熱度比之前有所下降;但新增數(shù)據(jù)卻要搶占有限的SSD訪問帶寬。由于新增數(shù)據(jù)熱度和之前SSD中數(shù)據(jù)相差較大,因此導(dǎo)致性能有短暫的下降。

(2)I/O次數(shù)優(yōu)先策略

相對(duì)于前一種策略,I/O次數(shù)優(yōu)先策略更傾向于把小塊數(shù)據(jù)的隨機(jī)訪問定向到混合存儲(chǔ)中的SSD,獲得更好的性能提升。在算法的觀測(cè)階段,I/O次數(shù)優(yōu)先策略會(huì)以數(shù)據(jù)元素單位存儲(chǔ)空間的讀寫I/O總次數(shù)來作為排序標(biāo)準(zhǔn)。觀測(cè)結(jié)果如表3所示,其中,IO/space為單位存儲(chǔ)空間每小時(shí)的 IO次數(shù)。

表3 I/O次數(shù)優(yōu)先策略對(duì)數(shù)據(jù)元素的排序

基于表3的決策結(jié)果,圖3給出了不同SSD大小的情況下,整個(gè)數(shù)據(jù)庫系統(tǒng)的tpmC值。由圖3可知,I/O次數(shù)優(yōu)先策略的規(guī)律與I/O吞吐量?jī)?yōu)先策略非常相似,區(qū)別并不大。這也說明不論是以吞吐量為標(biāo)準(zhǔn),還是以I/O次數(shù)為標(biāo)準(zhǔn),只要將I/O更集中的數(shù)據(jù)元素存儲(chǔ)于SSD,混合存儲(chǔ)方案對(duì)OLTP數(shù)據(jù)的性能提升效果就非常明顯,基本可以達(dá)到線性提升。投入越多的SSD,就可以得到近乎同比例的更高性能。

圖3 OLTP數(shù)據(jù)庫性能隨SSD空間增長(zhǎng)的變化曲線2

對(duì)于I/O吞吐量?jī)?yōu)先策略,SSD空間占比從5.5%提升到65.9%時(shí),tpmC 可以提高到 5.44倍(1 220/224.3);而I/O次數(shù)優(yōu)先策略,當(dāng)SSD空間占比從5.5%提升到66.3%時(shí),tpmC可以提高到5.53 倍(1 227.4/222.1)。

5 結(jié)束語

本文提出了一種基于混合存儲(chǔ)的OLTP數(shù)據(jù)庫的數(shù)據(jù)分布自適應(yīng)優(yōu)化算法,可通過自動(dòng)觀測(cè)決定數(shù)據(jù)庫在SSD和磁盤之間的優(yōu)化數(shù)據(jù)分布?;趯?shí)際數(shù)據(jù)系統(tǒng)的TPC-C實(shí)驗(yàn)結(jié)果證明,本文提出的優(yōu)化算法和2種優(yōu)化策略,可以實(shí)現(xiàn)OLTP數(shù)據(jù)庫性能的線性提升。

[1] 陳明達(dá).固態(tài)硬盤(SSD)產(chǎn)品現(xiàn)狀與展望[J].移動(dòng)通信,2009,(11):29-31.

[2] Bausch D,Petrov I,Buchmann A.On The Performance of Database Query Processing Algorithms on Flash Solid State Disks[C]//Proceedings of the 22nd International Workshop on DatabaseandExpertSystemsApplications.Toulouse,F(xiàn)rench:IEEE Press,2011:139-144.

[3] Solid-state Revolution:In-depth on How SSDs Really Work[EB/OL].(2013-10-21).http://arstechnica.com/information-technology/2012/06/inside-the-ssd-re volution-how-solid-state-disks-really-work.

[4] Andersen D,Swanson S.Rethinking Flash in the Data Center[J].IEEE Micro,2010,30(4):52-54.

[5] Gal E,Toledo S.Algorithms and Data Structures for Flash Memories[J].ACM Computing Surveys,2005,37(2):138-163.

[6] EMC.EMC FAST Cache:A Detailed Review[EB/OL].(2011-12-12).http://www.emc.com/collateral/soft ware/white-papers/h8046-clariion-celerra-unified-fast-ca che-wp.pdf.

[7] Matthews J,Trika S,Hensgen D,et al.Intel? Turbo Memory:Nonvolatile Disk Cachesin the Storage Hierarchy of Mainstream Computer Systems[J].ACM Transactions on Storage,2008,4(2).

[8] Bitar R.Deploying Hybrid Storage Pools with Sun Flash Technology and the Solaris ZFS file System[EB/OL].(2011-02-13).http://wikis.sun.com/download/attach ments/190326221/820-5881.pdf.

[9] Oracle.Exadata Smart Flash Cache and the Sun Oracle Database Machine[EB/OL].(2009-03-06).http://www.oracle.com/technetwork/middleware/bifoundation/exadata-smart-flash-cache-twp-v5-1-128560.pdf.

[10] TPC-C標(biāo)準(zhǔn)文檔[EB/OL].(2010-05-06).http://www.tpc.org/tpcc/spec/tpcc_current.pdf.

[11] PostgreSQL Introduction[EB/OL].(2013-08-09).http://www.postgresql.org/about.

[12] BenchmarkSQL[EB/OL].(2014-09-10).http://sourceforge.net/projects/benchmarksql.

猜你喜歡
數(shù)據(jù)分布磁盤次數(shù)
機(jī)場(chǎng)航站樓年雷擊次數(shù)計(jì)算
2020年,我國(guó)汽車召回次數(shù)同比減少10.8%,召回?cái)?shù)量同比增長(zhǎng)3.9%
商用汽車(2021年4期)2021-10-13 07:16:02
一類無界算子的二次數(shù)值域和譜
改進(jìn)的云存儲(chǔ)系統(tǒng)數(shù)據(jù)分布策略
解決Windows磁盤簽名沖突
電腦愛好者(2019年2期)2019-10-30 03:45:31
修改磁盤屬性
依據(jù)“次數(shù)”求概率
磁盤組群組及iSCSI Target設(shè)置
創(chuàng)建VSAN群集
一種基于給定標(biāo)準(zhǔn)對(duì)數(shù)據(jù)進(jìn)行正態(tài)修正的算法
绥棱县| 枣阳市| 喀喇| 霍城县| 自治县| 綦江县| 西城区| 常宁市| 固原市| 武宁县| 玛沁县| 怀来县| 灵璧县| 利津县| 通城县| 沐川县| 建水县| 高尔夫| 嘉义县| 迁西县| 巴彦淖尔市| 浏阳市| 晋江市| 遂平县| 榆树市| 图片| 宣恩县| 广昌县| 无极县| 大邑县| 忻州市| 蕲春县| 隆德县| 兴安盟| 阳朔县| 富蕴县| 信阳市| 河源市| 民权县| 靖西县| 新安县|