本文介绍下分布式系统设计中的一些关键问题及解决思路:
数据的分布方式
副本的保存方式
副本的控制

节点状态监控


1)数据的分布方式
hash分布
用于key-value模型的存储系统中,数据库中的分表也能够使用这样的方式。
利用hash函数将对象散列到不同的机器。
长处:
散列型号,分布均匀,实现简单。
缺点
可扩展性(scalability)不强,添加新的机器会导致之前的映射所有失效。
按数据范围分布
用于key-value模型的存储系统中,数据库中的分表也能够使用这样的方式。
将数据分成不同的区间,分到不同的机器上。区间能够採用动态创建的方式。
长处:
数据拆分规则灵活,扩展性强
缺点:
元数据较多(维护数据分区和机器之间的相应关系),easy成为瓶颈。
按数据量分布
用于文件模型的存储系统。
分布过程中,保证个台机器上的数据量大体一致,即负载均衡方式。
长处:扩展性强
缺点:维护元数据(每一个文件分布在那台机器上)
一致性哈希
用于key-value模型的存储系统中
克服了hash分布的扩展性缺陷,广泛用于各种产品实现,如memcached, openstack swift等。
2)副本的保存方式
以机器为单位
副本以机器为单位,若干机器互为副本,副本之间的数据全然同样。
长处
实现简单
缺点
数据恢复效率不高(恢复源较少)。负载分布easy不均。
以数据段为单位
将数据拆分为合理的数据段,以数据段为单位进行副本保存。数据段的大小同样,有多种叫法:chunk, partition,segment等。
长处
恢复快,扩展性强
缺点
维护元数据,难于实现
3)副本控制
用来管理多副本之间的一致性问题,关系到系统的一致性模型。
中心化的副本控制
一个副本充其中心节点,控制其它副本,如primary-secondary方式。更新操作都要通过中心节点完毕,该方式的实现相对简单。

典型代表如GFS, mysql中的master-slave模式。

去中心化,个副本之间没有中心控制。
这样的方式的实现比較复杂,採用的不多,代表产品Dynamo。
4)节点状态监控
heartbeat
存在一个监控节点,其它节点定时向监控节点发送heartbeat信息。
lease机制
也能够採用lease机制实现状态监控。
fastdfs中的方法
1)数据的分布方式

按数据量分布,不同的组之间做负载均衡。

2)副本的保存方式
以机器为单位保存副本,互为副本的几台机器构成一个组。
3)副本控制
由tracker在组中选择一个storage作为中心节点(primary),其它的节点为从节点(secondary)。又中心节点负责向从节点同步数据。

4)节点状态监控
storage定时向tracker发送heatbeat信息,一旦规定的时间内没有收到心跳信息,将对应的节点下线。
參考文章
《分布式系统原理介绍》,刘杰

转载于:https://www.cnblogs.com/jhcelue/p/6737768.html

分布式存储系统设计的关键问题相关推荐

  1. 分布式存储系统设计的几个问题和考虑点

    http://www.xupifu.com/2017/04/08/distributed-storage-system-topics/ 数据的可靠性是任何一个存储系统的第一要务,之后才是根据实际业务场 ...

  2. 对分布式存储系统设计架构的理解

    1传统存储 今天和大家浅谈一下分布式存储设计方面我个人的一些理解.首先声明我本人不是做研发的,只是一个有着10年左右存储行业经验的普通工程师和产品经理.最早接触存储是在2010年,那时候说起存储大多指 ...

  3. 存储--盘古_阿里云飞天分布式存储系统设计深度解析

    摘要: 本文依据盘古团队的吴洋分享了<盘古:飞天分布式存储系统实践>视频整理而成. 他主要从以下三个方面进行了分享:盘古是什么?盘古是用来解决什么问题的?盘古是怎么解决问题的?他主要介绍了 ...

  4. 存储--盘古,阿里云飞天分布式存储系统设计深度解析

    本文依据盘古团队的吴洋分享了<盘古:飞天分布式存储系统实践>视频整理而成. 他主要从以下三个方面进行了分享:盘古是什么?盘古是用来解决什么问题的?盘古是怎么解决问题的?他主要介绍了盘古的分 ...

  5. 帆船回顾会议_我在帆船上学到的有关系统设计的关键课程

    帆船回顾会议 I help people use technology to work efficiently. I analyze the way people work, find broken ...

  6. 分布式存储系统设计(2)—— 数据分片

    在分布式存储系统中,数据需要分散存储在多台设备上,数据分片(Sharding)就是用来确定数据在多台存储设备上分布的技术.数据分片要达到三个目的: 分布均匀,即每台设备上的数据量要尽可能相近: 负载均 ...

  7. 分布式存储系统设计 - Gossip

    Gossip  是一种被用在分布式的非强一致性系统中用来同步各节点状态的方法. 因为在去中心化的集群环境里,各节点"实时"地洞察其他节点的重要信息是非常重要的.这消息包括: - 节 ...

  8. 分布式存储系统设计 反熵 (Anti-Entropy)

    转载:http://www.360doc.com/content/12/0614/14/7936054_218097481.shtml Anti-Entropy 机制被用来保证在不同节点上的备份(re ...

  9. 基于智能卡的嵌入式网络加密安全系统设计

    引 言 金融安全支付系统是专门针对金融领域应用需求,实现小型化.便捷.安全的自助交易的软硬件平台,能够为多种应用提供高速安全服务,解决目前交易信息在传输过程中存在的各种安全问题,实现金融信息的安全交易 ...

  10. jsp 爱心宠物诊所源码_“爱心宠物诊所”系统设计-JSP编程毕业设计

    <"爱心宠物诊所"系统设计-JSP编程毕业设计>由会员分享,可在线阅读,更多相关<"爱心宠物诊所"系统设计-JSP编程毕业设计(31页珍藏版) ...

最新文章

  1. Android Gradle 笔记
  2. 解决Maven项目pom.xml文件报xxx\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径。)问题...
  3. 句向量的表示(上)—无监督
  4. python基础for循环和while循环(十)
  5. 大数据与Hadoop有什么关系?大数据Hadoop入门简介
  6. [转载] python 一个简单的天气预报程序
  7. python实现命令行工具jq的json路径过滤
  8. sql中的字符串拼接
  9. 网站编辑,你们的名字叫搬运工?
  10. 2012年托福听力真题词汇总结
  11. Word 首页如何不插入页码? 页码从正文开始,如何分节
  12. Ubuntu下安装Maskrcnn_benchmark(pytorch)踩坑分享
  13. 家谱树java_树家族算法梳理
  14. MogaFX—ServiceNow的Bill McDermott正在关注货币汇率
  15. Android 集成极光推送和厂商通道
  16. 教育直播APP开发,在线教育系统开发(功能)
  17. HttpClient 实现酷狗 Top500 音乐下载
  18. 划分非独立同分布(Non-IID)数据集
  19. 云队友丨抖音抢走了拼多多的支付“核按钮”
  20. Binary Tree Upside Down LC解题记录

热门文章

  1. 【sklearn第二十讲】聚类
  2. 【CoRL 2018】通过元策略优化的MBRL算法
  3. Lecture 5:无模型控制
  4. matlab dot函数
  5. 自学了三天的SeaJs学习,解决了前端的一些问题,与小伙伴们一起分享一下!...
  6. jQuery拖动调整表格列宽度-resizableColumns
  7. python fileinput处理多文件
  8. 升级centos6.8内核
  9. Linux(Ubuntu)常用命令(五)—— vi/vim常用操作
  10. 使用docker部署.net core应用