專利名稱:數(shù)據(jù)存儲業(yè)務(wù)控制方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,具體涉及一種數(shù)據(jù)存儲業(yè)務(wù)控制方法及系統(tǒng)。
背景技術(shù):
在互聯(lián)網(wǎng)應(yīng)用中,用戶的文章、評論、相片等都可稱為對象。隨著互聯(lián)網(wǎng)的發(fā)展,對 海量對象存儲的需求日漸迫切。這類對象存儲的特點有大小通常為幾十k到若干兆;隨機(jī) 訪問;一次寫多次讀;并發(fā)讀寫量大;數(shù)量巨大;針對這些特點,鑒于Linux文件系統(tǒng)對于 海量文件存儲支持不夠,目前普遍采用日志文件結(jié)構(gòu)方式存儲對象,有效的減少存儲文件 規(guī)模。在日志文件中,新加入的對象追加到文件尾。通過修改對象有效標(biāo)識,將對象標(biāo)識為 無效,并不立即回收磁盤空間。系統(tǒng)磁盤空間緊張且日志文件空間利用率較低時,建立新的 日志文件,將有效數(shù)據(jù)寫入新日志文件,取代舊文件提供服務(wù)。針對日志文件的相關(guān)操作,需要實時了解文件磁盤配額上限、文件尾指示和有效 空間大小。作用有三其一,方便追加新對象到文件尾;其二,控制對象的并發(fā)寫入;其三, 方便計算磁盤空間利用率,進(jìn)行磁盤空間回收?,F(xiàn)有的解決方案為,將對象的索引按照日志 文件的形式寫入磁盤。系統(tǒng)啟動時,將對象索引文件全部加載到內(nèi)存。對于重復(fù)的對象,僅 保留最新版本。通過加載過程,計算磁盤空間的利用情況。運行過程中,實時修改相應(yīng)的變 量,并持久化存儲新對象索引?,F(xiàn)有數(shù)據(jù)存儲的技術(shù)在對象數(shù)量巨大時有如下不足(1)由于對象索引文件較多,索引加載速度慢,影響系統(tǒng)啟動速度。(2)磁盤操作較多,影響系統(tǒng)性能。
發(fā)明內(nèi)容
本發(fā)明的第一目的是提出一種高效的數(shù)據(jù)存儲業(yè)務(wù)控制方法。本發(fā)明的第二目的是提出一種高效的數(shù)據(jù)存儲業(yè)務(wù)控制系統(tǒng)。為實現(xiàn)上述第一目的,本發(fā)明提供了一種數(shù)據(jù)存儲業(yè)務(wù)控制方法,包括在數(shù)據(jù)存 儲業(yè)務(wù)啟動時,磁盤將日志索引文件加載至內(nèi)存,日志索引文件包括多個用于表征日志文 件屬性的日志索引;內(nèi)存在根據(jù)日志索引文件判定磁盤配額未滿時,將接收的數(shù)據(jù)添加至 日志文件中,并修改或新增對應(yīng)于添加數(shù)據(jù)的日志文件的日志索引;內(nèi)存將修改或新增的 日志索引同步至磁盤。為實現(xiàn)上述第二目的,本發(fā)明提供了一種數(shù)據(jù)存儲業(yè)務(wù)控制系統(tǒng)包括加載模塊, 用于在數(shù)據(jù)存儲業(yè)務(wù)啟動時,將磁盤中的日志索引文件加載至內(nèi)存,其中,日志索引文件包 括多個用于表征日志文件屬性的日志索引;添加處理模塊,用于在根據(jù)日志索引文件判定 磁盤配額未滿時,將接收的數(shù)據(jù)添加至內(nèi)存中的日志文件,并修改或新增對應(yīng)于添加數(shù)據(jù) 的日志文件的日志索引;同步模塊,用于將修改或新增的日志索引同步至磁盤。本發(fā)明各個實施例中,通過建立日志索引文件并將該日志索引文件加載至內(nèi)存使 得內(nèi)存根據(jù)該日志索引文件即可判斷磁盤的使用狀況進(jìn)而進(jìn)行數(shù)據(jù)操作,避免了利用現(xiàn)有技術(shù)中的對象索引文件進(jìn)行磁盤使用狀況的判定,從而避免了因?qū)ο笏饕募虞d速度慢而影響系統(tǒng)啟動速度的缺陷。
附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實 施例一并用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中圖1為本發(fā)明的數(shù)據(jù)存儲業(yè)務(wù)控制方法的實施例一流程圖;圖2為本發(fā)明的數(shù)據(jù)存儲業(yè)務(wù)控制方法的實施例二流程圖;圖3為本發(fā)明的數(shù)據(jù)存儲業(yè)務(wù)控制方法中日志文件、日志索引及日志索引文件的 示意圖;圖4為本發(fā)明的數(shù)據(jù)存儲業(yè)務(wù)控制方法中磁盤與內(nèi)存間日志索引映射關(guān)系示意 圖;圖5為本發(fā)明的數(shù)據(jù)存儲業(yè)務(wù)控制方法的實施例三流程圖;圖6為本發(fā)明的數(shù)據(jù)存儲業(yè)務(wù)控制系統(tǒng)的實施例結(jié)構(gòu)圖。
具體實施例方式以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實 施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。方法實施例圖1為本發(fā)明的數(shù)據(jù)存儲業(yè)務(wù)控制方法的實施例一流程圖。如圖1所示,本實施 例包括步驟S102 在系統(tǒng)(該系統(tǒng)包含數(shù)據(jù)存儲業(yè)務(wù))啟動時,磁盤將日志索引文件加 載至內(nèi)存,其中,日志索引文件包括多個用于表征日志文件屬性的日志索引;具體操作過程 參見圖2中步驟S201的解釋說明;步驟S104:內(nèi)存在根據(jù)日志索引文件判定磁盤配額未滿時,將接收的數(shù)據(jù)添加至 日志文件中,并修改或新增對應(yīng)于添加數(shù)據(jù)的日志文件的日志索引;具體操作過程參見圖 5的解釋說明;步驟S106 內(nèi)存將修改或新增的日志索引同步至磁盤;具體操作過程參見圖2中 步驟S203及步驟S204以及圖3的解釋說明;本實施例通過建立日志索引文件并將該日志索引文件加載至內(nèi)存使得內(nèi)存根據(jù) 該日志索引文件即可判斷磁盤的使用狀況進(jìn)而進(jìn)行數(shù)據(jù)操作,避免了利用現(xiàn)有技術(shù)中的對 象索引文件進(jìn)行磁盤使用狀況的判定,從而避免了因?qū)ο笏饕募虞d速度慢而影響系統(tǒng) 啟動速度的缺陷。圖2為本發(fā)明的數(shù)據(jù)存儲業(yè)務(wù)控制方法的實施例二流程圖。圖3及圖4分別為本 發(fā)明的數(shù)據(jù)存儲業(yè)務(wù)控制方法中日志文件、日志索引及日志索引文件的示意圖,以及磁盤 與內(nèi)存間日志索引映射關(guān)系示意圖。以下結(jié)合圖2至圖4進(jìn)行解釋說明。如圖2所示,本 實施例包括步驟S201 在系統(tǒng)啟動時,磁盤將每一日志索引文件中的日志索引分別加載到內(nèi) 存中預(yù)設(shè)對應(yīng)的多個緩存頁中;
其中,日志索引(即為日志文件的索引信息)在磁盤中的示意圖如圖3所示,其記 錄日志文件的基本元數(shù)據(jù)信息(即屬性信息),包括磁盤配額(即Max-space)、對象數(shù)目 (即total-objs)、已用磁盤空間(即Used-space)、有效對象數(shù)目(valid objs)、有效對象 占用磁盤空間(即valid-space)以及其他信息(如,日志文件尾指示(即tail)、日志文件 版本(即vesion)、用來區(qū)分不同的日志文件的id),故,日志索引與日志文件(如圖3所示, 包括文件頭File Header及多個對象obj) —一對應(yīng);具體操作時,由于每個日志索引占用 的空間較小,且動態(tài)性較大,為了方便該動態(tài)數(shù)據(jù)的加載和持久化,采用結(jié)構(gòu)化方式存儲在 一個索引文件中,形成日志索引文件,即如圖3所示,日志索引文件中的每個LogFilelndex 對應(yīng)一個日志索引;日志索引文件大小隨著日志文件數(shù)目線性增長;如圖4所示, 磁盤中的每個日志索引文件對應(yīng)內(nèi)存中一個索引文件頭(即 IndexFile hdr),索引文件頭之間組成雙向循環(huán)鏈表,鏈表頭為哨兵指針,作為訪問的入 口 ;索引文件頭指向由索引緩存頁面(即Index Page)組成的單向鏈表,該鏈表中的每個節(jié) 點為一個索引頁,每一個索引頁中緩存了若干個日志索引,并且設(shè)置有一個頁面臟標(biāo)記,即 每個日志索引文件,由內(nèi)存中的若干索引緩存頁面緩存,按照訪問需要,將索引文件分批緩 存到內(nèi)存,而不是一次全部加載;索引文件頭中有指向該緩存頁面鏈表頭的指針,每個緩存 頁面保存了指向索引文件頭的指針,方便訪問;其中,索引文件頭及索引緩存頁面所包括的 內(nèi)容如表1所示索弓丨文件頭及索弓丨緩存頁面的內(nèi)容
索引文件頭索引緩存頁面
索引文件頭前驅(qū)指針(即Prev Ptr)指向日志索引文件頭指針(即
IndexFile hdr Ptr)
索引文件后繼指針(即Next Ptr)索引緩存頁面后繼指針(即Next Ptr)^
日志索引文件名(即Index File Name 本頁面緩存的日志索引條目(即Index~
Num)
日志索引文件中索引條目(即Index當(dāng)前緩存的頁面在日志索引文件中的
Num)起始偏移值(即Offset)
最大緩存頁面數(shù)(即Max Page Num)日志索引修改標(biāo)志(即Dirty flag)
緩存頁面數(shù)(即Page Num)H
指向緩存頁面鏈表頭(即IndexPageLogFileIndex
Ptr)
..............
LogFileIndex
步驟S202 內(nèi)存在根據(jù)日志索引文件判定磁盤配額未滿時,將接收的數(shù)據(jù)添加至 日志文件,并修改或新增對應(yīng)于添加數(shù)據(jù)的日志文件的日志索引;具體操作過程參見圖5 的解釋說明;步驟S203 內(nèi)存在接收到數(shù)據(jù)刪除信息時,修改包含刪除數(shù)據(jù)的日志文件對應(yīng)的 日志索引,并將修改的日志索引對應(yīng)的緩存頁標(biāo)識為臟頁;即,在對象刪除時,首先從分布 式數(shù)據(jù)庫中刪除對象索引,然后修改內(nèi)存中該數(shù)據(jù)對應(yīng)的日志索引,以及將相應(yīng)的緩存頁 標(biāo)識為臟頁;步驟S204 內(nèi)存在根據(jù)日志索引文件判定磁盤空間達(dá)到配額上限或/和磁盤空間 利用率低于預(yù)設(shè)閾值時,根據(jù)內(nèi)存中的日志文件建立新的日志文件;并建立新的日志文件 的日志索引,以及將建立的日志索引對應(yīng)的緩存頁標(biāo)識為臟頁;即,當(dāng)日志文件磁盤空間達(dá) 到配額上限或/和空間有效利用率較低時,對日志文件進(jìn)行壓縮,即,剔除無效對象的實體 數(shù)據(jù),將有效對象的實體數(shù)據(jù)寫入到的新的日志文件,并用新的日志文件的索引替代舊文 件的索引,且將緩存頁標(biāo)識為臟頁,即該緩存頁進(jìn)行標(biāo)識;
步驟S205 將標(biāo)識為臟頁的緩存頁中的日志索引同步至磁盤中對應(yīng)的日志索引 文件中;即,緩存頁為臟頁則表示緩存頁中的日志索引發(fā)生了修改,需要同步到磁盤中;具 體操作如下首先,在內(nèi)存中拷貝該緩存頁的副本,清除原緩存頁臟頁標(biāo)志;然后,將副本放入需要同步的緩存頁隊列(即在同步隊列中每個緩存頁僅保留一 份最新的副本),同步策略可以有如下兩種(1)即時寫入,其具體含義為發(fā)生修改時,立 即將緩存頁副本寫入索引文件對應(yīng)的位置;(2)延時寫入,其具體含義為通過定時觸發(fā)或 者待寫入的緩存頁達(dá)到一定數(shù)量,批量的更新索引文;需要說明的是,索引頁中的偏移量標(biāo)識了該部分索引在索引文件中的位置,方便 索引信息寫入磁盤,即在上述兩種方式寫入時,均根據(jù)偏移量找到其在索引文件中的起始 位置,然后將整頁數(shù)據(jù)寫入索引文件;即時寫入能保證數(shù)據(jù)一致性,保證數(shù)據(jù)不丟失;延時 寫入能實現(xiàn)批量寫入,可以避免同一緩存頁的反復(fù)寫入,當(dāng)采用延時寫入時可以聯(lián)合增加 操作日志的方式共同完成數(shù)據(jù)的寫入,即日志索引數(shù)據(jù)修改時,操作日志記載修改的緩存 頁標(biāo)識以及修改的數(shù)據(jù);系統(tǒng)異常重啟后,重放操作日志中的操作,完成數(shù)據(jù)的同步。本實施例通過建立日志索引文件并將該日志索引文件加載至內(nèi)存使得內(nèi)存根據(jù) 該日志索引文件即可判斷磁盤的使用狀況進(jìn)而進(jìn)行數(shù)據(jù)操作,提高系統(tǒng)啟動速度;日志文 件保存對象的實體數(shù)據(jù)、對象索引使用分布式數(shù)據(jù)庫存儲、日志索引存儲在本地結(jié)構(gòu)化文 件中;日志索引文件獨立于現(xiàn)有技術(shù)中的對象索引文件獨立設(shè)置,二者分布式存儲,使得對 象索引文件不再用于分析日志文件存儲情況,對象索引文件功能單一,實現(xiàn)業(yè)務(wù)分離,提高 系統(tǒng)的健壯性;此外,分布式的特性也提升了系統(tǒng)的擴(kuò)展性及對象索引并發(fā)訪問效率;日 志索引結(jié)構(gòu)化聚集存儲,即采用日志索引文件的形式,方便了索引文件的加載和同步;索引 文件的分頁緩存機(jī)制,方便了索引的快速訪問和動態(tài)修改,降低了磁盤訪問次數(shù),加快了索 引同步效率。圖5為本發(fā)明的數(shù)據(jù)存儲業(yè)務(wù)控制方法的實施例三流程圖。如圖5所示,本實施 例包括步驟S301 根據(jù)日志索引文件判斷磁盤配額是否已滿;若是,則結(jié)束,若否,則執(zhí)行步驟S302 ; 步驟S302 將對象索引存入分布式數(shù)據(jù)庫;步驟S303 是否可以查找到可存放實體數(shù)據(jù)的日志文件;若是,則執(zhí)行步驟S306, 若否,則執(zhí)行步驟S304;步驟S304 創(chuàng)建新日志文件;步驟S305 添加新日志索引到相應(yīng)的緩存頁;步驟S306 修改緩存頁中日志索引;步驟S307 置位緩存頁臟標(biāo)志,即將緩存頁標(biāo)識為臟頁;步驟S308 將實體數(shù)據(jù)添加到日志文件,具體操作時,可以將對象實體數(shù)據(jù)追加 到日志文件尾部。本實施例通過建立日志索引文件并將該日志索引文件加載至內(nèi)存使得內(nèi)存根據(jù) 該日志索引文件即可判斷磁盤的使用狀況進(jìn)而進(jìn)行數(shù)據(jù)操作,避免了利用現(xiàn)有技術(shù)中的對 象索引文件進(jìn)行磁盤使用狀況的判定,從而避免了因?qū)ο笏饕募虞d速度慢而影響系統(tǒng) 啟動速度的缺陷。系統(tǒng)實施例圖6為本發(fā)明的數(shù)據(jù)存儲業(yè)務(wù)控制系統(tǒng)的實施例結(jié)構(gòu)圖。上述圖1-5方法發(fā)明的 各個實施例均可以在圖6結(jié)構(gòu)圖所示結(jié)構(gòu)的系統(tǒng)中實現(xiàn)。如圖6所示,該數(shù)據(jù)存儲業(yè)務(wù)控 制系統(tǒng)包括加載模塊642,用于在數(shù)據(jù)存儲業(yè)務(wù)啟動時,將磁盤中的日志索引文件加載至 內(nèi)存,其中,所述日志索引文件包括多個用于表征日志文件屬性的日志索引;添加處理模塊 621,用于在根據(jù)所述日志索引文件判定所述磁盤配額未滿時,將接收的數(shù)據(jù)添加至所述內(nèi) 存中的日志文件,并修改或新增對應(yīng)于添加數(shù)據(jù)的日志文件的日志索引;同步模塊625,用 于將所述修改或新增的日志索引同步至所述磁盤。該數(shù)據(jù)存儲業(yè)務(wù)控制系統(tǒng)還可以包括映射控制模塊644,用于控制所述加載模塊在數(shù)據(jù)存儲業(yè)務(wù)啟動時將每一日志索 引文件中的日志索引分別加載到所述內(nèi)存中預(yù)設(shè)對應(yīng)的多個緩存頁中,其中每一日志索引 文件的預(yù)設(shè)對應(yīng)的多個緩存頁組成單向鏈表以及每一日志索引文件預(yù)設(shè)對應(yīng)一索引文件 頭;標(biāo)識模塊624,用于將所述修改或新增的日志索引對應(yīng)的緩存頁標(biāo)識為臟頁;清除模塊626,用于在同步模塊將標(biāo)識為臟頁的緩存頁中的日志索引同步至所述 磁盤后清除所述標(biāo)識為臟頁的緩存頁的臟頁標(biāo)識;刪除處理模塊622,用于在接收到數(shù)據(jù)刪除信息時,修改包含所述刪除數(shù)據(jù)的日志 文件對應(yīng)的日志索引,并將修改的日志索引對應(yīng)的緩存頁標(biāo)識為臟頁;壓縮處理模塊623,用于在根據(jù)所述日志索引文件判定所述磁盤空間達(dá)到配額上 限或/和所述磁盤空間利用率低于預(yù)設(shè)閾值時,根據(jù)所述內(nèi)存中的日志文件建立新的日志 文件,并建立所述新的日志文件的日志索引,以及將所述建立的日志索引對應(yīng)的緩存頁標(biāo) 識為臟頁。本實施例通過加載模塊642將該日志索引文件加載至內(nèi)存使得內(nèi)存中的添加處 理模塊621及壓縮處理模塊623根據(jù)該日志索引文件即可判斷磁盤的使用狀況進(jìn)而進(jìn)行數(shù) 據(jù)操作,提高系統(tǒng)啟動速度;日志文件僅保存對象的實體數(shù)據(jù),對象索引使用分布式數(shù)據(jù)庫存儲,而日志索引存儲在本地結(jié)構(gòu)化文件中,日志索引文件獨立于現(xiàn)有技術(shù)中的對象索引 文件獨立設(shè)置,二者分布式存儲,使得對象索引文件不再用于分析日志文件存儲情況,對象 索引文件功能單一,實現(xiàn)業(yè)務(wù)分離,提高系統(tǒng)的健壯性;此外分布式的特性也提升了系統(tǒng)的 擴(kuò)展性及對象索引并發(fā)訪問效率;日志索引結(jié)構(gòu)化聚集存儲,即采用日志索引文件的形式, 方便 了索引文件的加載和同步;索引文件的分頁緩存機(jī)制,方便了索引的快速訪問和動態(tài) 修改,降低了磁盤訪問次數(shù),加快了索引同步效率。 最后應(yīng)說明的是以上僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管 參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,對于本領(lǐng)域的技術(shù)人員來說,其依然可以對 前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換。凡在 本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù) 范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)存儲業(yè)務(wù)控制方法,其特征在于,包括以下步驟在數(shù)據(jù)存儲業(yè)務(wù)啟動時,磁盤將日志索引文件加載至內(nèi)存,其中,所述日志索引文件包 括多個用于表征日志文件屬性的日志索引;所述內(nèi)存在根據(jù)所述日志索引文件判定所述磁盤配額未滿時,將接收的數(shù)據(jù)添加至日 志文件中,并修改或新增對應(yīng)于添加數(shù)據(jù)的日志文件的日志索引; 所述內(nèi)存將所述修改或新增的日志索引同步至所述磁盤。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲業(yè)務(wù)控制方法,其特征在于,所述在數(shù)據(jù)存儲業(yè)務(wù) 啟動時,磁盤將日志索引文件加載至內(nèi)存的步驟包括在數(shù)據(jù)存儲業(yè)務(wù)啟動時,所述磁盤將每一日志索引文件中的日志索引分別加載到所述 內(nèi)存中預(yù)設(shè)對應(yīng)的多個緩存頁中,其中每一日志索引文件的預(yù)設(shè)對應(yīng)的多個緩存頁組成單 向鏈表;所述單向鏈表中的緩存頁與其預(yù)設(shè)對應(yīng)的索引文件頭進(jìn)行信息交互。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)存儲業(yè)務(wù)控制方法,其特征在于,在所述修改或新增對 應(yīng)于添加數(shù)據(jù)的日志文件的日志索引的步驟之后包括對所述修改或新增的日志索引對應(yīng)的緩存頁進(jìn)行標(biāo)識。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)存儲業(yè)務(wù)控制方法,其特征在于,所述內(nèi)存將所述修改 或新增的日志索引同步至所述磁盤的步驟包括所述內(nèi)存將被標(biāo)識的緩存頁中的日志索引同步至所述磁盤; 刪除所述被標(biāo)識的緩存頁中的標(biāo)識。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)存儲業(yè)務(wù)控制方法,其特征在于,所述內(nèi)存將被標(biāo)識的 緩存頁中的日志索引同步至所述磁盤的步驟包括在任一緩存頁被標(biāo)識時,所述內(nèi)存將被標(biāo)識的緩存頁中的日志索引同步至所述磁盤; 在達(dá)到預(yù)設(shè)的觸發(fā)時間或者被標(biāo)識的緩存頁達(dá)到預(yù)設(shè)數(shù)量時,所述內(nèi)存將被標(biāo)識的緩 存頁中的日志索引同步至所述磁盤。
6.根據(jù)上述權(quán)利要求2至4中任一項所述的數(shù)據(jù)存儲業(yè)務(wù)控制方法,其特征在于,還包括所述內(nèi)存在接收到數(shù)據(jù)刪除信息時,修改包含所述刪除數(shù)據(jù)的日志文件對應(yīng)的日志索 引,并對所述修改的日志索引對應(yīng)的緩存頁進(jìn)行標(biāo)識。
7.根據(jù)上述權(quán)利要求2至4中任一項所述的數(shù)據(jù)存儲業(yè)務(wù)控制方法,其特征在于,還包括所述內(nèi)存在根據(jù)所述日志索引文件判定所述磁盤空間達(dá)到配額上限或/和所述磁盤 空間利用率低于預(yù)設(shè)閾值時,建立新的日志文件;所述內(nèi)存建立所述新的日志文件的日志索引,并對所述建立的日志索引對應(yīng)的緩存頁 進(jìn)行標(biāo)識。
8.一種數(shù)據(jù)存儲業(yè)務(wù)控制系統(tǒng),其特征在于,該系統(tǒng)包括加載模塊,用于在數(shù)據(jù)存儲業(yè)務(wù)啟動時,將磁盤中的日志索引文件加載至內(nèi)存,其中, 所述日志索引文件包括多個用于表征日志文件屬性的日志索引;添加處理模塊,用于在根據(jù)所述日志索引文件判定所述磁盤配額未滿時,將接收的數(shù) 據(jù)添加至所述內(nèi)存中的日志文件,并修改或新增對應(yīng)于添加數(shù)據(jù)的日志文件的日志索引;同步模塊,用于將所述修改或新增的日志索引同步至所述磁盤。
9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)存儲業(yè)務(wù)控制系統(tǒng),其特征在于,還包括映射控制模塊,用于控制所述加載模塊在數(shù)據(jù)存儲業(yè)務(wù)啟動時將每一日志索引文件中 的日志索引分別加載到所述內(nèi)存中預(yù)設(shè)對應(yīng)的多個緩存頁中,其中,每一日志索引文件的 預(yù)設(shè)對應(yīng)的多個緩存頁組成單向鏈表以及每一日志索引文件預(yù)設(shè)對應(yīng)于一索引文件頭。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)存儲業(yè)務(wù)控制系統(tǒng),其特征在于,還包括標(biāo)識模塊,用于對所述修改或新增的日志索引對應(yīng)的緩存頁進(jìn)行標(biāo)識;清除模塊,用于在所述同步模塊將被標(biāo)識的緩存頁中的日志索引同步至所述磁盤后清 除所述被標(biāo)識的緩存頁中的標(biāo)識;刪除處理模塊,用于在接收到數(shù)據(jù)刪除信息時,修改包含所述刪除數(shù)據(jù)的日志文件對 應(yīng)的日志索引,并對所述修改的日志索引對應(yīng)的緩存頁進(jìn)行標(biāo)識;壓縮處理模塊,用于在根據(jù)所述日志索引文件判定所述磁盤空間達(dá)到配額上限或/和 所述磁盤空間利用率低于預(yù)設(shè)閾值時,根據(jù)所述內(nèi)存中的日志文件建立新的日志文件,并 建立所述新的日志文件的日志索引,以及對所述建立的日志索引對應(yīng)的緩存頁進(jìn)行標(biāo)識。
全文摘要
本發(fā)明提供了一種數(shù)據(jù)存儲業(yè)務(wù)控制方法及系統(tǒng),其中,該方法包括在數(shù)據(jù)存儲業(yè)務(wù)啟動時,磁盤將日志索引文件加載至內(nèi)存,日志索引文件包括多個用于表征日志文件屬性的日志索引;內(nèi)存在根據(jù)日志索引文件判定磁盤配額未滿時,將接收的數(shù)據(jù)添加至日志文件中,并修改或新增對應(yīng)于添加數(shù)據(jù)的日志文件的日志索引;內(nèi)存將修改或新增的日志索引同步至磁盤。本發(fā)明通過建立日志索引文件并將該日志索引文件加載至內(nèi)存使得內(nèi)存根據(jù)該日志索引文件即可判斷磁盤的使用狀況進(jìn)而進(jìn)行數(shù)據(jù)操作,避免了現(xiàn)有技術(shù)中對象索引文件加載速度慢而影響系統(tǒng)啟動速度的缺陷。
文檔編號G06F17/30GK102129435SQ20101003415
公開日2011年7月20日 申請日期2010年1月13日 優(yōu)先權(quán)日2010年1月13日
發(fā)明者孫少陵, 徐承杰, 羅治國, 韓金宇, 黃曉慶 申請人:中國移動通信集團(tuán)公司