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

一種面向?qū)崟r(shí)數(shù)據(jù)庫的表文件空間分配方法

文檔序號(hào):6357430閱讀:369來源:國知局
專利名稱:一種面向?qū)崟r(shí)數(shù)據(jù)庫的表文件空間分配方法
技術(shù)領(lǐng)域
本發(fā)明屬于數(shù)據(jù)庫設(shè)計(jì)技術(shù)領(lǐng)域,涉及一種面向?qū)崟r(shí)數(shù)據(jù)庫的表文件空間分配方法,適用于衛(wèi)星地面設(shè)備監(jiān)控中實(shí)時(shí)數(shù)據(jù)庫表的存儲(chǔ)空間分配,適用于存儲(chǔ)大量有關(guān)地面設(shè)備運(yùn)行狀態(tài)的實(shí)時(shí)數(shù)據(jù)。
背景技術(shù)
衛(wèi)星地面設(shè)備監(jiān)控系統(tǒng)需要對(duì)大量數(shù)據(jù)信息進(jìn)行采集、傳輸、綜合分析和計(jì)算等處理。從監(jiān)控系統(tǒng)組成可以看出,數(shù)據(jù)是聯(lián)系各功能模塊的紐帶。隨著衛(wèi)星地面應(yīng)用系統(tǒng)的發(fā)展,地面設(shè)備監(jiān)控系統(tǒng)的功能需求也不斷增多、增強(qiáng),數(shù)據(jù)量也不斷擴(kuò)大,數(shù)據(jù)之間的關(guān)系也越來越復(fù)雜。因此需要將數(shù)據(jù)庫技術(shù)引入衛(wèi)星地面設(shè)備監(jiān)控中,采用數(shù)據(jù)庫技術(shù)來管理、處理監(jiān)控過程中的數(shù)據(jù)。但衛(wèi)星地面設(shè)備監(jiān)控中數(shù)據(jù)的一個(gè)顯著特點(diǎn)是其有效時(shí)間短暫,過時(shí)則失效。而以關(guān)系數(shù)據(jù)庫為代表的傳統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)目標(biāo)是維護(hù)數(shù)據(jù)的正確性、 保證系統(tǒng)的低代價(jià)和提供友好的用戶接口。這種數(shù)據(jù)庫系統(tǒng)對(duì)傳統(tǒng)的商務(wù)和事務(wù)型應(yīng)用是有效、成功的,但對(duì)于新領(lǐng)域的實(shí)時(shí)數(shù)據(jù)和實(shí)時(shí)事務(wù)的應(yīng)用要求難以勝任。所以,需要結(jié)合數(shù)據(jù)庫技術(shù)和實(shí)時(shí)技術(shù),研究具有顯式定時(shí)限制的實(shí)時(shí)數(shù)據(jù)庫系統(tǒng)。在衛(wèi)星地面設(shè)備監(jiān)控中,實(shí)時(shí)數(shù)據(jù)庫將面臨大量的實(shí)時(shí)數(shù)據(jù),最新的實(shí)時(shí)記錄必須能在給定的時(shí)間期限內(nèi)存入數(shù)據(jù)庫表,因此必然涉及文件空間的分配和釋放。如果不控制表文件中數(shù)據(jù)的寫入或刪除位置,隨著分配和釋放操作的累積,數(shù)據(jù)庫文件將出現(xiàn)大量的不可再利用的微小碎片,降低數(shù)據(jù)庫文件存儲(chǔ)空間的利用率。同時(shí)過多的文件碎片必然導(dǎo)致分配存儲(chǔ)空間時(shí)要進(jìn)行多次遍歷,降低數(shù)據(jù)庫的實(shí)時(shí)性能。而且衛(wèi)星地面設(shè)備監(jiān)控中需存儲(chǔ)的數(shù)據(jù)格式相對(duì)簡單、固定和獨(dú)立,傳統(tǒng)的文件空間分配方法并沒考慮到這種實(shí)時(shí)數(shù)據(jù)的特點(diǎn),導(dǎo)致其在文件空間的利用率上很難達(dá)到要求。

