依赖线性一致性

举报
JavaEdge 发表于 2022/08/31 23:58:26 2022/08/31
【摘要】 依赖线性一致性线性一致性何时有用?比赛最后得分可能是最简单案例:滞后几s结果不太会造成实质伤害。但某些领域的线性一致性很重要。2.2.1 锁和主节点选举单主复制系统需确保领导者有且只有一个,否则会脑裂。选择领导者的常见方法是使用锁:每个节点启动时尝试获取锁,成功者成为领导者。不管这个锁是如何实现的,它必须线性一致:所有节点必须就哪个节点拥有锁达成一致。如zk、etcd等协调服务通常用于实现分...

依赖线性一致性

线性一致性何时有用?比赛最后得分可能是最简单案例:滞后几s结果不太会造成实质伤害。但某些领域的线性一致性很重要。

2.2.1 锁和主节点选举

单主复制系统需确保领导者有且只有一个,否则会脑裂。选择领导者的常见方法是使用锁:每个节点启动时尝试获取锁,成功者成为领导者。不管这个锁是如何实现的,它必须线性一致:所有节点必须就哪个节点拥有锁达成一致。

如zk、etcd等协调服务通常用于实现分布式锁和领导选举。它们都使用一致性算法,以容错方式实现线性一致操作iii。线性一致性存储服务是这些协调服务的基础。

[iii]  严格说,ZooKeeper 和 etcd 提供线性一致性的写操作,但读可能陈旧,因为默认它们能由任一副本提供服务。你可选择请求线性一致性读取:etcd 称之为 法定人数读取(quorum read)【16】,而在 ZooKeeper 中,你需要在读取之前调用 sync()【15】。请参阅 “使用全序广播实现线性一致的存储”。

分布式锁也在一些分布式数据库(如 Oracle Real Application Clusters(RAC))中有更细粒度实现:RAC 对每个磁盘页都得设置一个锁,多节点共享对同一个磁盘存储系统的并发访问。由于这些线性一致的锁处于事务执行的关键路径,RAC 部署通常具有用于数据库节点之间通信的专用集群互连网络。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。