sequoiaDB的高可用与扩缩容

典型部署方式
协调节点要能正确的分发任务就得和编目节点去做通信。
编目节点主要是用于存储整个分布式的存储结构,节点重要参数等(元数据的信息)
做数据存储的是由数据节点组。(一个数据组最多有7个数据节点)
在这里插入图片描述
在这里插入图片描述将一个集合中的数据划分成多个不相交的子集,再将这些子集切分到数据组(复制)里去,这种就叫做数据分区,这种不同的子集就叫做分区。逻辑上一个大的集合,按照一个字段或者多个字段的值,把一个大的集合划分成一个小的集合,然后再把这些小的集合存放到不同的区块上(物理机上不同磁盘或者是不同物理机上),好处是:带来水平扩展能力,提高IO访问速度的提升,带来管理和维护上的方便。
一个分区只能存在于一个复制组里,但是复制组里可以有很多的分区(可以移动)这样就达到并行 计算的功能,提高数据的处理性能和速度。

如果建立索引:正好可以检索到,直接命中选择该对象,如果检索条件不包含任何索引的索引字段中,就会进行全表扫描(这里如果是分布式,那么可以推给多个机器同时进行)

怎么去做数据分区?
在这里插入图片描述
作为数据划分的依据的字段是分区键

范围分区方式中,分区键就是用来划分分区范围的字段
散列分区中:分区键就是计算hash值的字段

散列分区:先对数据集合做一次散列计算,然后再根据Hash值进行分区(这种更加均匀)

分布类型
水平分区水平分区:就是将一个数据组里的数据放到几个数据组里

垂直分区垂直分区:也就是外表看着是一个大表,其实底层是多个小表(子集合),主集合不存放数据,是子集合存放

垂直分区和水平分区的区别:
水平分区:把一个大的集合放到几个机器中用于实现多机器的并发运算,访问一个数据要找所有磁盘
垂直分区:将一个大的集合切分为若干个子集合,但是对外的接口还是主集合,访问一个数据只需要找特定的子集合

混合分区:
混合分区巨杉数据库的高可用
高可用能力巨杉是通过异步日志同步来保证数据一致性的
主节点2轮收不到半数以上节点心跳就会降备
备节点2轮收到不主机点心跳就会发起选举投票,超半数节点同意才能当选主节点

选举算法:
Raft如果组内拥有主节点,那么其他的从节点是无法要求选举的
如果数据组内要进行选取,必须满足存活节点大于1/2+1的要求
节点竞争看优先级(LSN,权重,NodeID),先找LSN最新的,然后是权重最高的,最后是NodeID最高的

在这里插入图片描述
这种情况A是不会重新当选主节点。
在这里插入图片描述
这种情况是选C节点

接下来是数据同步原理
在这里插入图片描述
注意:编目节点和数据节点统称为复制组

巨杉数据库的事务日志是由20*64M的文件构成,不会永久保存,而是当事务日志写满以后,从第一个文件那进行覆盖写入

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值