發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是針對(duì)現(xiàn)有技術(shù)的不足,提供了一種面向?qū)崟r(shí)數(shù)據(jù)庫的表文件空間分配方法。采用本發(fā)明實(shí)現(xiàn)了實(shí)時(shí)數(shù)據(jù)庫表文件存儲(chǔ)空間的分配和釋放,提高了數(shù)據(jù)庫文件存儲(chǔ)空間的利用率。本發(fā)明的技術(shù)解決方案通過以下步驟實(shí)現(xiàn)(1)利用位圖對(duì)數(shù)據(jù)庫表文件中的空間進(jìn)行管理,采用比特0代表未分配的存儲(chǔ)單元,比特1代表已分配的存儲(chǔ)單元;所述存儲(chǔ)單元為大小相同的存儲(chǔ)空間;(2)針對(duì)分配或釋放存儲(chǔ)空間的操作,對(duì)表文件位圖頁面進(jìn)行操作,對(duì)于分配存儲(chǔ)空間操作根據(jù)待分配空間的大小,確定所需存儲(chǔ)單元的個(gè)數(shù);將表文件的位圖頁面換入到分配存儲(chǔ)空間的進(jìn)程緩沖區(qū)中;采用位圖法,在進(jìn)程緩沖區(qū)的位圖頁面中尋找由連續(xù)比特0代表的存儲(chǔ)單元,并將查找到的存儲(chǔ)單元標(biāo)記為比特1 ;若未找到由連續(xù)比特0代表的存儲(chǔ)單元,則將表文件的下一個(gè)位圖頁面換入到分配存儲(chǔ)空間的進(jìn)程緩沖區(qū)中,繼續(xù)尋找可分配的存儲(chǔ)單元;循環(huán)進(jìn)行直到尋找到足夠的存儲(chǔ)單元;若在換入到分配存儲(chǔ)空間的進(jìn)程緩沖區(qū)中的表文件的最后一個(gè)位圖頁面中仍未尋找到足夠的存儲(chǔ)單元,則對(duì)進(jìn)程緩沖區(qū)中表文件的位圖頁面進(jìn)行擴(kuò)展,并將尋找到的由連續(xù)比特0代表的存儲(chǔ)單元標(biāo)記為比特1 ;根據(jù)找到的第一個(gè)存儲(chǔ)單元,確定已分配存儲(chǔ)空間的起始地址,并將起始地址返回給分配存儲(chǔ)空間的進(jìn)程;

對(duì)于釋放存儲(chǔ)空間操作根據(jù)待釋放存儲(chǔ)空間的大小,確定待釋放存儲(chǔ)空間對(duì)應(yīng)的存儲(chǔ)單元個(gè)數(shù);將表文件的位圖頁面換入到釋放存儲(chǔ)空間的進(jìn)程緩沖區(qū)中;根據(jù)待釋放存儲(chǔ)空間在位圖頁面中的起始位置和待釋放存儲(chǔ)單元的個(gè)數(shù),尋找位圖頁面中的連續(xù)比特1代表的存儲(chǔ)單元,并將比特1標(biāo)記為比特0 ;(3)將進(jìn)程緩沖區(qū)中操作完的表文件位圖頁面換出到數(shù)據(jù)庫表文件中。在所述步驟(2)和步驟(3)中采用LRU算法將數(shù)據(jù)庫表文件的一個(gè)頁面換入到進(jìn)程緩沖區(qū)或從進(jìn)程緩沖區(qū)中換出到數(shù)據(jù)庫表文件中。本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點(diǎn)(1)本發(fā)明根據(jù)地面設(shè)備監(jiān)控中實(shí)時(shí)數(shù)據(jù)的特點(diǎn),采用LRU算法實(shí)現(xiàn)數(shù)據(jù)庫表文件頁面轉(zhuǎn)移到進(jìn)程緩沖區(qū)中和從進(jìn)程緩沖區(qū)中換出修改過的表文件頁面,避免了大量磁盤頁面換入換出的抖動(dòng)現(xiàn)象;利用位圖法管理文件存儲(chǔ)空間,避免了大量碎片的出現(xiàn),提高了數(shù)據(jù)庫文件存儲(chǔ)空間的利用率。(2)衛(wèi)星地面設(shè)備監(jiān)控領(lǐng)域中需存儲(chǔ)數(shù)據(jù)的格式比較簡單,數(shù)據(jù)庫表文件需存儲(chǔ)大量的實(shí)時(shí)數(shù)據(jù),為此本發(fā)明用位圖法管理整個(gè)數(shù)據(jù)庫表文件空間。該方法帶來的好處在于可以充分利用程序的局部性原理①最近一段時(shí)間分配的存儲(chǔ)空間總出現(xiàn)在一片連續(xù)區(qū)域里,因此修改更新操作將發(fā)生在盡可能少的物理內(nèi)存頁面上。當(dāng)事務(wù)提交時(shí),操作系統(tǒng)的 I/O機(jī)制只會(huì)將更新修改過的頁面寫回磁盤。由于更新了的頁面盡可能地少,這使得事務(wù)提交的時(shí)間也會(huì)盡可能減少。②現(xiàn)代操作系統(tǒng)的頁面換入換出算法總是將近期引用頁面放在物理內(nèi)存中,而將近期不活動(dòng)頁面換出到磁盤上。由于分配總是涉及盡可能少量的內(nèi)存頁面上,這將確保分配操作引用的頁面總是常駐物理內(nèi)存,能最大限度的避免出現(xiàn)頁面換入換出的“抖動(dòng)”現(xiàn)象。


圖1為本發(fā)明的初始時(shí)數(shù)據(jù)庫表文件結(jié)構(gòu)圖;圖2為本發(fā)明的擴(kuò)展位圖頁面后數(shù)據(jù)表文件結(jié)構(gòu)圖;圖3為本發(fā)明的管理進(jìn)程緩沖區(qū)的雙鏈表數(shù)據(jù)結(jié)構(gòu)示意圖;圖4為本發(fā)明流程圖。
具體實(shí)施例方式本發(fā)明采用LRU算法管理進(jìn)程緩沖區(qū),實(shí)現(xiàn)數(shù)據(jù)庫表文件頁面轉(zhuǎn)移到進(jìn)程緩沖區(qū)中和從進(jìn)程緩沖區(qū)中換出修改過的表文件頁面;利用位圖法實(shí)現(xiàn)分配存儲(chǔ)空間,其中分配存儲(chǔ)空間表現(xiàn)為如下三部分(1)在位圖頁面內(nèi)尋找滿足指定大小的可分配存儲(chǔ)空間(2) 位圖頁面內(nèi)不能找到指定大小的存儲(chǔ)空間時(shí),擴(kuò)展位圖頁面過程(3)找到存儲(chǔ)空間后,將連續(xù)比特O標(biāo)記為1,并返回存儲(chǔ)空間起始地址。工作過程如圖4所示,具體步驟如下采用LRU算法置換表文件頁面實(shí)時(shí)數(shù)據(jù)庫通過緩沖區(qū)來操作文件中的數(shù)據(jù),緩沖區(qū)由多個(gè)頁面組成。讀寫或修改某文件對(duì)象前,首先將該文件對(duì)象所在表文件頁面復(fù)制到緩沖區(qū)中。管理緩沖區(qū)的數(shù) 據(jù)結(jié)構(gòu)由一個(gè)雙鏈表和一個(gè)哈希表組成。哈希表用于快速查詢表文件頁面是否在進(jìn)程緩沖區(qū)中,雙鏈表由若干個(gè)PageHeader組成,用于管理緩沖區(qū)中的頁面。通過查詢哈希表,判斷表文件頁面是否在進(jìn)程緩沖區(qū)中,如果在進(jìn)程緩沖區(qū)中,不需要置換,如果不在進(jìn)程緩沖區(qū)中,則將最先加入雙鏈表的頁面作為置換頁面。位圖頁面內(nèi)尋找可分配空間過程表現(xiàn)為在位圖頁面內(nèi)尋找連續(xù)的比特0,位圖頁面中的每個(gè)比特0代表尚未分配出去的存儲(chǔ)單元,對(duì)給定大小的存儲(chǔ)空間分配,總表現(xiàn)為在位圖頁面內(nèi)部線性地尋找連續(xù)的比特0,如果找到連續(xù)的比特0,將這些連續(xù)的比特0 位標(biāo)記為1,置1表示該位置代表的存儲(chǔ)單元已分配出去,然后返回該片空間的起始地址。擴(kuò)展位圖頁面過程由于記錄的大量插入,數(shù)據(jù)庫表文件長度也隨之增大,一個(gè)位圖頁面只能分配固定大小的空間,個(gè)數(shù)有限的位圖頁面無法管理過大的表文件空間,當(dāng)不能為某次分配存儲(chǔ)空間請(qǐng)求找到足夠的存儲(chǔ)空間時(shí),需要擴(kuò)展位圖頁面,這時(shí)分配新的若干位圖頁面,這些位圖頁面線性連續(xù)地存放在一起。當(dāng)給定大小的存儲(chǔ)空間被釋放時(shí),確定該空間起始地址對(duì)應(yīng)的位圖頁面中的相應(yīng)比特位,并將該位起始的連續(xù)若干個(gè)比特位標(biāo)記為0,并用LRU算法將修改的頁面寫回表文件中。下面就結(jié)合具體過程對(duì)本發(fā)明做進(jìn)一步介紹。(1)本發(fā)明采用位圖對(duì)由數(shù)據(jù)庫表文件所表示的空間進(jìn)行管理。數(shù)據(jù)庫表文件結(jié)構(gòu)如圖1示。文件頭包含數(shù)據(jù)庫文件的描述信息,頁面地址分別指向各自的位圖頁面首地址,η個(gè)位圖頁面連續(xù)集中在一起,可減少因位圖頁面過于分散而導(dǎo)致的內(nèi)存碎片較多的問題。每個(gè)位圖頁面負(fù)責(zé)其分配的區(qū)域,如位圖頁面0負(fù)責(zé)分配第一個(gè)256Κ字節(jié),位圖頁面 1負(fù)責(zé)分配第2個(gè)256Κ字節(jié)。并在位圖中利用比特0代表未分配的存儲(chǔ)單元;比特1代表已分配的存儲(chǔ)單元。存儲(chǔ)單元為固定大小,連續(xù)未分配的存儲(chǔ)單元構(gòu)成一固定大小可分配的存儲(chǔ)空間。(2)當(dāng)進(jìn)程需要分配空間或釋放空間時(shí),需要將表文件相關(guān)頁面換入到對(duì)數(shù)據(jù)進(jìn)行操作的進(jìn)程緩沖區(qū)中。如圖3示,PageHeader中的數(shù)據(jù)庫文件地址是使用該緩沖區(qū)頁面的表文件頁面的地址;訪問量是目前使用該緩沖區(qū)頁面的線程個(gè)數(shù);狀態(tài)有raW、Wait和dirty三種狀態(tài)或它們的組合,其中raw狀態(tài)表示該頁面正被一讀取磁盤頁面操作占用、wait狀態(tài)表示有線程正等待頁面的磁盤讀取操作完成,dirty表示頁面內(nèi)容被修改,其修改須寫回磁盤;當(dāng)某線程訪問表文件時(shí),先獲得訪問地址所在表文件頁面,將表文件頁面換入到緩沖區(qū)的過程描述如下[1]查詢哈希表判斷表文件頁面是否在進(jìn)程緩沖區(qū)中,如果該頁面已在緩沖區(qū)中, 那么接著判斷該頁面此時(shí)的訪問量是否為0。a)如果訪問量為0,表明該頁面目前沒被任何線程使用,則頁面必定已在Ptl為首的雙鏈表中,將其從Ptl為首的雙鏈表中移除。b)如果訪問量大于0,且頁面的狀態(tài)是raw,表明當(dāng)前有其它線程正從磁盤中讀取該頁面到緩沖區(qū)內(nèi),該線程必須等待讀取操作完成,才能繼續(xù)執(zhí)行。在等待磁盤讀取完成前,設(shè)置該頁面狀態(tài)為raw和wait。c)如果線程的操作是修改表文件頁面,需添加dirty到緩沖區(qū)頁面的狀態(tài)位中。d)上述操作完成后,將該緩沖區(qū)頁面的訪問量加一,返回緩沖區(qū)頁面。[2]如果頁面不在緩沖區(qū)中,需在Ptl為首的雙鏈表中尋找可用的緩沖區(qū)頁面,此時(shí)將最先加入Ptl雙鏈表的頁面作為置換頁面。如圖3示,最先加入雙鏈表的頁面為Ptl的前一個(gè)頁面Pk。此時(shí)需判斷Pk的狀態(tài)是否為dirty。狀態(tài)為dirty表明Pk的內(nèi)容發(fā)生了修改, 需將第k個(gè)頁面的內(nèi)容寫回磁盤以保持一致。上述過程處理完畢后,將Pk從Ptl為首的雙鏈表中移除,同時(shí)也將第k個(gè)頁面的舊文件地址所在哈希表項(xiàng)從哈希表中移除。[3]當(dāng)獲得一可用的緩沖區(qū)頁面時(shí),將其訪問量置為1,并將表文件頁面地址和新分配的頁面編號(hào)作為一表項(xiàng)添加進(jìn)哈希表。依據(jù)線程對(duì)該頁面是否修改而設(shè)置緩沖區(qū)頁面狀態(tài)是否為dirty,然后判斷是否需讀取表文件頁面內(nèi)容到緩沖區(qū)中。如果需要讀取,讀取前設(shè)置頁面狀態(tài)為raw,讀取完成后,如果頁面的狀態(tài)位還包括了 wait狀態(tài)(表明有其它線程在等待讀取操作完成),喚醒等待線程,清除頁面的raw狀態(tài)和wait狀態(tài),返回緩沖區(qū)頁面。(3)將表文件頁面轉(zhuǎn)移到進(jìn)程緩沖區(qū)中后,根據(jù)待分配存儲(chǔ)空間大小,在位圖頁面內(nèi)尋找可分配空間。過程表現(xiàn)為在位圖頁面內(nèi)尋找連續(xù)的比特0,由于位圖頁面中的每個(gè)比特0代表尚未分配出去的8字節(jié),因此對(duì)給定大小的存儲(chǔ)空間分配,總表現(xiàn)為在位圖頁面內(nèi)部線性地尋找連續(xù)的比特0,如果找到連續(xù)的比特0,將這些連續(xù)的比特0位都置1,置1 表示該位置代表的空間已分配出去。[1]如果 holeBitSize+firstHoleSize[mask] >= objBitSize,令 pos = 8X ((i XPageSize+offs) X 8-holeBitsize),將位圖頁面中pos開始size大小的相應(yīng)位全置1,存儲(chǔ)空間分配成功,返回pos ;[2]如果 maxHoleSize[mask] > = ob jBitSize,令 pos = 8 X ((i XPageSize+offs )X 8+maxHoIeOff set [mask]),將位圖頁面中pos開始size大小的相應(yīng)位全置1,存儲(chǔ)空間分配成功,返回pos ;[3]如果[1] [2]兩個(gè)條件都沒有滿足,則如果IastHoleSize [mask]等于 8,令 holeBitSize 加 8 ;否則設(shè)置holeBitSize 為 IastHoleSize [mask],并令 offs 加一;[4]判斷此時(shí)offs是否大于或等于PageSize,如果是表明已經(jīng)搜尋到下個(gè)位圖頁面,將OfTs置0,i加1,并跳轉(zhuǎn)到第[1]步繼續(xù)執(zhí)行查找操作。其中i表示正搜尋的位圖頁面編號(hào)(從O開始);Offs指當(dāng)前位圖頁面搜尋的起始點(diǎn),其范圍是[O, ...,4K-1] ;mask為OffS位置上的值;holeBitSize指目前搜尋到的連續(xù)的比特O個(gè)數(shù);size指請(qǐng)求分配的字節(jié)數(shù),ObjBitSize指分配size所需比特?cái)?shù); PageSize是頁面大小,4KB字節(jié);f irstHoleSize [mask]指mask中從最高位往最低位數(shù)起的第一個(gè)連續(xù)比特O個(gè)數(shù);maxHoleSizeQiiask]表示mask中最多的連續(xù)比特O個(gè)數(shù),代表可分配的最大空間;maxHole0ffset[mask]為最多的連續(xù)比特O個(gè)數(shù)區(qū)域在mask中的位置;lastHoleSizeQiiask]表示從最低位往最高位數(shù)起的連續(xù)的比特O個(gè)數(shù);mask的值為 [O,…,255],它們有各自的 firstHoleSize、lastHoleSize、maxHoleSize、maxHoleOffset0(4)擴(kuò)展位圖頁面過程 當(dāng)搜尋全部位圖頁面后,還沒能找到指定大小的空間,則需要增加新的位圖頁面, 此時(shí)等于擴(kuò)展可分配的存儲(chǔ)空間。extension為新擴(kuò)展的內(nèi)存空間大小,morePages為重新開辟的位圖頁面數(shù)目,η是未擴(kuò)展前系統(tǒng)中已有的位圖頁面?zhèn)€數(shù)。擴(kuò)展內(nèi)存空間通過增加新的位圖頁面完成,為確保未擴(kuò)展前已搜尋到的holeBitSize個(gè)比特0位同新擴(kuò)展空間中的 ObjBitSize個(gè)比特O位連續(xù),在新開辟的位圖頁面前添加若干內(nèi)存頁面(如果holeBitSie 為0,不必附加這片空間)。附加的內(nèi)存頁面?zhèn)€數(shù)=(objBitSize X 8)/PageSize0當(dāng)擴(kuò)展完成后,找到足夠空間,返回剛分配空間的起始地址pos(以字節(jié)為單位),擴(kuò)展完成后數(shù)據(jù)庫文件結(jié)構(gòu)如圖2示。位圖頁面擴(kuò)展過程描述如下。[l]morePages = extension/(63XPageSize),將 objBitSize 減去 holeBitSize ;[ 2 ] skip = (objBitSizeX8) / PageSize, pos = η X PageSize X 64+skip X PageSize ;[3]將pos位置(字節(jié)為單位)后的objBitSize個(gè)比特位全置1 ;、[4]將 pos+PageSizeXskip 位置(字節(jié)為單位)后的(morePages X PageSize)/8 個(gè)比特位置1 ;[5]將新分配的每個(gè)位圖頁面的首地址賦給相應(yīng)的位圖頁面;[6]pos = 8X (nXPageSizeX8-holeBitSize);[7]將位圖頁面中從pos (字節(jié)為單位)開始holeBitSize個(gè)比特位置1,存儲(chǔ)空間分配成功,返回pos。(5)當(dāng)給定大小的存儲(chǔ)空間被釋放時(shí),尋找刪除空間的過程表現(xiàn)為確定與要?jiǎng)h除數(shù)據(jù)所在存儲(chǔ)空間起始地址對(duì)應(yīng)的位圖頁面中的相應(yīng)比特位,并將該位起始的連續(xù)若干個(gè)比特位置0,置0后該空間已被釋放。(6)在完成對(duì)進(jìn)程緩沖區(qū)中的頁面操作后,LRU算法將進(jìn)程緩沖區(qū)中所有修改過的頁面內(nèi)容轉(zhuǎn)存進(jìn)相應(yīng)的數(shù)據(jù)庫表文件中。
權(quán)利要求
1.一種面向?qū)崟r(shí)數(shù)據(jù)庫的表文件空間分配方法,其特征在于通過以下步驟實(shí)現(xiàn)(1)利用位圖對(duì)數(shù)據(jù)庫表文件中的空間進(jìn)行管理,采用比特O代表未分配的存儲(chǔ)單元, 比特1代表已分配的存儲(chǔ)單元;所述存儲(chǔ)單元為大小相同的存儲(chǔ)空間;(2)針對(duì)分配或釋放存儲(chǔ)空間的操作,對(duì)表文件位圖頁面進(jìn)行操作,對(duì)于分配存儲(chǔ)空間操作根據(jù)待分配空間的大小,確定所需存儲(chǔ)單元的個(gè)數(shù);將表文件的位圖頁面換入到分配存儲(chǔ)空間的進(jìn)程緩沖區(qū)中;采用位圖法,在進(jìn)程緩沖區(qū)的位圖頁面中尋找由連續(xù)比特O代表的存儲(chǔ)單元,并將查找到的存儲(chǔ)單元標(biāo)記為比特1 ;若未找到由連續(xù)比特O代表的存儲(chǔ)單元,則將表文件的下一個(gè)位圖頁面換入到分配存儲(chǔ)空間的進(jìn)程緩沖區(qū)中,繼續(xù)尋找可分配的存儲(chǔ)單元;循環(huán)進(jìn)行直到尋找到足夠的存儲(chǔ)單元;若在換入到分配存儲(chǔ)空間的進(jìn)程緩沖區(qū)中的表文件的最后一個(gè)位圖頁面中仍未尋找到足夠的存儲(chǔ)單元,則對(duì)進(jìn)程緩沖區(qū)中表文件的位圖頁面進(jìn)行擴(kuò)展,并將尋找到的由連續(xù)比特O代表的存儲(chǔ)單元標(biāo)記為比特1 ;根據(jù)找到的第一個(gè)存儲(chǔ)單元,確定已分配存儲(chǔ)空間的起始地址,并將起始地址返回給分配存儲(chǔ)空間的進(jìn)程;對(duì)于釋放存儲(chǔ)空間操作根據(jù)待釋放存儲(chǔ)空間的大小,確定待釋放存儲(chǔ)空間對(duì)應(yīng)的存儲(chǔ)單元個(gè)數(shù);將表文件的位圖頁面換入到釋放存儲(chǔ)空間的進(jìn)程緩沖區(qū)中;根據(jù)待釋放存儲(chǔ)空間在位圖頁面中的起始位置和待釋放存儲(chǔ)單元的個(gè)數(shù),尋找位圖頁面中的連續(xù)比特1代表的存儲(chǔ)單元,并將比特1標(biāo)記為比特O ;(3)將進(jìn)程緩沖區(qū)中操作完的表文件位圖頁面換出到數(shù)據(jù)庫表文件中。
2.根據(jù)權(quán)利要求1所述的一種面向?qū)崟r(shí)數(shù)據(jù)庫的表文件空間分配方法,其特征在于 在所述步驟(2)和步驟(3)中采用LRU算法將數(shù)據(jù)庫表文件的一個(gè)頁面換入到進(jìn)程緩沖區(qū)或從進(jìn)程緩沖區(qū)中換出到數(shù)據(jù)庫表文件中。
全文摘要
本發(fā)明公開了一種面向?qū)崟r(shí)數(shù)據(jù)庫的表文件空間分配方法,在本方法中通過LRU算法管理緩沖區(qū),實(shí)現(xiàn)數(shù)據(jù)庫表文件中的數(shù)據(jù)和進(jìn)程緩沖區(qū)中數(shù)據(jù)的換入和換出,利用位圖方法實(shí)現(xiàn)表文件空間的分配和釋放。采用LRU算法管理緩沖區(qū),提高了數(shù)據(jù)文件的I/O讀寫速度;利用位圖方法實(shí)現(xiàn)表文件空間的分配和釋放,避免了大量存儲(chǔ)空間碎片的產(chǎn)生,提高了數(shù)據(jù)庫文件存儲(chǔ)空間的利用率。
文檔編號(hào)G06F12/02GK102184140SQ20111008206
公開日2011年9月14日 申請(qǐng)日期2011年4月1日 優(yōu)先權(quán)日2011年4月1日
發(fā)明者劉華, 劉波, 李艷艷, 梁潔雯, 汪紅強(qiáng), 王智堯, 薛亮 申請(qǐng)人:航天恒星科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
昭平县| 高邮市| 伊宁县| 绥芬河市| 巴里| 清丰县| 太和县| 徐州市| 屯昌县| 阜康市| 平凉市| 香河县| 丹凤县| 鹤山市| 平阳县| 正镶白旗| 铅山县| 武穴市| 芜湖县| 手游| 阳谷县| 临夏市| 边坝县| 蚌埠市| 邳州市| 克东县| 翁牛特旗| 儋州市| 临海市| 枣强县| 和硕县| 藁城市| 易门县| 德安县| 定州市| 镇巴县| 北京市| 会同县| 肥西县| 巫山县| 正阳县|