日志管理方法及装置制造方法及图纸

技术编号:36873384 阅读:16 留言:0更新日期:2023-03-15 20:15
本申请一个或多个实施例提供一种日志管理方法及装置,应用于分布式数据库系统中的任一副本设备;所述分布式数据库系统包括多个副本设备;所述多个副本设备基于Paxos协议对所维护的日志文件中的日志达成分布式一致;所述方法包括:接收客户端发送的待写入的第一日志以及与所述第一日志对应的第一提案号;为所述第一日志分配目标LSN,并将所述目标LSN返回给所述客户端;基于所述Paxos协议与所述分布式数据库系统中的其他副本设备进行交互,以发起将所述第一日志写入至所述日志文件中与所述目标LSN对应的目标位置。本申请可以降低日志被写入至分布式数据库系统中的多个副本设备基于Paxos协议维护的日志文件的延时。基于Paxos协议维护的日志文件的延时。基于Paxos协议维护的日志文件的延时。

【技术实现步骤摘要】
日志管理方法及装置


[0001]本申请一个或多个实施例涉及分布式
,尤其涉及一种日志管理方法及装置。

技术介绍

[0002]在数据库系统中,通常采用WAL(Write

Ahead Logging,预写式日志)的方式来执行数据修改操作,以生成与数据修改操作对应的redo log,并在将所生成的redo log写入redo log文件后,对redo log文件进行持久化存储,使得数据库系统在发生崩溃后,可以基于redo log文件进行数据恢复。
[0003]随着各种数据的数据规模不断扩大,对用于存储这些数据的数据库的可用性和可靠性提出了更高的要求,而这些要求在单个设备上通常难以得到满足,因此衍生出了分布式的概念。分布式使得一个数据库被部署在由多个设备组建的分布式系统上,借由该分布式系统的设备规模应对海量数据规模,提高对外提供数据库读写服务的能力。
[0004]分布式数据库系统通常包括互为主备的多个设备。对于这多个设备而言,由于在当前的主设备异常时会切换到通过特定的算法选择出的一个备设备,由这个备设备接替异常的主设备来提供数据库读写服务,且各个设备作为主设备时都会将与该分布式数据库系统对应的redo log文件存储在磁盘中,这就需要这多个设备始终保持该redo log文件中的redo log的一致性,使得该分布式数据库系统可以基于任意一个设备存储的redo log文件进行数据恢复。因此,如何使分布式数据库系统中的多个设备对redo log文件中的redo log达成分布式一致,也就成为了备受关注的问题。

技术实现思路

