iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 27
0
自我挑戰組

雲端運算系列 第 27

DAY27--雲端運算學習筆記(資料庫)-4

  • 分享至 

  • xImage
  •  

二、深入探討雲端運算

(四)服務模式

2.平台即服務

有關於平台即服務的定義、架構和基本特性在前面有提到過。
接下來來聊聊平台即服務的相關技術。
C.資料庫
d.Bigtable
(1)概觀

  • 系統架構
    Bigtable建基於許多Google基礎設施。一個Bigtable叢集基本上會經由其他的分散式應用程式所構成的共享池,以便在各種機器上運行。
    Bigtable使用GFS儲存紀錄與資料的檔案資料模型,並且其使用的高可用性與持續性的分布式鎖服務稱為Chubby。
  • 資料模型
    資料表實際上是一個稀疏、分散式且長期儲存的多維度以排序map。這個map由列、欄、時間戳記三個維度所構成。
    ►列:在Bigtable中,針對每個列皆使用字串儲存所有的資訊。Bigtable並不支援關聯性資料庫所提供的跨越多個列的交易操作,但其針對列的操作都是原子性的,符合交易一致性。
    ►欄:鍵值對應的單元不能為空值,相對地對於同一個列鍵可以搭配的欄鍵可以為任意個,因此可以在同一列、同一欄家族使用任意的修飾符儲存多個欄資料。欄會組成欄家族,再根據列的區域特性被群組起來。
    ►欄家族:欄家族必須是可印字元的字串,修飾符則可以是任意字元的字串。欄家族是存取控制,與硬碟、記憶體統計的基礎單位。
    ►時間戳記:對於每格單元,Bigtable使用時間戳記進行版本控制。

(2)實作
Bigtable包含三個主要元件:放置在所有客戶端的函式庫、一個主伺服器、以及許多的板伺服器。主伺服器的工作包含:指定板給板伺服器,板伺服器的追加與過期檢測,平衡板伺服器的負載,針對GFS上的檔案進行垃圾收集機制,亦控管了Bigtable綱要的改變。板伺服器可以被動態加入或移除,以應付工作量的改變。

  • SSTable(有序字串表):
    提供由鍵到值一個持久的、有序的且不可改變的對應(map),其儲存的鍵與值都可以是任意的位源字串。其內部架構包含一連串大小可以調整的區塊,為了定位每個區塊,使用區塊索引並存放在SSTable尾端。
    SSTable的特性是SSTable是不可改變的。
  • 板:
    在Bigtable中,板是資料分布和負載平衡的基礎單位。當一個板伺服器失效時,其持有的板會被轉移到剩餘的大量板伺服器,以維持服務,而維持各板伺服器運作的是一個主伺服器。主伺服器會維護上線中的板伺服器紀錄、目前板與板伺服器的狀態分配,還有尚未被分配的板列表。若主伺服器發生錯誤,將觸發主伺服器的錯誤回復機制。
    Bigtable使用Chubby來追蹤板伺服器的狀態。
  • 板位置:
    Bigtable儲存板位置的資訊分成三層,第一層是一個放在Chubby上的檔案,其包含了"根板"的位置;而根板使用了特殊的METADATA表,來存放所有板位置的資訊;每個METADATA板則含有一組存放使用者資料的板位置資訊。
  • 壓實:
    ►次要壓實(降低伺服器記憶體使用量;減少將伺服器從錯誤回復時所需讀取的遞交日誌量)
    ►合併壓實(為了控制SSTable的數量)
    ►主要壓實(確保被刪除的資料能從系統中及時消失,且真正地收回被刪除資料所佔用的資源)

(3)小節
Bigtable是一個Google為了儲存結構化資料所開發的分散式系統。Google目前已從可自行定義的Bigtable數據模型獲取到大量的靈活性。

資料來源

1.《雲端計算》 鍾葉青, 鍾武君(2013)。台灣東華書局股份有限公司


上一篇
DAY26--雲端運算學習筆記(資料庫)-3
下一篇
DAY28--雲端運算學習筆記(SaaS關鍵技術)
系列文
雲端運算30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言