CN115269734A - 分布式数据库的存储管理方法及装置 - Google Patents

分布式数据库的存储管理方法及装置 Download PDF

Info

Publication number
CN115269734A
CN115269734A CN202211178127.3A CN202211178127A CN115269734A CN 115269734 A CN115269734 A CN 115269734A CN 202211178127 A CN202211178127 A CN 202211178127A CN 115269734 A CN115269734 A CN 115269734A
Authority
CN
China
Prior art keywords
data block
target
data
nodes
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211178127.3A
Other languages
English (en)
Other versions
CN115269734B (zh
Inventor
涂云山
赵裕众
陈嘉华
赵赛铜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Oceanbase Technology Co Ltd
Original Assignee
Beijing Oceanbase Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Oceanbase Technology Co Ltd filed Critical Beijing Oceanbase Technology Co Ltd
Priority to CN202211178127.3A priority Critical patent/CN115269734B/zh
Publication of CN115269734A publication Critical patent/CN115269734A/zh
Application granted granted Critical
Publication of CN115269734B publication Critical patent/CN115269734B/zh
Priority to US18/475,902 priority patent/US20240104073A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例提供一种分布式数据库的存储管理方法及装置,目标节点向n个节点中除目标节点外的n‑1个节点发送块询问请求。从n‑1个节点接收n‑1份有待回收的数据块集合。对目标节点维护的有待回收的数据块集合和接收的n‑1份数据块集合进行合并,得到合并数据块集合。向n‑1个节点发送合并数据块集合。n个节点中的每个节点,从合并数据块集合中,剔除其使用的数据块,得到对应的筛选数据块集合。目标节点将目标节点剔除其使用的数据块后得到的筛选数据块集合和n‑1个节点发送的n‑1份筛选数据块集合作为n份目标数据块集合,并确定n份目标数据块集合的重合数据块。对重合数据块进行回收处理。

Description

分布式数据库的存储管理方法及装置
技术领域
本说明书一个或多个实施例涉及数据库领域,尤其涉及一种分布式数据库的存储管理方法及装置。
背景技术
在共享存储的分布式数据库中,多个节点共同使用(也称共享)一个存储器,该存储器通常存储有多个数据块,每个节点都可以向任一数据块中写入数据,也可以从中读取数据,这里的数据可以包括隐私数据。但在同一时刻,某一数据块只会被一个节点写入数据,其它节点均可从中读取数据。也就是说,在同一时刻,某个数据块可以被多个节点同时访问。
因此,需要提供一种方案,能够对可被多个节点同时访问的各数据块进行有效管理。
发明内容
本说明书一个或多个实施例描述了一种分布式数据库的存储管理方法及装置,可以对多个节点共享的各数据块进行有效管理。
第一方面,提供了一种分布式数据库的存储管理方法,其中,所述分布式数据库包括n个节点,所述n个节点共同使用目标存储器,所述目标存储器中存储有若干数据块;所述方法通过所述n个节点中的目标节点执行,包括:
向所述n个节点中除所述目标节点外的n-1个节点发送块询问请求;
从所述n-1个节点接收n-1份有待回收的数据块集合;
对所述目标节点维护的有待回收的数据块集合和接收的n-1份数据块集合进行合并,得到合并数据块集合;
向所述n-1个节点发送所述合并数据块集合,以供所述n-1个节点中的每个节点,从所述合并数据块集合中,剔除其使用的数据块,并将得到的筛选数据块集合提供给所述目标节点;
将所述目标节点剔除其使用的数据块后得到的筛选数据块集合,以及所述n-1个节点发送的n-1份筛选数据块集合作为n份目标数据块集合,并确定n份目标数据块集合的重合数据块;
对所述重合数据块进行回收处理。
第二方面,提供了一种分布式数据库的存储管理方法,其中,所述分布式数据库包括n个节点,所述n个节点共同使用目标存储器,所述目标存储器中存储有若干数据块;所述方法通过所述n个节点中除目标节点外任意的第一节点执行,包括:
从所述目标节点接收块询问请求;
确定有待回收的数据块集合,并将其提供给所述目标节点;
从所述目标节点接收合并数据块集合,所述合并数据块集合是由所述目标节点对对应于所述n个节点的n份有待回收的数据块集合进行合并而得到;
从所述合并数据块集合中,剔除其使用的数据块,得到筛选数据块集合;
向所述目标节点发送所述筛选数据块集合,以供所述目标节点确定对应于所述n个节点的n份筛选数据块集合的重合数据块,并对所述重合数据进行回收处理。
第三方面,提供了一种分布式数据库的存储管理装置,其中,所述分布式数据库包括n个节点,所述n个节点共同使用目标存储器,所述目标存储器划中存储有若干数据块;所述装置设置于所述n个节点中的目标节点,包括:
发送单元,用于向所述n个节点中除所述目标节点外的n-1个节点发送块询问请求;
接收单元,用于从所述n-1个节点接收n-1份有待回收的数据块集合;
合并单元,用于对所述目标节点维护的有待回收的数据块集合和接收的n-1份数据块集合进行合并,得到合并数据块集合;
所述发送单元,还用于向所述n-1个节点发送所述合并数据块集合,以供所述n-1个节点中的每个节点,从所述合并数据块集合中,剔除其使用的数据块,并将得到的筛选数据块集合提供给所述目标节点;
确定单元,用于将所述目标节点剔除其使用的数据块后得到的筛选数据块集合,以及所述n-1个节点发送的n-1份筛选数据块集合作为n份目标数据块集合,并确定n份目标数据块集合的重合数据块;
处理单元,用于对所述重合数据块进行回收处理。
第四方面,提供了一种分布式数据库的存储管理装置,其中,所述分布式数据库包括n个节点,所述n个节点共同使用目标存储器,所述目标存储器中存储有若干数据块;所述装置设置于所述n个节点中除目标节点外任意的第一节点,包括:
接收单元,用于从所述目标节点接收块询问请求;
确定单元,用于确定有待回收的数据块集合,并将其提供给所述目标节点;
所述接收单元,还用于从所述目标节点接收合并数据块集合,所述合并数据块集合是由所述目标节点对对应于所述n个节点的n份有待回收的数据块集合进行合并而得到;
剔除单元,用于从所述合并数据块集合中,剔除其使用的数据块,得到筛选数据块集合;
发送单元,用于向所述目标节点发送所述筛选数据块集合,以供所述目标节点确定对应于所述n个节点的n份筛选数据块集合的重合数据块,并对所述重合数据进行回收处理。
第五方面,提供了一种计算机存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一或第二方面的方法。
第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一或第二方面的方法。
本说明书一个或多个实施例提供的分布式数据库的存储管理方法及装置,将针对多个节点共享的各数据块的管理划分为两级,其中,第一级是单节点内部的管理,即每个节点维护有待回收的数据块集合,该集合包括单个节点未使用的各数据块。第二级是多节点间管理,即由负责数据块回收处理的目标节点,对各个节点各自维护的有待回收的数据块集合进行集合运算,以获取各集合的重合数据,并对获取的重合数据进行回收处理。需要说明,通过该两级的管理方法,可以实现对多个节点共享的各数据块进行有效管理。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书批露的一个实施例的实施场景示意图;
图2示出在一个实施例中回收数据块列表的更新方法流程图;
图3示出根据一个实施例的分布式数据库的存储管理方法交互图;
图4示出根据一个实施例的分布式数据库的存储管理装置示意图;
图5示出根据另一个实施例的分布式数据库的存储管理装置示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
传统技术中,主要通过如下两种方法来管理多个节点共享的各数据块。
第一,基于计数的方法。这里的计数包括但不限于引用计数、间接引用计数或带权引用计数等等。具体地,在单个节点中,维护全局引用计数,即维护所有节点对存储器中各数据块的使用情况。然而由于在分布式环境下,消息可能在网络中阻塞、延迟,在节点间准确传递引用计数会出现误差。应理解,只要漏加一次计数,就会导致数据块回收错误,而且该方法的维护成本较高。
第二,基于追踪的方法,包括标记删除、标记整理或标记树等。以标记删除为例来说,其由标记和删除两个阶段构成,其中在标记阶段,把所有节点使用的数据块打上标记,然后在删除阶段,把所有没有标记的数据块(也即没有使用的数据块)回收。标记整理和标记树与标记删除相类似。需要说明,在该方法中,针对数据块的标记通常由中心节点进行,即由中心节点标记所有节点针对各数据块的使用,其比较耗时且开销大,容易给数据库系统带来性能瓶颈,且对数据块的正常分配与写入会产生影响。
由于上述两种方法均存在相应的缺点,为此,本申请的发明人提出,基于两级管理的方法针对多个节点共享的各数据块进行管理,其中,第一级是单节点内部的管理,即每个节点维护有待回收的数据块集合,该集合包括单个节点未使用的各数据块。第二级是多节点间管理,即由负责数据块回收处理的目标节点,对各个节点各自维护的有待回收的数据块集合进行集合运算,以获取各集合的重合数据,并对获取的重合数据进行回收处理。需要说明,通过该两级的管理方法,可以同时解决上述两种方法存在的问题,从而可以实现对多个节点共享的各数据块的有效管理。
以下对本说明书实施例提供的方案进行详细说明。
图1为本说明书批露的一个实施例的实施场景示意图。图1中,分布式数据库可以包括n个计算节点(简称节点),每个节点中可以分配有若干数据分区,其中的每个数据分区是依据分区键针对数据表分割得到的。针对同一数据表所分割出的数据分区可以分别分配至不同的节点。
上述n个节点可以共享多个存储器,其中的每个存储器中存储有若干数据块,每个数据块包含有分配至节点的数据分区中的数据。通常而言,基于多个数据块中的数据可以组成一个数据分区,这里的多个数据块可以属于不同的存储器。
图1中,n个节点中的每个节点可以维护有待回收的数据块集合,之后在接收到用于进行数据块回收处理的目标节点(n个节点中的任一个)发送的块询问请求时,向目标节点提供该有待回收的数据块集合。目标节点可以对对应于n个节点的有待回收的数据块集合进行合并,并将得到的合并数据块集合提供给其它n-1个节点。之后,n个节点中的每个节点可以从合并数据块集合中剔除其使用的数据块,得到剔除数据块集合并将其提供给目标节点。目标节点将对应于n个节点的n个剔除数据块集合作为n个目标数据块集合,并获取n个目标数据块集合的重合数据块,进行回收处理。
在一个示例中,上述目标节点的数目可以为多个,从而多个目标节点可以并行执行上述回收处理,由此可以大大提升数据块回收的效率。
此外,上述n个节点中每个节点维护的有待回收的数据块集合可以是基于其维护的回收数据块列表确定的,该回收数据块列表是由对应节点周期性更新的。以下以n个节点中任意的第一节点为例,对其更新回收数据块列表的方法进行说明。
图2示出在一个实施例中回收数据块列表的更新方法流程图,该方法的执行主体可以为图1中任意的第一节点。如图2所示,该方法可以包括如下步骤:
步骤202,获取第一节点维护的数据块引用计数列表,其中包括存储器中存储的若干数据块以及及其对应的引用计数,该引用计数用于指示第一节点针对对应数据块的使用情况。
应理解,在n个节点共享多个存储器的情况下,数据块引用计数列表包括每个存储器中存储的各数据块,也即其中包括n个节点共享的所有数据块。
上述若干数据块中每个数据块的引用计数,在针对第一节点分配的任一数据分区的数据被包含在该第一数据块中时增加,在针对第一节点分配的任一数据分区的数据从第一数据块中删除时减小。
步骤204,从各数据块中选取对应引用计数为预定值的各目标数据块。
这里引用计数为预定值的实际含义是指第一节点未使用该数据块。也即针对第一节点分配的各数据分区中的数据均未被包含在该第一数据块中。
在一个示例中,上述预定值可以为0。
在另一个示例中,上述预定值也可以为其它特殊值。
步骤206,将各目标数据块添加到回收数据块列表中。
为避免出现数据块误回收的问题,本方案在将各目标数据块添加到回收数据块列表之前,还可以对各目标数据块进行正确性校验。
以各目标数据块中任意的第一目标数据块为例来说,对应的正确性校验方法可以包括:
依次遍历针对第一节点分配的各数据分区,并判断各数据分区中的数据是否被包含在第一目标数据块中,如果各数据分区中的数据均未包含在第一目标数据块中,则第一目标数据块的正确性校验通过;否则如果各数据分区中任一数据分区中的数据被包含在第一目标数据块中,则第一目标数据块的正确性校验未通过。
应理解,参照第一目标数据块的正确性校验方法,可以对各目标数据块中每个目标数据块进行正确性校验。之后,可以将各目标数据块中,正确性校验通过的目标数据块添加到回收数据块列表中。
需要说明,通过重复执行上述步骤202-步骤206,就可以实现第一节点维护的数据块回收列表的周期性更新。
以上是对任一节点的数据块回收列表的更新方法的说明,以下对目标节点基于各节点各自维护的数据块回收列表,对多个节点共享的各数据块的管理方法进行说明。
图3示出根据一个实施例的分布式数据库的存储管理方法交互图。图3中,n个节点与目标节点的交互过程相近,所以图3中主要示出任意一个节点(为便于描述,称作第一节点)与目标节点的交互步骤,其它节点与目标节点的交互步骤,可以参见第一节点与目标节点的交互步骤。
如图3所示,该方法可以包括如下步骤:
步骤302,目标节点向n个节点中除目标节点外的n-1个节点发送块询问请求。
上述目标节点可以为数据库中的n个节点中的任一个。目标节点的数目可以为1个,也可以为N个,其中,N为正整数,且N>1。
在目标节点的数目为N个的情况下,N个目标节点可以并行地向除自身外的其它n-1个节点发送上述块询问请求。
应理解,在目标节点的数目为N个的情况下,每个目标节点也可以接收到其它目标节点发送的块询问请求。
步骤304,n个节点中的每个节点确定有待回收的数据块集合,并将其提供给目标节点。
在目标节点为1个的情况下,n个节点中的每个节点可以将其维护的数据块回收列表中的各目标数据块(即所有数据块),均作为有待回收的数据块集合中的各数据块。
在目标节点为N个的情况下,n个节点中每个节点确定与每个目标节点对应的有待回收的数据块集合。其中,每个节点确定与任意的第一目标节点对应的有待回收的数据块集合包括:从其维护的回收数据块列表中的各目标数据块中,筛选出与第一目标节点相对应的各目标数据块。基于筛选得到的各目标数据块,确定该节点维护的与第一目标节点对应的有待回收的数据块集合。
在一个示例中,上述筛选出与第一目标节点相对应的各目标数据块可以包括:基于预先设定的N个目标节点与所有数据块的对应关系,从该节点维护的回收数据块列表中的各目标数据块中,筛选出与第一目标节点相对应的各目标数据块。
在另一个示例中,筛选出与第一目标节点相对应的各目标数据块可以包括:将该节点维护的回收数据块列表中的各目标数据块中,对应块标识对N取模后的取模结果与第一目标节点的节点编号相匹配的各目标数据块,作为与第一目标节点相对应的各目标数据块。
当然,在实际应用中,也可以先对块标识进行哈希运算或者其它可以将块标识转换成具有固定长度的数字串的运算,然后将运算结果对N取模,并判断取模结果是否与第一目标节点的节点编号相匹配。
在一个示例中,N个目标节点的节点编号分别为:0,1,2,…,N-1。
应理解,基于上述的两个示例,每个节点均可以获取到与各目标节点对应的有待回收的数据块集合。
步骤306,目标节点对自身维护的有待回收的数据块集合和接收的n-1份数据块集合进行合并,得到合并数据块集合。
这里,在目标节点为N个的情况下,N个目标节点中的每个目标节点,可以对其自身获取的有待回收的数块集合和其它n-1个节点发送的n-1份数据块集合进行合并。
其中,每个目标节点获取有待回收的数据块集合的方法可以参照上述另一个示例,即该目标节点获取的有待回收的数据块集合中的数据块的块标识对N取模的取模结果,与该目标节点的节点编号相匹配。
步骤308,目标节点向n-1个节点发送合并数据块集合。
在目标节点的数目为N个的情况下,N个目标节点可以并行地向除自身外的其它n-1个节点发送上述合并数据块集合。
步骤310,n个节点中的每个节点,从合并数据块集合中,剔除其使用的数据块,并将得到的筛选数据块集合提供给目标节点。
在一个示例中,任意的第一节点从合并数据块集合中,剔除其使用的数据块包括:对于合并数据集合中的每个数据块,第一节点查询其维护的回收数据块列表,以获取该数据块的引用计数,若其引用计数为预定值(如,0),表明该数据块未被第一节点使用,此时不做任何处理。若其引用计数不为预定值,则表明该数据块被第一节点使用,从而从合并数据集合中剔除该数据块。
在另一个示例中,任意的第一节点从合并数据块集合中,剔除其使用的数据块包括:对于合并数据集合中的每个数据块,依次遍历针对第一节点分配的各数据分区,并判断各数据分区中的数据是否被包含在该数据块中,如果各数据分区中任一数据分区中的数据被包含在该数据块中,则表明该数据块被第一节点使用,从而从合并数据集合中剔除该数据块。而如果各数据分区中的数据均未被包含在该数据块中,则表明该数据块未被使用,此时不做任何处理。
应理解,在执行完成上述的剔除步骤之后,就可以得到第一节点维护的筛选数据块集合。类似地,可以得到每个节点维护的筛选数据块集合。
步骤312,目标节点将剔除其使用的数据块后得到的筛选数据块集合,其它n-1个节点发送的n-1份筛选数据块集合作为n份目标数据块集合,并确定n份目标数据块集合的重合数据块。
应理解,每个目标节点可以基于步骤310所述的两个示例,获取对应的筛选数据块集合。
以合并数据集合为U为例来说,n份目标数据块集合可以分别表示为:U1、U2、…、Un。
在一个示例中,可以通过计算上述n份目标数据块集合的交集,得到上述重合数据块。
这里,在目标节点为N个的情况下,N个目标节点中的每个目标节点均可以确定出对应的重合数据块。
步骤314,目标节点对重合数据块进行回收处理。
这里,在目标节点为N个的情况下,N个目标节点中的每个目标节点均可以对自身确定的重合数据块进行回收处理。
综合以上,本说明书实施例提供的分布式数据库的存储管理方法及装置,将针对多个节点的共享存储器中的各数据块的管理划分为两级,其中,第一级是单节点内部的管理,即每个节点维护有待回收的数据块集合,该集合包括单个节点未使用的各数据块。第二级是多节点间管理,即由负责数据块回收处理的目标节点,对各个节点各自维护的有待回收的数据块集合进行集合运算,以获取各集合的重合数据,并对获取的重合数据进行回收处理。需要说明,通过该两级的管理方法,可以实现对多个节点共享的各数据块进行有效管理。
此外,本方案中,N个目标节点并行进行数据块的回收处理,可以解决单目标节点进行数据块回收处理时的性能瓶颈问题,进而可以提升数据块回收的效率。此外,本方案还可以通过调整目标节点的数目,灵活设定并行度。
与上述分布式数据库的存储管理方法对应地,本说明书一个实施例还提供的一种分布式数据库的存储管理装置,其中,分布式数据库包括n个节点, n个节点共同使用目标存储器,目标存储器中存储有若干数据块。该装置设置于n个节点中的目标节点,如图4所示,该装置可以包括:
发送单元402,用于向n个节点中除目标节点外的n-1个节点发送块询问请求。
接收单元404,用于从n-1个节点接收n-1份有待回收的数据块集合。
其中,目标节点的数目可以为N个,上述若干数据块与N个目标节点具有对应关系,N个目标节点中任意的第一目标节点接收的有待回收的数据块集合中的各数据块与第一目标节点相对应。
在一个示例中,第一目标节点接收的有待回收的数据块集合中的各数据块包括第二数据块,该第二数据块的块标识在对N取模后的取模结果与所述第一目标节点的节点编号相匹配。
合并单元406,用于对目标节点维护的有待回收的数据块集合和接收的n-1份数据块集合进行合并,得到合并数据块集合。
发送单元402,还用于向n-1个节点发送合并数据块集合,以供n-1个节点中的每个节点,从合并数据块集合中,剔除其使用的数据块,并将得到的筛选数据块集合提供给目标节点。
确定单元408,用于将目标节点剔除其使用的数据块后得到的筛选数据块集合和n-1个节点发送的n-1份筛选数据块集合作为n份目标数据块集合,并确定n份目标数据块集合的重合数据块。
处理单元410,用于对重合数据块进行回收处理。
可选地,该装置还可以包括:
获取单元412,用于获取目标节点维护的数据块引用计数列表,其中包括若干数据块及其对应的引用计数,该引用计数用于指示目标节点针对对应数据块的使用情况。
其中,上述若干数据块包括第一数据块,该第一数据块的引用计数,在针对目标节点分配的任一数据分区的数据被包含在第一数据块中时增加,在针对目标节点分配的任一数据分区的数据从第一数据块中删除时减小。
选取单元414,用于从各数据块中选取对应引用计数为预定值的各目标数据块。
添加单元416,用于将各目标数据块添加到回收数据块列表中,该回收数据块列表用于确定目标节点维护的有待回收的数据块集合。
添加单元416具体用于:
对各目标数据块进行正确性校验;
在正确性校验通过的情况下,将各目标数据块添加到回收数据块列表中。
其中,各目标数据块包括第一目标数据块;
添加单元416还具体用于:
依次遍历针对目标节点分配的各数据分区,并判断各数据分区中的数据是否被包含在第一目标数据块中,如果各数据分区中的数据均未被包含在第一目标数据块中,则第一目标数据块的正确性校验通过。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的分布式数据库的存储管理装置,可以对多个节点共享的各数据块进行有效管理。
与上述分布式数据库的存储管理方法对应地,本说明书一个实施例还提供的一种分布式数据库的存储管理装置,其中,分布式数据库包括n个节点, n个节点共同使用目标存储器,目标存储器中存储有若干数据块。该装置设置于n个节点中除目标节点外任意的第一节点,如图5所示,该装置可以包括:
接收单元502,用于从目标节点接收块询问请求。
确定单元504,用于确定有待回收的数据块集合,并将其提供给目标节点。
确定单元504具体用于:
从回收数据块列表中的各目标数据块中,筛选出与目标节点相对应的各目标数据块;
基于筛选得到的各目标数据块,确定第一节点维护的有待回收的数据块集合。
确定单元504还具体用于:
从回收数据块列表中的各目标数据块中,筛选出对应块标识对N取模后的取模结果与目标节点的节点编号相匹配的各目标数据块,作为与目标节点相对应的各目标数据块,其中,N为目标节点的数目。
接收单元502,还用于从目标节点接收合并数据块集合,该合并数据块集合是由目标节点对对应于n个节点的n份有待回收的数据块集合进行合并而得到。
剔除单元506,用于从合并数据块集合中,剔除其使用的数据块,得到筛选数据块集合。
发送单元508,用于向目标节点发送筛选数据块集合,以供目标节点确定对应于n个节点的n份筛选数据块集合的重合数据块,并对重合数据进行回收处理。
可选地,该装置还可以包括:
获取单元510,用于获取第一节点维护的数据块引用计数列表,其中包括若干数据块及其对应的引用计数,该引用计数用于指示第一节点针对对应数据块的使用情况。
选取单元512,用于从各数据块中选取对应引用计数为预定值的各目标数据块。
添加单元514,用于将各目标数据块添加到回收数据块列表中,该回收数据块列表用于确定第一节点维护的有待回收的数据块集合。
添加单元514具体用于:
对各目标数据块进行正确性校验;
在正确性校验通过的情况下,将各目标数据块添加到回收数据块列表中。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的分布式数据库的存储管理装置,可以对多个节点共享的各数据块进行有效管理。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3中所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

Claims (23)

1.一种分布式数据库的存储管理方法,其中,所述分布式数据库包括n个节点,所述n个节点共同使用目标存储器,所述目标存储器中存储有若干数据块;所述方法通过所述n个节点中的目标节点执行,包括:
向所述n个节点中除所述目标节点外的n-1个节点发送块询问请求;
从所述n-1个节点接收n-1份有待回收的数据块集合;
对所述目标节点维护的有待回收的数据块集合和接收的n-1份数据块集合进行合并,得到合并数据块集合;
向所述n-1个节点发送所述合并数据块集合,以供所述n-1个节点中的每个节点,从所述合并数据块集合中,剔除其使用的数据块,并将得到的筛选数据块集合提供给所述目标节点;
将所述目标节点剔除其使用的数据块后得到的筛选数据块集合,以及所述n-1个节点发送的n-1份筛选数据块集合作为n份目标数据块集合,并确定n份目标数据块集合的重合数据块;
对所述重合数据块进行回收处理。
2.根据权利要求1所述的方法,还包括:
获取所述目标节点维护的数据块引用计数列表,其中包括所述若干数据块及其对应的引用计数;所述引用计数用于指示所述目标节点针对对应数据块的使用情况;
从各数据块中选取对应引用计数为预定值的各目标数据块;
将所述各目标数据块添加到回收数据块列表中;所述回收数据块列表用于确定所述目标节点维护的有待回收的数据块集合。
3.根据权利要求2所述的方法,其中,所述将所述各目标数据块添加到回收数据块列表中,包括:
对所述各目标数据块进行正确性校验;
在所述正确性校验通过的情况下,将所述各目标数据块添加到回收数据块列表中。
4.根据权利要求3所述的方法,其中,所述各目标数据块包括第一目标数据块;
所述对所述各目标数据块进行正确性校验,包括:
依次遍历针对所述目标节点分配的各数据分区,并判断所述各数据分区中的数据是否被包含在所述第一目标数据块中,如果各数据分区中的数据均未被包含在所述第一目标数据块中,则所述第一目标数据块的正确性校验通过。
5.根据权利要求2所述的方法,其中,所述若干数据块包括第一数据块;所述第一数据块的引用计数,在针对所述目标节点分配的任一数据分区的数据被包含在所述第一数据块中时增加,在针对所述目标节点分配的任一数据分区的数据从所述第一数据块中删除时减小。
6.根据权利要求1所述的方法,其中,所述目标节点的数目为N个,N个目标节点并行执行如权利要求1所述的方法。
7.根据权利要求6所述的方法,其中,所述若干数据块与所述N个目标节点具有对应关系;所述N个目标节点中任意的第一目标节点接收的有待回收的数据块集合中的各数据块与所述第一目标节点相对应。
8.根据权利要求7所述的方法,其中,所述第一目标节点接收的有待回收的数据块集合中的各数据块包括第二数据块;所述第二数据块的块标识在对N取模后的取模结果与所述第一目标节点的节点编号相匹配。
9.一种分布式数据库的存储管理方法,其中,所述分布式数据库包括n个节点,所述n个节点共同使用目标存储器,所述目标存储器中存储有若干数据块;所述方法通过所述n个节点中除目标节点外任意的第一节点执行,包括:
从所述目标节点接收块询问请求;
确定有待回收的数据块集合,并将其提供给所述目标节点;
从所述目标节点接收合并数据块集合,所述合并数据块集合是由所述目标节点对对应于所述n个节点的n份有待回收的数据块集合进行合并而得到;
从所述合并数据块集合中,剔除其使用的数据块,得到筛选数据块集合;
向所述目标节点发送所述筛选数据块集合,以供所述目标节点确定对应于所述n个节点的n份筛选数据块集合的重合数据块,并对所述重合数据进行回收处理。
10.根据权利要求9所述的方法,在所述确定有待回收的数据块集合之前,还包括:
获取所述第一节点维护的数据块引用计数列表,其中包括所述若干数据块及其对应的引用计数;所述引用计数用于指示所述第一节点针对对应数据块的使用情况;
从各数据块中选取对应引用计数为预定值的各目标数据块;
将所述各目标数据块添加到回收数据块列表中;所述回收数据块列表用于确定所述第一节点维护的有待回收的数据块集合。
11.根据权利要求10所述的方法,其中,所述将所述各目标数据块添加到回收数据块列表中,包括:
对所述各目标数据块进行正确性校验;
在所述正确性校验通过的情况下,将所述各目标数据块添加到回收数据块列表中。
12.根据权利要求10所述的方法,其中,所述确定有待回收的数据块集合,包括:
从所述回收数据块列表中的各目标数据块中,筛选出与所述目标节点相对应的各目标数据块;
基于筛选得到的各目标数据块,确定所述第一节点维护的有待回收的数据块集合。
13.根据权利要求12所述的方法,其中,所述筛选出与所述目标节点相对应的各目标数据块,包括:
从所述回收数据块列表中的各目标数据块中,筛选出对应块标识对N取模后的取模结果与所述目标节点的节点编号相匹配的各目标数据块,作为与所述目标节点相对应的各目标数据块;其中,N为目标节点的数目。
14.一种分布式数据库的存储管理装置,其中,所述分布式数据库包括n个节点,所述n个节点共同使用目标存储器,所述目标存储器划中存储有若干数据块;所述装置设置于所述n个节点中的目标节点,包括:
发送单元,用于向所述n个节点中除所述目标节点外的n-1个节点发送块询问请求;
接收单元,用于从所述n-1个节点接收n-1份有待回收的数据块集合;
合并单元,用于对所述目标节点维护的有待回收的数据块集合和接收的n-1份数据块集合进行合并,得到合并数据块集合;
所述发送单元,还用于向所述n-1个节点发送所述合并数据块集合,以供所述n-1个节点中的每个节点,从所述合并数据块集合中,剔除其使用的数据块,并将得到的筛选数据块集合提供给所述目标节点;
确定单元,用于将所述目标节点剔除其使用的数块后得到的筛选数据块集合,以及所述n-1个节点发送的n-1份筛选数据块集合作为n份目标数据块集合,并确定n份目标数据块集合的重合数据块;
处理单元,用于对所述重合数据块进行回收处理。
15.根据权利要求14所述的装置,还包括:
获取单元,用于获取所述目标节点维护的数据块引用计数列表,其中包括所述若干数据块及其对应的引用计数;所述引用计数用于指示所述目标节点针对对应数据块的使用情况;
选取单元,用于从各数据块中选取对应引用计数为预定值的各目标数据块;
添加单元,用于将所述各目标数据块添加到回收数据块列表中;所述回收数据块列表用于确定所述目标节点维护的有待回收的数据块集合。
16.根据权利要求15所述的装置,其中,所述添加单元具体用于:
对所述各目标数据块进行正确性校验;
在所述正确性校验通过的情况下,将所述各目标数据块添加到回收数据块列表中。
17.根据权利要求16所述的装置,其中,所述各目标数据块包括第一目标数据块;
所述添加单元还具体用于:
依次遍历针对所述目标节点分配的各数据分区,并判断所述各数据分区中的数据是否被包含在所述第一目标数据块中,如果各数据分区中的数据均未被包含在所述第一目标数据块中,则所述第一目标数据块的正确性校验通过。
18.根据权利要求15所述的装置,其中,所述若干数据块包括第一数据块;所述第一数据块的引用计数,在针对所述目标节点分配的任一数据分区的数据被包含在所述第一数据块中时增加,在针对所述目标节点分配的任一数据分区的数据从所述第一数据块中删除时减小。
19.根据权利要求14所述的装置,其中,所述目标节点的数目为N个,所述若干数据块与N个目标节点具有对应关系;所述N个目标节点中任意的第一目标节点接收的有待回收的数据块集合中的各数据块与所述第一目标节点相对应。
20.根据权利要求19所述的装置,其中,所述第一目标节点接收的有待回收的数据块集合中的各数据块包括第二数据块;所述第二数据块的块标识在对N取模后的取模结果与所述第一目标节点的节点编号相匹配。
21.一种分布式数据库的存储管理装置,其中,所述分布式数据库包括n个节点,所述n个节点共同使用目标存储器,所述目标存储器中存储有若干数据块;所述装置设置于所述n个节点中除目标节点外任意的第一节点,包括:
接收单元,用于从所述目标节点接收块询问请求;
确定单元,用于确定有待回收的数据块集合,并将其提供给所述目标节点;
所述接收单元,还用于从所述目标节点接收合并数据块集合,所述合并数据块集合是由所述目标节点对对应于所述n个节点的n份有待回收的数据块集合进行合并而得到;
剔除单元,用于从所述合并数据块集合中,剔除其使用的数据块,得到筛选数据块集合;
发送单元,用于向所述目标节点发送所述筛选数据块集合,以供所述目标节点确定对应于所述n个节点的n份筛选数据块集合的重合数据块,并对所述重合数据进行回收处理。
22.一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-13中任一项所述的方法。
23.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-13中任一项所述的方法。
CN202211178127.3A 2022-09-27 2022-09-27 分布式数据库的存储管理方法及装置 Active CN115269734B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211178127.3A CN115269734B (zh) 2022-09-27 2022-09-27 分布式数据库的存储管理方法及装置
US18/475,902 US20240104073A1 (en) 2022-09-27 2023-09-27 Storage management methods and apparatuses for distributed database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211178127.3A CN115269734B (zh) 2022-09-27 2022-09-27 分布式数据库的存储管理方法及装置

Publications (2)

Publication Number Publication Date
CN115269734A true CN115269734A (zh) 2022-11-01
CN115269734B CN115269734B (zh) 2022-11-29

Family

ID=83756704

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211178127.3A Active CN115269734B (zh) 2022-09-27 2022-09-27 分布式数据库的存储管理方法及装置

Country Status (2)

Country Link
US (1) US20240104073A1 (zh)
CN (1) CN115269734B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190026042A1 (en) * 2017-07-18 2019-01-24 Vmware, Inc. Deduplication-Aware Load Balancing in Distributed Storage Systems
CN109375872A (zh) * 2018-09-27 2019-02-22 腾讯科技(深圳)有限公司 数据访问请求的处理方法、装置和设备及存储介质
CN111066011A (zh) * 2017-09-29 2020-04-24 甲骨文国际公司 具有nvdimm作为持久性存储装置的数据库
CN111258815A (zh) * 2020-01-16 2020-06-09 西安奥卡云数据科技有限公司 适用于基于哈希的多节点备份系统的数据备份方法及装置
CN112182108A (zh) * 2020-10-13 2021-01-05 宁波金狮科技有限公司 基于区块链的分布式数据存储更新方法和电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190026042A1 (en) * 2017-07-18 2019-01-24 Vmware, Inc. Deduplication-Aware Load Balancing in Distributed Storage Systems
CN111066011A (zh) * 2017-09-29 2020-04-24 甲骨文国际公司 具有nvdimm作为持久性存储装置的数据库
CN109375872A (zh) * 2018-09-27 2019-02-22 腾讯科技(深圳)有限公司 数据访问请求的处理方法、装置和设备及存储介质
CN111258815A (zh) * 2020-01-16 2020-06-09 西安奥卡云数据科技有限公司 适用于基于哈希的多节点备份系统的数据备份方法及装置
CN112182108A (zh) * 2020-10-13 2021-01-05 宁波金狮科技有限公司 基于区块链的分布式数据存储更新方法和电子设备

Also Published As

Publication number Publication date
US20240104073A1 (en) 2024-03-28
CN115269734B (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
US20200226100A1 (en) Metadata query method and apparatus
US10706054B2 (en) Method and device for searching indexes for sensor tag data
US9672244B2 (en) Efficient undo-processing during data redistribution
JP2021536085A (ja) データ処理方法、装置、コンピュータ機器、及びコンピュータプログラム
CN103678337A (zh) 数据清除方法、装置及系统
CN109189759B (zh) Kv存储系统中的数据读取方法、数据查询方法、装置及设备
CN105556474A (zh) 管理数据操作的存储器和存储空间
CN113760847A (zh) 日志数据处理方法、装置、设备及存储介质
CN116166849A (zh) 一种数据管理方法、装置、设备及存储介质
CN114936188A (zh) 数据处理方法、装置、电子设备及存储介质
CN110737389B (zh) 存储数据的方法和装置
CN115269734B (zh) 分布式数据库的存储管理方法及装置
CN111796931B (zh) 信息处理方法、装置、计算设备和介质
CN113360551B (zh) 一种靶场中时序数据的存储与快速统计方法及系统
CN114328591A (zh) 事务执行方法、装置、设备和存储介质
CN111736778B (zh) 数据更新方法、装置、系统和电子设备
CN111581157B (zh) 一种对象存储平台以及对象操作方法、装置和服务器
CN114625697A (zh) 文件系统恢复方法、装置、电子设备及存储介质
CN117009439B (zh) 数据处理方法、装置、电子设备及存储介质
CN114020707B (zh) 存储空间回收方法、存储介质及程序产品
CN113238857B (zh) 一种基于内存池的map映射表多线程遍历方法及装置
CN113051081B (zh) 基于内存池的事件状态管理方法、系统及存储介质
CN115344539B (zh) 用于分布式数据库的日志空间回收方法和装置
WO2017131795A1 (en) Processing time-varying data using an adjacency list representation of a time-varying graph
CN114036110A (zh) 一种数据查重的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant