《大规模分布式存储系统》读书摘记(持续更新)

3 分布式系统

3.5 容错

故障检测:

  • 心跳协议;
  • 当机器发生故障时,需要将上面的服务迁移到其他服务器上,为了保证强一致性,需要确保故障机器不再提供服务;
  • 主要问题:正常机器和故障机器之间需要对“故障机器是否应该被认为发生故障而停止服务”达成一致。异步网络中多态机器无法达成一致。
  • 租约:带有超时时间的一种授权。考虑一个提前量。P51

故障恢复:

  • 分布式存储系统分为:单层结构和双层结构。一般都为单层,每个数据分片维护多个副本;Bigtable为双层,存储和服务分开,服务层只有一个副本。
  • 单层结构系统维护多个副本,贮备副本之间通过操作日志同步。
  • 两层结构系统将所有数据持久化写入底层的共享分布式文件系统,每个数据分片同一时刻只有一个提供服务的节点。
  • 故障检测和故障恢复过程中,不能提供写服务和强一致性读服务。故障检测事件较长,一般为几秒到十几秒,故障恢复时间较短,两层结构故障恢复只是将数据索引加载到内存中,而不是数据。
  • 为了实现高可用性,总控节点也需要一个备机。

3.6 可扩展性

总控节点:

  • 一般分布式系统中总控节点只需维护数据分片的位置信息,并执行调度,分布式文件系统中还需要维护文件系统目录树,所以内存容量可能会优先成为瓶颈。
  • 如果总控节点成为瓶颈,可以采用两级结构。在总控机与工作机之间增加一层,虽然看似增加了一次网络请求,但是客户端总是能够缓存总控机上的元数据,因此并不会带来额外的开销。

数据库扩容:

  • 假设数据库中有3张表格,首先根据业务将三张表格垂直拆分到不同的DB中,再将每张表通过哈希的方式水平拆分到不同的存储节点。每个拆分后的DB通过主从复制维护多个副本,且允许分布到多个数据中心。
  • 通常采用双倍扩容,将每个分片拆分为两个分片。

异构系统:

  • 同构系统:将存储节点分为若干组,每组内的节点服务相同的数据,一个节点为主节点,其余为从节点。这样的系统的问题在于增加副本时要迁移的数据量非常大,时间长,在迁移的过程中很有可能存储节点再次发生故障。所以这样的节点很难做到自动化。
  • 异构系统:每个分片的副本可以分布到集群中的任何一个存储节点。发生故障时,原有的服务有整个集群的存储节点来恢复。由于整个集群参与恢复数据,故恢复时间短,集群越大,效果越明显。

3.7 分布式协议

两阶段提交协议(2PC):

  • 保证跨多个节点操作的原子性,实现分布式事务
  • 两类节点:协调者(一个),事物参与者(多个)
  • 两个阶段:①请求提交。协调者通知参与者准备提交或者取消事务,然后进入表决过程。在表决阶段,参与者将告知协调者自己的决策(同意或取消)。②当且仅当所有参与者同意提交事务,协调者才通知所有的参与者提交事务,否则通知取消事务。
  • 两阶段提交协议是阻塞协议,执行过程中需要锁住其他更新,且不能容错,大部分分布式系统都敬而远之,放弃对分布式事务的支持。

Paxos协议:

  • 解决多个节点之间一致性问题(通过操作日志同步数据)
  • 主节点故障,多个备节点提议自己成为主节点,Paxos协议保证所有节点最终达成一致。
  • ........

Paxos与2PC:

  • Paxos用于保证一个数据分片的多个副本之间的数据一致性(尤其分布在不同的数据中心时)
  • 2PC用于保证多个数据分片的操作的原子性(多态服务器上的操作要么全部成功要么全部失败)
  • Paxos的两种用法:①实现全局的锁服务或者命名和配置服务(Google Chubby以及Apache Zookeeper)②将数据复制到多个数据中心(Google Megastore以及Google Spanner)
  • 2PC与Paxos结合使用:2PC保证多个数据分片上的操作的原子性,Paxos保证一个数据分片的多个副本之间的一致性。Paxos解决2PC协议中协调者宕机的问题,当协调者出现宕机时,Paxos选举出新的协调者继续提供服务

跨机房部署:

  • 集群整体部署(较常见),每个机房一个总控节点
  • 单个集群跨机房部署,总共一个总控节点
  • Paxos选主副本,总控节点和工作节点不需要保持租约
时间: 2024-08-06 14:34:03

《大规模分布式存储系统》读书摘记(持续更新)的相关文章

《大规模分布式存储系统:原理解析与架构实战》读书笔记(1)

第一章 概述 1.1 分布式存储的概念: 分布式存储系统是大量普通 PC 服务器通过 Internet 互联,对外作为一个整体提供存储服务. 分布式存储系统有如下特征:可扩展,低成本,高性能,易用. 分布式存储系统的挑战主要在于数据. 态信息的持  ,要求在自动迁移.自动容错.并发读写的过程中保证数据的一致性.分布式存储涉及的技术主要来自两个领 域:分布式系统以及数据库. 1.2分类 分布式存储面 的数据需求比较复杂,大致可以分为三类:非结构化数据,结构化数据,半结构化数据 (1)分布式文件系统

大规模分布式存储系统原理解析与架构实战

始读于2014年5月31日兔家中,前三章完成于2014年6月10日22:21:41 后几张是讲一些具体产品的内容,对于每一个产品,都需要确实的使用和经验,以后需要的时候再研究不迟,技术永远在使用中进步更大. 以前对存储尤其是分布式存储的整体知识体系不是太清楚,只是片段式的知道一些理论,通过此书的学习,对分布式存储的原理将豁然开朗,不管是理论的还是后面几章讲述的具体产品,都能做到知其然知其所以然.另外,书中对Paxos协议也进行了深入介绍,理解此协议对时下流行的去中心化将有"夫子言之,于我心有戚戚

分布式存储系统 知识体系

最近看完了杨传辉老师写的<大规模分布式存储系统>一书,发现里面很多知识点和之前看的<大型网站系统与Java中间件>有很多相通之处,也渐渐加 深了我对分布式技术的兴趣.但无奈分布式涵盖范围太广了,分布式存储.分布式计算.CAP理论.Paxos算法.什么GFS.Hadoop. Dynamo.BigTable.Spanner等等,不下点功夫还真不能理顺它们之间的内在关系.所以结合两书以及一些优秀博文,总结了分布式存储的知 识体系,为以后打下基础而努力.由于初入泥潭,必然有些理解不当的地方

我的读书清单(持续更新)

我的读书清单(持续更新) 2017-05-31 <一千零一夜>2006(四五年级) <中华上下五千年>2008(初一) <鲁滨孙漂流记>2008(初二) <钢铁是怎样炼成的>2009(初二) <坏蛋是怎样炼成的>2010(初三) <平凡的世界>2011(高二) <悲惨世界>2012(高二) <穆斯林的葬礼>2012(高二) <红楼梦>2012(高二) <边城> <傲慢与偏见>

第二期:关于十大数据相关问答汇总,关注持续更新中哦~

NO.1 学大数据如何零基础入门? 答:学习任何东西都一样,一开始就是一道坎,我很喜欢看书,特别是容易入门的书.对于大数据,我的具体研究方向是大规模数据的机器学习应用,所以首先要掌握以下基本概念.微积分(求导,极值,极限)线性代数(矩阵表示.矩阵计算.特征根.特征向量)概率论+统计(很多数据分析建模基于统计模型).统计推断.随机过程线性规划+凸优化.非线性规划等*数值计算.数值线代等当然一开始只要有微积分.线代以及概率论基本上就可以入门机器学习,我强烈推荐几本书,这几本书不需要看完,只需要对其中

分布式存储系统-HBASE

简介 HBase –Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBse技术可在廉价PC Server上搭建起大规模结构化存储集群.HBase利用Hadoop HDFS作为文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调工具. HBase(NoSQL)的数据模型 HBase 存储的网站页面数据示例 1.表(table),是存储管理数据的. 2.行键(row key),类似于MySQL中的

关于大数据相关的问答汇总,持续更新中~

NO.1 想要学好大数据需掌握哪些技术? 答:1,Java编程技术 Java编程技术是大数据学习的基础,Java是一种强类型语言,拥有极高的跨平台能力,可以编写桌面应用程序.Web应用程序.分布式系统和嵌入式系统应用程序等,是大数据工程师最喜欢的编程工具,因此,想学好大数据,掌握Java基础是必不可少的! 2.Linux命令 对于大数据开发通常是在Linux环境下进行的,相比Linux操作系统,Windows操作系统是封闭的操作系统,开源的大数据软件很受限制,因此,想从事大数据开发相关工作,还需

自己总结的 iOS ,Mac 开源项目以及库,知识点------持续更新

自己在 git  上看到一个非常好的总结的东西,但是呢, fork  了几次,就是 fork  不到我的 git 上,干脆复制进去,但是,也是认真去每一个每一个去认真看了,并且也是补充了一些,感觉非常棒,所以好东西要分享,为啥用 CN 博客,有个好处,可以随时修改,可以持续更新,不用每次都要再发表,感觉这样棒棒的 我们 自己总结的iOS.mac开源项目及库,持续更新.... github排名 https://github.com/trending,github搜索:https://github.

Ceph分布式存储系统

Ceph分布式存储系统 Ceph是根据加州大学Santa Cruz分校的Sage Weil的博士论文所设计开发的新一代自由软件分布式文件系统,其设计目标是良好的可扩展性(PB级别以上).高性能及高可靠性.Ceph其命名和UCSC(Ceph 的诞生地)的吉祥物有关,这个吉祥物是"Sammy",一个香蕉色的蛞蝓,就是头足类中无壳的软体动物.这些有多触角的头足类动物,是对一个分布式文件系统高度并行的形象比喻. 其设计遵循了三个原则:数据与元数据的分离,动态的分布式的元数据管理,可靠统一的分布