999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

B Tree文件系統(tǒng)設計方案

2014-05-30 04:51:40郝愛語
關鍵詞:結構信息

郝愛語

摘 要:在基于地理位置的搜索中,對海量文檔某些屬性值的范圍進行查詢是比較迫切的需求,B Tree是解決這類問題的一個主要辦法,文章給出了B Tree文件系統(tǒng)的設計方案,闡述了B樹結構及其相應操作,并提出由B樹提升至B*樹的設想。

關鍵詞:B樹 B*樹 磁盤節(jié)點

一、提出問題

根據搜索系統(tǒng)的實際需要,查詢操作的基本需求明細見表1所示。

表1 查詢操作需求明細

二、B樹概述

1. B樹定義

B樹,即二叉搜索樹,是一種平衡樹,其定義是:所有非葉子結點至多擁有兩個兒子(Left和Right);所有結點存儲一個關鍵字;非葉子結點的左指針指向小于其關鍵字的子樹,右指針指向大于其關鍵字的子樹,如圖1所示。

B樹滿足基本的平衡樹的時間和空間復雜度,最初的B樹會在節(jié)點上面保存實際數(shù)據,改進后的B+樹只在葉子節(jié)點保存實際數(shù)據(或者指針),B樹滿足下面的一些基本特性。

1) 節(jié)點用指針連接

2) 有頭節(jié)點、中間節(jié)點和葉子節(jié)點之分

3) 每個葉子節(jié)點的深度都是一樣的

4) 只有葉子節(jié)點存放數(shù)據(或者數(shù)據指針)

5) 每個節(jié)點的孩子個數(shù)最大為N,最小為N/2

6) 頭節(jié)點的孩子個數(shù)可以少于N/2

7) 查找的時候,根據key值往下遍歷

圖1 B樹及其節(jié)點結構這里需要注意:在葉子節(jié)點上面,每個key都對應一個value,這個value的值是值得考慮的,正常來說,這個value都是一個指針,指向具體數(shù)據的位置,但是當value的size不大的時候,可以把value變成任何值。

2. B樹節(jié)點結構

一般的說,B樹有3種類型的節(jié)點,即:頭節(jié)點、中間節(jié)點和葉子節(jié)點,其中,頭節(jié)點和中間節(jié)點的差異很小,可以放到一起考慮。首先,所有的節(jié)點都包含了如下的數(shù)據元素:

1) 節(jié)點ID

2) 節(jié)點包含的Key值數(shù)組

3) 節(jié)點的層次

4) 節(jié)點的類型

中間節(jié)點還包含了如下的數(shù)據:節(jié)點的孩子ID數(shù)組

葉子節(jié)點還包含了如下的數(shù)據:節(jié)點Key數(shù)組對應的實際數(shù)值數(shù)組

內存中的葉子節(jié)點還包含了dirty屬性,標明節(jié)點是否被修改了,而緩沖中的節(jié)點還會有對應的權重。

3. B樹基本信息

B樹基本信息保存了有關B樹的所有配置信息和每個節(jié)點的物理位置,B樹的配置信息包含有:

1) 中間節(jié)點的最大孩子數(shù)

2) 中間節(jié)點的最小孩子數(shù)(或許這里會用分裂規(guī)則替代,或者直接使用1-2分裂,忽略第一個參數(shù))

3) Key值類型;這個參數(shù)是否需要還需要考慮

4) 每個節(jié)點的物理位置,每個節(jié)點的物理位置是一個3元組,即:

4. B樹的一般原則

B樹在結構上沒有對其每個節(jié)點包含的元素個數(shù)以及樹的高度進行任何限制,實際應用中,一般應該滿足如下原則:

1) 每個節(jié)點包含的Key值最大個數(shù) >= 200

2) B樹的高度 <= 4

5. B樹的搜索

B樹的搜索,要從根結點開始,如果查詢的關鍵字與結點的關鍵字相等,則搜索成果;否則,如果查詢關鍵字比結點關鍵字小,就進入左孩子結點;如果比結點關鍵字大,就進入右孩子結點;如果左孩子或右孩子結點的指針為空,則顯示提示消息:“找不到相應的關鍵字”;

