依赖线性一致性
【摘要】 依赖线性一致性线性一致性何时有用?比赛最后得分可能是最简单案例:滞后几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)