国产精品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>

      嵌入式移動(dòng)數(shù)據(jù)庫的節(jié)能存儲方法

      文檔序號:6543855閱讀:133來源:國知局

      專利名稱::嵌入式移動(dòng)數(shù)據(jù)庫的節(jié)能存儲方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及一種嵌入式移動(dòng)數(shù)據(jù)庫的節(jié)能存儲方法。
      背景技術(shù)
      :嵌入式移動(dòng)數(shù)據(jù)庫技術(shù)是近年來日益活躍和備受關(guān)注的新興技術(shù),它除了具有關(guān)系數(shù)據(jù)庫的主要功能外,還針對嵌入式系統(tǒng)和移動(dòng)計(jì)算的特點(diǎn),在數(shù)據(jù)庫的體系結(jié)構(gòu)、功能設(shè)置、應(yīng)用開發(fā)等方面另具特色。嵌入式移動(dòng)數(shù)據(jù)庫技術(shù)的出現(xiàn),使得人們可以通過手中的便攜式客戶終端(如PDA,掌上電腦,手機(jī)等)以無線方式訪問中心數(shù)據(jù)庫系統(tǒng),從而可以自由地不受環(huán)境約束地得到自己所需要的數(shù)據(jù)。嵌入式移動(dòng)數(shù)據(jù)庫介于嵌入式設(shè)備中的操作系統(tǒng)和應(yīng)用程序之間,為需要數(shù)據(jù)庫功能的應(yīng)用提供支撐和驅(qū)動(dòng)。由于嵌入式系統(tǒng)在時(shí)間和空間上資源的緊湊,嵌入式數(shù)據(jù)庫有其自身的特點(diǎn),主要表現(xiàn)在以下幾方面1.占用系統(tǒng)資源少。具體來說就是占用盡量少的ROM、RAM空間和cpu資源,可以說這是嵌入式數(shù)據(jù)庫最突出的一個(gè)特點(diǎn),這也是由嵌入式系統(tǒng)資源受限制所決定的。2.可管理性,健壯性和安全性。在嵌入式設(shè)備中,數(shù)據(jù)庫的管理對用戶來說是透明的,這就要求嵌入式數(shù)據(jù)庫能夠自動(dòng)完成啟動(dòng)初始化、日志管理、數(shù)據(jù)壓縮、備份、數(shù)據(jù)恢復(fù)等功能;而且嵌入式設(shè)備經(jīng)常有不可預(yù)料的硬復(fù)位,這就需要數(shù)據(jù)庫有高度的健壯性。3.移植性。嵌入式系統(tǒng)的平臺種類繁多,因此嵌入式數(shù)據(jù)庫應(yīng)有一定的可移植性,以適用于不同的軟硬件平臺。移動(dòng)數(shù)據(jù)庫的計(jì)算環(huán)境是傳統(tǒng)分布式數(shù)據(jù)庫系統(tǒng)的擴(kuò)展,它可以看作客戶端與固定服務(wù)器結(jié)點(diǎn)動(dòng)態(tài)連接的分布式系統(tǒng)。因此移動(dòng)計(jì)算環(huán)境中的數(shù)據(jù)庫管理系統(tǒng)是一種動(dòng)態(tài)分布式數(shù)據(jù)庫管理系統(tǒng)。其模式結(jié)構(gòu)從整體上分為兩大部分一是集中式數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu),代表了各局部場地上的局部數(shù)據(jù)庫系統(tǒng)的基本結(jié)構(gòu);一是分布式數(shù)據(jù)庫系統(tǒng)的模式級別,其中包括全局外模式,全局概念模式,分片模式,分布模式。嵌入式移動(dòng)數(shù)據(jù)庫結(jié)合了嵌入式和移動(dòng)兩者,與一般數(shù)據(jù)庫的區(qū)別在于嵌入式移動(dòng)數(shù)據(jù)庫在邏輯上不是獨(dú)立的,它必須以無線的方式與固定的中心數(shù)據(jù)庫服務(wù)器進(jìn)行聯(lián)系,從中心數(shù)據(jù)庫下載所需要的數(shù)據(jù),并把本地所作的修改上傳給中心數(shù)據(jù)庫,所以本質(zhì)上是依附于中心數(shù)據(jù)庫服務(wù)器的,其中的數(shù)據(jù)只是中心數(shù)據(jù)庫的一個(gè)子集。嵌入式移動(dòng)數(shù)據(jù)庫系統(tǒng)兼有嵌入式和移動(dòng)兩者的優(yōu)勢,同時(shí)在應(yīng)用中又要克服兩者的弱點(diǎn)。移動(dòng)設(shè)備的移動(dòng)性和斷接性必然要求系統(tǒng)具有較高的自治性,但移動(dòng)性、數(shù)據(jù)存儲和處理能力的局限性,又要求移動(dòng)設(shè)備上的數(shù)據(jù)庫與中心數(shù)據(jù)庫有密切的聯(lián)系。
      發(fā)明內(nèi)容本發(fā)明的目的在于提供一種嵌入式移動(dòng)數(shù)據(jù)庫的節(jié)能存儲方法。本發(fā)明解決其技術(shù)問題采用的技術(shù)方案如下1)在終端上的嵌入式移動(dòng)數(shù)據(jù)庫中添加訪問決策層終端上的本地?cái)?shù)據(jù)庫系統(tǒng)可分為以下幾個(gè)層次SQL語言翻譯層/接口層,數(shù)據(jù)存取層,數(shù)據(jù)存儲層;在數(shù)據(jù)存取層和數(shù)據(jù)存儲層之間添加訪問決策層,其主要功能為保存了每個(gè)設(shè)備的注冊信息和與每個(gè)設(shè)備對應(yīng)的寫隊(duì)列,接受上層的對數(shù)據(jù)片段的訪問,并進(jìn)行訪問設(shè)備的決策;該層是整個(gè)嵌入式移動(dòng)數(shù)據(jù)庫達(dá)到節(jié)能的最關(guān)鍵的一層;2)注冊多個(gè)存儲設(shè)備,并將注冊信息保存在訪問決策層嵌入式移動(dòng)數(shù)據(jù)庫支持多種存儲設(shè)備,通過注冊來增加支持的存儲設(shè)備;一個(gè)設(shè)備的注冊需要提供設(shè)備的功耗w,在各種狀態(tài)下讀寫數(shù)據(jù)的延遲1,同時(shí)指定此設(shè)備所能提供用于數(shù)據(jù)庫存儲的空間大小S;每個(gè)設(shè)備的注冊信息保存于訪問決策層,作為數(shù)據(jù)訪問時(shí)的決策依據(jù);每個(gè)設(shè)備注冊后數(shù)據(jù)庫系統(tǒng)即在內(nèi)存中為此設(shè)備維護(hù)一個(gè)寫隊(duì)列;3)修改全局?jǐn)?shù)據(jù)字典的分布模式分布式數(shù)據(jù)庫系統(tǒng)在內(nèi)存中維護(hù)了一個(gè)全局?jǐn)?shù)據(jù)字典,存放了全局概念模式,分片模式,分布模式的定義,以及各模式之間映象的定義,存放有關(guān)用戶存取權(quán)限的定義和數(shù)據(jù)完整性約束條件的定義;根據(jù)分片模式得到的片段,在物理上分布在各種存儲設(shè)備和中心數(shù)據(jù)庫上,修改后的分布模式根據(jù)選定的數(shù)據(jù)策略,定義各片段物理上的存放位置,即把一個(gè)片段與多個(gè)設(shè)備建立起一種一對多的映象;4)數(shù)據(jù)存儲層的讀寫a)讀數(shù)據(jù)第一步,上層的應(yīng)用程序讀請求;用戶分布式查詢請求通過SQL語言翻譯層/接口層,數(shù)據(jù)存取層,使用戶的查詢請求落實(shí)到合適的數(shù)據(jù)片段上,并將這些數(shù)據(jù)片段的交給了訪問決策層;第二步,選擇存儲設(shè)備;通過數(shù)據(jù)字典中的分布模式,將擁有請求數(shù)據(jù)片段的設(shè)備加入候選設(shè)備;訪問決策層根據(jù)注冊設(shè)備提供的信息和用戶指定的訪問策略參數(shù)在候選設(shè)備中選擇最佳設(shè)備進(jìn)行訪問;決定一個(gè)存儲設(shè)備的訪問優(yōu)先度需要考慮兩個(gè)因素設(shè)備的功耗,設(shè)備的訪問延遲;用于計(jì)算設(shè)備訪問的優(yōu)先值的公式為T=(w/W)*k+(l/L)*(1-k)其中T為設(shè)備訪問的優(yōu)先度,值越小優(yōu)先度越高,w是注冊設(shè)備的功率,l設(shè)備的訪問延遲,W所有注冊設(shè)備的平均功耗,L所有注冊設(shè)備的平均延遲,k為用戶指定參數(shù),用于權(quán)衡數(shù)據(jù)訪問功耗和響應(yīng)速度兩者的優(yōu)先考慮程度,其值介于0到1之間;第三步,從數(shù)據(jù)存儲層讀取數(shù)據(jù);在對選擇設(shè)備進(jìn)行讀操作時(shí),先查看寫隊(duì)列中是否有針對此塊的寫操作,如果存在,將寫隊(duì)列全部寫入此設(shè)備,再進(jìn)行讀操作;若請求的數(shù)據(jù)片段只存在于中心數(shù)據(jù)庫中,則通過網(wǎng)絡(luò)通信層,從中心數(shù)據(jù)庫中讀取相應(yīng)的數(shù)據(jù)片段,并將相應(yīng)數(shù)據(jù)片段加入每個(gè)設(shè)備的寫隊(duì)列;對于某些延遲過大的設(shè)備,為提高響應(yīng)速度,在讀取數(shù)據(jù)時(shí)采取了另一策略訪問決策層先將系統(tǒng)切換成通過網(wǎng)絡(luò)訪問中心數(shù)據(jù)庫的方式,在其延遲時(shí)間中,進(jìn)行數(shù)據(jù)片段的讀取,當(dāng)?shù)竭_(dá)設(shè)備注冊所指定的延遲時(shí)間后,再將訪問對象指向本地設(shè)備;對于同時(shí)分布在不同設(shè)備的數(shù)據(jù)片段,在用戶允許的條件下,可以進(jìn)行并行操作,進(jìn)一步提高數(shù)據(jù)讀取速度;b)寫數(shù)據(jù)第一步,上層的應(yīng)用程序程序?qū)懻埱?;用戶的?shù)據(jù)更新請求通過SQL語言翻譯層/接口層,數(shù)據(jù)存取層,轉(zhuǎn)化為對分布式數(shù)據(jù)庫片段的更新操作,并將這些更新操作交給了訪問決策層;第二步,將操作加入寫隊(duì)列;訪問決策層收到寫操作,即修改、刪除、增加,將這些操作加入每個(gè)設(shè)備的寫隊(duì)列,并修改數(shù)據(jù)字典中分布模式;第三步,訪問數(shù)據(jù)存儲層,將隊(duì)列中的操作寫入對應(yīng)設(shè)備或中心數(shù)據(jù)庫;當(dāng)出現(xiàn)以下幾種情況時(shí)將啟動(dòng)寫進(jìn)程將寫隊(duì)列里的操作寫入存儲介質(zhì)或通過通信管理層,寫入中心數(shù)據(jù)庫,操作完成后,將清空或刪除隊(duì)列(1)隊(duì)列達(dá)到設(shè)定的長度,寫入后清空隊(duì)列;(2)達(dá)到設(shè)定的寫回時(shí)間,寫入后清空隊(duì)列;(3)當(dāng)前讀操作對應(yīng)的塊存在于寫隊(duì)列中,寫入后清空隊(duì)列;(4)將某一設(shè)備從數(shù)據(jù)庫中注銷時(shí),寫入后刪除隊(duì)列;寫隊(duì)列寫入存儲介質(zhì)的操作采用FIFO順序進(jìn)行,以保持?jǐn)?shù)據(jù)的一致性。本發(fā)明與傳統(tǒng)的嵌入式移動(dòng)數(shù)據(jù)庫相比,具有的有益的效果是本發(fā)明是一種應(yīng)用于移動(dòng)環(huán)境中的嵌入式數(shù)據(jù)庫,在修改數(shù)據(jù)庫的數(shù)據(jù)存儲層使其可支持多種設(shè)備,并通過“從一個(gè)最優(yōu)設(shè)備讀,向所有設(shè)備寫的策略”,為之后的節(jié)能型數(shù)據(jù)訪問提供了條件,同時(shí)又兼顧了訪問的效率和數(shù)據(jù)的完整性。(1)功耗低,效率高。寫操作雖然采用向多個(gè)設(shè)備寫的方法,這種在功耗上比普通單獨(dú)向一個(gè)設(shè)備寫的操作要高,但為將來的一些操作提供了節(jié)能的條件,對于一個(gè)主要是讀訪問請求的終端設(shè)備,這種作法總體上比普通方法能量消耗低很多。同時(shí)這種異步、集中的寫操作減少了設(shè)備在各運(yùn)作模式轉(zhuǎn)換所耗費(fèi)的時(shí)間和能量,提高了寫操作的響應(yīng)速度。在讀操作方面,通過訪問決策層,將會(huì)優(yōu)先使用功耗和效率最佳的設(shè)備。另外訪問一些延遲過大設(shè)備時(shí),通過網(wǎng)絡(luò)來訪問中心數(shù)據(jù)庫來彌補(bǔ)延遲時(shí)間用戶的空等待。(2)可配置性。用戶可根據(jù)需要指定k值,來調(diào)節(jié)響應(yīng)速度和功耗的考慮程度。從總體上看T值越小,設(shè)備訪問的優(yōu)先度越高,即優(yōu)先訪問功耗低,響應(yīng)快的設(shè)備,在保證效率的同時(shí),達(dá)到了節(jié)能的目的。附圖是應(yīng)用節(jié)能存儲方法的嵌入式移動(dòng)數(shù)據(jù)庫體系結(jié)構(gòu)圖;具體實(shí)施方式如附圖所示,應(yīng)用了節(jié)能存儲方法的嵌入式移動(dòng)數(shù)據(jù)庫的數(shù)據(jù)訪問流程具體為首先用戶或應(yīng)用程序通過SQL語言翻譯層/接口層,對SQL語句進(jìn)行語法分析,授權(quán)、完整性檢查及查詢優(yōu)化或是調(diào)用接口函數(shù),生成對邏輯數(shù)據(jù)操作的指令。上層的集合操作通過數(shù)據(jù)存取層,利用修改后的全局?jǐn)?shù)據(jù)字典,將操作轉(zhuǎn)換為對分布式數(shù)據(jù)庫訪問的基本單位,即數(shù)據(jù)邏輯片段的操作。并將這些數(shù)據(jù)片段,在物理上定位到各存儲設(shè)備或中心數(shù)據(jù)庫。訪問決策層將根據(jù)上層數(shù)據(jù)片段的物理分配情況,進(jìn)行訪問設(shè)備的決策。該層是整個(gè)嵌入式移動(dòng)數(shù)據(jù)庫達(dá)到節(jié)能的最關(guān)鍵的一層。最終訪問本地?cái)?shù)據(jù)存儲層或中心數(shù)據(jù)庫,對位于多種存儲設(shè)備及主服務(wù)器上的數(shù)據(jù)片段和系統(tǒng)緩沖區(qū),執(zhí)行文件的邏輯打開、關(guān)閉、讀頁、寫頁、緩沖區(qū)讀和寫、宣布淘汰等操作。嵌入式移動(dòng)數(shù)據(jù)庫的節(jié)能存儲方法主要是通過讀寫兩方面的來實(shí)現(xiàn)的,而在建立數(shù)據(jù)庫時(shí),需要注冊每個(gè)支持的存儲設(shè)備并修改全局?jǐn)?shù)據(jù)字典1.存儲設(shè)備的注冊終端的本地?cái)?shù)據(jù)庫系統(tǒng)支持一個(gè)或多個(gè)存儲設(shè)備。在本地?cái)?shù)據(jù)庫建立時(shí)至少需要一個(gè)存儲設(shè)備,之后可以通過注冊新設(shè)備來增加支持的存儲設(shè)備。一個(gè)設(shè)備的注冊需要提供設(shè)備的功耗w,在各種狀態(tài)下讀寫數(shù)據(jù)的延遲1,同時(shí)指定此設(shè)備所能提供用于數(shù)據(jù)庫存儲的空間大小S。設(shè)備注冊后,其注冊信息將被保存在訪問決策層,作為數(shù)據(jù)訪問時(shí)的決策依據(jù);每個(gè)設(shè)備注冊后數(shù)據(jù)庫系統(tǒng)即在內(nèi)存中為此設(shè)備維護(hù)一個(gè)寫隊(duì)列;數(shù)據(jù)的分配以操作系統(tǒng)的塊大小為單位,當(dāng)一個(gè)存儲設(shè)備上的數(shù)據(jù)將要達(dá)到一定大小時(shí)(指定空間大小的90%),本地?cái)?shù)據(jù)庫系統(tǒng)將啟動(dòng)一個(gè)進(jìn)程,采用時(shí)鐘算法(或其它替換策略)對空間進(jìn)行重分配。如,注冊設(shè)備SD卡,CF卡和微硬盤(MD),注冊信息如下SD卡1=A毫秒,w=H瓦,S=100MCF卡1=B毫秒,w=I瓦,S=100MMD(微硬盤)(運(yùn)轉(zhuǎn)狀態(tài))1=C毫秒,(休眠狀態(tài)時(shí))1=Dms,w=J瓦,S=500M則L=(A+B+C+D)/4毫秒,W=(H+I+J)/3瓦設(shè)備注冊后,將SD卡編號物理設(shè)備為01,將CF卡編號為物理設(shè)備02,將微硬盤編號為物理設(shè)備03;2.修改全局?jǐn)?shù)據(jù)字典的分布模式分布式數(shù)據(jù)庫系統(tǒng)維護(hù)了一個(gè)全局?jǐn)?shù)據(jù)字典,主要存放了全局概念模式,分片模式,分布模式的定義,以及各模式之間映象的定義,存放有關(guān)用戶存取權(quán)限的定義和數(shù)據(jù)完整性約束條件的定義。數(shù)據(jù)片段是全局關(guān)系的邏輯部分,在傳統(tǒng)的分布式數(shù)據(jù)庫中,一個(gè)片段在物理上可以分配到網(wǎng)絡(luò)的不同結(jié)點(diǎn)上,而分布模式定義了片段存放的結(jié)點(diǎn)。由于在本設(shè)計(jì)中,片段在物理上分布在各種存儲設(shè)備和中心數(shù)據(jù)庫上,因此將分布模式修改為根據(jù)選定的數(shù)據(jù)策略,定義各片段存放的物理設(shè)備(包括數(shù)據(jù)庫服務(wù)器),即把一個(gè)片段與多個(gè)設(shè)備建立起一種一對多的映象。這是一種冗余分配。3.數(shù)據(jù)存儲層的讀寫a)讀數(shù)據(jù)第一步,上層的應(yīng)用程序讀請求。用戶分布式查詢請求通過SQL語言翻譯層/接口層,數(shù)據(jù)存取層,使用戶的查詢請求落實(shí)到合適的數(shù)據(jù)片段上,并將這些數(shù)據(jù)片段的交給了訪問決策層;第二步,選擇存儲設(shè)備。若用戶執(zhí)行SELECT*FROMtablelWHEREattr=1;則通過本地?cái)?shù)據(jù)庫系統(tǒng)查詢分解和數(shù)據(jù)庫本地化,返回?cái)?shù)據(jù)分布以及候選設(shè)備列表,如表1;表1根據(jù)公式T=(w/W)*k+(l/L)*(1-k)當(dāng)用戶指定k值后,即可計(jì)算得每個(gè)設(shè)備訪問優(yōu)先度TSD卡、TCF卡和T微硬盤(md);第三步,從數(shù)據(jù)存儲層讀取數(shù)據(jù)。對于數(shù)據(jù)片段1,同時(shí)位于CF卡和微硬盤上,若TCF卡<T微硬盤(md),將優(yōu)先選擇CF卡,若用戶配置允許并行讀操作,將同時(shí)從兩個(gè)設(shè)備進(jìn)行讀取操作;對于數(shù)據(jù)片段2,只能選擇SD卡,但在進(jìn)行讀操作時(shí),由于此片段位于寫隊(duì)列,需要將寫隊(duì)列的操作寫入SD卡,之后再進(jìn)行讀操作,以保證數(shù)據(jù)的一致性;對于數(shù)據(jù)片段3和6,只能選擇微硬盤卡,但由于微硬盤在休眠狀態(tài)時(shí),響應(yīng)時(shí)間過慢,在無線網(wǎng)絡(luò)連接的條件下,數(shù)據(jù)庫系統(tǒng)將在延遲時(shí)間里從中心數(shù)據(jù)庫中獲取一部分?jǐn)?shù)據(jù),在微硬盤開始讀取數(shù)據(jù)之后,切換為訪問微硬盤,以提高響應(yīng)速度。對于數(shù)據(jù)片段4,5,不位于任何一個(gè)本地設(shè)備之上,因此只能將訪問請求移交給通信管理層,由其通過網(wǎng)絡(luò)訪問中心數(shù)據(jù)庫,本地獲得請求數(shù)據(jù)后,將訪問數(shù)據(jù)加入每個(gè)設(shè)備的寫隊(duì)列,并更新數(shù)據(jù)字典的數(shù)據(jù)分片模式,為將來再次訪問作準(zhǔn)備。b)寫數(shù)據(jù)第一步,上層的應(yīng)用程序程序?qū)懻埱?。用戶或?yīng)用程序的數(shù)據(jù)更新請求通過SQL語言翻譯層/接口層,數(shù)據(jù)存取層,轉(zhuǎn)化為對分布式數(shù)據(jù)庫片段的更新操作,并將這些更新操作交給了訪問決策層。一組用戶數(shù)據(jù)更新請求,轉(zhuǎn)化為如表2所示的更新操作。表2第二步,將操作加入寫隊(duì)列。對于數(shù)據(jù)片段1,只需將修改操作加入01設(shè)備和中心數(shù)據(jù)庫的對應(yīng)的寫隊(duì)列;對于數(shù)據(jù)片段2,需要將刪除操作加入02,03設(shè)備和中心數(shù)據(jù)庫對應(yīng)的寫隊(duì)列;對于數(shù)據(jù)片段3,需要將增加操作加入所有設(shè)備和中心數(shù)據(jù)庫對應(yīng)的寫隊(duì)列。更新全局?jǐn)?shù)據(jù)字典,以維持更新的一致性,并標(biāo)記未寫入的片段。第三步,訪問數(shù)據(jù)存儲層,將隊(duì)列中的操作寫入對應(yīng)設(shè)備或中心數(shù)據(jù)庫。當(dāng)出現(xiàn)以下幾種情況時(shí)將啟動(dòng)寫進(jìn)程,將寫隊(duì)列里的操作寫入存儲介質(zhì)或通過通信管理層,寫入中心數(shù)據(jù)庫,操作完成后,將清空或刪除隊(duì)列(1)隊(duì)列達(dá)到設(shè)定的長度,寫入后清空隊(duì)列,可根據(jù)數(shù)據(jù)庫規(guī)模和嵌入式設(shè)備的條件來確定;(2)達(dá)到設(shè)定的寫回時(shí)間,寫入后清空隊(duì)列。根據(jù)嵌入式設(shè)備特性指定不同寫回時(shí)間,一般功耗較大的,響應(yīng)時(shí)間較長的,寫回時(shí)間設(shè)置較大;(3)當(dāng)前讀操作對應(yīng)的塊存在于寫隊(duì)列中,寫入后清空隊(duì)列;(4)將某一設(shè)備從數(shù)據(jù)庫中注銷時(shí),寫入后刪除隊(duì)列;寫隊(duì)列寫入存儲介質(zhì)的操作采用FIF0順序進(jìn)行,以保持?jǐn)?shù)據(jù)的一致性。權(quán)利要求1.一種嵌入式移動(dòng)數(shù)據(jù)庫的節(jié)能存儲方法,其特征在于1)在終端上的嵌入式移動(dòng)數(shù)據(jù)庫中添加訪問決策層終端上的本地?cái)?shù)據(jù)庫系統(tǒng)可分為以下幾個(gè)層次SQL語言翻譯層/接口層,數(shù)據(jù)存取層,數(shù)據(jù)存儲層;在數(shù)據(jù)存取層和數(shù)據(jù)存儲層之間添加訪問決策層,其主要功能為保存了每個(gè)設(shè)備的注冊信息和與每個(gè)設(shè)備對應(yīng)的寫隊(duì)列,接受上層的對數(shù)據(jù)片段的訪問,并進(jìn)行訪問設(shè)備的決策;該層是整個(gè)嵌入式移動(dòng)數(shù)據(jù)庫達(dá)到節(jié)能的最關(guān)鍵的一層;2)注冊多個(gè)存儲設(shè)備,并將注冊信息保存在訪問決策層嵌入式移動(dòng)數(shù)據(jù)庫支持多種存儲設(shè)備,通過注冊來增加支持的存儲設(shè)備;一個(gè)設(shè)備的注冊需要提供設(shè)備的功耗w,在各種狀態(tài)下讀寫數(shù)據(jù)的延遲l,同時(shí)指定此設(shè)備所能提供用于數(shù)據(jù)庫存儲的空間大小S;每個(gè)設(shè)備的注冊信息保存于訪問決策層,作為數(shù)據(jù)訪問時(shí)的決策依據(jù);每個(gè)設(shè)備注冊后數(shù)據(jù)庫系統(tǒng)即在內(nèi)存中為此設(shè)備維護(hù)一個(gè)寫隊(duì)列;3)修改全局?jǐn)?shù)據(jù)字典的分布模式分布式數(shù)據(jù)庫系統(tǒng)在內(nèi)存中維護(hù)了一個(gè)全局?jǐn)?shù)據(jù)字典,存放了全局概念模式,分片模式,分布模式的定義,以及各模式之間映象的定義,存放有關(guān)用戶存取權(quán)限的定義和數(shù)據(jù)完整性約束條件的定義;根據(jù)分片模式得到的片段,在物理上分布在各種存儲設(shè)備和中心數(shù)據(jù)庫上,修改后的分布模式根據(jù)選定的數(shù)據(jù)策略,定義各片段物理上的存放位置,即把一個(gè)片段與多個(gè)設(shè)備建立起一種一對多的映象;4)數(shù)據(jù)存儲層的讀寫a)讀數(shù)據(jù)第一步,上層的應(yīng)用程序讀請求;用戶分布式查詢請求通過SQL語言翻譯層/接口層,數(shù)據(jù)存取層,使用戶的查詢請求落實(shí)到合適的數(shù)據(jù)片段上,并將這些數(shù)據(jù)片段的交給了訪問決策層;第二步,選擇存儲設(shè)備;通過數(shù)據(jù)字典中的分布模式,將擁有請求數(shù)據(jù)片段的設(shè)備加入候選設(shè)備;訪問決策層根據(jù)注冊設(shè)備提供的信息和用戶指定的訪問策略參數(shù)在候選設(shè)備中選擇最佳設(shè)備進(jìn)行訪問;決定一個(gè)存儲設(shè)備的訪問優(yōu)先度需要考慮兩個(gè)因素設(shè)備的功耗,設(shè)備的訪問延遲;用于計(jì)算設(shè)備訪問的優(yōu)先值的公式為T=(w/W)*k+(l/L)*(1-k)其中T為設(shè)備訪問的優(yōu)先度,值越小優(yōu)先度越高,w是注冊設(shè)備的功率,l設(shè)備的訪問延遲,W所有注冊設(shè)備的平均功耗,L所有注冊設(shè)備的平均延遲,k為用戶指定參數(shù),用于權(quán)衡數(shù)據(jù)訪問功耗和響應(yīng)速度兩者的優(yōu)先考慮程度,其值介于0到1之間;第三步,從數(shù)據(jù)存儲層讀取數(shù)據(jù);在對選擇設(shè)備進(jìn)行讀操作時(shí),先查看寫隊(duì)列中是否有針對此塊的寫操作,如果存在,將寫隊(duì)列全部寫入此設(shè)備,再進(jìn)行讀操作;若請求的數(shù)據(jù)片段只存在于中心數(shù)據(jù)庫中,則通過網(wǎng)絡(luò)通信層,從中心數(shù)據(jù)庫中讀取相應(yīng)的數(shù)據(jù)片段,并將相應(yīng)數(shù)據(jù)片段加入每個(gè)設(shè)備的寫隊(duì)列;對于某些延遲過大的設(shè)備,為提高響應(yīng)速度,在讀取數(shù)據(jù)時(shí)采取了另一策略訪問決策層先將系統(tǒng)切換成通過網(wǎng)絡(luò)訪問中心數(shù)據(jù)庫的方式,在其延遲時(shí)間中,進(jìn)行數(shù)據(jù)片段的讀取,當(dāng)?shù)竭_(dá)設(shè)備注冊所指定的延遲時(shí)間后,再將訪問對象指向本地設(shè)備;對于同時(shí)分布在不同設(shè)備的數(shù)據(jù)片段,在用戶允許的條件下,可以進(jìn)行并行操作,進(jìn)一步提高數(shù)據(jù)讀取速度;b)寫數(shù)據(jù)第一步,上層的應(yīng)用程序程序?qū)懻埱螅挥脩舻臄?shù)據(jù)更新請求通過SQL語言翻譯層/接口層,數(shù)據(jù)存取層,轉(zhuǎn)化為對分布式數(shù)據(jù)庫片段的更新操作,并將這些更新操作交給了訪問決策層;第二步,將操作加入寫隊(duì)列;訪問決策層收到寫操作,即修改、刪除、增加,將這些操作加入每個(gè)設(shè)備的寫隊(duì)列,并修改數(shù)據(jù)字典中分布模式;第三步,訪問數(shù)據(jù)存儲層,將隊(duì)列中的操作寫入對應(yīng)設(shè)備或中心數(shù)據(jù)庫;當(dāng)出現(xiàn)以下幾種情況時(shí)將啟動(dòng)寫進(jìn)程將寫隊(duì)列里的操作寫入存儲介質(zhì)或通過通信管理層,寫入中心數(shù)據(jù)庫,操作完成后,將清空或刪除隊(duì)列(1)隊(duì)列達(dá)到設(shè)定的長度,寫入后清空隊(duì)列;(2)達(dá)到設(shè)定的寫回時(shí)間,寫入后清空隊(duì)列;(3)當(dāng)前讀操作對應(yīng)的塊存在于寫隊(duì)列中,寫入后清空隊(duì)列;(4)將某一設(shè)備從數(shù)據(jù)庫中注銷時(shí),寫入后刪除隊(duì)列;寫隊(duì)列寫入存儲介質(zhì)的操作采用FIFO順序進(jìn)行,以保持?jǐn)?shù)據(jù)的一致性。全文摘要本發(fā)明公開了一種嵌入式移動(dòng)數(shù)據(jù)庫的節(jié)能存儲方法。本發(fā)明的方法同時(shí)利用嵌入式移動(dòng)數(shù)據(jù)庫存儲特點(diǎn),在移動(dòng)終端上重新構(gòu)建數(shù)據(jù)存儲層,增加了對多種設(shè)備支持包括通過網(wǎng)絡(luò)對主服務(wù)器的訪問,在數(shù)據(jù)存取層和數(shù)據(jù)存儲層之間建立一個(gè)訪問決策層,以決定每個(gè)數(shù)據(jù)請求需要訪問的設(shè)備。在這種架構(gòu)基礎(chǔ)上,用戶通過指定訪問策略參數(shù),系統(tǒng)將采用“向所有設(shè)備寫,向最優(yōu)設(shè)備讀”的方法,以達(dá)到數(shù)據(jù)庫性能和功耗上的最優(yōu)。文檔編號G06F17/30GK1760859SQ20051006139公開日2006年4月19日申請日期2005年11月3日優(yōu)先權(quán)日2005年11月3日發(fā)明者陳純,卜佳俊,陳濤,劉康苗申請人:浙江大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1