如果B樹的所有非葉子結點的左右子樹的結點數(shù)目均保持平衡,那么B樹的搜索性能逼近二分查找。相比連續(xù)內存空間的二分查找,B樹的優(yōu)點是:改變B樹結構(插入與刪除結點)不需要移動大段的內存數(shù)據,甚至通常是常數(shù)開銷,如圖2和圖3所示。

圖2 插入結點結構(1)

圖3 插入節(jié)點結構(2)但是B樹在經過多次插入與刪除后,有可能導致不同的結構:

圖4 插入或刪除操作前結構圖5所示的結構也是一個B樹,但它的搜索性能已經是線性的了,同樣的關鍵字集合有可能導致不同的樹結構索引。所以在使用B樹的時候,還需要考慮盡可能讓B樹保持圖4的結構,而避免圖5的結構,也就是所謂的“平衡”問題。實際使用的B樹都是在原B樹的基礎上加上平衡算法,即“平衡二叉樹”,如何保持B樹結點分布均勻的平衡算法是平衡二叉樹的關鍵,這里不再詳述。

三、解決方案

1.內存B樹結構

圖5 多次插入或刪除操作后結構

這里使用緩沖來達到加快B樹的查詢和減少內存占用的目的,B樹的基本結構見圖6所示。

內存中的B樹只包含了部分節(jié)點,主要是包含了前面的一級或者多級節(jié)點。當在樹上行走的時候,如果遇到節(jié)點不在樹上時,就到緩沖或者磁盤去尋找。B樹并不把獲得的節(jié)點掛到自己上面。內存節(jié)點集合(即緩沖)是一個簡單的緩沖結構,它通過某種策略來決定哪些節(jié)點需要被淘汰。磁盤節(jié)點集合是把節(jié)點保存到磁盤的集合,它提供了讀取磁盤節(jié)點的接口。

圖6 B樹的基本結構2.內存節(jié)點集合

在內存節(jié)點集合中,每個節(jié)點由一個id進行標示,這個id是唯一的(或許它表示這個節(jié)點在磁盤中的位置)。每個節(jié)點同時還有一個dirty標志,用來標示這個節(jié)點是否被改變了,被改變的節(jié)點由外部控制以某個策略(未定)刷新到磁盤節(jié)點集合。一般的說,當節(jié)點被淘汰出緩沖的時候,需要檢測一下其dirty標志,決定是否需要刷新到磁盤上。

內存B樹新構建的節(jié)點除了保存到磁盤節(jié)點集合以外,可能還會保存到內存節(jié)點集合。

3.磁盤節(jié)點集合

磁盤節(jié)點集合同樣通過id來標示一個節(jié)點。磁盤節(jié)點集合的結構比較復雜,目前暫時把磁盤節(jié)點集合映射到單一文件上,將來可能會把磁盤節(jié)點結合映射到多個文件上面,比如,把B樹的基本信息和節(jié)點數(shù)據集分離),這個文件的結構見圖7所示。

圖7 磁盤節(jié)點映射文件結構磁盤節(jié)點集合支持幾種基本的操作,具體操作介紹如下。

3.1加入新的節(jié)點

加入新的節(jié)點到磁盤節(jié)點集合的時候,直接把節(jié)點數(shù)據加入到文件的最后面,同時把基本信息寫入到B樹基本信息里面。

3.2修改節(jié)點

當某個節(jié)點被修改的時候,情況比增加一個節(jié)點要復雜一點。在某個節(jié)點被修改的時候,通過讀取B樹基本信息,獲得這個節(jié)點的原始占用長度,如果這個長度比新的長度大,那么,直接在原始位置覆蓋新數(shù)據上去;否則,刪除原始節(jié)點,加入新的節(jié)點進去,同時刷新B樹基本信息。

3.3刪除節(jié)點

刪除一個節(jié)點的時候,直接把節(jié)點信息從B樹基本信息里面刪除即可。

四、 提升到B*樹

所謂的B*樹是指B樹的2-3分裂規(guī)則。普通的B樹是1-2分裂規(guī)則,即保證節(jié)點(除了頭)至少有50%的空間占用。而2-3分裂規(guī)則是保證節(jié)點有67%的空間占用。考慮到B*樹實現(xiàn)的復雜性,本方案暫時不處理空間占用的問題。如果將來有必要,再做這個方面的考慮。同理,對于號稱難度超高的3-4分裂規(guī)則,更不在考慮之列。

五、小結

文中介紹了B Tree文件系統(tǒng)的設計問題,給出了B樹的基本信息,并討論了B樹的整個操作過程,得出了提高數(shù)據查詢效率的主要思想,解決了海量文檔的查詢辦法。

參考文獻:

[1]楊利,昌月樓著.并行數(shù)據庫技術.長沙:國防科技大學出版社,2000[2]張華,顧紅飛,劉濤.基于B+ 樹的文本信息檢索技術[J].皖西學院學報,2010.

基金項目:蘇州工業(yè)職業(yè)技術學院院級課題《云計算環(huán)境下基于智能終端的計算機軟件開發(fā)技術分析》 項目編號:SGKB201411。

猜你喜歡
結構信息
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結構的應用
模具制造(2019年3期)2019-06-06 02:10:54
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
論《日出》的結構
創(chuàng)新治理結構促進中小企業(yè)持續(xù)成長
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
基于BIM的結構出圖
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 久久大香伊蕉在人线观看热2| 免费在线成人网| 99中文字幕亚洲一区二区| 欧美成人午夜视频| 欧美一区日韩一区中文字幕页| 欧美高清三区| 亚洲天堂.com| 欧美日韩一区二区三区四区在线观看 | 综合久久久久久久综合网| 伊人久久久久久久| 国产在线一区二区视频| 亚洲一级色| 中文字幕1区2区| 亚洲av日韩av制服丝袜| 免费在线国产一区二区三区精品| 国产香蕉在线视频| 国产成人综合在线观看| 久热这里只有精品6| 无码高潮喷水在线观看| 久久精品国产999大香线焦| 国产三级韩国三级理| 99精品影院| 亚洲天堂网2014| 一级一级一片免费| 日韩国产亚洲一区二区在线观看| 在线国产你懂的| 欧美国产日韩另类| 麻豆AV网站免费进入| 国产喷水视频| 亚洲另类色| 日本国产一区在线观看| 久久久精品无码一区二区三区| 国产女主播一区| 亚洲欧美激情另类| 中文字幕亚洲另类天堂| 国产成人精品一区二区秒拍1o| 伊人福利视频| 国产Av无码精品色午夜| 女人18毛片水真多国产| 亚洲国产91人成在线| 免费人成又黄又爽的视频网站| 欧美日韩导航| 欧美视频在线不卡| 另类重口100页在线播放| 91国内在线视频| 亚洲第一成年网| 在线国产三级| 久久国产精品波多野结衣| 婷婷综合亚洲| 自偷自拍三级全三级视频| 国产v精品成人免费视频71pao| 在线观看亚洲精品福利片| 亚洲精品大秀视频| 亚国产欧美在线人成| 又猛又黄又爽无遮挡的视频网站| vvvv98国产成人综合青青| 91美女视频在线| 国产99在线| 亚洲区一区| 久久精品无码国产一区二区三区| 久久精品无码专区免费| 国产资源免费观看| 国产色伊人| 国产免费精彩视频| 亚洲色图另类| 看av免费毛片手机播放| 青青国产视频| 国产自在线播放| 国内精品伊人久久久久7777人| AV不卡在线永久免费观看| 日韩在线永久免费播放| 97无码免费人妻超级碰碰碰| 亚洲AV电影不卡在线观看| 欧美色视频在线| 97在线观看视频免费| 在线观看免费国产| 国产精品无码AⅤ在线观看播放| 国国产a国产片免费麻豆| 亚洲一级色| 日本午夜精品一本在线观看| 国产精品久久久久久久久kt| 思思热精品在线8|