專利名稱:數(shù)據(jù)存儲(chǔ)控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)管理技術(shù),尤其是涉及一種優(yōu)化存儲(chǔ)空間分配的數(shù)據(jù)存儲(chǔ)控
制方法。
背景技術(shù):
隨著數(shù)據(jù)處理技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,在對(duì)大容量和邏輯關(guān)系復(fù)雜的數(shù)據(jù)進(jìn) 行處理時(shí)候,為加快數(shù)據(jù)處理速度,對(duì)數(shù)據(jù)的存儲(chǔ)也提出了一定的要求。 以一個(gè)運(yùn)營(yíng)網(wǎng)絡(luò)游戲的服務(wù)器為例,在游戲里的大廳,有進(jìn)入各種頻道選擇(大 分類),各個(gè)頻道下有各種空間(對(duì)應(yīng)于具體的游戲室)的選擇(小分類),而這些大分類 和小分類又可以在任何時(shí)刻會(huì)被創(chuàng)建或釋放,故頻道信息、游戲室信息等數(shù)據(jù)存在較為復(fù) 雜的邏輯關(guān)系和層次關(guān)系,且數(shù)據(jù)量巨大;同時(shí),服務(wù)器處理各種數(shù)據(jù)的速度影響了該服務(wù) 器的訪問速度,因此,對(duì)于服務(wù)器而言,值得我們考慮如何在內(nèi)存中有效的組織這些數(shù)據(jù), 以優(yōu)化服務(wù)器的內(nèi)部資源,更好的發(fā)揮數(shù)據(jù)處理性能。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種數(shù)據(jù)存儲(chǔ)控制方法,通過優(yōu)化存儲(chǔ)空間分配來達(dá)到優(yōu)化 數(shù)據(jù)存儲(chǔ)速度,提高系統(tǒng)數(shù)據(jù)處理能力的目的。 為解決本發(fā)明的技術(shù)問題,本發(fā)明公開一種數(shù)據(jù)存儲(chǔ)控制方法,包括 將存儲(chǔ)器初始化,確定組的分類并建立組鏈表,以及按給定的空間塊數(shù)量上限將
空間數(shù)組下標(biāo)壓入數(shù)據(jù)棧之中; 當(dāng)創(chuàng)建一個(gè)空間塊時(shí),從數(shù)據(jù)棧中彈出一個(gè)空間塊號(hào),把數(shù)據(jù)信息寫入該空間塊 號(hào)對(duì)應(yīng)的空間塊,并將空間塊號(hào)插入對(duì)應(yīng)組的空間鏈表; 當(dāng)注銷一個(gè)空間塊時(shí),從該空間塊所屬組的空間鏈表中拆下該空間塊對(duì)應(yīng)的空間 塊號(hào),并將該空間塊號(hào)壓入至于數(shù)據(jù)棧中。 優(yōu)選的,每個(gè)空間塊有一個(gè)指向下一個(gè)空間塊的指針,屬于同一個(gè)組的空間塊依 靠該指針組成單向鏈表掛靠在隸屬的組中。 優(yōu)選的,空間鏈表是由隸屬同一個(gè)組的所有空間塊對(duì)應(yīng)的空間塊號(hào)按號(hào)碼大小順 序所組成。 優(yōu)選的,組的分類信息在配置文件中體現(xiàn)。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果 本發(fā)明提供了一種在處理多種類多層次數(shù)據(jù)的一種管理方案,通過在將閑置未使 用的空間塊對(duì)應(yīng)的空間塊號(hào)全部壓入數(shù)據(jù)棧中,當(dāng)系統(tǒng)需要?jiǎng)?chuàng)建或注銷一個(gè)空間塊時(shí),采 取壓入或彈出數(shù)據(jù)棧的方式來獲取指向一個(gè)空間塊的空間塊號(hào),從而簡(jiǎn)化對(duì)存儲(chǔ)空間分配 的處理程序,對(duì)于多種類多層次的數(shù)據(jù)管理提供了較好的解決方案,有利于系統(tǒng)資源,提高 數(shù)據(jù)處理速度和數(shù)據(jù)處理能力。
圖1是本發(fā)明的實(shí)現(xiàn)流程示意圖;
圖2是本發(fā)明中存儲(chǔ)空間的邏輯結(jié)構(gòu)圖;
圖3是本發(fā)明創(chuàng)建空間塊的邏輯示意圖;
圖4是本發(fā)明注銷空間塊的邏輯示意圖。
具體實(shí)施例方式
在大型、高性能的數(shù)據(jù)處理系統(tǒng)中,存在不同種類的存儲(chǔ)空間,而不同種類的存儲(chǔ) 空間下又存在不同層次的存儲(chǔ)空間,并且在數(shù)據(jù)處理應(yīng)用過程中,還需要對(duì)這些不同種類 的存儲(chǔ)空間或者不同層次的存儲(chǔ)空間進(jìn)行實(shí)時(shí)創(chuàng)建或釋放,因此,存儲(chǔ)空間是否能夠有效、 快速的進(jìn)行分配,將直接影響了數(shù)據(jù)處理速度和數(shù)據(jù)處理能力。 有鑒于此,本發(fā)明一種基于優(yōu)化存儲(chǔ)空間分配的數(shù)據(jù)存儲(chǔ)控制方法,其是在初始
化時(shí)把空間塊號(hào)(空間數(shù)組下標(biāo))全部壓入一個(gè)數(shù)據(jù)棧中;當(dāng)用戶需要?jiǎng)?chuàng)建一個(gè)空間塊時(shí),
從數(shù)據(jù)棧中彈出一個(gè)空間塊號(hào);當(dāng)用戶注銷或刪除一個(gè)空間塊時(shí),就把該空間塊號(hào)壓入數(shù)
據(jù)棧中,簡(jiǎn)化對(duì)存儲(chǔ)空間分配的處理。 如圖1所示,本發(fā)明的包括如下實(shí)現(xiàn)步驟 步驟S1:系統(tǒng)初始化。 結(jié)合圖2所示,所有空間塊的分配在同一個(gè)存儲(chǔ)器中,每個(gè)空間塊都屬于一個(gè)固 定的組,各個(gè)組的信息構(gòu)成一個(gè)組鏈表;因此,組是固定的,組可以在配置文件中體現(xiàn);空 間塊歸屬與組,由于空間塊是動(dòng)態(tài)創(chuàng)建的,每個(gè)組中的空間塊數(shù)量也沒有限制,所以不能直 接為每個(gè)組分配空間塊。故系統(tǒng)初始化,先分配足夠空間塊,然后把所有空間塊的空間塊號(hào) 壓入數(shù)據(jù)棧中。并且,每個(gè)組的空間鏈表僅為保存空間塊號(hào)的鏈表;每個(gè)空間塊都有一個(gè)指 向下一個(gè)空間塊的指針,屬于同一個(gè)組的空間塊就依靠這個(gè)指針組成單向鏈表掛靠在隸屬 的組中。 步驟S2 :檢測(cè)系統(tǒng)命令,當(dāng)接收到創(chuàng)建一個(gè)空間塊的命令時(shí),轉(zhuǎn)入步驟S3,當(dāng)接收 到注銷一個(gè)空間塊的命令時(shí),轉(zhuǎn)入步驟S6。 結(jié)合圖3所示,步驟S3至步驟S5是如何創(chuàng)建一個(gè)空間塊的處理過程。 步驟S3 :從數(shù)據(jù)棧中彈出一個(gè)空間塊號(hào),該空間塊號(hào)也可對(duì)應(yīng)一個(gè)指向特定存儲(chǔ)
地址(由步驟Sl在系統(tǒng)初始化時(shí)所分配)的指針。 步驟S4 :根據(jù)這個(gè)空間塊號(hào)或其對(duì)應(yīng)的指針找到對(duì)應(yīng)的空間塊,把數(shù)據(jù)信息寫入 該空間塊。 步驟S5 :把空間塊號(hào)按照號(hào)碼由小到大順序插入對(duì)應(yīng)組的空間鏈表中,同時(shí)維護(hù) 分類索引信息。 至于一個(gè)空間塊隸屬于哪個(gè)組,由步驟Sl初始化時(shí)根據(jù)數(shù)據(jù)類型、數(shù)據(jù)應(yīng)用方式 或其他策略進(jìn)行分組;在步驟S5中,將創(chuàng)建的空間塊所欲存儲(chǔ)數(shù)據(jù)按步驟Sl分組時(shí)采取的 相同策略,即可知道創(chuàng)建的空間塊對(duì)應(yīng)于哪個(gè)組,并在寫入數(shù)據(jù)時(shí)將該空間塊的分類索引 信息維護(hù)成與其隸屬組的分類索引信息相匹配。 比如,在一個(gè)游戲服務(wù)器中,在初始化時(shí)根據(jù)配置文件信息,將存儲(chǔ)器分成n個(gè)空 間塊,且所有塊號(hào)均壓入了一個(gè)數(shù)據(jù)棧,同時(shí),根據(jù)游戲服務(wù)器所運(yùn)營(yíng)游戲種類,存儲(chǔ)理不同游戲種類的數(shù)據(jù)的存儲(chǔ)空間劃分成一個(gè)組,故每個(gè)組分別一個(gè)游戲種類對(duì)應(yīng)。當(dāng)系統(tǒng)需 要為游戲A創(chuàng)建一個(gè)游戲室時(shí),就需要為該游戲室分配一個(gè)用于存儲(chǔ)數(shù)據(jù)的空間塊;此時(shí),
從數(shù)據(jù)棧中彈出一個(gè)指向特定位置的空間塊的空間塊號(hào),將該空間塊號(hào)插入至該游戲A對(duì) 應(yīng)的組中,使該空間塊隸屬于該游戲A對(duì)應(yīng)的組。 結(jié)合圖4所示,步驟S6至步驟S8是如何注銷一個(gè)空間塊的處理過程,其是與創(chuàng)建 一個(gè)空間塊的過程的逆操作。 步驟S6 :當(dāng)需要注銷隸屬于某個(gè)組的一個(gè)空間塊時(shí),系統(tǒng)從該組的空間鏈表中拆 下該空間塊號(hào)。 步驟S7 :移出該空間塊中的數(shù)據(jù)。 步驟S8 :把該空間塊號(hào)壓入至于數(shù)據(jù)棧中。 總之,本發(fā)明提供了一種在處理多種類多層次數(shù)據(jù)的一種管理方案,通過在將閑 置未使用的空間塊(其還為明確隸屬于哪個(gè)組)對(duì)應(yīng)的空間塊號(hào)全部壓入數(shù)據(jù)棧中,當(dāng)系 統(tǒng)需要?jiǎng)?chuàng)建或注銷一個(gè)空間塊時(shí),采取壓入或彈出數(shù)據(jù)棧的方式來獲取指向一個(gè)空間塊的 空間塊號(hào),從而簡(jiǎn)化對(duì)存儲(chǔ)空間分配的處理程序,對(duì)于多種類多層次的數(shù)據(jù)管理提供了較 好的解決方案,有利于系統(tǒng)資源,提高數(shù)據(jù)處理速度和數(shù)據(jù)處理能力。
權(quán)利要求
一種數(shù)據(jù)存儲(chǔ)控制方法,其特征在于,包括將存儲(chǔ)器初始化,確定組的分類并建立組鏈表,以及按給定的空間塊數(shù)量上限將空間數(shù)組下標(biāo)壓入數(shù)據(jù)棧之中;當(dāng)創(chuàng)建一個(gè)空間塊時(shí),從數(shù)據(jù)棧中彈出一個(gè)空間塊號(hào),把數(shù)據(jù)信息寫入該空間塊號(hào)對(duì)應(yīng)的空間塊,并將空間塊號(hào)插入對(duì)應(yīng)組的空間鏈表;當(dāng)注銷一個(gè)空間塊時(shí),從該空間塊所屬組的空間鏈表中拆下該空間塊對(duì)應(yīng)的空間塊號(hào),并將該空間塊號(hào)壓入至于數(shù)據(jù)棧中。
2. 根據(jù)權(quán)利要求1所述數(shù)據(jù)存儲(chǔ)控制方法,其特征在于,每個(gè)空間塊有一個(gè)指向下一 個(gè)空間塊的指針,屬于同一個(gè)組的空間塊依靠該指針組成單向鏈表掛靠在隸屬的組中。
3. 根據(jù)權(quán)利要求1所述數(shù)據(jù)存儲(chǔ)控制方法,其特征在于,空間鏈表是由隸屬同一個(gè)組 的所有空間塊對(duì)應(yīng)的空間塊號(hào)按號(hào)碼大小順序所組成。
4. 根據(jù)權(quán)利要求1所述數(shù)據(jù)存儲(chǔ)控制方法,其特征在于,組的分類信息體現(xiàn)在配置文件。
全文摘要
本發(fā)明公開一種數(shù)據(jù)存儲(chǔ)控制方法,包括將存儲(chǔ)器初始化,確定組的分類并建立組鏈表,以及將按給定的空間塊數(shù)量上限將空間數(shù)組下標(biāo)壓入數(shù)據(jù)棧之中;當(dāng)創(chuàng)建一個(gè)空間塊時(shí),從數(shù)據(jù)棧中彈出一個(gè)空間塊號(hào),把數(shù)據(jù)信息寫入該空間塊號(hào)對(duì)應(yīng)的空間塊,并將空間塊號(hào)插入對(duì)應(yīng)組的空間鏈表;當(dāng)注銷一個(gè)空間塊時(shí),從該空間塊所屬組的空間鏈表中拆下該空間塊對(duì)應(yīng)的空間塊號(hào),并將該空間塊號(hào)壓入至于數(shù)據(jù)棧中。本發(fā)明簡(jiǎn)化了對(duì)存儲(chǔ)空間分配的處理程序,對(duì)于多種類多層次的數(shù)據(jù)管理提供了較好的解決方案,有利于系統(tǒng)資源,提高數(shù)據(jù)處理速度和數(shù)據(jù)處理能力。
文檔編號(hào)G06F12/06GK101763310SQ200810241809
公開日2010年6月30日 申請(qǐng)日期2008年12月23日 優(yōu)先權(quán)日2008年12月23日
發(fā)明者殷小蘭 申請(qǐng)人:康佳集團(tuán)股份有限公司