27. ClustrixDB 分布式架构/一致性、容错和可用性
一致性
许多分布式数据库都采用最终一致性而不是强一致性来实现可伸缩性。但是,最终的一致性会增加应用程序开发人员的复杂性,他们必须针对可能出现的数据不一致的异常进行开发。
ClustrixDB提供了一个一致性模型,可以使用智能数据分布、多版本并发控制(MVCC)和Paxos的组合进行伸缩。我们的方法使ClustrixDB能够扩展写操作、在有写工作负载的情况下扩展读操作,并提供强大的ACID语义。
有关ClustrixDB如何扩展读写的详细说明,请参阅并发控制。
ClustrixDB采用以下方法来保持一致性:
- 集群内的同步复制。参与写操作的所有节点必须在写操作完成之前提供确认。写操作是并行执行的。
- Paxos协议用于分布式事务解析。
- ClustrixDB支持读提交和可重复读(快照)隔离级别,但对Serializable支持有限。
- 多版本并发控制(MVCC允许)无锁读,并确保写不会阻塞读。
容错
ClustrixDB通过维护跨集群的多个数据副本来提供容错功能。默认情况下,ClustrixDB可以处理单个节点故障并自动恢复,而不会丢失数据。容错程度(n弹性)是可配置的,可以设置ClustrixDB来处理多个节点故障和区域故障。
有关如何在ClustrixDB中调整容错的更多信息,请参见了解容错、max_failure和zone。
可用性
为了了解ClustrixDB的可用性模式和故障情况,有必要了解我们的组成员协议。
组成员和Quorum
ClustrixDB使用分布式组成员协议。协议维护两个基本集:
- 集群中所有已知节点的静态集合
- 当前可以彼此通信的节点集。
除非静态成员中的半数以上节点能够彼此通信(quorum),否则无法形成集群。
例如,如果一个六节点集群,只有两个三节点的集合经历了一个网络分区,ClustrixDB将无法形成一个集群。
但是,如果超过一半的节点能够通信,则ClustrixDB将形成一个集群。
出于性能原因,max_failure默认值为1,以提供一个节点或一个区域的丢失。
部分的可用性
在上面的例子中,ClustrixDB形成了一个集群,因为仍然保留了节点仲裁。但是,这样的集群只能提供部分可用性,因为集群可能无法访问完整的数据集。
在下面的示例中,ClustrixDB被配置为维护两个副本。但是,持有A的副本的两个节点无法参与集群(由于某些故障)。当事务试图访问片a上的数据时,数据库将生成一个错误,该错误将显示在应用程序中。
可用性需求
ClustrixDB甚至可以在出现故障时提供可用性。为了提供完全可用性,ClustrixDB要求:
- 大多数节点能够形成集群(即quorum requirement)。
- 可用节点为每个数据集至少保存一个副本。
27. ClustrixDB 分布式架构/一致性、容错和可用性的更多相关文章
- 26. ClustrixDB 分布式架构/数据分片
数据分片 介绍 共享磁盘vs.无共享 分布式数据库系统可分为两大类数据存储架构:(1)共享磁盘和(2)无共享. Shared Disk Architecture Shared Nothing Arch ...
- 31. ClustrixDB 分布式架构/查询优化器
ClustrixDB查询优化器有何不同 ClustrixDB查询优化器的核心是能够执行一个具有最大并行性的查询和多个具有最大并发性的并发查询.这是通过分布式查询规划器和编译器以及分布式无共享执行引擎实 ...
- 29. ClustrixDB 分布式架构/并发控制
介绍 ClustrixDB使用多版本并发控制(MVCC)和2阶段锁(2PL)的组合来支持混合的读写工作负载.在我们的系统中,读取器享受无锁快照隔离,而写入器使用2PL来管理冲突.并发控制的组合意味着读 ...
- 28. ClustrixDB 分布式架构/评估模型
本节描述如何在数据库中计算查询.在ClustrixDB中,我们跨节点切片数据,然后将查询发送到数据.这是数据库的基本原则之一,它允许随着添加更多节点而几乎线性地扩展. 有关如何分布数据的概念,请参阅数 ...
- 30. ClustrixDB 分布式架构/Rebalancer
Rebalancer是一个自动化系统,用于维护集群中数据的健康分布.通过修改数据的分布和位置来响应“不健康”集群是Rebalancer的工作.Rebalancer是一个在线进程,它影响对集群的更改,对 ...
- 分布式理论(4):Leases 一种解决分布式缓存一致性的高效容错机制(转)
作者:Cary G.Gray and David R. Cheriton 1989 译者:phylips@bmy 2011-5-7 出处:http://duanple.blog.163.com/blo ...
- 分布式架构中一致性解决方案——Zookeeper集群搭建
当我们的项目在不知不觉中做大了之后,各种问题就出来了,真jb头疼,比如性能,业务系统的并行计算的一致性协调问题,比如分布式架构的事务问题, 我们需要多台机器共同commit事务,经典的案例当然是银行转 ...
- Elasticsearch由浅入深(二)ES基础分布式架构、横向扩容、容错机制
Elasticsearch的基础分布式架构 Elasticsearch对复杂分布式机制的透明隐藏特性 Elasticsearch是一套分布式系统,分布式是为了应对大数据量. Elasticsearch ...
- 不懂这些分布式架构、分布式系统的数据一致性解决方案,你如何能找到高新互联网工作呢?强势解析eBay BASE模式、去哪儿及蘑菇街分布式架构
互联网行业是大势所趋,从招聘工资水平即可看出,那么如何提升自我技能,满足互联网行业技能要求?需要以目标为导向,进行技能提升,本文主要针对招聘中高频提及的分布式系统设计.架构(数据一致性)做了分析,祝各 ...
随机推荐
- 将对象以json格式写入到文件中
将 list 对象以json格式写入到文件中 try { ObjectMapper mapper = new ObjectMapper(); String value = mapper.writeVa ...
- java.sql.SQLException: Access denied for user 'root'@'10.10.7.180' (using password: YES)
1.刚开始连接数据库提示是: java.sql.SQLException: Access denied for user 'root'@'10.10.7.180' (using password: N ...
- 吉首大学2019年程序设计竞赛-F 天花乱坠
题目链接:https://ac.nowcoder.com/acm/contest/992/F 题意:给定正n边形,边长为100,以每条边的中点连线构成新的正n边形,无限循环下去,求所有边的长度和. 思 ...
- 西安邀请赛-M(二分+bfs)
题目链接:https://nanti.jisuanke.com/t/39280 题意:n个点(<=1e5),m条边(n-1<=m<=1e5),飞船最开始每次能走长度为0的边,可以走0 ...
- 查找担保圈-step3-获取担保圈路径
USE [test] GO /****** Object: StoredProcedure [dbo].[p01_get_group_path] Script Date: 2019/7/8 14:40 ...
- 2019中山纪念中学夏令营-Day14 图论初步【dijkstra算法求最短路】
Dijkstra是我学会的第一个最短路算法,为什么不先去学SPFA呢?因为我在luogu上翻到了一张比较神奇的图: 关于SPFA -它死了 以及网上还有各位大佬的经验告诉我:SPFA这玩意很容易被卡. ...
- MyBatis清空数据库表数据
<update id="truncateTable"> truncate table ${tableName} </update> <update i ...
- CentOS7 安装ffmpeg
安装EPEL Release,因为安装需要使用其他的repo源,所以需要EPEL支持:yum install -y epel-release#如果出现缺少Code提示,可以: sudo rpm --i ...
- leecode刷题(27)-- 合并k个排序链表
leecode刷题(27)-- 合并k个排序链表 合并k个排序链表 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1-> ...
- Git复习(八)之快速理解Git结构
git pull:拉取远程服务器最新代码到本地(会自动merge) git add:将本地代码添加到暂存区 git commit:将暂存区的所有内容提交到当前分支(git会自动为我们创建第一个分支 ...