《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > B_Link樹結構的緩存機制在數據集成中的應用
B_Link樹結構的緩存機制在數據集成中的應用
來源:微型機與應用2012年第1期
陳受凱,劉雅正
(暨南大學 計算機科學系,廣東 廣州 510632)
摘要: 對于一些查詢密集型的應用,查詢操作的響應速度往往是決定其系統性能的關鍵因素,因此如何提高查詢響應速度和系統吞吐率成為首要任務。經過實驗證明,通過將查詢數據緩存可以有效地解決這個問題。
Abstract:
Key words :

摘  要: 對于一些查詢密集型的應用,查詢操作的響應速度往往是決定其系統性能的關鍵因素,因此如何提高查詢響應速度和系統吞吐率成為首要任務。經過實驗證明,通過將查詢數據緩存可以有效地解決這個問題。
關鍵詞: 數據集成;數據緩存;B_Link樹

 目前,在企業中由于開發時間或開發部門的不同,往往存在有多個異構的在不同軟硬件平臺上的信息系統同時運行,這些系統的數據源彼此獨立、相互封閉,使得數據難以在系統之間交流、共享和融合,從而形成了“信息孤島”問題。如何對這些數據進行有效的集成管理,屏蔽這些信息的異構部分,并給上層用戶或應用提供一個統一透明的訪問接口,以透明的方式訪問各信息源,成為當今企業和組織所關心的問題。數據集成也就是在這樣的情況下提出來的。
 通過復制的方式,將各種異構數據源中的數據抽取到一個統一的數據源中(如數據倉庫),同時維護數據源整體上數據的一致性。該方式實現了對物理數據庫異構的屏蔽和數據訪問的控制,以便于提供一個統一的訪問接口、提高訪問效率和系統的獨立性。圖1是一個典型的基于數據復制方式建立的數據倉庫體系結構圖。

 此外,在把數據倉庫應用于數據集成時,還需解決如何應對大量客戶端應用程序對數據倉庫進行訪問時能夠做出快速的響應。但是一個數據庫的連接資源是有限的,大量的并發查詢操作必定會導致查詢效率的下降,導致客戶端應用程序獲取數據的延遲時間大大增加。這樣的情況用戶是不想看到的,甚至有些對時間有一定限制的應用因為不能及時獲得所需的數據而無法正常工作而迫切需要解決這一問題。出現這個問題的原因是:由于連接數據庫是一件耗時的工作,而且一般數據庫服務器能同時提供的連接數也相當有限,出現了性能瓶頸。解決這個問題的有效方法可以通過將查詢過的數據緩存起來,若下次有同樣的查詢時則不需再連接數據庫,而是直接從緩存中獲得,這樣不但節省了連接數據庫的時間開銷,而且省略了查詢數據庫所帶來的時間和資源的消耗。但是對于數據緩存的組織不能簡單了事,必須得經過精心的設計。為此,本文提出一種基于B_Link樹的方法來管理緩存。下面將詳細介紹如何組織和管理緩存。
1 數據緩存的體系結構
 無論多么強大的服務器,其內存的數量都是有限的,故在考慮大數據量的緩存時,不可能將所有的數據都緩存在內存中,而要考慮使用二級緩存?;贐_Link樹緩存總體結構如圖2所示,為了解決內存有限的問題,采用了兩層緩存結構,用一張哈希表將查詢與索引表對應起來。若已經建立了緩存,則對應有一張緩存索引表,用于記錄數據記錄塊的位置(數據記錄塊是指把數據記錄打包成塊進行保存和傳輸)。若數據在內存中則直接取出發送給客戶端應用程序即可,否則需通過關鍵詞去磁盤中獲取。磁盤中的緩存是基于B_Link樹組織起來的。

2 B_Link樹的基本結構和操作
2.1 數據結構

 B_Link樹是在B+樹的基礎上加以改進的,主要添加了一個高值域和非葉子結點指向其右兄弟結點的Link指針。B_Link樹結構如圖3所示,其中帶下劃線的表示高值域,主要用于提升并發操作的性能。Link指針可以使得每個結點至少可以有兩條路徑訪問到,提高了查詢速度。

