分布式表格系統:?Tera

cwf8 9年前發布 | 18K 次閱讀 ?Tera 分布式/云計算/大數據

Tera 是一個高性能、可伸縮的數據庫系統,被設計用來管理搜索引擎萬億量級的超鏈與網頁信息。為實現數據的實時分析與高效訪問,我們使用按行鍵、列名和時間戳全 局排序的三維數據模型組織數據,使用多級Cache系統,充分利用新一代服務器硬件大內存、SSD盤和萬兆網卡的性能優勢,做到模型靈活的同時,實現了高 吞吐與水平擴展。

特性

  • 全局有序

  • 熱點自動分片

  • 數據強一致

  • 多版本,自動垃圾收集

  • 按列存儲,支持內存表

  • 動態schema

  • 支持表格快照

  • 高效隨機讀寫

數據模型

Tera使用了bigtable的數據模型,可以將一張表格理解為這樣一種數據結構:
map<RowKey, map<ColummnFamily:Qualifier, map<Timestamp, Value> > > 
其中RowKey、ColumnFamily、Qualifier和Value是字符串,Timestamp是一個64位整形。ColumnFamliy需要建表時指定,是訪問控制、版本保留等策略的基本單位。

系統架構

系 統主要由Tabletserver、Master和ClientSDK三部分構成。其中Tabletserver是核心服務器,承載著所有的數據管理與訪 問;Master是系統的仲裁者,負責表格的創建、schema更新與負載均衡;ClientSDK包含供管理員使用的命令行工具teracli和給用戶 使用的SDK。 表格被按RowKey全局排序,并橫向切分成多個Tablet,每個Tablet負責服務RowKey的一個區間,表格又被縱向且分為多個 LocalityGroup,一個Tablet的多個Localitygroup在物理上單獨存儲,可以選擇不同的存儲介質,以優化訪問效率。

分布式表格系統:?Tera

系統依賴

  • 使用分布式文件系統(HDFS、NFS等)持久化數據與元信息

  • 使用zookeeper選主與協調

  • 使用Sofa-pbrpc實現跨進程通信

系統構建

參考BUILD

使用示例

參考wiki

反饋與技術支持

tera_dev@baidu.com



項目主頁:
http://www.baiduhome.net/lib/view/home/1427286156402

 本文由用戶 cwf8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!