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。参考: