欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)存取方法

文檔序號(hào):6609263閱讀:262來(lái)源:國(guó)知局
專利名稱:數(shù)據(jù)存取方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及磁盤陣列的數(shù)據(jù)存取方法,更具體地,涉及一種可加速磁盤陣列數(shù)據(jù)存取并實(shí)現(xiàn)磁盤陣列的容錯(cuò)功能的數(shù)據(jù)存取方法。
背景技術(shù)
隨著電子技術(shù)的日新月異,計(jì)算機(jī)的中央處理單元、北橋芯片、南橋芯片或內(nèi)存等主要組件的執(zhí)行速度已遠(yuǎn)遠(yuǎn)超過(guò)系統(tǒng)中的其它組件。其中,硬盤機(jī)因?yàn)闃?gòu)造上的先天限制,在讀寫時(shí),其讀寫頭的機(jī)械移位動(dòng)作以及數(shù)據(jù)盤片的旋轉(zhuǎn)速率等問(wèn)題,都需耗費(fèi)許多時(shí)間,故而經(jīng)常成為計(jì)算機(jī)系統(tǒng)運(yùn)作效率的瓶頸所在。因此,如何在保證數(shù)據(jù)安全備份的基礎(chǔ)上,提升硬盤機(jī)的數(shù)據(jù)存取處理速度,已成為現(xiàn)今業(yè)者所關(guān)注的焦點(diǎn)之一。
一般常用具有容錯(cuò)功能的磁盤陣列(Redundant Array ofIndependent Disks,簡(jiǎn)稱RAID)由多個(gè)磁盤驅(qū)動(dòng)器(Disk)組成,如圖1所示,圖1是利用三個(gè)磁盤驅(qū)動(dòng)器來(lái)組成具有容錯(cuò)功能的一磁盤陣列10的方塊示意圖,即磁盤驅(qū)動(dòng)器A,磁盤驅(qū)動(dòng)器B和磁盤驅(qū)動(dòng)器C,其中,各磁盤驅(qū)動(dòng)器中的數(shù)據(jù)儲(chǔ)存空間又可劃分為多個(gè)儲(chǔ)存區(qū)塊(Block),例如,將磁盤驅(qū)動(dòng)器A劃分為儲(chǔ)存區(qū)塊A1~A7;磁盤驅(qū)動(dòng)器B劃分為儲(chǔ)存區(qū)塊B1~B7;磁盤驅(qū)動(dòng)器C劃分為儲(chǔ)存區(qū)塊C1~C7。為便于說(shuō)明,圖1中將屬于同一對(duì)應(yīng)位置的多個(gè)儲(chǔ)存區(qū)塊標(biāo)識(shí)為族群(Stripe),即族群1~族群7。
當(dāng)系統(tǒng)往該磁盤陣列10寫入數(shù)據(jù)時(shí),是以一個(gè)儲(chǔ)存區(qū)塊的容量大小為單位循序地等分此數(shù)據(jù),而得到多個(gè)數(shù)據(jù)塊。為達(dá)成容錯(cuò)功能,在各數(shù)據(jù)塊被寫入相應(yīng)的儲(chǔ)存區(qū)塊時(shí),系統(tǒng)會(huì)執(zhí)行一邏輯運(yùn)算以產(chǎn)生對(duì)應(yīng)的冗余信息,并將此冗余信息一并寫入對(duì)應(yīng)的儲(chǔ)存區(qū)塊。例如,在儲(chǔ)存區(qū)塊A1和B1寫入數(shù)據(jù)塊時(shí),系統(tǒng)會(huì)計(jì)算對(duì)應(yīng)的冗余信息p1=a1b1,代表異或運(yùn)算,a1和b1分別代表儲(chǔ)存區(qū)塊A1和B1中儲(chǔ)存的數(shù)據(jù)塊,并將該冗余信息p1寫入儲(chǔ)存區(qū)塊C1。這樣,當(dāng)儲(chǔ)存區(qū)塊A1或B1發(fā)生故障時(shí),便可利用儲(chǔ)存區(qū)塊C1中的冗余信息p1來(lái)進(jìn)行數(shù)據(jù)重構(gòu)。例如儲(chǔ)存區(qū)塊A1損壞,此時(shí)只需分別讀出儲(chǔ)存區(qū)塊B1和C1中的數(shù)據(jù)塊b1和冗余信息p1,然后進(jìn)行b1p1的運(yùn)算便可得回a1,以此類推,使用者只要將損壞的儲(chǔ)存區(qū)塊A1或磁盤驅(qū)動(dòng)器A更新,便可利用儲(chǔ)存區(qū)塊B1和C1中的數(shù)據(jù)塊b1和冗余信息p1重新得回原有的儲(chǔ)存區(qū)塊A1中的數(shù)據(jù)塊a1。
通常,儲(chǔ)存冗余信息的儲(chǔ)存區(qū)塊是由各個(gè)磁盤驅(qū)動(dòng)器輪流規(guī)劃,借以形成一輪轉(zhuǎn)同位型數(shù)組的形式。如圖1所示,儲(chǔ)存區(qū)塊A1及儲(chǔ)存區(qū)塊B1內(nèi)所儲(chǔ)存的數(shù)據(jù)塊所對(duì)應(yīng)的冗余信息儲(chǔ)存于儲(chǔ)存區(qū)塊C1內(nèi);儲(chǔ)存區(qū)塊A2及儲(chǔ)存區(qū)塊C2內(nèi)所儲(chǔ)存的數(shù)據(jù)決所對(duì)應(yīng)的冗余信息儲(chǔ)存于儲(chǔ)存區(qū)塊B2內(nèi);而儲(chǔ)存區(qū)塊B3及儲(chǔ)存區(qū)塊C3內(nèi)所儲(chǔ)存的數(shù)據(jù)塊所對(duì)應(yīng)的冗余信息儲(chǔ)存于儲(chǔ)存區(qū)塊A3內(nèi)等等。
請(qǐng)一并參考圖2,下面以向磁盤陣列10中的儲(chǔ)存區(qū)塊A1寫入一目標(biāo)數(shù)據(jù)塊a1為例,來(lái)說(shuō)明一個(gè)完整的寫操作過(guò)程。如圖2所示,首先,系統(tǒng)執(zhí)行步驟S21,發(fā)送一寫命令與一讀取同一族群其他數(shù)據(jù)塊的讀命令,相對(duì)于數(shù)據(jù)塊a1,這里與a1同一族群1的其他數(shù)據(jù)塊是指儲(chǔ)存區(qū)塊B1中的數(shù)據(jù)塊b1;而后,在步驟S22,根據(jù)該寫命令,將該目標(biāo)數(shù)據(jù)塊a1寫入儲(chǔ)存區(qū)塊A1,同時(shí),根據(jù)該讀命令,讀出數(shù)據(jù)塊b1;在步驟S23,系統(tǒng)會(huì)執(zhí)行上述邏輯運(yùn)算,以計(jì)算該族群1中數(shù)據(jù)塊a1和b1的冗余信息p1;最后,系統(tǒng)執(zhí)行步驟S24,將該冗余信息p1寫入儲(chǔ)存區(qū)塊C1。
圖3是根據(jù)圖2中的方法寫入一數(shù)據(jù)塊及計(jì)算對(duì)應(yīng)冗余信息的時(shí)序關(guān)系圖。如圖3所示,上述方法在寫入數(shù)據(jù)塊a1,讀出數(shù)據(jù)塊b1后,直接進(jìn)行冗余信息p1的計(jì)算和寫入。在整個(gè)寫操作過(guò)程中,雖然寫入有效數(shù)據(jù)塊a1的耗時(shí)僅為t1,但計(jì)算及寫入冗余信息p1的耗時(shí)t3較長(zhǎng),從而使整個(gè)寫操作過(guò)程的耗時(shí)t變得冗長(zhǎng)。
由上述過(guò)程可知,為達(dá)到容錯(cuò)功能,系統(tǒng)在往磁盤陣列10寫入任何一個(gè)數(shù)據(jù)塊時(shí),都會(huì)花費(fèi)較多的時(shí)間去讀取同一族群的其他數(shù)據(jù)塊,來(lái)計(jì)算冗余信息,并將該冗余信息寫入對(duì)應(yīng)的儲(chǔ)存區(qū)塊。而在實(shí)際應(yīng)用中,上述方法中寫入有效數(shù)據(jù)塊的時(shí)間只占整個(gè)寫入過(guò)程總耗時(shí)的三分之一,也就是說(shuō),有將近三分之二的時(shí)間都是花費(fèi)在計(jì)算冗余信息及寫入冗余信息的過(guò)程中。這對(duì)于要滿足提升磁盤陣列的數(shù)據(jù)存取速度和縮短用戶響應(yīng)時(shí)間的要求而言是一個(gè)很大的障礙,尤其是對(duì)于網(wǎng)絡(luò)接入存儲(chǔ)(Network Attached Storage,NAS)這樣的存儲(chǔ)系統(tǒng),當(dāng)頻繁發(fā)生大量的磁盤陣列讀寫操作時(shí),應(yīng)用上述數(shù)據(jù)存取方法就會(huì)使用戶響應(yīng)時(shí)間過(guò)長(zhǎng),從而無(wú)法達(dá)到高效率的性能要求。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種磁盤陣列的數(shù)據(jù)存取方法,其能夠在達(dá)成磁盤陣列容錯(cuò)功能的同時(shí),加速數(shù)據(jù)存取速度,縮短用戶響應(yīng)時(shí)間。
本發(fā)明提供一種數(shù)據(jù)存取方法,包括下列步驟首先,寫入一第一數(shù)據(jù)塊;并于一記錄表中更新該第一數(shù)據(jù)塊所對(duì)應(yīng)的一第一記錄位;然后,當(dāng)一冗余任務(wù)被觸發(fā)且該記錄表未被訪問(wèn)時(shí),讀出該第一數(shù)據(jù)塊以及多個(gè)第一相關(guān)數(shù)據(jù)塊;以及根據(jù)該第一數(shù)據(jù)塊與所述第一相關(guān)數(shù)據(jù)塊計(jì)算一第一冗余信息,其中,所述第一相關(guān)數(shù)據(jù)塊與該第一數(shù)據(jù)塊屬于一第一族群(strip)。
本發(fā)明另提供一種數(shù)據(jù)存取方法,用于存取一磁盤陣列中的數(shù)據(jù),包括以下步驟首先,進(jìn)行多個(gè)寫操作;并于一記錄表中更新所述多個(gè)寫操作所對(duì)應(yīng)的多個(gè)記錄位;然后,當(dāng)一冗余任務(wù)被觸發(fā)且該記錄表未被訪問(wèn)時(shí),讀取每一該記錄位所對(duì)應(yīng)的多個(gè)屬于同一族群的數(shù)據(jù)塊;以及根據(jù)每一該族群的數(shù)據(jù)塊,計(jì)算一冗余信息。
本發(fā)明所述的數(shù)據(jù)存取方法,能夠大大提高磁盤陣列寫操作的性能。


