加入收藏 | 设为首页 | 会员中心 | 我要投稿 广安站长网 (https://www.0826zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

开发人员都应该了解这些术语中更深的细微差别

发布时间:2021-02-19 16:36:00 所属栏目:传媒 来源:互联网
导读:primary-secondary 协议 在primary-secondary 类型的协议中,副本被分为两大类,其中有且仅有一个副本作为primary 副本,除primary 以外的副本都作为secondary 副本。维护primary 副本的节点作为中心节点,中心节点负责维护数据的更新、并发控制、协调副本的

primary-secondary 协议

在primary-secondary 类型的协议中,副本被分为两大类,其中有且仅有一个副本作为primary 副本,除primary 以外的副本都作为secondary 副本。维护primary 副本的节点作为中心节点,中心节点负责维护数据的更新、并发控制、协调副本的一致性。

Primary-secondary 类型的协议一般要解决四大类问题:数据更新流程、数据读取方式、Primary 副本的确定和切换、数据同步(reconcile)。

数据更新基本流程

  1. 数据更新都由primary 节点协调完成。
  2. 外部节点将更新操作发给primary 节点
  3. primary 节点进行并发控制即确定并发更新操作的先后顺序
  4. primary 节点将更新操作发送给secondary 节点


数据分布方式的选择

在实际工程实践中,可以根据需求及实施复杂度合理选择数据分布方式。另外,数据分布方式是可以灵活组合使用的,往往可以兼备各种方式的优点,收到较好的综合效果。

例:数据倾斜问题,在按哈希分数据的基础上引入按数据量分布数据的方式,解决该数据倾斜问题。按用户id 的哈希值分数据,当某个用户id 的数据量特别大时,该用户的数据始终落在某一台机器上。此时,引入按数据量分布数据的方式,统计用户的数据量,并按某一阈值将用户的数据切为多个均匀的数据段,将这些数据段分布到集群中去。由于大部分用户的数据量不会超过阈值,所以元数据中仅仅保存超过阈值的用户的数据段分布信息,从而可以控制元数据的规模。这种哈希分布数据方式与按数据量分布数据方式组合使用的方案,在某真实系统中使用,取得了较好的效果。

2.2 基本副本协议

副本控制协议指按特定的协议流程控制副本数据的读写行为,使得副本满足一定的可用性和一致性要求的分布式协议。副本控制协议要具有一定的对抗异常状态的容错能力,从而使得系统具有一定的可用性,同时副本控制协议要能提供一定一致性级别。由CAP 原理(在2.9 节详细分析)可知,要设计一种满足强一致性,且在出现任何网络异常时都可用的副本协议是不可能的。为此,实际中的副本控制协议总是在可用性、一致性与性能等各要素之间按照具体需求折中。

副本控制协议可以分为两大类:“中心化(centralized)副本控制协议”和“去中心化(decentralized)副本控制协议”。

中心化副本控制协议

中心化副本控制协议的基本思路是由一个中心节点协调副本数据的更新、维护副本之间的一致性。

图给出了中心化副本协议的通用架构。中心化副本控制协议的优点是协议相对较为简单,所有的副本相关的控制交由中心节点完成。并发控制将由中心节点完成,从而使得一个分布式并发控制问题,简化为一个单机并发控制问题。

所谓并发控制,即多个节点同时需要修改副本数据时,需要解决“写写”、“读写”等并发冲突。单机系统上常用加锁等方式进行并发控制。对于分布式并发控制,加锁也是一个常用的方法,但如果没有中心节点统一进行锁管理,就需要完全分布式化的锁系统,会使得协议非常复杂。

中心化副本控制协议的缺点是系统的可用性依赖于中心化节点,当中心节点异常或与中心节点通信中断时,系统将失去某些服务(通常至少失去更新服务),所以中心化副本控制协议的缺点正是存在一定的停服务时间。




(编辑:广安站长网)

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

    热点阅读