2.2 B_Link樹的查詢操作

 


 B_Link樹的查詢操作是比較容易的,具體操作可查閱參考文獻[1]。其基本思路是:首先檢查根結點,找到大于查詢關鍵字V的最小搜索碼值(假設搜索碼值為ki);然后,順著指針pi到達另一個結點,如果查詢關鍵字比該結點所有關鍵字都大,則遍歷指針指向當前結點的右兄弟結點,在達到最后一層葉子結點時,若找到則返回該結點,否則返回空。
2.3 B_Link樹的插入操作
 B_Link樹的插入操作是一個比較復雜的過程,既要保證B_Link樹的基本結構不受到破壞,還要保證并發操作時不會出現錯誤,所以有必要進行加鎖處理。下面介紹幾種操作:
?。?)x←scannode(v,A):掃描指針A指向的結點,找到能發現key值v的下一個節點并賦給x。
?。?)A←get(current):表示將current結點讀入內存中并把其指針賦給A。
?。?)A←node.insert(A,w,v):把指針w和帶關鍵字v插入指針A指向的結點。
?。?)u←allocate(B):為結點B在磁盤中分配一新的頁,并將其指針賦給u。
?。?)A,B←rearrange old A:把需要分裂的A指向的結點分裂成新的由A和B指向的結點。
?。?)lock(current):表示將current結點鎖住,防止其他并發操作對該結點進行修改,但這并不會鎖住查詢操作。需要說明的是:如果查詢某個結點時,這個結點進行了分裂操作,有可能會出現查詢關鍵字大于高值域的情況,這時只要將當前指針指向右兄弟結點即可,并在父結點中添加一搜索碼和指針指向右兄弟結點(細節可參考文獻[1])。
 下面是插入算法的偽代碼:
    Procedure insert(v)
    initialize stack;//初始化一個堆棧,用于保存祖先結點
    current←root;
    A←get(current);
//將current讀入內存中并將其指針賦給A
    while current is not a leaf do
    //從上至下遍歷結點,直到葉子結點
    Begin
        t←current;
        current←scannode(v,A);
        if new current was not link pointer in A then
            push(t);
        A ← get(current);
    end;
    lock(current);    //將該結點鎖住
    A←get(current);    
    move.right;
//如果有必要將當前結點指向其右兄弟結點
    if v is in A then stop    
//如果原來的樹中存在關鍵字為v的結點,則算法停止
    w←pointer to pages allocated for record associated with v;    //把與v相關聯的指針賦給w
    Doinsertion:
    if A not need to split  //若結點無須分裂
    Begin
        A←node.insert(A. w. v);
//把w指針和關鍵字v插入A指向的結點中,返回新的指針A
        put(A, current);
//把指針A放入current結點適當的位置
        unlock(current);
    end else begin
        u←allocate(1 new page for B);
        A,B←rearrange old A,adding v and w, to make 2 nodes;//把A指向的結點    分裂成2個結點,
//分別由A和B指向
(link ptr of A, link ptr of B)←(u, link ptr of old A);
//把分裂出的新結點的右兄弟結點指針
//指向未分裂前A的右兄弟結點
        y←getmaxvalue(A);
//取出A指向的結點中的最大的值(注意不是高值域)
        put(B,u);
        put(A, current);  //開始將指針放入父結點中
        v ← y;
        w ← u;
current ← pop(stack);  
//進行回溯處理,檢測父親是否需要繼續分裂
        lock(current);
        A ← get(current);
        move.right;
        unlock(oldnode);
        goto Doinsertion; 
end
 其中的move.right操作表示將指針指向其右兄弟結點。對于刪除算法,基本思路與插入算法類相同,要保持樹結構和并發操作的正確性,具體可參閱文獻[2]。此外,充分利用內存中的緩存也是很是重要的,在這里可以采用一種預讀取的辦法,即在磁盤緩存中檢索到要讀的結點時,在傳輸數據這段時間里可以將接下來的一些記錄數據塊讀入內存緩存中,這樣在下次取數據時可以減少一些磁盤IO操作,提高讀取性能。
3 性能測試分析
 測試環境如下:
 數據庫服務器端配置:數據庫Oracle 10g,操作系統Linux 2.6,CPU 2.1 GHz X4,內存4 GB,硬盤串口500 GB。查詢中間件服務器與數據庫服務器是同樣的配置,但不在同一臺服務器上,對查詢中間件的介紹可以參閱文獻[3]。
 客戶端配置:CPU 2.6 GHz X2,內存2 GB,硬盤串口160 GB。表1和表2是在不同的并發查詢數目和不同的查詢規模下經過緩存和未經緩存所需時間的對比。表1中查詢記錄數固定為10萬條,表2中并發查詢數固定為50個。

 通過對比直接查詢數據庫和經過緩存優化后進行查詢的實驗數據可知,通對對數據進行緩存處理,效率提升是非常明顯的,尤其是在并發查詢的數量比較大時,效率提升更為明顯。
 本文把數據緩存應用于基于數據倉庫方式的數據集成中,而且,在組織緩存時采用了兩級緩存結構,并采用了B_Link樹來組織磁盤中的緩存中的結構。因此提高了并發查詢數據的效率、縮短了客戶端查詢數據的響應時間、提高了工作效率。但本文方法還存在一些不足,例如,如何更有效地協調磁盤和內存中的緩存交互,這一設計的好壞也直接關系到查詢的性能,這有待以后進一步完善和優化。
