Changes between Version 20 and Version 21 of HyperTable


Ignore:
Timestamp:
Jun 2, 2008, 4:55:40 PM (16 years ago)
Author:
sunny
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HyperTable

    v20 v21  
    44
    55== 【Hypertable 源起】 ==
    6     搜尋引擎公司Zvents以Google的9位研究人員在2006年發表的Bigtable(簡稱BT,Google內部使用的文件儲存系統)設計規格為基礎[FYI]《[http://labs.google.com/papers/bigtable-osdi06.pdf Bigtable:結構化數據的分佈存儲系統]》,推出了一款開放源碼的分散式數據儲存系統Hypertable專案。以 C++ 撰寫,可架在 HDFS 和 KFS 上,按照1000節點比例設計,0.9 alpha測試版已經在10個節點上測試過,儘管還在初期階段,但已有不錯的效能:寫入 28M 列的資料,各節點寫入速率可達 7MB/s,讀取速率可達 1M cells/s
     6 * 搜尋引擎公司Zvents根據Google的9位研究人員在2006年發表的Bigtable設計規格為基礎[FYI]《[http://labs.google.com/papers/bigtable-osdi06.pdf Bigtable:結構化數據的分佈存儲系統]》,推出了一款以C++撰寫的開放源碼之分散式數據儲存系統-Hypertable專案,其發展目的則是為了能做出一套具備有PB(petabye)的資料量規模,同時具備高度延展性與讀取效能迅速之數據儲存系統,並進而形成一套開放原始碼的標準
    77
    88== 【Hypertable 簡介】 ==
    9    總結來說Hypertable是一個高效能,分散式,開放源碼,與欄位導向的資料庫,可以儲存,處理叢集電腦上大量的節構化與非結構化的資料,Hypertable提供C++的API及HQL(Hypertable Query Language)給用戶端來存取資料庫內容。Hypertable的用途並不是為了取代傳統的資料庫管理系統(像是MySQL與Oracle DB),而是為了可以儲存與管理大量的資料集。傳統的關連式資料庫RDBMs(Relational Database Management)是交易導向式,提供許多進階功能給使用者查詢結構化的資料庫內容。Hypertable為了逹到規模可彈性調整以及高效能的輸出,捨棄像是RDBMs常在使用的join或其他query的功能特色,MySQL之類的RDBMs系統屬於row-oriented較適合用於寫入動作較頻繁的工作負載情形,Hypertable屬於column-oriented較適合讀取動作較頻繁的工作負載情形。Hypertable建構於分散式檔案系統(DFS)之上,目前有許多DFS系統,任一DFS均可架設Hypertable,一套DFS可以讓許多機器看起來就好像單一虛擬磁碟,而且都均有容錯與備份機制,因此DFSs可以結合許多叢集電腦的儲存資源,提供高速與大資料量的存取效能,故Hypertable架構在DFS之上也就可以提供高速與高容量的資料庫儲存空間。   
     9 * 總結來說Hypertable是一個高效能,分散式,開放源碼,與欄位導向的資料庫,可以儲存,處理叢集電腦上大量的節構化與非結構化的資料,Hypertable提供C++的API及HQL(Hypertable Query Language)給用戶端來存取資料庫內容。Hypertable的用途並不是為了取代傳統的資料庫管理系統(像是MySQL與Oracle DB),而是為了可以儲存與管理大量的資料集。傳統的關連式資料庫RDBMs(Relational Database Management)是交易導向式,提供許多進階功能給使用者查詢結構化的資料庫內容。Hypertable為了逹到規模可彈性調整以及高效能的輸出,捨棄像是RDBMs常在使用的join或其他query的功能特色,MySQL之類的RDBMs系統屬於row-oriented較適合用於寫入動作較頻繁的工作負載情形,Hypertable屬於column-oriented較適合讀取動作較頻繁的工作負載情形。Hypertable建構於分散式檔案系統(DFS)之上,目前有許多DFS系統,任一DFS均可架設Hypertable,一套DFS可以讓許多機器看起來就好像單一虛擬磁碟,而且都均有容錯與備份機制,因此DFSs可以結合許多叢集電腦的儲存資源,提供高速與大資料量的存取效能,故Hypertable架構在DFS之上也就可以提供高速與高容量的資料庫儲存空間。   
    1010== 【How it works】 ==
    1111 * 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 提供一個類似一般正規檔案系統的命名空間,並為客戶端扮演一個鎖定管理者做控管。