国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中多維有序數(shù)據(jù)的存儲(chǔ)方法

      文檔序號:10612953閱讀:593來源:國知局
      分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中多維有序數(shù)據(jù)的存儲(chǔ)方法
      【專利摘要】本發(fā)明涉及一種分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中多維有序數(shù)據(jù)的存儲(chǔ)方法,屬于計(jì)算機(jī)數(shù)據(jù)管理技術(shù)領(lǐng)域。該方法首先對待存儲(chǔ)對象進(jìn)行定義,得到由待存儲(chǔ)對象組成的多維有序數(shù)據(jù)集合,并對基于該多維有序數(shù)據(jù)集合的操作進(jìn)行定義;隨后枚舉所有的存儲(chǔ)方案并計(jì)算相應(yīng)的期望時(shí)間代價(jià),最終選擇期望時(shí)間代價(jià)最小的存儲(chǔ)方案作為最終存儲(chǔ)方案。本發(fā)明能夠有效的找到一種高效的多維有序數(shù)據(jù)集合存儲(chǔ)方案,方法直觀有效、便于使用。
      【專利說明】
      分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中多維有序數(shù)據(jù)的存儲(chǔ)方法
      技術(shù)領(lǐng)域
      [0001] 本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)管理技術(shù)領(lǐng)域,特別涉及一種分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中多維 有序數(shù)據(jù)的存儲(chǔ)方法。
      【背景技術(shù)】
      [0002] 維度是組成現(xiàn)實(shí)世界事物的基本狀態(tài),隨著對物理世界認(rèn)知的加深,人們不再僅 僅使用一個(gè)維度刻畫事物,而是同時(shí)存儲(chǔ)和使用多個(gè)維度對數(shù)據(jù)進(jìn)行描述。多維有序數(shù)據(jù) 是指某些維度具有順序關(guān)系的數(shù)據(jù)集合,以這種數(shù)據(jù)為基礎(chǔ)的應(yīng)用廣泛存在。例如,在氣象 預(yù)報(bào)中,用戶需要使用預(yù)報(bào)模式、物理量類型、預(yù)報(bào)時(shí)刻、預(yù)報(bào)時(shí)效、地理高度等5個(gè)維度共 同刻畫一個(gè)氣象預(yù)報(bào)數(shù)據(jù),而在設(shè)備的傳感監(jiān)測中,至少需要設(shè)備ID、監(jiān)測物理量類型、監(jiān) 測時(shí)刻等3個(gè)維度對監(jiān)測數(shù)據(jù)進(jìn)行描述。
      [0003] 新興的分布式計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)系統(tǒng)(后文簡稱為分布式存儲(chǔ)系統(tǒng))在處理海量數(shù) 據(jù)方面具有較強(qiáng)優(yōu)勢,以HBase、Cassandra為代表的基于Key-Value的分布式存儲(chǔ)系統(tǒng)廣泛 應(yīng)用于大數(shù)據(jù)場景。分布式存儲(chǔ)系統(tǒng)實(shí)質(zhì)是一個(gè)多維的分布式映射,一個(gè)分布式存儲(chǔ)系統(tǒng) 由η個(gè)節(jié)點(diǎn)組成,通過列族名(Column Family)、行鍵(Row Key)、列名(Column Name)唯一地 映射到一個(gè)值(Value),數(shù)據(jù)會(huì)根據(jù)行鍵分布到不同的節(jié)點(diǎn)上。不同于傳統(tǒng)數(shù)據(jù)庫以嚴(yán)格的 表結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)是以松散結(jié)構(gòu)的多維哈希表存儲(chǔ)在系統(tǒng)中,是一 種面向行的存儲(chǔ);其弱化了表的結(jié)構(gòu),可以自由地向列族中添加數(shù)據(jù)。每一個(gè)列族都被設(shè)計(jì) 為一組數(shù)據(jù)關(guān)聯(lián)或排列。而且根據(jù)用戶需求場景,還可以采用多種靈活的方式保存數(shù)據(jù),而 不必拘泥于早前定義的表結(jié)構(gòu)。
      [0004] 面對新興的分布式存儲(chǔ)系統(tǒng),多維有序數(shù)據(jù)的存儲(chǔ)帶來了新的問題:(1)多種維度 如何存儲(chǔ)在分布式存儲(chǔ)系統(tǒng)中;(即進(jìn)行合理的存儲(chǔ)結(jié)構(gòu)設(shè)計(jì))(2)針對有序維度連續(xù)訪問 的特點(diǎn),如何得到性能最優(yōu)的存儲(chǔ)方案。
      [0005]目前工業(yè)界對分布式存儲(chǔ)系統(tǒng)存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)的討論主要在于定性分析,而非定量 計(jì)算,例如易趣(Ebay)的工程師在《Cassandra數(shù)據(jù)模型設(shè)計(jì)最佳實(shí)踐》對存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)提 出了4項(xiàng)關(guān)鍵原則;《Cassandra:The Definitive Guide》一書也定性的分析了存儲(chǔ)結(jié)構(gòu)設(shè) 計(jì)的原則。但這些原則都需要依賴于工程師的使用經(jīng)驗(yàn),不能通過定量計(jì)算來完成設(shè)計(jì)。

      【發(fā)明內(nèi)容】

      [0006] 本發(fā)明的目的是針對目前分布式存儲(chǔ)系統(tǒng),數(shù)據(jù)保存方式靈活,結(jié)構(gòu)弱化,方案眾 多,但性能無法預(yù)先評測的問題,提出一種分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中多維有序數(shù)據(jù)的存儲(chǔ)方 法。本發(fā)明基于對存儲(chǔ)系統(tǒng)的原理分析,通過對有序數(shù)據(jù)的基本操作進(jìn)行理論時(shí)間代價(jià)評 估,最終得到一種期望性能最優(yōu)的存儲(chǔ)方案;該方案具備應(yīng)對大數(shù)據(jù)的能力,且具有很強(qiáng)的 適應(yīng)性。
      [0007] 本發(fā)明提出一種分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中多維有序數(shù)據(jù)的存儲(chǔ)方法,包括以下步 驟:
      [0008] 1)對待存儲(chǔ)的由多個(gè)對象組成的多維數(shù)據(jù)進(jìn)行定義,并將維度劃分為有序維度集 合與無序維度集合;
      [0009] 設(shè)0={〇1,〇2, . . .,〇s}為S個(gè)待存儲(chǔ)對象組成的集合,DimiDiA,. . .,Dk}為集合0中 所有待存儲(chǔ)對象維度集合,共有k個(gè)維度,s、k均為正整數(shù);V為集合0中所有待存儲(chǔ)對象數(shù)據(jù) 值集合;
      [0010]設(shè)Μ為有序維度集合,N為無序維度集合,M、N均為非負(fù)整數(shù),則待存儲(chǔ)對象組成的 集合0表達(dá)為多維有序數(shù)據(jù)集合的形式,如式(1)所示:
      [0011] SeqData( | οι,〇2,···,〇s |,M,N,V) (1)
      [0012] 2)對基于步驟1)得到的多維有序數(shù)據(jù)集合的讀取操作進(jìn)行定義;
      [0013] 2-1)單元讀取:對DieDim,通過指定每一個(gè)維度的具體值Di = di,i = l,2, ·. .k,進(jìn) 行數(shù)據(jù)讀取的操作稱為單元讀取,定義單元讀取操作為:Opmd;
      [0014] 2-2)確定順序近鄰讀取維度;對于有順序近鄰讀取需求的維度DtargeteM,獲取在 該維度上的順序近鄰操作定義為:〇p next(Dtarget);
      [0015] 即對于維度Dtarget,取值為dtarget,通過指定D target = Γ1 (1 (dtarget)+1)實(shí)現(xiàn)順序近鄰 操作,其中1為順序函數(shù),將維度取值映射為有序數(shù)據(jù)序號,Γ 1則將數(shù)據(jù)序號反映射為維度 取值;
      [0016] 2-3)確定逆序近鄰操作維度;對于有逆序近鄰讀取需求的維度Dtarget e Μ,獲取在 該維度上的逆序近鄰操作定義為:〇ppre(Dtarget);
      [0017] 即對于維度Dtarget,通過指定Dtarget = Γ1 (1 (dtarget) -1)實(shí)現(xiàn)逆序近鄰操作;
      [0018] 2-4)確定序列讀取操作;
      [0019] -次序列讀取操作包含一次單元讀取操作以及q次連續(xù)的順序或逆序近鄰操作; 一次序列讀取操作定義為:〇Pseq(Dtarg et,q);
      [0020] 根據(jù)具體數(shù)據(jù)訪問需求,確定最終的序列讀取操作需求,即確定SeqArray = [Opseql,0pseq2,· · ·,Opseqt ],其中Opseq是0卩369(〇18坪61;,(1)的間與,表不一種序列讀取操作; SeqArray為針對具體數(shù)據(jù)訪問需求的訪問序列數(shù)組,共包括t個(gè)序列讀取操作;
      [0021] 2-5)統(tǒng)計(jì)步驟2-4)中不同序列讀取操作的使用頻率,得到與會(huì)話數(shù)組對應(yīng)的使用 頻率數(shù)組?代941^^7 = [;^61,;^62,...,;1^61;],;1^^表示第;[種序列讀取操作的頻率;
      [0022] 3)枚舉存儲(chǔ)方案,計(jì)算每種存儲(chǔ)方案期望時(shí)間代價(jià);
      [0023]多維有序數(shù)據(jù)集合的存儲(chǔ)方案,即求解函數(shù)func使得對于所有Di,funC(Di) = DimArray[c],c = l,2;其中,函數(shù)func表示存儲(chǔ)方案,c代表數(shù)據(jù)下標(biāo),1,2是數(shù)組下標(biāo)的可 能取值;
      [0024]給定一種存儲(chǔ)方案func,對系統(tǒng)讀取時(shí)間代價(jià)進(jìn)行評估,對于每一種操作,又分為 兩種情況,本地讀取和異地讀?。?br>[0025] 3-1)測量當(dāng)前系統(tǒng)的網(wǎng)絡(luò)傳輸速度和磁盤讀取速度;其中Ttrans為系統(tǒng)網(wǎng)絡(luò)傳輸單 個(gè)數(shù)據(jù)速度,Traad為磁盤讀取速度;
      [0026] 3-2)計(jì)算單元讀取時(shí)間代價(jià);對于一次單元讀取操作Opread,計(jì)算其本地讀取時(shí)間 代價(jià)如式(2)所示:
      [0027]
      (2)
      [0028] 式中,|Di I為維度Di的不同值的個(gè)數(shù);Tr?Lcicate為行鍵在節(jié)點(diǎn)中定位和讀取的時(shí)間, TtxjlLc^ate為列尋址和定位時(shí)間;
      [0029] 對應(yīng)地,如果數(shù)據(jù)異地地讀取,則增加協(xié)調(diào)者節(jié)點(diǎn)到數(shù)據(jù)擁有者節(jié)點(diǎn)的一次網(wǎng)絡(luò) 通信,定義異地讀取時(shí)間代價(jià)如式(3)所示:
      [0030]
      (g)
      [0031] 即增加一次數(shù)據(jù)網(wǎng)絡(luò)通信消耗;
      [0032] 3-3)計(jì)算順序近鄰讀取時(shí)間代價(jià);
      [0033]本地讀取時(shí)間代價(jià)如式(4)所示:
      [0034]
      (4):
      [0035] 瓦甲,Tindex艿墳置?生酡淚耗,疋乂 SigrU)艿符號函數(shù),Sign(true) = l ;Sign (false) =0 ;
      [0036] 如果數(shù)據(jù)異地讀取,則其異地讀取時(shí)間代價(jià)如式(5)所示:
      [0037]
      (5)
      [0038] 3-4)計(jì)算逆序近鄰讀取時(shí)間代價(jià);
      [0039]本地讀取時(shí)間代價(jià)如式(6)所示:
      [0040]
      (b)
      [0041] 如果數(shù)據(jù)異地讀取,則其異地讀取時(shí)間代價(jià)如式(7)所示:
      [0042]
      :(7).
      [0043] 3-5)對于t個(gè)序列讀取操作,計(jì)算每一種序列讀取的時(shí)間代價(jià);
      [0044]
      ?
      [0045] 其中,η是集群節(jié)點(diǎn)個(gè)數(shù),q是該種序列讀取的連續(xù)次數(shù);
      [0046] 3-6)計(jì)算給定存儲(chǔ)方案的期望時(shí)間代價(jià)E;
      [0047]
      <9)
      [0048] 4)重復(fù)步驟3),遍歷所有枚舉的存儲(chǔ)方案并計(jì)算其相應(yīng)的期望時(shí)間代價(jià),選擇期 望時(shí)間代價(jià)最小的存儲(chǔ)方案作為最終存儲(chǔ)方案。
      [0049] 本發(fā)明提出的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中多維有序數(shù)據(jù)的存儲(chǔ)方法,其特點(diǎn)和優(yōu)點(diǎn) 是:
      [0050] 1、本發(fā)明方法可以針對多維有序數(shù)據(jù)集合得到一種有效的分布式存儲(chǔ)方案。借助 分布式存儲(chǔ)系統(tǒng)的優(yōu)勢,完成數(shù)據(jù)的基本操作。
      [0051] 2、本發(fā)明可以在真實(shí)數(shù)據(jù)未導(dǎo)入的情況下,對系統(tǒng)的性能進(jìn)行評估,有效避免了 系統(tǒng)性能在數(shù)據(jù)未導(dǎo)入前無法比較不同存儲(chǔ)方案性能差異的問題。
      [0052] 3、本發(fā)明基于分布式存儲(chǔ)系統(tǒng),將多維有序數(shù)據(jù)的操作映射到分布式存儲(chǔ)系統(tǒng)的 操作,使其具備應(yīng)對大數(shù)據(jù)的能力。
      [0053] 4、本發(fā)明方法具有很強(qiáng)的適應(yīng)性,能夠適用于多種分布式存儲(chǔ)系統(tǒng)和各種多維有 序數(shù)據(jù)集合。
      【附圖說明】
      [0054] 圖1是本發(fā)明的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中多維有序數(shù)據(jù)存儲(chǔ)方法的流程框圖。
      【具體實(shí)施方式】
      [0055] 本發(fā)明提出的一種分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中多維有序數(shù)據(jù)的存儲(chǔ)方法,下面結(jié)合附 圖和具體實(shí)施例進(jìn)一步詳細(xì)說明如下。
      [0056] 本發(fā)明提出的一種分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中多維有序數(shù)據(jù)存儲(chǔ)方法,其流程框圖如 圖1所示,該方法包括以下步驟:
      [0057] 1)對待存儲(chǔ)的由多個(gè)對象組成的多維數(shù)據(jù)進(jìn)行定義,并將維度劃分為有序維度集 合與無序維度集合;
      [0058]設(shè)0={〇1,〇2,. . .,os}為s個(gè)待存儲(chǔ)對象組成的集合,DimiDhD% . . .,Dk}為集合0中 所有待存儲(chǔ)對象維度集合,共有k個(gè)維度,s、k均為正整數(shù);V為為集合0中所有待存儲(chǔ)對象數(shù) 據(jù)值集合;
      [0059] 多維數(shù)據(jù)的有些維度是存在順序關(guān)系的,設(shè)Μ為有序維度集合,N為無序維度集合, Μ、Ν均為非負(fù)整數(shù),則待存儲(chǔ)對象組成的集合0表達(dá)為多維有序數(shù)據(jù)集合的形式,如式(1)所 示:
      [0060] SeqData( | οι,〇2,···,〇s |,Μ,Ν,V) (1)
      [0061] 本實(shí)施例中,以包含5個(gè)維度氣象預(yù)報(bào)數(shù)據(jù)的待存儲(chǔ)的數(shù)據(jù)為例進(jìn)行說明。在后文 稱該數(shù)據(jù)為:示例數(shù)據(jù)。5個(gè)維度的氣象數(shù)據(jù)如表1所示:
      [0062]
      [0063]表1 5個(gè)維度的氣象數(shù)據(jù)表
      [0064] 表1中,第一行。表示在t639模式下溫度物理量在800pa層次上2015.2.18.08未來 3小時(shí)的數(shù)據(jù),這樣的一行記為一個(gè)待存儲(chǔ)對象〇;模式、物理量、層次、起報(bào)時(shí)刻、預(yù)報(bào)時(shí)效 為5個(gè)維度Dim;表1中的層次維度和預(yù)報(bào)時(shí)效維度為有序維度集合;
      [0065] 2)對基于步驟1)得到的多維有序數(shù)據(jù)集合的讀取操作進(jìn)行定義;
      [0066]針對多維有序數(shù)據(jù)的訪問包括三種基本讀取操作:單元讀取、順序近鄰讀取和逆 序近鄰讀取來描述。這三種基本讀取操作又可以組成較為復(fù)雜的序列讀取操作。本方法的 評估最終是以序列讀取操作為單位進(jìn)行的。
      [0067] 2-1)單元讀取;對于多維有序數(shù)據(jù)集合,最基本操作就是指定各個(gè)維度的值,隨后 讀取數(shù)據(jù),對〇〗£〇;[1]1,通過指定每一個(gè)維度的具體值〇1 = (^(1 = 1,2,...1〇,進(jìn)行數(shù)據(jù)讀取 的操作稱為單元讀取,定義單元讀取操作為:Opmd;
      [0068] 例如在表1所示的數(shù)據(jù)中,可以通過指定模式= t639,物理量= temper,層次= 800pa,起報(bào)時(shí)刻=2015.2.18.08,預(yù)報(bào)時(shí)效=3小時(shí)來讀取對應(yīng)的數(shù)據(jù)即13攝氏度。
      [0069] 2-2)確定順序近鄰讀取維度;在多維有序數(shù)據(jù)集和中,往往存在沿著某個(gè)有序維 度進(jìn)行順序訪問的操作;對于有順序近鄰讀取需求的維度D targeteM,獲取在該維度上的順 序近鄰操作定義為:〇Pnext(Dtarget);
      [0070] 即對于維度Dtarget,取值為dtarget,通過指定D target = Γ1 (1 (dtarget)+1)實(shí)現(xiàn)順序近鄰 操作,其中1為順序函數(shù),將維度取值映射為有序數(shù)據(jù)序號,Γ 1則將數(shù)據(jù)序號反映射為維度 取值;
      [0071] 2-3)確定逆序近鄰操作維度;在多維有序數(shù)據(jù)集和中,同樣往往存在沿著某個(gè)有 序維度進(jìn)行逆序訪問的操作;對于有逆序近鄰讀取需求的維度D target e Μ,獲取在該維度上 的逆序近鄰操作定義為:〇ppre(Dtarget);
      [0072] 即對于維度Dtarget,通過指定Dtarget = Γ1 (1 (dtarget) -1)實(shí)現(xiàn)逆序近鄰操作;
      [0073] 2-4)確定序列讀取操作;
      [0074] 多維有序數(shù)據(jù)的訪問往往是一組連續(xù)操作,將連續(xù)的操作稱作一次序列讀取。例 如,在示例數(shù)據(jù)中,為了觀測溫度在未來24小時(shí)內(nèi)的變化情況,就需要在預(yù)報(bào)時(shí)效維度上做 連續(xù)多次近鄰讀取,通過觀測連續(xù)的數(shù)據(jù)來了解溫度的變化情況。對多維有序數(shù)據(jù)集合的 操作最終是以多個(gè)序列讀取來完成的。
      [0075] 具體地,一次序列讀取操作包含一次單元讀取操作(設(shè)其在Dtarget維度上進(jìn)行),以 及q次連續(xù)的順序或逆序近鄰操作;一次序列讀取操作定義為 :〇pseq(Dtarget,q);
      [0076] 因此,在該步驟根據(jù)具體數(shù)據(jù)訪問需求,確定最終的序列讀取操作需求,即確定 SeqArray = [Opseql,Opseq2,…,Opseqt],其中Opseq是OpSeq(Dtarg et,q)的簡寫,表示一種序列讀 取操作。SeqArray為針對具體數(shù)據(jù)訪問需求的訪問序列數(shù)組,共包括t個(gè)序列讀取操作;
      [0077] 2-5)統(tǒng)計(jì)步驟2-4)中不同序列讀取操作的使用頻率,得到與訪問序列數(shù)組對應(yīng)的 使用頻率數(shù)組?代941"瓜7=[;^61,;^62,...,;^61;],;^61表示第;[種序列讀取操作的頻率 ;
      [0078] 3)枚舉存儲(chǔ)方案,計(jì)算每種存儲(chǔ)方案期望時(shí)間代價(jià);
      [0079]分布式存儲(chǔ)系統(tǒng)可以在行鍵(RowKey)和列名(ColumnKey)中保存數(shù)據(jù)維度信息; 進(jìn)一步,定義行鍵中包含的維度為集合RKSet,列名中包含的維度為集合CKSet;那么多維有 序數(shù)據(jù)集合的存儲(chǔ)方案即:將多維有序數(shù)據(jù)集合中的所有維度Di e Dim劃分到DimArray = [RKSet,CKSet]的劃分問題,也即求解函數(shù)func使得對于所有Di,func(Di) =DimArray[c],c =1,2(其中c代表數(shù)據(jù)下標(biāo),1,2是數(shù)組下標(biāo)的可能取值);這里將函數(shù)func稱為存儲(chǔ)方案。 例如,在示例數(shù)據(jù)中,可以通過把模式、物理量、層次維度放在行健上(即加入RKSet),把起 報(bào)時(shí)刻、預(yù)報(bào)時(shí)效維度放在列名上(即加入〇(361:),貝11可以通過構(gòu)造行鍵丨639_丨61]^61'_ 800pa,列名2015.2.18.08_003來將第一條數(shù)據(jù)存儲(chǔ)在分布式存儲(chǔ)系統(tǒng)中,即為一種存儲(chǔ)方 案。
      [0080]給定一種存儲(chǔ)方案func,對系統(tǒng)讀取時(shí)間代價(jià)進(jìn)行評估,對于每一種操作,又分為 兩種情況,1.本地讀取,即數(shù)據(jù)恰巧在客戶端連接的協(xié)調(diào)者節(jié)點(diǎn)(客戶端連接的節(jié)點(diǎn)稱作當(dāng) 前客戶端的協(xié)調(diào)者節(jié)點(diǎn))上,則可以在本地讀取,直接發(fā)送給客戶端。2.異地讀取,即數(shù)據(jù)不 再協(xié)調(diào)者節(jié)點(diǎn)上,則需要把請求轉(zhuǎn)發(fā)給數(shù)據(jù)真正的擁有者節(jié)點(diǎn),擁有者節(jié)點(diǎn)讀取完畢后,再 較數(shù)據(jù)傳回給協(xié)調(diào)者節(jié)點(diǎn),在有協(xié)調(diào)者節(jié)點(diǎn)發(fā)給送給客戶端。
      [0081 ] 3-1)測量當(dāng)前系統(tǒng)的網(wǎng)絡(luò)傳輸速度和磁盤讀取速度;其中Ttrans為系統(tǒng)網(wǎng)絡(luò)傳輸單 個(gè)數(shù)據(jù)速度,Tread為磁盤讀取速度,以上數(shù)據(jù)均可通過實(shí)際測量獲得;
      [0082] 3-2)計(jì)算單元讀取時(shí)間代價(jià);對于一次精確讀取操作Opread,計(jì)算其本地讀取時(shí)間 代價(jià)如式(2)所示:
      [0083]
      (2)
      [0084]式中,Ttrans為系統(tǒng)網(wǎng)絡(luò)傳輸單個(gè)數(shù)據(jù)速度,TreadS磁盤讀取速度,在3-1)已經(jīng)通過 實(shí)際測量讀出,|Di I為維度Di的不同值的個(gè)數(shù);TrciwLcicate為行鍵在節(jié)點(diǎn)中定位和讀取的時(shí)間, T。。^。^為列尋址和定位時(shí)間,這兩項(xiàng)不需要測量,只需保留在計(jì)算式中即可。
      [0085] 如果數(shù)據(jù)異地讀取,則增加協(xié)調(diào)者節(jié)點(diǎn)到數(shù)據(jù)擁有者節(jié)點(diǎn)的一次網(wǎng)絡(luò)通信,定義 異地讀取時(shí)間代價(jià)如式(3)所示:
      [0086]

      [0087]即增加一次數(shù)據(jù)網(wǎng)絡(luò)通信消耗;
      [0088] 3-3)計(jì)算順序近鄰讀取時(shí)間代價(jià);
      [0089]本地讀取時(shí)間代價(jià)如式(4)所示:
      [0090]

      [0091] 如果順序訪問的維度不在列鍵集合中,則需要查找索引或者規(guī)則找到該維度下一 個(gè)數(shù)值,設(shè)置性能消耗為Tind(3X,順序遍歷的維度如果不在列鍵上,則其必須是有序有限維, 否則通過索引來找到其順序近鄰;定義SignO為符號函數(shù),Sign(true) = l ;Sign(false) = 0〇
      [0092] 如果數(shù)據(jù)異地讀取,則其異地讀取時(shí)間代價(jià)如式(5)所示:
      [0093]
      [0094] 3-4)計(jì)算逆序近鄰讀取時(shí)間代價(jià);本地讀取時(shí)間代價(jià)如式(6)所示:
      [0095]
      (6)
      [0096] 如果數(shù)據(jù)異地讀取,則其異地讀取時(shí)間代價(jià)如式(7)所示:
      [0097]
      0)
      [0098] 3-5)對于t個(gè)序列讀取操作,計(jì)算每一種序列讀取的時(shí)間代價(jià);
      [0099]
      [0100] 其中η是集群節(jié)點(diǎn)個(gè)數(shù),q是該種序列讀取的連續(xù)次數(shù);
      [0101] 3-6)計(jì)算給定存儲(chǔ)方案的期望時(shí)間代價(jià)E;
      [0102]
      C9)
      [0103] (4)重復(fù)步驟3),遍歷所有枚舉的存儲(chǔ)方案并計(jì)算其相應(yīng)的期望時(shí)間代價(jià),選擇期 望時(shí)間代價(jià)最小的存儲(chǔ)方案作為最終存儲(chǔ)方案。
      【主權(quán)項(xiàng)】
      1. 一種分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中多維有序數(shù)據(jù)的存儲(chǔ)方法,其特征在于,該方法包括W 下步驟: 1) 對待存儲(chǔ)的由多個(gè)對象組成的多維數(shù)據(jù)進(jìn)行定義,并將維度劃分為有序維度集合與 無序維度集合; 設(shè)0={〇1,〇2,. ..,〇s}為S個(gè)待存儲(chǔ)對象組成的集合,Dim{Di,化,...,Dk}為集合0中所有 待存儲(chǔ)對象維度集合,共有k個(gè)維度,S、k均為正整數(shù);V為為集合0中所有待存儲(chǔ)對象數(shù)據(jù)值 集合; 設(shè)Μ為有序維度集合,N為無序維度集合,M、N均為非負(fù)整數(shù),則待存儲(chǔ)對象組成的集合0 表達(dá)為多維有序數(shù)據(jù)集合的形式,如式(1)所示: SeqData(I01,02, . . . ,0s I,Μ,Ν,ν) (1) 2) 對基于步驟1)得到的多維有序數(shù)據(jù)集合的讀取操作進(jìn)行定義; 2-1)單元讀取:對DieDim,通過指定每一個(gè)維度的具體值化=(114 = 1,2,..^,進(jìn)行數(shù) 據(jù)讀取的操作稱為單元讀取,定義單元讀取操作為:Opread ; 2-2)確定順序近鄰讀取維度;對于有順序近鄰讀取需求的維度DtargeteM,獲取在該維 度上的順序近鄰操作定義為:Opnext ( Dtarget); 即對于維度Dtarget,取值為dtarget,通過指定Dtarget=rl(l(dtarget) + 1)實(shí)現(xiàn)順序近鄰操 作,其中1為順序函數(shù),將維度取值映射為有序數(shù)據(jù)序號,Γ1則將數(shù)據(jù)序號反映射為維度取 值; 2-3)確定逆序近鄰操作維度;對于有逆序近鄰讀取需求的維度DtargeteM,獲取在該維 度上的逆序近鄰操作定義為:〇Ppre(Dtarget); 即對于維度Dtarget,通過指定Dtarget = 1 - 1 (1 ( dtarget)-1 )實(shí)現(xiàn)逆序近鄰操作; 2-4)確定序列讀取操作; 一次序列讀取操作包含一次單元讀取操作W及q次連續(xù)的順序或逆序近鄰操作;一次 序列讀取操作定義為:〇Pseq(Dtarget,q); 根據(jù)具體數(shù)據(jù)訪問需求,確定最終的序列讀取操作需求,即確定SeqArray=[Opseqi, 0口36。2,...,化36。1;],其中化36。是化36。(0*3巧61;,9)的間與,表不種序列讀取挺作;Sg qAiTay為 針對具體數(shù)據(jù)訪問需求的訪問序列數(shù)組,共包括t個(gè)序列讀取操作; 2- 5)統(tǒng)計(jì)步驟2-4)中不同序列讀取操作的使用頻率,得到與會(huì)話數(shù)組對應(yīng)的使用頻率 數(shù)組化eqArray = [frei,打Θ2,. . .,fret],frei表示第i種序列讀取操作的頻率; 3) 枚舉存儲(chǔ)方案,計(jì)算每種該存儲(chǔ)方案期望時(shí)間代價(jià); 多維有序數(shù)據(jù)集合的存儲(chǔ)方案,即求解函數(shù)化nc使得對于所有化,func(化)=DimArray k],C = 1,2;其中,函數(shù)化nc表示存儲(chǔ)方案,C代表數(shù)據(jù)下標(biāo),1,2是數(shù)組下標(biāo)的可能取值; 給定一種存儲(chǔ)方案func,對系統(tǒng)讀取時(shí)間代價(jià)進(jìn)行評估,對于每一種操作,又分為兩種 情況,本地讀取和異地讀?。? 3- 1)測量當(dāng)前系統(tǒng)的網(wǎng)絡(luò)傳輸速度和磁盤讀取速度;其中Ttrans為系統(tǒng)網(wǎng)絡(luò)傳輸單個(gè)數(shù) 據(jù)速度,Tread為磁盤讀取速度; 3-2)計(jì)算單元讀取時(shí)間代價(jià);對于一次精確讀取操作化read,計(jì)算其本地讀取時(shí)間代價(jià) 如式(2)所示:(2) 式中,|〇1|為維度〇1的不同值的個(gè)數(shù);^^。^1。。3*6為行鍵在節(jié)點(diǎn)中定位和讀取的時(shí)間, TcolLocate為列尋址和定位時(shí)間; 對應(yīng)地,如果數(shù)據(jù)異地地讀取,則增加協(xié)調(diào)者節(jié)點(diǎn)到數(shù)據(jù)擁有者節(jié)點(diǎn)的一次網(wǎng)絡(luò)通信, 定義異地讀取時(shí)間代價(jià)如式(3)所示:(.3) 即增加一次數(shù)據(jù)網(wǎng)絡(luò)通信消耗; 3-3)計(jì)算順序近鄰讀取時(shí)間代價(jià); 本地讀取時(shí)間代價(jià)如式(4)所示:(4) 式中,Tindex為設(shè)置性能消耗,定義SignO為符號函數(shù),SignU;rue) = l ;Si即(false) = 0; 如果數(shù)據(jù)異地讀取,則其異地讀取時(shí)間代價(jià)如式巧)所示:巧) 3-4)計(jì)算逆序近鄰讀取時(shí)間代價(jià); 本地讀取時(shí)間代價(jià)如式(6)所示:(6) 如果數(shù)據(jù)異地讀取,則其異地讀取時(shí)間代價(jià)如式(7)所示:(7) 3-5)對于t個(gè)序列讀取操作,計(jì)算每一種序列讀取的時(shí)間代價(jià);其中,η是集群節(jié)點(diǎn)個(gè)數(shù),q是該種序列讀取的連續(xù)次數(shù); 3-6)計(jì)算給定存儲(chǔ)方案的期望時(shí)間代價(jià)E;(9) (4)重復(fù)步驟3),遍歷所有枚舉的存儲(chǔ)方案并計(jì)算其相應(yīng)的期望時(shí)間代價(jià),選擇期望時(shí) 間代價(jià)最小的存儲(chǔ)方案作為最終存儲(chǔ)方案。
      【文檔編號】G06F17/30GK105975634SQ201610459969
      【公開日】2016年9月28日
      【申請日】2016年6月22日
      【發(fā)明人】王建民, 黃向東, 張博, 龍明盛
      【申請人】清華大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1