參考文獻
[1] PHILIP L, LEHMAN S, Bing Yao. Efficient locking for concurrent operations on B-trees[M]. ACM Transactions on Database Systems,1981:655-663.
[2] 孫兆玉,黃宇光,朱鴻宇. 一種基于B_Link樹結構的高性能緩存機制[J].高性能計算技術,2007,186:23-24.
[3] 房元平,許嬌陽,葛珂.流水線處理技術在數據集成中的應用[J].微型機與應用,2010(24):67-69.
[4] JOHNSON T. A highly concurrent priority queue based on the B_Link tree[R]. Technical Report,University of Florida,1991.
[5] CORMEN T H, CHARLES E. LEISERSON R L, et al. Introduction to algorithms(second edition)[M]. The MIT Press, 2009:434-453.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久久久成人精品| 一区二区三区不卡视频在线观看| 先锋影音网一区二区| 欧美日本不卡视频| 在线观看一区二区精品视频| 午夜亚洲视频| 狠狠噜噜久久| 国产精品露脸自拍| 欧美精品久久久久久| 欧美日韩123| 亚洲精品韩国| 欧美裸体一区二区三区| 国产精品日韩专区| 久久久999成人| 美女999久久久精品视频| 曰韩精品一区二区| 欧美色网一区二区| 欧美日韩午夜视频在线观看| 亚洲精品一区二区三区在线观看| 午夜亚洲福利在线老司机| 欧美日韩天堂| 亚洲高清视频一区二区| 欧美激情一区二区三区在线| 国产精品视频久久久| 欧美日韩久久久久久| 久久久久久**毛片大全| 91久久夜色精品国产九色| 国产精品亚洲美女av网站| 99热在这里有精品免费| 一区二区三区四区五区在线| 欧美午夜精品理论片a级大开眼界| 亚洲卡通欧美制服中文| 欧美了一区在线观看| 欧美日韩国产欧美日美国产精品| 日韩午夜在线播放| 欧美一区二区三区在线免费观看| 一本色道久久综合亚洲精品小说| 国产精品蜜臀在线观看| 亚洲日本va午夜在线电影| 尤物精品国产第一福利三区| 亚洲日本一区二区三区| 激情六月婷婷综合| 亚洲一区二区三区高清| 久久乐国产精品| 亚洲一区美女视频在线观看免费| 亚洲欧美视频一区二区三区| 欧美色视频在线| 欧美日韩天堂| 久久人人97超碰精品888| 一区二区三区四区精品| 国产亚洲精品美女| 国产午夜精品久久久| 久久久久综合网| 欧美一区二区三区免费观看视频| 一区久久精品| 欧美另类极品videosbest最新版本| 亚洲国产高清在线观看视频| 噜噜噜在线观看免费视频日韩| 国产一区二区成人| 欧美精品久久久久久久久老牛影院| 久久影院午夜片一区| 在线一区二区三区四区五区| 欧美一区二区三区视频在线观看| 欧美日韩视频专区在线播放| 国产精品久久久久久久久久免费| 欧美四级剧情无删版影片| 日韩视频一区二区| 卡通动漫国产精品| 一本色道久久综合狠狠躁篇的优点| 欧美日韩在线免费视频| 性久久久久久久| 在线日韩精品视频| 亚洲美女av黄| 国产亚洲成av人在线观看导航| 国产日韩欧美精品在线| 一本久道久久久| 欧美日韩国产美女| 欧美激情精品久久久久久免费印度| 欧美体内she精视频在线观看| 欧美成人精品一区| 黄色av成人| 一区二区免费在线播放| 亚洲国产三级| 一本色道**综合亚洲精品蜜桃冫| 久久精品国产69国产精品亚洲| 欧美一区二区精品久久911| 欧美一区二区日韩| 久久精品国产2020观看福利| 国产一区二区av| 欧美三级乱人伦电影| 欧美一区二区三区免费视| 国产精品高潮呻吟久久av无限| 99热精品在线观看| 国产伦精品一区二区三区视频孕妇| 久久久久久久97| 亚洲午夜极品| 国内成人精品2018免费看| 老司机一区二区三区| 国产美女扒开尿口久久久| 亚洲美女在线一区| 欧美专区在线观看一区| 美国三级日本三级久久99| 国产亚洲精品资源在线26u| 亚洲综合色噜噜狠狠| 一区二区国产精品| 久久精视频免费在线久久完整在线看| 欧美中日韩免费视频| 国产精品自在线| 欧美精品午夜视频| 欧美大片在线看| 日韩一级在线观看| 亚洲欧美成人网| 亚洲电影在线看| 日韩网站在线观看| 新片速递亚洲合集欧美合集| 国产一区二区三区四区| 免费在线国产精品| 国产一区二区三区高清| 羞羞漫画18久久大片| 国产精品免费网站| 你懂的网址国产 欧美| 欧美精品成人91久久久久久久| 欧美日韩一级大片网址| 国产精品毛片在线| 国产精品久久久久久妇女6080| 一区二区三区国产在线观看| 国产在线不卡视频| 极品尤物av久久免费看| 永久555www成人免费| 欧美激情一区三区| 国产精品一区一区| 一区福利视频| 韩国久久久久| 欧美福利在线| 在线视频亚洲| 欧美第十八页| 亚洲国产另类久久久精品极度| 国产精品亚洲一区二区三区在线| 欧美在线3区| 欧美日韩在线不卡| 欧美日韩天天操| 亚洲视频图片小说| 久久久久久有精品国产| 欧美 亚欧 日韩视频在线| 一区二区毛片| 老司机67194精品线观看| 日韩视频免费在线观看| 亚洲欧美日韩综合国产aⅴ| 国产一区二区久久| 久久在线播放| 欧美午夜电影在线观看| 欧美日韩成人综合在线一区二区| 欧美国产一区二区三区激情无套| 羞羞色国产精品| 亚洲第一页自拍| 国产亚洲欧美一级| 欧美午夜在线| 亚洲激情午夜| 欧美久久精品午夜青青大伊人| 国产在线不卡视频| 欧美精品日韩| 你懂的视频欧美| 国产精品久久久久7777婷婷| av不卡在线观看| 国产欧美日韩视频一区二区三区| 亚洲成色777777在线观看影院| 欧美日韩在线一区二区三区| 欧美高清视频| 亚洲美女视频在线观看| 在线不卡免费欧美| 亚洲精品资源美女情侣酒店| 欧美在线视频播放| 国产日韩在线一区| 久久人人爽爽爽人久久久| 亚洲国产一区二区三区高清| 亚洲国产欧美精品| 黄色精品一区二区| 亚洲高清一区二区三区| 欧美一区二区三区另类| 99视频精品在线| 欧美乱妇高清无乱码| 久久久久一本一区二区青青蜜月| 在线播放豆国产99亚洲| 国产视频一区免费看| 欧美激情一区二区三区四区| 国产精品视频一二三| 黄色小说综合网站| 国产精品私人影院| 亚洲午夜国产一区99re久久| 亚洲男女毛片无遮挡| 日韩五码在线| 在线成人免费视频| 欧美中在线观看| 狂野欧美性猛交xxxx巴西| 欧美日韩亚洲国产精品| 久久国产欧美| 久久网站热最新地址| 亚洲永久免费av| 亚洲国产天堂网精品网站| 亚洲国产精品第一区二区| 黄色精品免费| 欧美日韩mv| 亚洲国产精品精华液2区45| 欧美体内she精视频在线观看| 国产日本欧洲亚洲| 欧美视频日韩视频在线观看| 久久嫩草精品久久久精品一| 在线不卡亚洲| 国产欧美日韩激情| 欧美人体xx| 日韩一级不卡| 夜夜躁日日躁狠狠久久88av| 国产一区二区三区不卡在线观看| 亚洲精华国产欧美| 蜜臀久久久99精品久久久久久| 红杏aⅴ成人免费视频| 国产真实乱偷精品视频免| 久久亚洲精品中文字幕冲田杏梨| 欧美精品 国产精品| 国内成人精品2018免费看| 欧美午夜电影一区| 亚洲精美视频| 一区二区三区欧美日韩| 影音先锋成人资源站| 久久免费视频这里只有精品| 亚洲深夜福利网站| 欧美黄色日本| 久久久久久穴| 亚洲精品日韩激情在线电影| 最新成人av在线| 极品日韩久久| 亚洲激情视频在线观看| 欧美日韩麻豆| 亚洲精品乱码久久久久久久久| 国产日韩欧美中文在线播放| 国模精品一区二区三区| 欧美视频官网| 国产精品一区二区久久| 午夜精品在线看| 国产日韩精品视频一区| 亚洲一区二区免费| 欧美成人免费在线视频| 欧美日韩大片| 国产欧美欧洲在线观看| 免费91麻豆精品国产自产在线观看| 国产亚洲综合性久久久影院| 国产精品你懂的在线欣赏| 欧美日韩久久久久久| 亚洲激情网址| 欧美成va人片在线观看| 久久久久久久综合| 国产午夜亚洲精品理论片色戒| 欧美日本二区| 蜜臀久久99精品久久久画质超高清| 久久资源av| 欧美日韩国产三级| 欧美成人免费在线观看| 黄色成人在线网址| 韩国女主播一区二区三区| 国内精品国产成人| 国产精品一区二区三区免费观看| 一卡二卡3卡四卡高清精品视频| 亚洲精品在线视频| 欧美一区二区精品久久911| 亚洲在线视频网站| 久久精品一区二区三区四区| 制服丝袜激情欧洲亚洲| 欧美国产精品劲爆| 欧美偷拍一区二区| 一本色道久久综合亚洲精品按摩| 亚洲欧美国产一区二区三区| 亚洲影视在线播放| 欧美日韩国产一区二区| 亚洲自拍电影| 亚洲男人天堂2024| 欧美激情一区二区三级高清视频| 国户精品久久久久久久久久久不卡| 午夜一区不卡| 亚洲免费一区二区| 韩日欧美一区| 在线播放日韩专区| 国产欧美一区在线| 国产综合色产| 国产精品99久久久久久久女警| 欧美日韩成人综合天天影院| 欧美日韩色综合| 99精品国产高清一区二区| 国产欧美日韩免费| 国内精品伊人久久久久av一坑| 午夜精品免费| 韩国精品久久久999| 久久精彩视频| 欧美精品一区二区三区一线天视频| 日韩一级成人av| 欧美一区二区在线视频| 久久视频精品在线| 久久手机免费观看| 欧美精品1区| 亚洲欧洲日产国产综合网| 日韩视频中文字幕| 亚洲免费黄色| 国产欧美一区二区三区视频| 亚洲风情亚aⅴ在线发布| 欧美大成色www永久网站婷| 亚洲欧洲一区二区在线观看| 国产午夜精品一区理论片飘花| 欧美性感一类影片在线播放| 亚洲特黄一级片| 国产日韩三区| 亚洲电影成人| 国产亚洲人成a一在线v站| 国产精品久久久久久久久免费| 欧美精品日韩一区| 欧美超级免费视 在线| 亚洲精品一区在线观看香蕉| 日韩视频在线你懂得| 欧美精品高清视频| 亚洲一区二区三区在线观看视频| 国产一区二区三区四区| 狠狠操狠狠色综合网| 国产在线日韩| 日韩午夜黄色| 亚洲国产成人av在线| 欧美一区二区性| 国内精品久久久久久久影视麻豆| 欧美激情综合在线| 久久精品国产99精品国产亚洲性色| 欧美国产精品|