本公开涉及分布式数据库,尤其涉及分布式数据库及其日志回收方法、介质和计算机设备。
背景技术:
1、在分布式数据库中,主节点可以维护分布式数据库中产生的日志,并将本节点维护的日志同步至从节点。为了避免日志占用过多的存储空间,主节点和从节点都会进行日志回收。目前,各个节点一般根据日志文件的大小以及日志的生命周期来进行日志回收。然而,这种日志回收方式占用的存储空间过多,且容易出现从节点日志落后过多而无法追上主节点的情况。
技术实现思路
1、第一方面,本公开实施例提供一种分布式数据库中的日志回收方法,所述分布式数据库包括多个存储节点;所述多个存储节点包括主节点和与所述主节点建立了通信连接的至少一个从节点;其中,所述主节点维护了所述分布式数据库中产生的日志,所述从节点维护了由所述主节点同步至其的日志;所述主节点和所述从节点之间通过运行分布式一致性协议对各自维护的日志达成分布式一致;所述方法应用于所述主节点,所述方法包括:获取所述各个从节点上分别维护的日志的最小日志标识和最大日志标识;针对所述各个从节点,分别确定每一个从节点的日志删除标识;该日志删除标识从获取到的最大日志标识中进行选择,选择出来的该日志删除标识不小于所述从节点维护的日志的最小日志标识;将所述日志删除标识发送至对应的从节点,以使该从节点对本节点上维护的日志标识小于所述日志删除标识的日志进行回收。
2、第二方面,本公开实施例提供一种分布式数据库中的日志回收方法,所述分布式数据库包括多个存储节点;所述多个存储节点包括主节点和与所述主节点建立了通信连接的至少一个从节点;其中,所述主节点维护了所述分布式数据库中产生的日志,所述从节点维护了由所述主节点同步至其本地的日志;所述主节点和所述从节点之间通过运行分布式一致性协议对各自维护的日志达成分布式一致;所述方法应用于所述从节点,所述方法包括:向所述主节点发送本节点上维护的日志的最小日志标识和最大日志标识;获取所述主节点返回的日志删除标识,所述日志删除标识由所述主节点从各个从节点分别上报的最大日志标识中进行选择,选择出来的该日志删除标识不小于本节点维护的日志的最小日志标识;对本节点上维护的日志标识小于所述日志删除标识的日志进行回收。
3、第三方面,本公开实施例提供一种分布式数据库,所述分布式数据库包括多个存储节点;所述多个存储节点包括主节点和与所述主节点建立了通信连接的至少一个从节点;其中,所述主节点维护了所述分布式数据库中产生的日志,所述从节点维护了由所述主节点同步至其本地的日志;所述主节点和所述从节点之间通过运行分布式一致性协议对各自维护的日志达成分布式一致;所述主节点,用于获取所述分布式数据库中的各个从节点上分别维护的日志的最小日志标识和最大日志标识,针对所述各个从节点,分别确定每一个从节点的日志删除标识;该日志删除标识从获取到的最大日志标识中进行选择,选择出来的该日志删除标识不小于所述从节点维护的日志的最小日志标识,并将所述日志删除标识发送至对应的从节点;所述从节点,用于将本节点上维护的日志的最小日志标识和最大日志标识上报至所述主节点,获取所述主节点发送的所述日志删除标识,并对本节点上维护的日志标识小于所述日志删除标识的日志进行回收。
4、第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开任一实施例所述的方法。
5、第五方面,本公开实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本公开任一实施例所述的方法。
6、在本公开实施例中,主节点可以获取各个从节点上分别维护的日志的最小日志标识和最大日志标识,针对各个从节点中的每个从节点,确定获取的日志的最大日志标识中,不小于该从节点维护的日志的最小日志标识的日志删除标识,并将日志删除标识发送至该从节点,以使该从节点对本节点上维护的日志标识小于日志删除标识的日志进行回收。一方面,由于从节点仅回收本节点上日志标识小于日志删除标识的日志,因此,从节点上日志标识大于或等于日志删除标识的日志可用于同步到其他从节点,减少了其他从节点的日志落后过多而无法追上主节点的情况。因此,从节点可以直接对本节点上日志标识小于日志删除标识的日志进行回收,而无需等待日志文件的大小满足日志回收所需的阈值或日志生命周期达到预设周期再进行日志回收,减少了日志对存储空间的占用。
7、应当理解,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
1.一种分布式数据库中的日志回收方法,所述分布式数据库包括多个存储节点;所述多个存储节点包括主节点和与所述主节点建立了通信连接的至少一个从节点;其中,所述主节点维护了所述分布式数据库中产生的日志,所述从节点维护了由所述主节点同步至其的日志;所述主节点和所述从节点之间通过运行分布式一致性协议对各自维护的日志达成分布式一致;所述方法应用于所述主节点,所述方法包括:
2.根据权利要求1所述的方法,所述分别确定每一个从节点的日志删除标识,包括:
3.根据权利要求2所述的方法,所述方法还包括:
4.根据权利要求1所述的方法,所述将所述日志删除标识发送至对应的从节点,以使该从节点对本节点上维护的日志标识小于所述日志删除标识的日志进行回收,包括:
5.根据权利要求4所述的方法,所述方法还包括:
6.根据权利要求1所述的方法,所述将所述日志删除标识发送至对应的从节点,以使该从节点对本节点上维护的日志标识小于所述日志删除标识的日志进行回收,包括:
7.根据权利要求1所述的方法,所述分布式数据库中存储的日志包括多个日志副本;每个日志副本包含数量相同的多个日志分块;所述分布式数据库中的存储节点被划分为分别对应不同的日志副本的多个节点集群;其中,各个节点集群中的存储节点用于存储与该节点集群对应的日志副本中的至少一个日志分块;
8.一种分布式数据库中的日志回收方法,所述分布式数据库包括多个存储节点;所述多个存储节点包括主节点和与所述主节点建立了通信连接的至少一个从节点;其中,所述主节点维护了所述分布式数据库中产生的日志,所述从节点维护了由所述主节点同步至其本地的日志;所述主节点和所述从节点之间通过运行分布式一致性协议对各自维护的日志达成分布式一致;所述方法应用于所述从节点,所述方法包括:
9.根据权利要求8所述的方法,所述对本节点上维护的日志标识小于所述日志删除标识的日志进行回收,包括:
10.根据权利要求9所述的方法,所述方法还包括:
11.一种分布式数据库,所述分布式数据库包括多个存储节点;所述多个存储节点包括主节点和与所述主节点建立了通信连接的至少一个从节点;其中,所述主节点维护了所述分布式数据库中产生的日志,所述从节点维护了由所述主节点同步至其本地的日志;所述主节点和所述从节点之间通过运行分布式一致性协议对各自维护的日志达成分布式一致;
12.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1至10任意一项所述的方法。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至10任意一项所述的方法。