Changes between Version 25 and Version 26 of HyperTable
- Timestamp:
- Jun 17, 2008, 1:16:12 PM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
HyperTable
v25 v26 1 1 [[PageOutline]] 2 2 3 = Hypertable Knowledge Database=3 = Hypertable = 4 4 5 == 【 Hypertable源起】 ==5 == 【源起】 == 6 6 * 搜尋引擎公司Zvents根據Google的9位研究人員在2006年發表的Bigtable設計規格為基礎[FYI]《[http://labs.google.com/papers/bigtable-osdi06.pdf Bigtable:結構化數據的分佈存儲系統]》,推出了一款以C++撰寫的開放源碼之分散式數據儲存系統-Hypertable專案,其發展目的則是為了能做出一套具備有PB(petabye)的資料量規模,同時具備高度延展性與讀取效能迅速之數據儲存系統,並進而形成一套開放原始碼的標準。 7 7 8 == 【 Hypertable簡介】 ==8 == 【簡介】 == 9 9 * 總結來說Hypertable是一個高效能,分散式,開放源碼,與欄位導向的資料庫,可以儲存和處理叢集電腦上大量的節構化與非結構化的資料,它提供C++的API及HQL(Hypertable Query Language)給用戶端來存取資料庫內容。 10 10 * 它的用途並不是為了取代傳統的資料庫管理系統(像是MySQL與Oracle DB),而是為了可以儲存與管理大量的資料集。傳統的關連式資料庫RDBMs(Relational Database Management)是交易導向式,提供許多進階功能給使用者查詢結構化的資料庫內容。Hypertable為了逹到規模可彈性調整以及高效能的輸出,捨棄像是RDBMs常在使用的join或其他query的功能特色,MySQL之類的RDBMs系統屬於列導向較適合用於寫入動作較頻 繁的工作負載情形,Hypertable屬於欄位導向較適合讀取動作較頻繁的工作負載情形。 11 11 * 它建構於分散式檔案 系統(DFS)之上,目前有許多DFS系統,任一DFS均可架設Hypertable,一套DFS可以讓許多機器看起來就好像單一虛擬磁碟,而且都均有容錯與備份機制,因此DFSs可以結合許多叢集電腦的儲存資源,提供高速與大資料量的存取效能,故Hypertable架構在DFS之上也就可以提供高速與高容量的資料庫儲存空間。 12 == 【How it works】 == 12 == 【系統架構】 == 13 [[Image:SystemOverview.jpg |frame|System Overview]] 14 == 【欄位導向資料庫原理說明】 == 13 15 * 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 提供一個類似一般正規檔案系統的命名空間,並為客戶端扮演一個鎖定管理者做控管。 14 16