1 總體介紹
Microsoft雲存儲服務分爲兩個部分,SQL Azure和Azure Storage。SQL Azure直接在原有的SQL Server上引入分佈式的因素,在滿足一定可擴展性的前提下儘可能不犧牲原有的關係型數據庫功能。SQL Azure的可擴展性是有限的,單個SQL Azure實例不允許超過50GB,這是因爲SQL Azure不支持子表動態分裂,單個SQL Azure實例必須足夠小從而可以被一個節點服務。
Azure Storage與bigtable/GFS的設計思路一致,Azure Storage分爲Blob, Queue和Table三個部分。
2 Azure Storage介紹
由三個重要部分構成
■Windows Azure Blob:存儲二進制數據,用來存儲大型數據。採用分層分塊機制,見圖3。
■Windows Azure Table:存儲結構數據,類似bigtable
■Windows Azure Queue:類似Windows系統的消息隊列。
2.1 Azure Table
類似Bigtable,分爲Partition Master和Partition Server兩種角色,分別對應Bigtable Master和Tablet Server。每一個Partition(相當於Bigtable中的Tablet)同時只能被一個Partition Server服務,Partition Master會執行負載均衡等工作。Bigtable中分爲Root Table, Meta Table和User Table,Azure Table Storage可能會爲了簡單起見消除Meta Table,所有的元數據操作全部放到PartitionMaster上。
Table中,由2個屬性partitionkey和rowkey一起唯一標識一個table中的實體。
在分片內部實現了ACID。參考: