CN111143113A - 复制元数据的方法、电子设备和计算机程序产品 - Google Patents

复制元数据的方法、电子设备和计算机程序产品 Download PDF

Info

Publication number
CN111143113A
CN111143113A CN201811303605.2A CN201811303605A CN111143113A CN 111143113 A CN111143113 A CN 111143113A CN 201811303605 A CN201811303605 A CN 201811303605A CN 111143113 A CN111143113 A CN 111143113A
Authority
CN
China
Prior art keywords
metadata
items
copied
copying
target 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
CN201811303605.2A
Other languages
English (en)
Other versions
CN111143113B (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201811303605.2A priority Critical patent/CN111143113B/zh
Priority to US16/442,305 priority patent/US11216483B2/en
Publication of CN111143113A publication Critical patent/CN111143113A/zh
Priority to US17/542,648 priority patent/US11604808B2/en
Application granted granted Critical
Publication of CN111143113B publication Critical patent/CN111143113B/zh
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/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof

Landscapes

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

Abstract

本公开的实施例涉及一种复制元数据的方法、电子设备和相应的计算机程序产品。该方法可以包括:响应于接收到向目标节点复制元数据的请求,获取与元数据相关联的索引结构的信息。索引结构可以包括用于存储元数据的终端节点和用于存储终端节点的索引信息的索引节点。该方法还可以包括:基于索引结构的信息,从终端节点中提取元数据。该方法又可以包括:生成元数据的待复制序列。待复制序列可以包括元数据的多个项,多个项在待复制序列中的位置是基于与多个项相对应的关键字信息而确定的。该方法进一步包括:将待复制序列中的元数据的多个项复制到目标节点。本公开的实施例能够可以仅复制索引结构中的元数据,从而降低了复制的数据量。

Description

复制元数据的方法、电子设备和计算机程序产品
技术领域
本公开总体上涉及计算机领域,更具体地,涉及复制元数据的方法、电子设备和计算机程序产品。
背景技术
诸如弹性云存储(ECS)的远程备份系统通过拥有多个数据副本而在地理级别上增强对存储设备的故障/中断的保护。在远程备份系统中,所有类型的数据(包括数据和元数据)均以块(chunk)的形式进行存储。目前,元数据通常会被存储在基于写时复制(COW)的索引结构(例如B+树)中,用于快速索引数据的位置。在当前的远程备份系统中,通常会将包含数据或元数据的整个块从源节点发送到目标节点,诸如新添加的远程节点,从而完成对数据或元数据的备份。例如,在对元数据进行备份时,整个索引结构会被复制到目标节点。但是,在从源节点复制到目标节点的与元数据相关的数据块中,索引结构所占的百分比很低。这会导致不必要的资源(带宽、内存、IO 等)开销,甚至使服务在一定时间段内不可用。
发明内容
本公开的实施例提供了复制元数据的方法、设备和相应的计算机程序产品。
在本公开的第一方面,提供了一种复制元数据的方法。该方法可以包括:响应于接收到向目标节点复制元数据的请求,获取与元数据相关联的索引结构的信息。索引结构可以包括用于存储元数据的终端节点和用于存储终端节点的索引信息的索引节点。该方法还可以包括:基于索引结构的信息,从终端节点中提取元数据。该方法又可以包括:生成元数据的待复制序列。待复制序列可以包括元数据的多个项,多个项在待复制序列中的位置是基于与多个项相对应的关键字信息而确定的。该方法进一步包括:将待复制序列中的元数据的多个项复制到目标节点。
在某些实施例中,将待复制序列中的元数据的多个项复制到目标节点可以包括:将元数据的多个项的总尺寸与阈值尺寸进行比较;响应于总尺寸大于阈值尺寸,将元数据的多个项按照预定尺寸进行划分,预定尺寸小于或等于阈值尺寸;以及将划分后的元数据的多个项复制到目标节点。
在某些实施例中,将待复制序列中的元数据的多个项复制到目标节点可以包括:确定目标节点允许在每次复制中进行复制的元数据的最大长度;基于最大长度确定元数据能够在每次复制中进行复制的项数;以及将项数的元数据复制到目标节点。
在某些实施例中,上述方案还可以包括:记录在每次复制中被复制到目标节点的结束项的关键字信息,以作为下一次复制的起始项的关键字信息。
在某些实施例中,上述方案还可以包括:响应于对项数的元数据的复制失败,确定上一次复制中被复制到目标节点的结束项;以及将结束项之后的项数的元数据复制到目标节点。
在某些实施例中,获取索引结构的信息可以包括:获取与B+树所包括的叶子页面和索引页面有关的信息,叶子页面用于存储元数据,索引页面用于存储叶子页面的索引信息。
在本公开的第二方面,提供了一种电子设备。该设备可以包括:至少一个处理单元;以及至少一个存储器,其耦合至至少一个处理单元并且存储有机器可执行指令,当指令由至少一个处理单元执行时,使得设备执行动作,该动作可以包括:响应于接收到向目标节点复制元数据的请求,获取与元数据相关联的索引结构的信息,索引结构包括用于存储元数据的终端节点和用于存储终端节点的索引信息的索引节点;基于索引结构的信息,从终端节点中提取元数据;生成元数据的待复制序列,待复制序列包括元数据的多个项,多个项在待复制序列中的位置是基于与多个项的相对应的关键字信息而确定的;以及将待复制序列中的元数据的多个项复制到目标节点。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法的步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目标、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了索引结构和对应的待复制序列的示意图;
图2示出了被更新的索引结构和对应的被更新的待复制序列的示意图;
图3示出了本公开的多个实施例能够在其中实现的示例环境的示意图;
图4示出了根据本公开的实施例的用于复制元数据的过程或方法的流程图;
图5示出了根据本公开的实施例的用于复制元数据的过程或方法的流程图;
图6示出了根据本公开的实施例的用于复制元数据的过程或方法的流程图;以及
图7示出了根据本公开的实施例的用于复制元数据的设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其它明确的和隐含的定义。
诸如弹性云存储(ECS)的远程备份系统通过具有多个数据副本 (即,源节点处的数据的主副本和目标节点处的数据的副本)来提供增强的用户数据保护机制,从而防止节点故障或中断而造成的数据丢失。通过将用户数据复制到位于不同地理位置的多个目标节点,可以是用户数据保护机制提升至地理级别。
备份系统可以利用索引结构(例如B+树)来索引元数据存储在磁盘空间中的位置。索引结构中存储有键值(KV)对。这些键值对一般会被存储在索引结构中,用于快速索引元数据的位置。
在远程备份系统中,所有磁盘空间都被划分为一组具有固定大小的块。块是以仅附加(append-only)模式进行写入的,这意味着,在磁盘空间中写入一个块不会修改/删除磁盘空间的现有内容,而是在新内容到达时在新块中更新。与此类似地,在索引结构中,当元数据被修改时,索引结构中用于存储该元数据的终端节点将以块的形式写入新的位置,同时,与该终端节点相关联的索引节点也需要进行响应更新以被写入新的位置。由此,产生了大量的垃圾。为了更为清楚地描述此问题,下面将结合图1和图2描述元数据更新的具体情况。
图1示出了索引结构100和对应的待复制序列140的示意图。如图1所示,索引结构100包括终端节点130、131、132、133和134。终端节点130、131、132、133和134分别用于存储元数据的项“1”、“2”、“3”、“5”和“6”。应理解,项“1”、“2”、“3”、“5”和“6”是键值对中的关键字信息,而元数据的各项的具体内容是键值对中的值信息。关键字信息与值信息是一一对应的映射关系,故可以通过关键字信息查找元数据的各项的具体内容。索引结构100 还包括索引节点120、121以及更高级别的索引节点110,这些索引节点均用于存储终端节点130、131、132、133和134的索引信息。作为示例,索引节点120中存储有终端节点130、131和132的索引信息“4”,索引节点121中存储有终端节点133和134的索引信息“7”。此外,索引节点110中存储有索引节点120和121的索引信息“8”。应理解,索引信息“4”、“7”和“8”是键值对中的关键字信息,而索引信息的具体内容是键值对中的值信息,用于指示相应元数据的位置信息。关键字信息与值信息是一一对应的映射关系,故可以通过关键字信息查找索引信息的具体内容。
在传统方案中,当接收到将源节点中的索引结构100复制到目标节点的请求时,元数据的项1、2、3、5、6以及索引信息4、7、8将按照预定机制被排列为待复制序列140。如图1所示,假定读写和传输数据的最小的块容量是4到5个元数据项,则待复制序列140将被划分为两个块141和142,每个块均具有4个元数据项。块141和142 将被顺次复制到目标节点,从而完成对元数据的备份。然而,一旦元数据被更新,就可能产生备份资源浪费的问题。
图2示出了被更新的索引结构110’和对应的被更新的待复制序列 140’的示意图。如图2所示,元数据的项3和5被更新为项3’和5’。此时,索引结构110’中用于存储项3和5的终端节点将以块的形式写入新的位置132’和133’。此外,与终端节点132’和133’相关联的索引节点120’、121’和110’也进行类似的更新。
在图2中,更新后的索引结构100’包括终端节点130、131、132’、 133’和134,分别用于存储元数据的项1、2、3’、5’和6。更新后的索引结构100’还包括索引节点120’、121’以及更高级别的索引节点110’,分别用于存储终端节点130、131、132’、133’和134的索引信息4’、 7’和8’。当接收到将源节点中的索引结构100’复制到目标节点的请求时,元数据的项1、2、3、5、6、索引信息4、7、8以及更新后的元数据的项3’、4’、5’、7’、8’均会被排列为待复制序列140’。如图2 所示,元数据的项3、4、5、7、8均是被废弃的数据。除了块141’和142’之外,待复制序列140还需要包括块143。因此,需要复制到目标节点的块增多了,从而造成了备份资源的浪费。应理解,图1和图2中示出的情况仅为一个示例。在实际应用中,元数据的更新更为频繁,因此,备份资源浪费的情况更为恶劣。
为了至少部分地解决上述以及其他潜在的问题和缺陷,本公开的实施例提供了一种用于复制元数据的方案。针对上述问题,本公开的用于复制元数据的方案作出如下改进:仅将元数据的多个项顺次列入待复制序列,而不以块为单位将包含索引信息和更新产生的垃圾数据的所有数据均列入带复制序列。以此方式,能够有效地提升复制元数据的效率,从而减少资源开销。
根据本公开的实施例,当接收到将源节点中的索引结构100复制到目标节点的请求时,可以仅将元数据的项1、2、3、5、6排列为待复制序列。由此,待复制序列可以仅包含一个块。通过这种方式,要传输到目标节点的与元数据相关的数据将被显著减小。复制到目标节点的元数据将会基于其自身的关键值信息重新创建一个新的索引结构(未示出)。
图3示出了本公开的多个实施例能够在其中实现的示例环境300 的示意图。如图3所示,为了确保源节点310上的元数据的安全,可以将源节点310上的元数据备份至目标节点320。可以通过与源节点 310通信连接的计算设备330来执行将元数据从源节点310复制到目标节点320的过程。源节点310和目标节点320均可以是用于存储元数据的任意本地存储设备或分布式存储设备,例如网络附加存储 (NAS)设备等。该存储设备可以包括各种易失性和/或非易失性数据存储介质,例如磁盘、光盘、硬盘、固态硬盘(SSD)、高速缓存等。
在某些实施例中,当接收到用户在源节点310侧或目标节点320 侧的备份请求时,元数据将会从源节点310被复制到目标节点320。备选地或附加地,在新的目标节点320被创建之后,元数据将会从源节点310被复制到新创建的目标节点320。下文将结合图4、图5以及图6详细描述复制或备份元数据的过程。
图4示出了根据本公开的实施例的用于复制元数据的过程或方法 400的流程图。在某些实施例中,方法400可以在图7示出的设备中实现。作为示例,方法400可以在图3所示的源节点310或与源节点通信连接的计算设备330中实现。现参照图1和图3,描述图4示出的根据本公开实施例的用于复制元数据的过程或方法400。为了便于理解,在下文描述中提及的具体数据均是示例性的,并不用于限定本公开的保护范围。
在401,判定是否接收到向目标节点320复制元数据的请求。在某些实施例中,复制元数据的请求可以是用户在源节点310侧发出的。备选地或附加地,复制元数据的请求也可以是用户在目标节点320侧发出的。此外,如果目标节点320是被创建的新的目标节点,则在目标节点320被创建之后,元数据将会从源节点310被复制到新创建的目标节点320。如图4所示,当判定已经接收到向目标节点320复制元数据的请求时,行进至403。
在403,获取与元数据相关联的索引结构100的信息。索引结构 100包括用于存储元数据的项1、2、3、5和6的终端节点130、131、 132、133和134以及用于存储终端节点130、131、132、133和134 的索引信息的索引节点120、121和110。在某些实施例中,索引结构 100可以是如图1所示的B+树。应理解,索引结构100也可以是用于对元数据进行索引的其他树或映射结构。
在405,基于索引结构100的信息,从终端节点130、131、132、 133和134中提取元数据的项1、2、3、5和6。应理解,本文中提出的“提取”元数据的项的过程,不仅用于描述将元数据的项1、2、3、5和6从终端节点130、131、132、133和134中提取出来的过程,还用于描述“识别”、“检测”出终端节点130、131、132、133和134 中的元数据的项1、2、3、5和6。
在407,生成元数据的待复制序列。在某些实施例中,待复制序列包括元数据的多个项1、2、3、5和6。优选地,项1、2、3、5和 6待复制序列中的位置是基于与这些项1、2、3、5和6相对应的关键字信息而确定的。在某些实施例中,元数据的各项均是以键值对的形式存储在各终端节点中的,项的编码(诸如图1所示的1、2、3、5 和6)是键值对中的关键字信息,而元数据的各项的具体内容是键值对中的值信息。关键字信息与值信息是一一对应的映射关系,故可以通过关键字信息查找元数据的各项的具体内容。在上文描述的关于 B+树的实施例中,B+树的索引结构是可以基于元数据的各项以及索引信息的各项的关键字信息进行创建的。在某些实施例中,待复制序列仅包含元数据的项1、2、3、5和6。应理解,本文中提出的“生成”待复制序列的过程,不仅用于描述生成一个序列用于包含元数据的各项的过程,还用于描述将以例如关键字信息进行排序的元数据的多个项的过程。
在409,将待复制序列中的元数据的多个项1、2、3、5和6复制到目标节点320。通过这种方式,可以仅复制索引结构中的元数据,并不必在块的级别上复制与元数据相关的整个索引结构,从而降低了复制的数据量。此外,由于元数据的各项按照关键字信息顺次排列,因此在目标节点320侧重建诸如B+树的索引结构时同样会产生较少的B+Tree垃圾。同时,索引页面更新将被最小化,进而减轻了目标节点320侧的容量开销。此外,由于元数据的各项按照关键字信息顺次排列,因此相邻的B+树节点位于磁盘上的相邻物理位置上,这有利于列表性能,从而减少磁盘IO。
为了进一步提升上述过程400的性能,还可以通过如图5所示的过程500进行操作。
图5示出了根据本公开的实施例的用于复制元数据的过程或方法500的流程图。具体地,图5示出了图4中将待复制序列中的元数据的多个项1、2、3、5和6复制到目标节点320的示例性实施例。在某些实施例中,方法500可以在图7示出的设备中实现。作为示例,方法500可以在图3所示的源节点310或与源节点通信连接的计算设备330中实现。现参照图1和图3,描述图5示出的根据本公开实施例的用于复制元数据的过程或方法500。为了便于理解,在下文描述中提及的具体数据均是示例性的,并不用于限定本公开的保护范围。
在501,将元数据的多个项1、2、3、5和6的总尺寸与阈值尺寸进行比较。作为示例,可以直接查询索引结构100中的元数据的总尺寸。备选地或附加地,可以将索引结构100中各终端节点130、131、 132、133和134中的元数据的项1、2、3、5和6的尺寸进行求和,以得到总尺寸。
在503,判定总尺寸是否大于阈值尺寸。应理解,该阈值尺寸的设定主要取决于目标节点320的诸如内存的硬件配置。当总尺寸大于阈值尺寸时,行进至505。
在505,将元数据的项1、2、3、5和6按照预定尺寸进行划分。在某些实施例中,该预定尺寸可以小于或等于阈值尺寸。作为示例,当项1、2、3的尺寸之和小于或等于预定尺寸时,可以将这些项作为一组发送至目标节点。
在507,将划分后的元数据的多个项复制到目标节点320。
通过实施上述过程,由于仅批量地复制顺次排列的元数据的多个项,而没有不必要地在块的级别上复制包含大量垃圾的整个索引结构 100,故可以减少带宽消耗,从而帮助用户降低成本。
备选地或附加地,还可以通过如图6所示的过程600来实现图4 中将待复制序列中的元数据的多个项1、2、3、5和6复制到目标节点320的过程。
图6示出了根据本公开的实施例的用于复制元数据的过程或方法 600的流程图。在某些实施例中,方法600可以在图7示出的设备中实现。作为示例,方法600可以在图3所示的源节点310或与源节点通信连接的计算设备330中实现。现参照图1和图3,描述图6示出的根据本公开实施例的用于复制元数据的过程或方法600。为了便于理解,在下文描述中提及的具体数据均是示例性的,并不用于限定本公开的保护范围。
在601,确定目标节点320允许在每次复制中进行复制的元数据的最大长度。应理解,允许在每次复制中进行复制的元数据的最大长度主要取决于目标节点320的诸如内存的硬件配置。通过确定该最大长度,可以确定按照某一固定长度分批地备份元数据。
在603,基于最大长度确定元数据能够在每次复制中进行复制的项数。在某些实施例中,直接按照该最大长度来截取待复制的元数据。作为示例,当从元数据的项1开始进行复制时,如果检测到项3被复制后元数据被复制的尺寸达到最大长度,则停止继续进行复制。当目标节点320处理完元数据的项1、2和3之后,继续开始从项4开始复制,以此类推,直至完成对整个元数据的复制过程。备选地或附加地,还可以按照比该最大长度小的固定长度来截取待复制的元数据。
在605,将该项数的元数据复制到目标节点320。
通过实施上述过程,由于仅批量地复制顺次排列的元数据的多个项,故可以减少带宽消耗。与元数据相关的数据可以进行并行复制,从而节省了总体的复制时间。
在某些实施例中,上述方案还可以包括:记录在每次复制中被复制到目标节点的结束项的关键字信息,以作为下一次复制的起始项的关键字信息。
在某些实施例中,上述方案还可以包括:响应于对项数的元数据的复制失败,确定上一次复制中被复制到目标节点的结束项;以及将结束项之后的项数的元数据复制到目标节点。
在某些实施例中,获取索引结构的信息可以包括:获取与B+树所包括的叶子页面和索引页面有关的信息,叶子页面用于存储元数据,索引页面用于存储叶子页面的索引信息。
图7示出了可以用来实施本公开内容的实施例的示例设备700的示意性框图。如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703 通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/ 数据。
上文所描述的各个过程和处理,例如方法400、500和/或600,可由处理单元701执行。例如,在一些实施例中,方法400、500和/ 或600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700 上。当计算机程序被加载到RAM 703并由CPU 701执行时,可以执行上文描述的方法400、500和/或600的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于) 电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器 (RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM 或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (13)

1.一种复制元数据的方法,包括:
响应于接收到向目标节点复制元数据的请求,获取与所述元数据相关联的索引结构的信息,所述索引结构包括用于存储所述元数据的终端节点和用于存储所述终端节点的索引信息的索引节点;
基于所述索引结构的信息,从所述终端节点中提取所述元数据;
生成所述元数据的待复制序列,所述待复制序列包括所述元数据的多个项,所述多个项在所述待复制序列中的位置是基于与所述多个项相对应的关键字信息而确定的;以及
将所述待复制序列中的所述元数据的所述多个项复制到所述目标节点。
2.根据权利要求1所述的方法,其中将所述待复制序列中的所述元数据的所述多个项复制到所述目标节点包括:
将所述元数据的所述多个项的总尺寸与阈值尺寸进行比较;
响应于所述总尺寸大于所述阈值尺寸,将所述元数据的所述多个项按照预定尺寸进行划分,所述预定尺寸小于或等于所述阈值尺寸;以及
将划分后的所述元数据的所述多个项复制到所述目标节点。
3.根据权利要求1所述的方法,其中将所述待复制序列中的所述元数据的所述多个项复制到所述目标节点包括:
确定所述目标节点允许在每次复制中进行复制的元数据的最大长度;
基于所述最大长度确定所述元数据能够在每次复制中进行复制的项数;以及
将所述项数的元数据复制到所述目标节点。
4.根据权利要求3所述的方法,还包括:
记录在每次复制中被复制到所述目标节点的结束项的关键字信息,以作为下一次复制的起始项的关键字信息。
5.根据权利要求3或4所述的方法,还包括:
响应于对所述项数的元数据的复制失败,确定上一次复制中被复制到所述目标节点的结束项;以及
将所述结束项之后的所述项数的元数据复制到所述目标节点。
6.根据权利要求1所述的方法,其中获取所述索引结构的信息包括:
获取与B+树所包括的叶子页面和索引页面有关的信息,所述叶子页面用于存储所述元数据,所述索引页面用于存储所述叶子页面的索引信息。
7.一种电子设备,包括:
至少一个处理单元;以及
至少一个存储器,其耦合至所述至少一个处理单元并且存储有机器可执行指令,当所述指令由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
响应于接收到向目标节点复制元数据的请求,获取与所述元数据相关联的索引结构的信息,所述索引结构包括用于存储所述元数据的终端节点和用于存储所述终端节点的索引信息的索引节点;
基于所述索引结构的信息,从所述终端节点中提取所述元数据;
生成所述元数据的待复制序列,所述待复制序列包括所述元数据的多个项,所述多个项在所述待复制序列中的位置是基于与所述多个项相对应的关键字信息而确定的;以及
将所述待复制序列中的所述元数据的所述多个项复制到所述目标节点。
8.根据权利要求7所述的设备,其中将所述待复制序列中的所述元数据的所述多个项复制到所述目标节点包括:
将所述元数据的所述多个项的总尺寸与阈值尺寸进行比较;
响应于所述总尺寸大于所述阈值尺寸,将所述元数据的所述多个项按照预定尺寸进行划分,所述预定尺寸小于或等于所述阈值尺寸;以及
将划分后的所述元数据的所述多个项复制到所述目标节点。
9.根据权利要求7所述的设备,其中将所述待复制序列中的所述元数据的所述多个项复制到所述目标节点包括:
确定所述目标节点允许在每次复制中进行复制的元数据的最大长度;
基于所述最大长度确定所述元数据能够在每次复制中进行复制的项数;以及
将所述项数的元数据复制到所述目标节点。
10.根据权利要求9所述的设备,其中所述动作还包括:
记录在每次复制中被复制到所述目标节点的结束项的关键字信息,以作为下一次复制的起始项的关键字信息。
11.根据权利要求9或10所述的设备,其中所述动作还包括:
响应于对所述项数的元数据的复制失败,确定上一次复制中被复制到所述目标节点的结束项;以及
将所述结束项之后的所述项数的元数据复制到所述目标节点。
12.根据权利要求7所述的设备,其中获取所述索引结构的信息包括:
获取与B+树所包括的叶子页面和索引页面有关的信息,所述叶子页面用于存储所述元数据,所述索引页面用于存储所述叶子页面的索引信息。
13.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至6中任一项所述的方法的步骤。
CN201811303605.2A 2018-11-02 2018-11-02 复制元数据的方法、电子设备和计算机程序产品 Active CN111143113B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201811303605.2A CN111143113B (zh) 2018-11-02 2018-11-02 复制元数据的方法、电子设备和计算机程序产品
US16/442,305 US11216483B2 (en) 2018-11-02 2019-06-14 Methods, electronic devices and computer program product for replicating metadata
US17/542,648 US11604808B2 (en) 2018-11-02 2021-12-06 Methods, electronic devices and computer program product for replicating metadata

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811303605.2A CN111143113B (zh) 2018-11-02 2018-11-02 复制元数据的方法、电子设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN111143113A true CN111143113A (zh) 2020-05-12
CN111143113B CN111143113B (zh) 2023-07-07

Family

ID=70459630

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811303605.2A Active CN111143113B (zh) 2018-11-02 2018-11-02 复制元数据的方法、电子设备和计算机程序产品

Country Status (2)

Country Link
US (2) US11216483B2 (zh)
CN (1) CN111143113B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947864A (zh) * 2021-03-29 2021-06-11 南方电网数字电网研究院有限公司 元数据的存储方法、装置、设备和存储介质
CN114036174A (zh) * 2021-12-14 2022-02-11 中国平安财产保险股份有限公司 数据更新方法、装置、设备及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010036287A1 (en) 2008-09-24 2010-04-01 Pacific Biosciences Of California, Inc. Intermittent detection during analytical reactions
US11675812B1 (en) * 2022-09-29 2023-06-13 Fmr Llc Synchronization of metadata between databases in a cloud computing environment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110022566A1 (en) * 2009-06-26 2011-01-27 Simplivt Corporation File system
US20110196828A1 (en) * 2010-02-09 2011-08-11 Alexandre Drobychev Method and System for Dynamically Replicating Data Within A Distributed Storage System
US20140181071A1 (en) * 2011-08-30 2014-06-26 Patrick Thomas Sidney Pidduck System and method of managing capacity of search index partitions
US20160034356A1 (en) * 2014-08-04 2016-02-04 Cohesity, Inc. Backup operations in a tree-based distributed file system
CN105765659A (zh) * 2013-10-30 2016-07-13 微软技术许可有限责任公司 针对联网设备的数据管理
CN107729570A (zh) * 2017-11-20 2018-02-23 北京百度网讯科技有限公司 用于服务器的数据迁移方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10482103B2 (en) * 2017-05-10 2019-11-19 Sap Se Key-value store for lightweight replication of metadata
EP3649564A4 (en) * 2017-07-06 2020-12-16 Open Text SA ULC INDEX MANAGEMENT SYSTEM AND METHOD FOR RESEARCH INDEX DIVISIONS

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110022566A1 (en) * 2009-06-26 2011-01-27 Simplivt Corporation File system
US20130290263A1 (en) * 2009-06-26 2013-10-31 Simplivity Corporation File system
US20110196828A1 (en) * 2010-02-09 2011-08-11 Alexandre Drobychev Method and System for Dynamically Replicating Data Within A Distributed Storage System
US20140181071A1 (en) * 2011-08-30 2014-06-26 Patrick Thomas Sidney Pidduck System and method of managing capacity of search index partitions
CN105765659A (zh) * 2013-10-30 2016-07-13 微软技术许可有限责任公司 针对联网设备的数据管理
US20160034356A1 (en) * 2014-08-04 2016-02-04 Cohesity, Inc. Backup operations in a tree-based distributed file system
CN107729570A (zh) * 2017-11-20 2018-02-23 北京百度网讯科技有限公司 用于服务器的数据迁移方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947864A (zh) * 2021-03-29 2021-06-11 南方电网数字电网研究院有限公司 元数据的存储方法、装置、设备和存储介质
CN112947864B (zh) * 2021-03-29 2024-03-08 南方电网数字平台科技(广东)有限公司 元数据的存储方法、装置、设备和存储介质
CN114036174A (zh) * 2021-12-14 2022-02-11 中国平安财产保险股份有限公司 数据更新方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US11216483B2 (en) 2022-01-04
CN111143113B (zh) 2023-07-07
US20220092081A1 (en) 2022-03-24
US20200142904A1 (en) 2020-05-07
US11604808B2 (en) 2023-03-14

Similar Documents

Publication Publication Date Title
EP3678015B1 (en) Metadata query method and device
CN108733507B (zh) 文件备份和恢复的方法和设备
AU2011256912B2 (en) Systems and methods for providing increased scalability in deduplication storage systems
CN111143113B (zh) 复制元数据的方法、电子设备和计算机程序产品
US10795579B2 (en) Methods, apparatuses, system and computer program products for reclaiming storage units
US10628298B1 (en) Resumable garbage collection
US11210003B2 (en) Method, device and computer program product for restoring data based on replacing child node identifiers with parent node identifier
CN111104249A (zh) 用于数据备份的方法、设备和计算机程序产品
US11093389B2 (en) Method, apparatus, and computer program product for managing storage system
CN111143231B (zh) 用于数据处理的方法、设备和计算机程序产品
US9684668B1 (en) Systems and methods for performing lookups on distributed deduplicated data systems
CN111857556A (zh) 管理存储对象的元数据的方法、装置和计算机程序产品
US10678453B2 (en) Method and device for checking false sharing in data block deletion using a mapping pointer and weight bits
US11226739B2 (en) Method, device and computer program product for storage management
US10712959B2 (en) Method, device and computer program product for storing data
CN111104787B (zh) 用于比较文件的方法、设备和计算机程序产品
US11645333B1 (en) Garbage collection integrated with physical file verification
CN111625500A (zh) 文件快照方法及装置、电子设备和存储介质
CN113626251A (zh) 用于迁移备份系统的方法、设备和计算机程序产品
CN113297003A (zh) 管理备份数据的方法、电子设备和计算机程序产品
US11379147B2 (en) Method, device, and computer program product for managing storage system
CN114063886A (zh) 用于存储管理的方法、电子设备和计算机程序产品
CN113391949A (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