同步一致性策略用于控制复制组内优先同步的节点,实现数据同步的精细化管理。SequoiaDB 巨杉数据库基于节点一致性策略和位置集,提供不同级别的同步一致性策略,以适配不同的业务场景。下述以 ReplSize 取值为 2、存在三个位置集为例,介绍不同级别的同步一致性策略。
节点优先策略适用于对性能要求高的业务场景。在该策略下,数据同步将依据 ReplSize 的取值,随机选取复制组中的节点进行数据同步。同步示意图如下:
集合的 ConsistencyStrategy 取值为 1 时,表示按节点优先进行数据同步。当已同步节点数达到 ReplSize 指定的值时,服务端即可返回应答给客户端。
位置多数派优先策略适用于对数据安全要求高的业务场景。在该策略下,数据同步将依据 ReplSize 的取值,优先保证多数派位置集中均存在数据一致的节点。如果满足上述要求后仍未达到 ReplSize 指定的节点数,将同步其他位置集内的节点。同步示意图如下:
集合的 ConsistencyStrategy 取值为 2 时,表示按位置多数派优先进行数据同步。当主位置集整体故障时,能够保证其他位置集仍存在可用的完整数据,避免数据丢失。
主位置多数派优先策略适用于对网络延时要求高的业务场景。在该策略下,数据同步将依据 ReplSize 的取值,优先保证主位置集中多数派节点数据一致。如果满足上述要求后仍未达到 ReplSize 指定的节点数,将同步其他位置集内的节点。同步示意图如下:
集合的 ConsistencyStrategy 取值为 3 时,表示按主位置多数派优先进行数据同步。当主节点发生故障时,能够保证在主位置集内重新选主,避免因主节点切换至其他位置集而导致的高网络延时。