高可用
高可用是指通过缩短因日常维护操作和突发的系统崩溃所导致的停机时间,以提高和应用的可用性。SequoiaDB 巨杉数据库采用的是复制组内多副本机制的集群架构,从而保证数据库的高可用性。
主/从节点
复制组内会有主节点和从节点两种角色,主节点的权限最高,能够执行任何的增删查改操作,而从节点的数据与主节点保持同步,通常只为系统提供读服务,起到一定的负载均衡作用。
复制/同步
在主节点上修改数据的操作会通过日志复制到从节点上,这个日志也叫做事务日志。这些事务日志包含了主节点中全部的数据操作,将会在从节点上重做。如果一个从节点停机时间比事务日志保存的时间还要长,那么从节点必须要使用“全量同步”过程从主节点恢复。
选举
复制组中每个节点都可能成为主节点,也可能降级为从节点。每一个复制组最多存在一个主节点,当其出现故障时从节点会自动发起选举。如果原先的主节点重新联机,会自动降级为从节点。
在 SequoiaDB 的选举中,有几个重要的准则:
数据组内如果已经存在了主节点,则其他从节点无法要求组内发起新一轮选举。
数据组内要进行选举,必须满足存活节点>=(组内总节点数/2+1)的要求,才能够发起选举。
在数据组内,节点竞争当选主节点,有几点需要优先考虑,优先级从高到低排列如下:节点 LSN > 节点选举权重 > 节点 NodeID。
数据组内进行选举,遵循二段提交原则,保证选举的正确性。