加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜新站长网 (https://www.0418zz.com.cn/)- 管理运维、AI硬件、数据集成、云备份、负载均衡!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

浅谈分布式存储系统的数据分布算法

发布时间:2021-03-12 10:41:55 所属栏目:传媒 来源:互联网
导读:这里假设 目标数据 是以 key 标识的 数据块 或 对象。在一个包含 多个存储节点 的集群中,数据分布算法 需要为每一个给定的 key 指定 一个 或 多个 对应的 存储节点 负责,数据分布算法 有两个基本目标: 均匀性(Uniformity):不同存储节点的 负载 应该 均衡



这里假设 目标数据 是以 key 标识的 数据块 或 对象。在一个包含 多个存储节点 的集群中,数据分布算法 需要为每一个给定的 key 指定 一个 或 多个 对应的 存储节点 负责,数据分布算法 有两个基本目标:

  • 均匀性(Uniformity):不同存储节点的 负载 应该 均衡;
  • 稳定性(Consistency):每次一个 key 通过 数据分布算法 得到的 分布结果应该保持 基本稳定,即使再有存储节点发生变化的情况下。

可以看出,这两个目标在一定程度上是 相互矛盾 的。当有 存储节点增加或删除时,为了保持稳定应该 尽量少 的进行 数据的移动 和 重新分配,而这样又势必会带来 负载不均衡。同样追求 极致均匀 也会导致较多的 数据迁移。

所以我们希望在这两个极端之间,找到一个点以获得合适的均匀性和稳定性。除了上述两个基本目标外,工程中还需要从以下几个方面考虑数据分布算法的优劣:

  • 性能可扩展性:这个主要考虑的是算法相对于 存储节点规模 的 时间复杂度。为了整个系统的可扩展性,数据分布算法不应该在集群规模扩大后显著的增加运行时间。
  • 考虑节点异构:实际工程中,不同 存储节点 之间可能会有很大的 性能 或 容量差异,好的数据分布算法应该能很好的应对这种 异构,提供 加权的数据均匀。
  • 隔离故障域:为了 数据的高可用,数据分布算法应该为每个 key 找到 一组存储节点,这些节点可能提供的是 数据的镜像副本,也可能是类似 擦除码的副本方式。数据分布算法应该尽量 隔离 这些副本的故障域,如 不同机房、不同机架、不同交换机、不同机器。

(编辑:阜新站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读