圖1是一具有容錯(cuò)功能的磁盤陣列的方塊示意圖;圖2是存取一磁盤陣列中數(shù)據(jù)塊并計(jì)算冗余信息的方法流程圖;圖3是根據(jù)圖2中的方法寫入一數(shù)據(jù)塊及計(jì)算對(duì)應(yīng)冗余信息的時(shí)序關(guān)系圖;圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的利用一記錄表存取一磁盤陣列中數(shù)據(jù)塊的方法流程圖;圖5是上述圖4中該記錄表的內(nèi)部架構(gòu)示意圖;圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的利用一定時(shí)器觸發(fā)冗余任務(wù)計(jì)算冗余信息的方法流程圖;圖7是根據(jù)本發(fā)明的數(shù)據(jù)存取方法寫入一數(shù)據(jù)塊及計(jì)算對(duì)應(yīng)冗余信息的時(shí)序關(guān)系圖。
具體實(shí)施例方式
通過(guò)下面結(jié)合示例性地示出一例的附圖進(jìn)行的描述,本發(fā)明的上述和其他目的和特點(diǎn)將會(huì)變得更加清楚。
以下,參照附圖來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施例。
請(qǐng)一并參考圖4和圖5。其中,圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的利用一記錄表存取一磁盤陣列中數(shù)據(jù)塊的方法流程圖;圖5是上述圖4中該記錄表的內(nèi)部架構(gòu)示意圖。
如圖4所示,首先,在步驟S31的系統(tǒng)初始化過(guò)程中,創(chuàng)建一記錄表(Dirty Table),該記錄表的內(nèi)部架構(gòu)如圖5所示,由多個(gè)記錄位(Dirty Bit)組成,每一個(gè)記錄位包含一比特(Bit),且每一記錄位與上述磁盤陣列10中的一族群相對(duì)應(yīng)。根據(jù)圖1中的磁盤陣列10的架構(gòu),共有7個(gè)族群組成,因此,該記錄表中共包含了7個(gè)記錄位T1~T7,分別對(duì)應(yīng)到磁盤陣列10中的族群1~族群7。而后,在圖4的步驟S32中,當(dāng)用戶有寫入數(shù)據(jù)的要求時(shí),系統(tǒng)會(huì)發(fā)送一寫命令,并執(zhí)行步驟S33,即根據(jù)該寫命令,將一目標(biāo)數(shù)據(jù)塊寫入該磁盤陣列10的存儲(chǔ)區(qū)塊中,例如該目標(biāo)數(shù)據(jù)塊被寫入到存儲(chǔ)區(qū)塊A1中;接著,在步驟S34,系統(tǒng)根據(jù)該存儲(chǔ)區(qū)塊A1所在的族群1,在該記錄表中找到對(duì)應(yīng)的記錄位T1,并對(duì)其進(jìn)行更新。需要說(shuō)明的是,該記錄表在創(chuàng)建時(shí),記錄表中所有的記錄位的初始值均被設(shè)定為0,而在更新時(shí),被更新的記錄位就會(huì)被設(shè)定為1,也就是說(shuō),上述記錄位T1在更新之后,其值為1。
執(zhí)行完步驟S34后,系統(tǒng)即會(huì)返回用戶響應(yīng),于用戶而言,該目標(biāo)數(shù)據(jù)塊的寫入已經(jīng)完成,這意味著,接下去,系統(tǒng)可以執(zhí)行下一數(shù)據(jù)塊的寫入,或是應(yīng)用戶要求,進(jìn)行其他任務(wù)的操作。
不過(guò),由前述關(guān)于磁盤陣列的容錯(cuò)功能的分析可知,要達(dá)成磁盤陣列的容錯(cuò)功能,在寫入數(shù)據(jù)塊時(shí),必須計(jì)算出對(duì)應(yīng)數(shù)據(jù)塊的冗余信息,并存入到存儲(chǔ)區(qū)塊中,才能在某一數(shù)據(jù)塊的存儲(chǔ)區(qū)塊發(fā)生損壞時(shí),利用對(duì)應(yīng)的冗余信息重新得回丟失的該數(shù)據(jù)塊。而由上述過(guò)程可知,本發(fā)明并沒(méi)有在寫入數(shù)據(jù)塊的過(guò)程中計(jì)算和存儲(chǔ)數(shù)據(jù)塊對(duì)應(yīng)的冗余信息,事實(shí)上,本發(fā)明是通過(guò)一定時(shí)器觸發(fā)冗余任務(wù)來(lái)計(jì)算和存儲(chǔ)冗余信息的,請(qǐng)參考圖6。
圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的利用一定時(shí)器觸發(fā)冗余任務(wù)計(jì)算冗余信息的方法流程圖。由圖示可知,首先,在步驟S51,系統(tǒng)進(jìn)行初始化,并注冊(cè)一定時(shí)器(Timer),該定時(shí)器用于計(jì)時(shí)時(shí)間,并于每隔一定時(shí)間后,觸發(fā)一冗余任務(wù),如步驟S52;若此時(shí)上述記錄表并未正在被訪問(wèn),即該記錄表中的所有記錄位都沒(méi)有正在更新中,則執(zhí)行步驟S53,否則即回到步驟S52重新等待一冗余任務(wù)觸發(fā)。在步驟S53中,系統(tǒng)根據(jù)該冗余任務(wù),逐一掃描該記錄表中的記錄位,若在執(zhí)行步驟S53后,發(fā)現(xiàn)有一已更新的記錄位,即該記錄位的值為1,則執(zhí)行步驟S54,反之,沒(méi)有發(fā)現(xiàn)已更新的記錄位,就會(huì)直接進(jìn)行步驟S57。在步驟S54中,系統(tǒng)讀取該記錄位對(duì)應(yīng)的族群中的所有數(shù)據(jù)塊,并在步驟S55中執(zhí)行前述邏輯運(yùn)算,根據(jù)所述數(shù)據(jù)塊計(jì)算出一冗余信息;接著,執(zhí)行步驟S56,將該冗余信息寫入對(duì)應(yīng)的儲(chǔ)存區(qū)塊,并將該記錄位清零;之后判斷該冗余任務(wù)是否結(jié)束,如步驟S57,若尚未結(jié)束,則繼續(xù)掃描下一記錄位。反之,則回到步驟S52重新等待一冗余任務(wù)觸發(fā)。
需要說(shuō)明的是,在上述定時(shí)器觸發(fā)一個(gè)冗余任務(wù)掃描該記錄表時(shí),并非一定掃描該記錄表中的所有記錄位。事實(shí)上,為不影響用戶進(jìn)行其他操作,本發(fā)明可以設(shè)定在執(zhí)行每一次冗余任務(wù)時(shí),只掃描該記錄表中的一部分記錄位。例如,設(shè)定每次執(zhí)行冗余任務(wù)時(shí)掃描3個(gè)記錄位,這樣,若在執(zhí)行本次冗余任務(wù)時(shí),掃描了該記錄表中的T1~T3記錄位,則當(dāng)執(zhí)行下一次冗余任務(wù)時(shí),掃描該記錄表中的T4~T6記錄位,以此類推,順序掃描該記錄表中的所有記錄位。顯然,設(shè)定每次執(zhí)行冗余任務(wù)時(shí)只掃描一部分記錄位,可使單次執(zhí)行冗余任務(wù)的時(shí)間相對(duì)較短,因而基本不影響用戶的正常操作。
圖7是根據(jù)本發(fā)明的數(shù)據(jù)存取方法寫入一數(shù)據(jù)塊及計(jì)算對(duì)應(yīng)冗余信息的時(shí)序關(guān)系圖。結(jié)合圖4和圖6的描述可知,于用戶而言,根據(jù)本發(fā)明寫入數(shù)據(jù)塊a1的整個(gè)寫操作過(guò)程的耗時(shí)t’只包含寫入數(shù)據(jù)塊a1的耗時(shí)t1和更新記錄位T1的耗時(shí)t4這兩部分,而不包含計(jì)算及寫入冗余信息p1的耗時(shí)t3。根據(jù)圖6的描述,冗余信息p1的計(jì)算和寫入是在后期冗余任務(wù)被觸發(fā)時(shí)進(jìn)行的,這樣,于用戶而言,整個(gè)寫操作過(guò)程的耗時(shí)t’就變得相對(duì)較短。
另外,根據(jù)本發(fā)明,當(dāng)系統(tǒng)發(fā)生關(guān)機(jī)操作或是卸載該磁盤陣列的驅(qū)動(dòng)程序時(shí),在正常情況下,系統(tǒng)會(huì)對(duì)該記錄表中的所有記錄位進(jìn)行一次全面的掃描,然后對(duì)該記錄表中所有已更新的記錄位逐一進(jìn)行處理,亦即根據(jù)每一個(gè)已更新的記錄位,讀取其對(duì)應(yīng)族群中的數(shù)據(jù)塊,以計(jì)算對(duì)應(yīng)的冗余信息,并將該冗余信息寫入儲(chǔ)存區(qū)塊,以及將該記錄位清零。
不過(guò),考慮到在實(shí)際操作中,系統(tǒng)有可能發(fā)生非正常關(guān)機(jī)或非正常卸載該磁盤陣列的驅(qū)動(dòng)程序的狀況,而導(dǎo)致系統(tǒng)無(wú)法完成上述全面掃描及后續(xù)的處理過(guò)程,因此,本發(fā)明在該磁盤陣列的最后一個(gè)扇區(qū)(Sector)設(shè)立了一標(biāo)識(shí)位,一般選取一比特作為該標(biāo)識(shí)位,用以標(biāo)識(shí)關(guān)機(jī)之前或卸載該磁盤陣列的驅(qū)動(dòng)程序之前,該記錄表中已更新的記錄位的處理狀況。當(dāng)系統(tǒng)在關(guān)機(jī)之前或卸載該磁盤陣列的驅(qū)動(dòng)程序之前,已經(jīng)完成上述全面掃描及后續(xù)的處理過(guò)程,則將該標(biāo)識(shí)位設(shè)為一完成狀態(tài)(例如是0),反之則設(shè)為一未完成狀態(tài)(例如是1)。這樣,當(dāng)下次系統(tǒng)開機(jī)或加載該磁盤陣列的驅(qū)動(dòng)程序時(shí),首先檢測(cè)該標(biāo)識(shí)位,若該標(biāo)識(shí)位為完成狀態(tài)(例如是0),則將該記錄表中的所有記錄位都進(jìn)行清零,即設(shè)為未更新,即所有記錄位的值都設(shè)為0;若該標(biāo)識(shí)位為未完成狀態(tài)(例如是1),則將該記錄表中的所有記錄位都設(shè)為已更新,即所有記錄位的值都設(shè)為1,這樣,在執(zhí)行冗余任務(wù)時(shí),這些記錄位所對(duì)應(yīng)的族群的冗余信息就可被重新計(jì)算和寫入。
以上實(shí)施例中,該記錄表一般保存在計(jì)算機(jī)系統(tǒng)的內(nèi)存中,而內(nèi)存容量的大小會(huì)有所限制,因此,當(dāng)磁盤陣列的容量很大時(shí),族群數(shù)目就會(huì)很大,此時(shí)可將記錄表中的記錄位設(shè)定為每一記錄位對(duì)應(yīng)多個(gè)族群,以減少記錄表對(duì)內(nèi)存空間的占用量,這樣,當(dāng)一記錄位所對(duì)應(yīng)的多個(gè)族群中任一族群有數(shù)據(jù)塊寫入時(shí),該記錄位就會(huì)被更新,而在執(zhí)行冗余任務(wù)時(shí),該記錄位對(duì)應(yīng)的多個(gè)族群都需要分別計(jì)算冗余信息并寫入儲(chǔ)存區(qū)塊,計(jì)算量會(huì)有所增大。當(dāng)然,在內(nèi)存容量允許的情況下,盡可能使每一記錄位對(duì)應(yīng)到最少個(gè)數(shù)的族群,以減少冗余信息的計(jì)算量。
在實(shí)際應(yīng)用中,本發(fā)明的磁盤陣列的數(shù)據(jù)存取方法可應(yīng)用到磁盤陣列5(RAID 5)或磁盤陣列6(RAID 6)等不同類型的磁盤陣列中。
綜上所述,相較于傳統(tǒng)的磁盤陣列數(shù)據(jù)存取方法,本發(fā)明的數(shù)據(jù)存取方法是將耗時(shí)最多的冗余信息的計(jì)算和存入延后在系統(tǒng)的空閑時(shí)間內(nèi)進(jìn)行。一方面,系統(tǒng)將有效數(shù)據(jù)寫入磁盤陣列后,即刻返回用戶響應(yīng)并報(bào)告內(nèi)核寫命令完成,這樣于用戶而言,從寫入數(shù)據(jù)到返回響應(yīng)的時(shí)間大大縮短;另一方面,在定時(shí)器定時(shí)觸發(fā)執(zhí)行冗余任務(wù)時(shí),計(jì)算先前寫入的數(shù)據(jù)塊的冗余信息,并將其寫入對(duì)應(yīng)的儲(chǔ)存區(qū)塊,同樣保證了磁盤陣列的容錯(cuò)功能的實(shí)現(xiàn)。因此,總體而言,本發(fā)明的數(shù)據(jù)存取方法大大提高了磁盤陣列的寫操作性能。以由三個(gè)磁盤驅(qū)動(dòng)器組成的一磁盤陣列5為例,在實(shí)際測(cè)驗(yàn)中,在同一平臺(tái)下往該磁盤陣列5寫入8G字節(jié)的數(shù)據(jù),按照傳統(tǒng)的數(shù)據(jù)存取方法耗時(shí)為466.491μs,而按照本發(fā)明的數(shù)據(jù)存取方法耗時(shí)僅為105.668μs,由此可見,本發(fā)明的數(shù)據(jù)存取方法使磁盤陣列的寫操作性能提高了三倍多。
以上所述僅為本發(fā)明較佳實(shí)施例,然其并非用以限定本發(fā)明的范圍,任何熟悉本項(xiàng)技術(shù)的人員,在不脫離本發(fā)明的精神和范圍內(nèi),可在此基礎(chǔ)上做進(jìn)一步的改進(jìn)和變化,因此本發(fā)明的保護(hù)范圍當(dāng)以本申請(qǐng)的權(quán)利要求書所界定的范圍為準(zhǔn)。
權(quán)利要求
1.一種數(shù)據(jù)存取方法,其特征在于,該數(shù)據(jù)存取方法包括寫入一第一數(shù)據(jù)塊;于一記錄表中更新該第一數(shù)據(jù)塊所對(duì)應(yīng)的一第一記錄位;當(dāng)一冗余任務(wù)被觸發(fā)且該記錄表未被訪問(wèn)時(shí),讀出該第一數(shù)據(jù)塊以及多個(gè)第一相關(guān)數(shù)據(jù)塊;以及根據(jù)該第一數(shù)據(jù)塊與所述第一相關(guān)數(shù)據(jù)塊計(jì)算一第一冗余信息,其中所述第一相關(guān)數(shù)據(jù)塊與該第一數(shù)據(jù)塊屬于一第一族群。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存取方法,其特征在于,該第一記錄位包含一比特,且更新該第一記錄位是指設(shè)定該比特為1。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)存取方法,其特征在于,更包括寫入該第一冗余信息;以及設(shè)定該第一記錄位的該比特為0。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存取方法,其特征在于,更包括寫入一第二數(shù)據(jù)塊;于該記錄表中更新該第二數(shù)據(jù)塊所對(duì)應(yīng)的一第二記錄位;當(dāng)該冗余任務(wù)被觸發(fā)且該記錄表未被訪問(wèn)時(shí),讀出該第二數(shù)據(jù)塊以及多個(gè)第二相關(guān)數(shù)據(jù)塊;以及根據(jù)該第二數(shù)據(jù)塊與所述第二相關(guān)數(shù)據(jù)塊計(jì)算一第二冗余信息,其中所述第二相關(guān)數(shù)據(jù)塊與該第二數(shù)據(jù)塊屬于一第二族群。
5.一種數(shù)據(jù)存取方法,用于存取一磁盤陣列中的數(shù)據(jù),其特征在于,包括進(jìn)行多個(gè)寫操作;于一記錄表中更新所述寫操作所對(duì)應(yīng)的多個(gè)記錄位;當(dāng)一冗余任務(wù)被觸發(fā)且該記錄表未被訪問(wèn)時(shí),讀取每一該記錄位所對(duì)應(yīng)的多個(gè)屬于同一族群的數(shù)據(jù)塊;以及根據(jù)每一該族群的數(shù)據(jù)塊,計(jì)算一冗余信息。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)存取方法,其特征在于,所述寫操作更包括接收多個(gè)寫命令;以及根據(jù)所述寫命令,寫入多個(gè)數(shù)據(jù)塊至該磁盤陣列中。
7.根據(jù)權(quán)利要求5所述的數(shù)據(jù)存取方法,其特征在于,每一該記錄位包含一比特,且更新該記錄位是指將該比特設(shè)定為1。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)存取方法,其特征在于,更包括掃描該記錄表的一部分;以及當(dāng)所述記錄位中的該比特為1時(shí),讀取每一該記錄位所對(duì)應(yīng)的每一該族群中的數(shù)據(jù)塊。
9.根據(jù)權(quán)利要求7所述的數(shù)據(jù)存取方法,其特征在于,更包括寫入所述冗余信息;以及設(shè)定對(duì)應(yīng)的所述記錄位的所述比特為0。
10.根據(jù)權(quán)利要求5所述的數(shù)據(jù)存取方法,其特征在于,當(dāng)發(fā)生一關(guān)機(jī)操作或卸載該磁盤陣列的一驅(qū)動(dòng)程序時(shí),掃描該記錄表的所有所述記錄位,并逐一對(duì)所述記錄位已更新者,讀取該記錄位對(duì)應(yīng)的同一族群的數(shù)據(jù)塊,以計(jì)算對(duì)應(yīng)的所述冗余信息。
11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)存取方法,其特征在于,于該磁盤陣列的最后一個(gè)扇區(qū)設(shè)定一標(biāo)識(shí)位,當(dāng)已更新的所述記錄位的所述冗余信息計(jì)算完畢,并已寫入到該磁盤陣列中,則將該標(biāo)識(shí)位設(shè)為一完成狀態(tài);否則將該標(biāo)識(shí)位設(shè)為一未完成狀態(tài)。
12.根據(jù)權(quán)利要求11所述的數(shù)據(jù)存取方法,其特征在于,發(fā)生一開機(jī)操作或加載該磁盤陣列的該驅(qū)動(dòng)程序時(shí),檢測(cè)該標(biāo)識(shí)位;當(dāng)該標(biāo)識(shí)位為該完成狀態(tài)時(shí),將該記錄表中所有所述記錄位設(shè)為未更新;而當(dāng)該標(biāo)識(shí)位為該未完成狀態(tài)時(shí),更新記錄表中所有所述記錄位。
全文摘要
本發(fā)明提供一種數(shù)據(jù)存取方法,特別涉及一種磁盤陣列的數(shù)據(jù)存取方法,其能夠在達(dá)成磁盤陣列容錯(cuò)功能的同時(shí),加速數(shù)據(jù)存取速度,縮短用戶響應(yīng)時(shí)間。該方法包括以下步驟首先,進(jìn)行多個(gè)寫操作;并于一記錄表中更新所述多個(gè)寫操作所對(duì)應(yīng)的多個(gè)記錄位;然后,當(dāng)一冗余任務(wù)被觸發(fā)且該記錄表未被訪問(wèn)時(shí),讀取每一該記錄位所對(duì)應(yīng)的多個(gè)屬于同一族群的數(shù)據(jù)塊;以及根據(jù)每一該族群的數(shù)據(jù)塊,計(jì)算一冗余信息。借此,本發(fā)明能夠大大提高磁盤陣列寫操作的性能。
文檔編號(hào)G06F3/06GK101055512SQ200710105879
公開日2007年10月17日 申請(qǐng)日期2007年6月1日 優(yōu)先權(quán)日2007年6月1日
發(fā)明者徐濤 申請(qǐng)人:威盛電子股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宜兴市| 定州市| 吴旗县| 蚌埠市| 霍城县| 禄丰县| 皮山县| 称多县| 定兴县| 天等县| 巴塘县| 邹平县| 政和县| 卢龙县| 广河县| 革吉县| 宣化县| 吉木乃县| 万盛区| 泗洪县| 广汉市| 涿鹿县| 金寨县| 卢湾区| 合作市| 韶山市| 平原县| 红原县| 当雄县| 永登县| 吴旗县| 彩票| 阜康市| 塔城市| 肃北| 徐汇区| 邛崃市| 离岛区| 辛集市| 赣榆县| 普兰店市|