今日学习要点:
【要点1】巨杉数据库支持三种数据分区方式:
1)水平分区:也叫一致性散列分区,即一个集合中的数据切分到多个复制组中,以达到并行计算的目的,这种数据切分的方式称为水平分区。
2)垂直分区:又称为集合分区或纵向分区,将一个集合全局关系的属性分成若干子集,并在这些子集上作投影运算,将这些子集映射到另外的集合上,从而实现集合关系的垂直切分。
3)多维分区:也可以称为混合分区,采用以上两种分区方式。在 SequoiaDB 集群环境中,可以将集合先通过垂直分区映射到多个子集合中,再通过水平分区将子集合切分到多个复制组中,从而实现混合分区。典型的场景比如历史数据的保存,可以根据年份来划分历史数据,将每年的数据存入一个子集合中。同样,每一年的历史数据也可以采用混合分区的方式,将每个月的数据再存入指定的子集合中,然后每个月的历史数据采用水平分区的方式,将数据均匀打散在各个数据组上,最终达到数据均匀分布的目的。需要注意的是,垂直分区的主集合中,不存储数据,只存储子集合的信息。
【要点2】巨杉数据库的高可用体现在分区组中主备节点之间的切换,关于主备节点,我们需要知道:
1)同分区组内的节点通过心跳保持连接。
2)主节点在2轮没有接收到超过半数以上的备节点的心跳,会自动降备。
3)备节点在2轮没有接收到主节点的心跳,会发起投票,重新选主。
4)超半数的节点同意之后备节点会当选主节点
其中,主节点的选举算法采用类Raft算法。
【要点3】巨杉的数据库实例也是高可用的,当然,前提是在同一个集群中部署了两个或者两个以上的数据库实例。另外,在MySQL实例,还可以配置元数据同步。
MySQL元数据同步配置步骤参见官方文档:
http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1572505575-edition_id-0
【总结】通过今天学习,大家可以进一步了解到巨杉数据库的分布式原理。比如集群的典型部署方式,数据分区机制,数据同步的原理等。需要知道的是,一个复制组当中,最多支持7副本的灾备,当然,我们一般建议设置成3副本即可。另外,在视频中我们还可以看到通过SAC进行集群的扩容和缩容是非常方便的,操作步骤也很简单。
最后,视频中介绍了分布式数据库的两个应用场景:内容管理和实时数据服务。采用了当下流行的Spring Cloud微服务框架,并且已经有实际的使用案例~
相关视频:D203. 分布式数据库应用场景:内容管理
D204. 分布式数据库应用场景:实时数据服务