[0005]本申请一个或多个实施例提供技术方案如下:
[0006]本申请提供一种日志管理方法,所述方法应用于分布式数据库系统中的任一副本设备;所述分布式数据库系统包括多个副本设备;所述多个副本设备基于Paxos协议对所维护的日志文件中的日志达成分布式一致;所述方法包括:
[0007]接收客户端发送的待写入的第一日志以及与所述第一日志对应的第一提案号;
[0008]为所述第一日志分配目标LSN,并将所述目标LSN返回给所述客户端;
[0009]基于所述Paxos协议与所述分布式数据库系统中的其他副本设备进行交互,以发起将所述第一日志写入至所述日志文件中与所述目标LSN对应的目标位置。
[0010]本申请还提供一种日志管理方法,所述方法应用于接入分布式数据库系统的客户端;其中,所述分布式数据库系统包括多个副本设备;所述多个副本设备基于Paxos协议对所维护的日志文件中的日志达成分布式一致;所述方法包括:
[0011]向所述分布式数据库系统中的任一副本设备发送待写入的第一日志以及与所述第一日志对应的第一提案号;
[0012]接收所述副本设备返回的为所述第一日志分配的目标LSN,并建立所述目标LSN与
所述第一提案号的关联关系;
[0013]响应于接收到所述分布式数据库系统中的其他副本设备在将第二日志成功写入至所述目标位置后发送的所述目标LSN以及与所述第二日志对应的第二提案号,查询所述关联关系以确定与所述目标LSN存在关联关系的提案号,并响应于查询到的提案号与所述第二提案号不一致,确定所述第一日志写入失败。
[0014]本申请还提供一种日志管理装置,所述装置应用于分布式数据库系统中的任一副本设备;所述分布式数据库系统包括多个副本设备;所述多个副本设备基于Paxos协议对所维护的日志文件中的日志达成分布式一致;所述装置包括:
[0015]接收模块,接收客户端发送的待写入的第一日志以及与所述第一日志对应的第一提案号;
[0016]分配模块,为所述第一日志分配目标LSN,并将所述目标LSN返回给所述客户端;
[0017]交互模块,基于所述Paxos协议与所述分布式数据库系统中的其他副本设备进行交互,以发起将所述第一日志写入至所述日志文件中与所述目标LSN对应的目标位置。
[0018]本申请还提供一种日志管理装置,所述装置应用于接入分布式数据库系统的客户端;其中,所述分布式数据库系统包括多个副本设备;所述多个副本设备基于Paxos协议对所维护的日志文件中的日志达成分布式一致;所述装置包括:
[0019]发送模块,向所述分布式数据库系统中的任一副本设备发送待写入的第一日志以及与所述第一日志对应的第一提案号;
[0020]接收模块,接收所述副本设备返回的为所述第一日志分配的目标LSN,并建立所述目标LSN与所述第一提案号的关联关系;
[0021]确定模块,响应于接收到所述分布式数据库系统中的其他副本设备在将第二日志成功写入至所述目标位置后发送的所述目标LSN以及与所述第二日志对应的第二提案号,查询所述关联关系以确定与所述目标LSN存在关联关系的提案号,并响应于查询到的提案号与所述第二提案号不一致,确定所述第一日志写入失败。
[0022]本申请还提供一种电子设备,包括:
[0023]处理器;
[0024]用于存储处理器可执行指令的存储器;
[0025]其中,所述处理器通过运行所述可执行指令以实现如上述任一项所述方法的步骤。
[0026]本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述任一项所述方法的步骤。
[0027]在上述技术方案中,对于包括多个副本设备,且这多个副本设备基于Paxos协议对所维护的日志文件中的日志达成分布式一致的分布式数据库系统而言,客户端可以向其中任一副本设备发送的待写入的第一日志以及与第一日志对应的第一提案号,使得该副本设备为第一日志分配目标LSN,并将目标LSN返回给客户端以建立目标LSN与第一提案号的关联关系,同时该副本设备可以基于Paxos协议与该分布式数据库系统中的其他副本设备进行交互,以发起将第一日志写入至该日志文件中与目标LSN对应的目标位置,但对于客户端而言,客户端如果接收到该分布式数据库系统中的其他副本设备在将第二日志成功写入至该目标位置后发送的目标LSN以及与第二日志对应的第二提案号,则由于通过查询该关联
关系确定的与目标LSN存在关联关系的提案号与第二提案号不一致,可以确定第一日志写入失败。
[0028]采用上述方式,由于分布式数据库系统中的副本设备可以立即将为待写入的日志分配的LSN返回给客户端,而不管是否已经真正地将该日志写入至该分布式数据库系统维护的日志文件中与该LSN对应的位置,因此,客户端感知到的日志被写入至该日志文件的延时,可以不再包括该分布式数据库系统中的多个副本设备基于Paxos协议对该日志文件中的日志达成分布式一致的延时,也即,可以降低日志被写入至分布式数据库系统中的多个副本设备基于Paxos协议维护的日志文件的延时。此外,该分布式数据库系统中的副本设备还可以将为写入成功的日志分配的LSN,以及与该日志对应的提案号,返回给客户端,使得客户端可以通过确定与该日志对应的提案号,是否为与本次发送的待写入的日志对应本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种日志管理方法,所述方法应用于分布式数据库系统中的任一副本设备;所述分布式数据库系统包括多个副本设备;所述多个副本设备基于Paxos协议对所维护的日志文件中的日志达成分布式一致;所述方法包括:接收客户端发送的待写入的第一日志以及与所述第一日志对应的第一提案号;为所述第一日志分配目标LSN,并将所述目标LSN返回给所述客户端;基于所述Paxos协议与所述分布式数据库系统中的其他副本设备进行交互,以发起将所述第一日志写入至所述日志文件中与所述目标LSN对应的目标位置。2.根据权利要求1所述的方法,所述方法还包括:在将所述第一日志成功写入至所述目标位置后,将所述目标LSN和所述第一提案号返回给所述客户端。3.根据权利要求2所述的方法,所述将所述目标LSN和所述第一提案号返回给所述客户端,包括:调用与所述客户端对应的回调接口,将所述目标LSN和所述第一提案号返回给所述客户端。4.根据权利要求1所述的方法,所述分布式数据库系统维护了最新的提案号;所述提案号在所述分布式数据库系统中的任一副本设备发起将任一日志写入至所述日志文件时被更新;所述第一提案号由所述客户端从所述分布式数据库系统中获取;所述为所述第一日志分配目标LSN,并将所述目标LSN返回给所述客户端,包括:确定所述第一提案号与所述分布式数据库系统维护的最新的提案号是否一致;如果所述第一提案号与所述分布式数据库系统维护的最新的提案号一致,则为所述第一日志分配目标LSN,并将所述目标LSN返回给所述客户端。5.根据权利要求4所述的方法,所述方法还包括:如果所述第一提案号与所述分布式数据库系统维护的最新的提案号不一致,则向所述客户端返回用于指示所述客户端对所述第一日志的写入进行重试的信息。6.根据权利要求1所述的方法,与写入成功的日志在所述日志文件中的位置对应的LSN为连续的LSN;所述分布式数据库系统维护了所述连续的LSN中最大的LSN;所述方法还包括:接收客户端发送的待读取的日志在所述日志文件中的第一位置;确定所述第一位置是否在所述日志文件中与所述最大的LSN对应的第二位置之前;如果所述第一位置在所述第二位置之前,则将所述第一位置处记录的日志返回给所述客户端。7.根据权利要求1所述的方法,所述Paxos协议包括Basic Paxos协议或Multi

Paxos协议。8.根据权利要求1

7中任一所述的方法,所述分布式数据库系统包括基于WAL的分布式数据库系统;所述日志文件包括redo log文件;所述日志包括redo log。9.一种日志管理方法,所述方法应用于接入分布式数据库系统的客户端;其中,所述分布式数据库系统包括多个副本设备;所述多个副本设备基于Paxos协议对所维护的日志文件中的日志达成分布式一致;所述方法包括:向所述分布式数据库系统中的任一副本设备发送待写入的第一日志以及与所述第一
日志对应的第一提案号;接收所述副本设备返回的为所述第一日志分配的目标LSN,并建立所述目标LSN与所述第一提案号的关联关系;响应于接收到所述分布式数据库系统中的其他副本设备在将第二日志成功写入至所述目标位置后发送的所述目标LSN...

【专利技术属性】
技术研发人员:刘浩韩富晟贾德宾
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1