close
Warning:
Can't synchronize with repository "(default)" (Unsupported version control system "svn": libgnutls-deb0.so.28: cannot map zero-fill pages: Cannot allocate memory). Look in the Trac log for more information.
- Timestamp:
-
Jun 17, 2008, 6:28:19 PM (17 years ago)
- Author:
-
sunny
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
|
v28
|
v29
|
|
| 13 | 13 | == 【系統架構】 == |
| 14 | 14 | [[Image(SystemOverview.jpg,align=center)]][[BR]](reference:[http://code.google.com/p/hypertable/wiki/ArchitecturalOverview Architectural Overview]) |
| | 15 | * Hyperspace |
| | 16 | 主要的作業內容為負責整個架構裡面的檔案系統鎖定管理服務,以及儲存檔案系統裡的Metadata資料,其鎖定方式分為獨佔式鎖定與分享式鎖定檔案或目錄,目前架構在同一時間只能運作一個Hyperspace實體,未來可能會實作出可以同時運作多個Hyperspace實體的分散式架構,此外,它儲存的Metadata資料可以幫助搜尋出分散式結構化數據的源頭,因此它也提供搜尋資料結構源頭置的服務。 |
| | 17 | * Range Server |
| | 18 | 資料表的資料內容會分開存放在不同的Row Ranges裡,一個Range Server負責掌管數個Row Ranges,一開始的資料表只會有一個Row Range,隨著資料內容增加,當一個Row Range超過預設的200MB限制大小時,會平分成2個Row Range,然後1個給原本的Range Server負責管理,另一個安排給其他由Master所指定的Range Server。 |
| | 19 | * Master |
| | 20 | * DFS Broker |
| 15 | 21 | == 【欄位導向資料庫原理說明】 == |
| 16 | 22 | * Hypertable 將資料運用主鍵排列儲存在table裡。資料庫所有cell的值都是不解釋的字符數組串,沒有任何類型與型態。Hypertables藉由將tables切割成連續的範圍,並分佈儲存到不同的實體機器上,來擴大規模。Hypertable cluster有兩種server: (1) Range Servers - 掌管一個範圍內的一連串資料; (2) Master Servers - 處理管理工作和監督 Range Servers。單一實體機器可以同時跑 Range Server process 和 Master Server process。單一Range Server可以掌管許多不連續的ranges;單一 Master Server負責很聰明地將它們做分散的規劃管理。如果某單一range滿了的話,range則被分半並重新配置。上半部的range不變,下半部的range則被Master Server重新指定到一個新的Range Server。預設最大的range size是200MB。如果全部的 Range Servers都已滿了, Master Servers則會將ranges搬移到較少較不滿的Range Servers。ranges的清單及它們位在哪裡以METADATA型式存在table裡,如同正規的table一樣與Hypertable共存。而Hyperspace 提供一個類似一般正規檔案系統的命名空間,並為客戶端扮演一個鎖定管理者做控管。 |