分布式数据库的数据恢复方法、装置、系统及电子设备与流程
- 国知局
- 2024-08-22 14:38:34
本技术涉及数据恢复,尤其涉及一种分布式数据库的数据恢复方法、装置、系统及电子设备。
背景技术:
1、在需要不间断存储数据的应用场景中,例如视频实时检测的场景中,需要不间断的存储视频文件,目前常使用分布式数据库来存储数据的元数据,分布式数据库中包括多个存储节点,不同元数据存储在不同的存储节点中,则分布式数据库可以分担存储负荷。
2、存储节点中存储的元数据到一定量时,存储节点会将其中存储的元数据落盘到非易失性存储器中,则存储节点断电时可能会丢失一部分元数据。目前有两种方式可避免此种情况:一是分布式数据库采用直写落盘的方式,不对元数据进行缓存,直接将元数据写入非易失性存储器中,但是这样会增加元数据的写入耗时,导致分布式数据库的性能低下;二是采用断电保护的硬件(例如不间断(uninterruptible power supply,ups)电源等),但是这样会增加分布式数据库的硬件成本。
3、因此,如何在不增加分布式数据库硬件成本的条件下,恢复分布式数据库中存储节点在断电时丢失的元数据,是一个需要解决的问题。
技术实现思路
1、本技术提供一种分布式数据库的数据恢复方法、装置、系统及电子设备,用于在分布式数据库的存储节点断电又重新上电后,尽可能地恢复存储节点在断电时丢失的数据。
2、为实现上述技术目的,本技术采用如下技术方案:
3、第一方面,本技术实施例提供了一种分布式数据库的数据恢复方法,分布式数据库包括至少一个存储节点组,该方法应用于存储节点组中的第一存储节点,该方法包括:
4、响应于第一存储节点在断电后重新上电,获取第一存储节点在断电时刻前时间最近的预设个数的状态记录信息,状态记录信息用于记录状态记录信息生成时刻第一存储节点所执行的任务的进度状态;
5、基于预设个数的状态记录信息的记录时刻,确定数据恢复时间范围;
6、从存储节点组的其他存储节点获取数据恢复时间范围内任务相关的数据;
7、基于数据恢复时间范围内任务相关的数据进行数据恢复。
8、本技术提供的技术方案至少带来以下有益效果:分布式数据库中的存储节点会不断生成状态记录信息,则第一存储节点在断电又重新上电后,通过获取到第一存储节点在断电前时间最近的预设个数的状态记录信息,就能够得知断电前第一存储节点在执行什么任务、执行的任务的进度状态。进而第一存储节点可以基于预设个数的状态记录信息的记录时刻,得知第一存储节点时从何时开始丢失数据的,也就确定了数据恢复时间范围,也即第一存储节点需要恢复何时间段内的数据,大大减少了后续数据恢复过程中需要处理的工作量。由于第一存储节点断电,其他存储节点也不一定断电,则第一存储节点可以从存储节点组的其他存储节点中获取数据恢复时间范围内任务相关的数据,从而尽可能多地恢复第一存储节点在断电时丢失的数据,在海量数据中准确确定了需要恢复的数据的时间范围,避免由于任务繁多全部重新执行导致的大量、重复地数据恢复工作。由于数据恢复过程是在存储节点中进行的,不需要在分布式数据库中设置断电保护的硬件,本技术不会增加分布式数据库硬件成本。本技术并非直接将数据写入非易失性存储器中,所以不会影响分布式数据库的读写性能。
9、在一种可能的实现方式中,基于预设个数的状态记录信息的记录时刻,确定数据恢复时间范围,包括:以预设个数的状态记录信息的记录时刻中时间最早的记录时刻作为数据恢复时间范围的起始时刻;以第一存储节点在断电时的领导节点在任期内的最晚时刻作为数据恢复时间范围的结束时刻。
10、在一种可能的实现方式中,以第一存储节点在断电时的领导节点在任期内的最晚时刻作为数据恢复时间范围的结束时刻,包括:在第一存储节点在断电时作为领导节点的情况下,以第一存储节点发生断电的时刻作为第一存储节点在任期内的最晚时刻;以第一存储节点在断电前的领导节点在任期内的最晚时刻作为数据恢复时间范围的结束时刻。
11、在一种可能的实现方式中,从存储节点组的其他存储节点获取数据恢复时间范围内任务相关的数据,包括:从存储节点组中所有其他存储节点获取数据恢复时间范围内任务相关的数据。
12、在一种可能的实现方式中,以第一存储节点在断电时的领导节点在任期内的最晚时刻作为数据恢复时间范围的结束时刻,包括:在第一存储节点在断电时存在第二存储节点作为领导节点的情况下,若第二存储节点的任期在当前时刻未结束,以当前时刻作为第二存储节点在任期内的最晚时刻;或者,若第二存储节点的任期在当前时刻前已结束,以第二存储节点的任期结束时刻作为第二存储节点在任期内的最晚时刻;其中,第二存储节点为存储节点组中除第一存储节点之外的另一个存储节点;以第二节点在任期内的最晚时刻作为数据恢复时间范围的结束时刻。
13、在一种可能的实现方式中,从存储节点组的其他存储节点获取数据恢复时间范围内任务相关的数据,包括:从第二存储节点获取数据恢复时间范围内任务相关的数据。
14、在一种可能的实现方式中,状态记录信息包括以下至少一项:第一存储节点接收到的用户请求;第一存储节点接收到的用户请求的请求执行进度;第一存储节点执行的后台任务的任务执行进度。
15、在一种可能的实现方式中,响应于第一存储节点在断电后重新上电,获取第一存储节点在断电时刻前时间最近的预设个数的状态记录信息,包括:响应于第一存储节点在断电后重新上电,从非易失性存储器中获取第一存储节点在断电时刻前时间最近的预设个数的状态记录信息。
16、在一种可能的实现方式中,该方法还包括:每间隔预设时长生成一个新的状态记录信息,删除记录时刻最早的状态记录信息,以保存预设个数的状态记录信息。
17、在一种可能的实现方式中,该方法还包括:在第一存储节点上电后作为领导节点的情况下,在恢复完成数据恢复时间范围内任务相关的数据之后,接收到存储节点组的其他存储节点发送的数据恢复请求消息,数据恢复请求消息用于请求第一数据,第一数据为第一存储节点所存储的目标时间范围内的数据,目标时间范围为其他存储节点需要恢复的数据的时间范围;向其他存储节点发送数据恢复响应消息,数据恢复响应消息包括第一数据。
18、在一种可能的实现方式中,该方法还包括:在第一存储节点断电时存储节点组内的领导节点,与第一存储节点上电时存储节点组内的领导节点不同的情况下,接收到第一存储节点上电时作为领导节点的第三存储节点发送的数据同步任务,数据同步任务用于指示第一存储节点同步存储第二数据,第二数据为断电任期之后所有任期内的数据,断电任期为第一存储节点断电时存储节点组内的领导节点的任期;向第三存储节点发送数据同步请求消息,数据同步请求消息用于请求第二数据;接收并存储第三存储节点发送的数据同步响应消息,数据同步响应消息包括第二数据。
19、第二方面,本技术提供一种分布式数据库的数据恢复装置,分布式数据库包括至少一个存储节点组,存储节点组中包括第一存储节点,该装置包括:传输模块和处理模块;
20、传输模块用于,响应于第一存储节点在断电后重新上电,获取第一存储节点在断电时刻前时间最近的预设个数的状态记录信息,状态记录信息用于记录状态记录信息生成时刻第一存储节点所执行的任务的进度状态;
21、处理模块用于,基于预设个数的状态记录信息的记录时刻,确定数据恢复时间范围;
22、处理模块还用于,从存储节点组的其他存储节点获取数据恢复时间范围内任务相关的数据;
23、处理模块还用于,基于数据恢复时间范围内任务相关的数据进行数据恢复。
24、在一种可能的实现方式中,处理模块具体用于:以预设个数的状态记录信息的记录时刻中时间最早的记录时刻作为数据恢复时间范围的起始时刻;以第一存储节点在断电时的领导节点在任期内的最晚时刻作为数据恢复时间范围的结束时刻。
25、在一种可能的实现方式中,处理模块具体用于:在第一存储节点在断电时作为领导节点的情况下,以第一存储节点发生断电的时刻作为第一存储节点在任期内的最晚时刻;以第一存储节点在断电前的领导节点在任期内的最晚时刻作为数据恢复时间范围的结束时刻。
26、在一种可能的实现方式中,处理模块具体用于:从存储节点组中所有其他存储节点获取数据恢复时间范围内任务相关的数据。
27、在一种可能的实现方式中,处理模块具体用于:在第一存储节点在断电时存在第二存储节点作为领导节点的情况下,若第二存储节点的任期在当前时刻未结束,以当前时刻作为第二存储节点在任期内的最晚时刻;或者,若第二存储节点的任期在当前时刻前已结束,以第二存储节点的任期结束时刻作为第二存储节点在任期内的最晚时刻;其中,第二存储节点为存储节点组中除第一存储节点之外的另一个存储节点;以第二节点在任期内的最晚时刻作为数据恢复时间范围的结束时刻。
28、在一种可能的实现方式中,处理模块具体用于:从第二存储节点获取数据恢复时间范围内任务相关的数据。
29、在一种可能的实现方式中,状态记录信息包括以下至少一项:第一存储节点接收到的用户请求;第一存储节点接收到的用户请求的请求执行进度;第一存储节点执行的后台任务的任务执行进度。
30、在一种可能的实现方式中,传输模块具体用于,响应于第一存储节点在断电后重新上电,从非易失性存储器中获取第一存储节点在断电时刻前时间最近的预设个数的状态记录信息。
31、在一种可能的实现方式中,处理模块还用于,每间隔预设时长生成一个新的状态记录信息,删除记录时刻最早的状态记录信息,以保存预设个数的状态记录信息。
32、在一种可能的实现方式中,传输模块还用于:在第一存储节点上电后作为领导节点的情况下,在恢复完成数据恢复时间范围内任务相关的数据之后,接收到存储节点组的其他存储节点发送的数据恢复请求消息,数据恢复请求消息用于请求第一数据,第一数据为第一存储节点所存储的目标时间范围内的数据,目标时间范围为其他存储节点需要恢复的数据的时间范围;向其他存储节点发送数据恢复响应消息,数据恢复响应消息包括第一数据。
33、在一种可能的实现方式中,传输模块还用于:在第一存储节点断电时存储节点组内的领导节点,与第一存储节点上电时存储节点组内的领导节点不同的情况下,接收到第一存储节点上电时作为领导节点的第三存储节点发送的数据同步任务,数据同步任务用于指示第一存储节点同步存储第二数据,第二数据为断电任期之后所有任期内的数据,断电任期为第一存储节点断电时存储节点组内的领导节点的任期;向第三存储节点发送数据同步请求消息,数据同步请求消息用于请求第二数据;接收第三存储节点发送的数据同步响应消息,数据同步响应消息包括第二数据;该分布式数据库的数据恢复装置还包括存储模块,存储模块用于存储第三存储节点发送的数据同步响应消息。
34、第三方面,本技术提供一种分布式数据库的数据恢复系统,分布式数据库包括至少一个存储节点组,存储节点组中包括第一存储节点和至少一个其他存储节点;该系统包括:第一存储节点和其他存储节点;
35、第一存储节点用于,响应于第一存储节点在断电后重新上电,获取第一存储节点在断电时刻前时间最近的预设个数的状态记录信息,状态记录信息用于记录状态记录信息生成时刻第一存储节点所执行的任务的进度状态;
36、第一存储节点还用于,基于预设个数的状态记录信息的记录时刻,确定数据恢复时间范围;
37、第一存储节点还用于,从存储节点组的其他存储节点获取数据恢复时间范围内任务相关的数据;
38、其他存储节点用于,向第一存储节点提供数据恢复时间范围内任务相关的数据;
39、第一存储节点还用于,基于数据恢复时间范围内任务相关的数据进行数据恢复。
40、第四方面,本技术提供一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,处理器执行计算机程序以实现上述第一方面所提供的任一种分布式数据库的数据恢复方法。
41、第五方面,本技术提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机指令,该计算机指令被处理器执行时实现上述第一方面所提供的任一种分布式数据库的数据恢复方法。
42、第六方面,本技术提供一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现上述第一方面所提供的任一种分布式数据库的数据恢复方法。
43、本技术中第二方面到第六方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面到第六方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
44、本技术的这些方面或其他方面在以下的描述中会更加简明易懂。
本文地址:https://www.jishuxx.com/zhuanli/20240822/279350.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表