google分布式存储系统Megastore设计目标及方案选择 - 新闻中心 - 福州哈唐网络-福建IDC企业!专注云主机及服务器租用托管13年!

新闻中心

首页 > 新闻中心 > 行业新闻 >

google分布式存储系统Megastore设计目标及方案选择

时间:2016-11-18 11:06:08   阅读:

 
  互联网的迅速发展带来了新的数据应用场景,和传统的数据存储有别的是,互联网上的应用对于数据的可用性和系统的扩展性具有很高的要求。一般的互联网应用都要求能够做到7天x24小时的不间断服务器租用服务,达不到的话则会带来较差的用户体验。热门的应用往往会在短时间内经历急剧的用户数量增长,这就要求系统具有良好的可扩展性。在互联网的应用中,为了达到好的可扩展性,常常会采用NoSQL存储方式。但是从应用程序的构建方面来看,传统的关系型数据库又有着NoSQL所不具备的优势。Google设计和构建了用于互联网中交互式服务的分布式存储系统Megastore,该系统成功的将关系型数据库和NoSQL的特点与优势进行了融合。本节将向大家介绍该系统,着重突出Megastore设计与构建过程中的核心思想和技术。
 
设计目标及方案选择
 
  Megastore的设计目标很明确,那就是设计一种介于传统的关系型数据库和NoSQL之间的存储技术,尽可能达到髙可用性和高可扩展性的统一。为了达到这一目标,设计团队采用了如下的两种方法:
 
  (1)针对可用性的要求,实现了个同步的、容错的、适合远距离传输的复制机制。 在方案的选择和实现过程中Megastore团队研究和比较了一些传统的远距离复制技术,最终确定了引入Paxos算法并对其做出一定的改进以满足远距离同步复制的要求。
 
  (2)针对可扩展性的要求,设计团队借鉴了数据库中数据分区的思想,将整个大的数据分割成很多小的数据分区,每个数据分区连同它自身的日志存放在NoSQL数据库中,具体来说就是存放在Bigtable中。
 
  图2-21显示了数据的分区和复制。在Megastore中,这些小的数据分区被称为实体组集(Entity Groups)。每个实体组集包含若干的实体组(Entity Group,相当于分区中表 的概念),而一个实体组中又包含很多的实体(Entity,相当于表中记录的概念)。从图中还可以看出单个实体组支持ACID语义,以上这些都体现了关系型数据库的特征。
 
\
 
  实体组集之间只具有比较松散的一致性。每个实体组都通过复制技术在数据中心中保 存若干数据副本,这些实体组及其副本都存储在NoSQL数据库(Bigtable)中。
 


闽公网安备 35010002000114号