一种分布式数据库多副本同步方法及设备与流程

摘要: 本申请涉及数据处理,尤其涉及一种分布式数据库多副本同步方法及设备。背景技术:1、在传统分布式数据库中,基于raft、paxos等一致性协议进行多副本日志同步时,...
一种分布式数据库多副本同步方法及设备与流程

本申请涉及数据处理,尤其涉及一种分布式数据库多副本同步方法及设备。

背景技术:

1、在传统分布式数据库中,基于raft、paxos等一致性协议进行多副本日志同步时,leader节点向follower节点发送的都是未压缩的原始日志。数据压缩仅仅作为一种事后、本地、异步的存储优化手段,在各个节点上单独执行,与协议复制流程完全分离。这种架构在跨数据中心、广域网等实际部署场景中,会带来以下明显缺陷:

2、大量未压缩日志直接在网络上传输,带宽占用极高,跨地域副本同步时延迟明显变大。每个副本节点独立对相同的日志数据进行压缩,造成cpu计算资源的重复浪费。大事务日志(包含大字段或批量操作)的传输速度慢,影响副本一致性的实时性。日志必须先以原始格式完成复制,压缩只能在后续阶段进行,导致存储在一段时间内存在明显冗余。

3、基于此,现有分布式数据库在多副本同步时,日志复制与数据压缩相互独立,导致网络带宽利用率低、cpu资源重复浪费、副本同步延迟高和存储空间阶段性冗余的问题。

技术实现思路

1、为了解决上述问题,本申请提出了一种分布式数据库多副本同步方法,应用于包括leader节点和follower节点的系统,所述方法包括:

2、leader节点接收客户端写请求,生成原始日志条目;

3、对所述原始日志条目进行压缩处理,得到压缩日志条目,所述压缩日志条目包括压缩数据、压缩算法类型标识和校验信息;

4、将所述压缩日志条目以压缩格式写入本地wal文件;

5、通过一致性协议的日志复制消息,将所述压缩日志条目发送给follower节点;

6、所述follower节点接收所述日志复制消息,对所述压缩日志条目进行一致性检查;

7、在一致性检查通过后,所述follower节点基于所述压缩数据和所述校验信息对所述压缩日志条目进行完整性校验;

8、在校验通过后,所述follower节点将所述压缩日志条目以压缩格式存储到本地wal文件;

9、当所述压缩日志条目被提交且需要应用到状态机时,所述follower节点根据所述压缩算法类型标识对所述压缩数据进行解压,并将解压得到的原始日志数据应用到状态机。

10、另一方面,本申请实施例提供了一种分布式数据库多副本同步设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述所述的一种分布式数据库多副本同步方法。

11、本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

12、由于leader节点在生成原始日志条目后即进行压缩处理,并通过日志复制消息向follower节点发送压缩日志条目,因此网络上传输的是压缩后的数据,而非未压缩的原始日志。由此可显著减少副本间的网络传输量,提高带宽利用率,尤其有利于跨数据中心、广域网等带宽受限场景,降低副本同步延迟。

13、压缩处理在leader节点生成日志时完成,follower节点无需对相同日志再次执行压缩操作。相比传统方案中每个节点各自压缩同一份日志的方式,避免了同一份日志被多个副本重复压缩,从而减少cpu计算资源的重复消耗。

14、leader节点将压缩日志条目以压缩格式写入本地wal文件,follower节点在校验通过后也将压缩日志条目以压缩格式存储到本地wal文件。日志从生成到存储全程保持压缩格式,避免了传统方案中先存储原始日志、后续再异步压缩所导致的未压缩日志与压缩日志同时存在的阶段性存储冗余,有助于降低存储空间峰值占用和磁盘i/o压力。

15、follower节点在一致性检查通过后,基于压缩数据和校验信息对压缩日志条目进行完整性校验。由于校验对象是压缩数据本身,follower节点无需在接收阶段对压缩数据进行解压即可完成完整性验证,从而避免了解压操作带来的cpu开销,降低了日志接收阶段的瞬时cpu峰值负载。

16、压缩日志条目在被提交且需要应用到状态机之前,一直以压缩格式保存。只有当日志条目被提交并需要应用到状态机时,follower节点才根据压缩算法类型标识对压缩数据进行解压,并将解压得到的原始日志数据应用到状态机。对于未提交、后续被覆盖或丢弃的日志条目,则无需执行解压操作,从而进一步节省cpu资源。

17、压缩日志条目中包括压缩算法类型标识,follower节点在需要应用日志时,可根据该标识确定对应的解压方式,从而正确还原原始日志数据。由此,日志压缩处理与解压处理能够准确对应,保证多副本同步过程中数据恢复的正确性。

18、压缩日志条目中包括校验信息,follower节点可基于该校验信息验证接收到的压缩数据是否完整、是否在传输过程中发生损坏或篡改。校验通过后才将压缩日志条目写入本地wal文件,从而防止损坏数据进入日志存储和状态机,保证一致性协议的安全性和多副本数据的正确性。

19、基于此,通过压缩前置、压缩传输、压缩存储、无解压校验和延迟解压的配合,在减少网络传输量、避免重复压缩、降低存储冗余、降低cpu峰值负载等方面协同发挥作用,从而缩短副本同步延迟,提高系统实时一致性,并提升分布式数据库在多副本场景下的整体性能和可用性。

1.一种分布式数据库多副本同步方法,其特征在于,应用于包括leader节点和follower节点的系统,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,对所述原始日志条目进行压缩处理,得到压缩日志条目,具体包括:

3.根据权利要求2所述的方法,其特征在于,根据预处理后的日志条目的大小,采用自适应压缩策略进行压缩,得到压缩数据,具体包括:

4.根据权利要求2所述的方法,其特征在于,对所述原始日志条目进行结构化预处理,包括以下至少一种:

5.根据权利要求2所述的方法,其特征在于,生成包括所述压缩数据、压缩算法类型标识和校验信息的压缩日志条目,具体包括:

6.根据权利要求1所述的方法,其特征在于,所述follower节点基于所述压缩数据和所述校验信息对所述压缩日志条目进行完整性校验,具体包括:

7.根据权利要求1所述的方法,其特征在于,所述follower节点根据所述压缩算法类型标识对所述压缩数据进行解压,具体包括:

8.根据权利要求1所述的方法,其特征在于,所述方法还包括:

9.根据权利要求8所述的方法,其特征在于,所述方法还包括:

10.一种分布式数据库多副本同步设备,其特征在于,包括: