CN117573027A - 数据处理方法及设备 - Google Patents

数据处理方法及设备 Download PDF

Info

Publication number
CN117573027A
CN117573027A CN202311524622.XA CN202311524622A CN117573027A CN 117573027 A CN117573027 A CN 117573027A CN 202311524622 A CN202311524622 A CN 202311524622A CN 117573027 A CN117573027 A CN 117573027A
Authority
CN
China
Prior art keywords
metadata
cluster
information
target cluster
target
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.)
Pending
Application number
CN202311524622.XA
Other languages
English (en)
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 Volcano Engine Technology Co Ltd
Original Assignee
Beijing Volcano Engine 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 Volcano Engine Technology Co Ltd filed Critical Beijing Volcano Engine Technology Co Ltd
Priority to CN202311524622.XA priority Critical patent/CN117573027A/zh
Publication of CN117573027A publication Critical patent/CN117573027A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开实施例提供一种数据处理方法及设备,该方法通过在执行源集群中的元数据表搬迁至目标集群的处理中,检测到当前针对元数据表的写操作,对元数据表进行检查点操作,以备份检查点操作下元数据表中当前存量元数据信息,将当前存量元数据信息搬迁至目标集群之后,基于写操作完成之后相应的日志文件对当前存量元数据信息进行回放操作,以得到对当前存量元数据信息进行写操作之后的目标元数据信息,在元数据表搬迁完成之后,将元数据表对应的数据文件搬迁至目标集群中。该技术方案中,可以避免数据搬迁过程中出现的数据定位混乱,且不影响用户正常的读写操作。

Description

数据处理方法及设备
技术领域
本公开实施例涉及计算机与网络通信技术领域,尤其涉及一种数据处理方法及设备。
背景技术
在大数据场景中,分布式文件系统往往是数据的存储底座。随着数据量的不断增大,单集群逐渐成为存储和访问的瓶颈,分布式问题核心之一的“分区”成为了分布式文件存储系统的痛点。业界进行数据分区的过程中,通常会影响上层业务的正常读写。
在现有技术中,在用户进行写操作时,提供了一种数据写入优先级,基于该数据写入优先级,写操作对应的增量数据信息优先写入至新集群,写入不成功则写入至旧集群,其他的当前存量元数据信息可以基于离线方式搬迁。
然而上述方式中,用户需要对增量数据的读写操作时,需要在先在新集群中尝试读写,不成功后在旧集群中再次尝试读写,一定程度上影响了用户的读写效率。
发明内容
本公开实施例提供一种数据处理方法及设备,以避免数据搬迁过程中出现的数据定位混乱,影响用户正常的读写操作的情况发生。
第一方面,本公开实施例提供一种数据处理方法,包括:
在执行源集群中的元数据表搬迁至目标集群的处理中,检测到当前针对所述元数据表的写操作,对所述元数据表进行检查点操作,以备份所述检查点操作下所述元数据表中当前存量元数据信息;
将所述当前存量元数据信息搬迁至所述目标集群之后,基于所述写操作完成之后相应的日志文件对所述当前存量元数据信息进行回放操作,以得到对所述当前存量元数据信息进行所述写操作之后的目标元数据信息;
在所述元数据表搬迁完成之后,将所述元数据表对应的数据文件搬迁至所述目标集群中。
第二方面,本公开实施例提供一种数据处理设备,包括:
备份单元,用于在执行源集群中的元数据表搬迁至目标集群的处理中,检测到当前针对所述元数据表的写操作,对所述元数据表进行检查点操作,以备份所述检查点操作下所述元数据表中当前存量元数据信息;
回放单元,用于将所述当前存量元数据信息搬迁至所述目标集群之后,基于所述写操作完成之后相应的日志文件对所述当前存量元数据信息进行回放操作,以得到对所述当前存量元数据信息进行所述写操作之后的目标元数据信息;
搬迁单元,用于在所述元数据表搬迁完成之后,将所述元数据表对应的数据文件搬迁至所述目标集群中。
第三方面,本公开实施例提供一种电子设备,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面可能的设计所述的数据处理方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面可能的设计所述的数据处理方法。
第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上第一方面可能的设计所述的数据处理方法。
本实施例提供的数据处理方法及设备,通过在执行源集群中的元数据表搬迁至目标集群的处理中,检测到当前针对元数据表的写操作,对元数据表进行检查点操作,以备份检查点操作下元数据表中当前存量元数据信息;将当前存量元数据信息搬迁至目标集群之后,基于写操作完成之后相应的日志文件对当前存量元数据信息进行回放操作,以得到对当前存量元数据信息进行写操作之后的目标元数据信息;在元数据表搬迁完成之后,将元数据表对应的数据文件搬迁至目标集群中。该技术方案中,通过检查点操作确定出当前存量元数据信息,在有写操作时先记载相应操作,之后将相应操作于目标集群中对当前存量元数据信息进行相应写操作的处理方式,可以避免数据搬迁过程中出现的混乱,并不影响用户正常的读写操作。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有提供的分布式系统下用户访问的示意图;
图2为现有提供的动态子树拆分示意图;
图3为本公开实施例提供的数据处理方法流程示意图一;
图4为本公开实施例提供的数据处理方法流程示意图二;
图5为本公开实施例提供的数据处理设备的结构示意图;
图6为本公开实施例提供的电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
在大数据场景中,分布式文件系统往往是数据的存储底座。随着数据量的不断增大,单集群逐渐成为存储和访问的瓶颈,分布式问题核心之一的“分区”成为了分布式文件存储系统的痛点。业界进行数据分区的过程中,通常会影响上层业务的正常读写,即用户“有感”。如何实现用户“无感”的子树拆分成为分布式文件系统成为亟待解决的问题,例如,Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)。
同一目录树名空间视角下,数据层(英文简称:DN)在多集群间共享;元数据层(英文简称:NN)相互独立,通过路由层(英文:Proxy)连接。
分布式文件系统通常将完整的目录树分为很多子树,每个子树对应一个分区(NN集群),随着数据量的不断增大,单集群逐渐成为存储和访问的瓶颈,需要重新数据分区。
动态子树拆分(即重新数据分区)的主要难点:
1.拆分过程中,如何不影响用户读写。
2.拆分完成后,如何保证数据正确性和用户语义对比拆分前不变。
现有技术中常用的方式是:各个NN集群根路径挂载到路由表中,Proxy定期拉取路由表并根据路由表对用户流量进行转发。在路由表中,通常一个路径只挂载一个后段NN集群,一个后端NN集群只挂载于一个路径。
图1为现有提供的分布式系统下用户访问的示意图,如图1所示,包括:元数据路由层、路由表(存储于mount table中,例如,/a的路径为nn0;/a/b的路径为nn1)、分布式集群nn0(路径为:/a/c)和分布式集群nn1(路径为:/a/b/c)。
例如,用户需要访问一个某个路径的文件,基于最长匹配的原则,例如,访问/a/b,则会转发访问至nn1中。
对于动态子树拆分这个问题,图2为现有提供的动态子树拆分示意图。
结合图2,大体思路为:
1,路由表中支持单路径多挂载(例如,/a/b的路径为nn0,/a/b/c的路径为nn0和nn1),同时挂载于相同路径的后端NN集群拥有不同优先级(nn1大于nn0)。
2,用户的流量路由到优先级更高的后端NN集群中(搬迁目的集群nn1),当路由失败后回退到更低优先级的后端NN集群中(搬迁原集群nn0)。这样的探测机制可以让增量数据写入搬迁目前集群中,同时当前存量元数据信息正常读取。
3,将当前存量元数据信息离线搬迁到目的NN集群,搬迁完成后将路由表恢复为单挂载模式。
该现有技术中存在的技术问题:
1.Proxy定期拉取路由表,无法保证不同Proxy实例间路由表强一致。导致不同用户(英文:client)的增量写入不一致,一定程度影响用户读写,具体的,第一次去nn1中读取数据,失败之后会将错误返回给用户,或者第二次去nn0上读取,读写效率相对较低。
2.当待拆分路径的当前存量元数据信息和增量数据可能被两个后端NN同时管理,此时多路径的操作涉及两个集群的话,将无法进行。
在现有技术存在的技术问题的基础上,发明人的构思如下:如果在元数据表搬迁的过程中,发现用户将对元数据表存在访问请求时,可以对源集群中的元数据表进行checkpoint(即检查点)操作,得到当前存量元数据信息,此时,用户的访问请求正常执行,执行之后可以得到访问对应的日志文件,在当前存量元数据信息注入目标集群后,可以利用日志文件对当前存量元数据信息进行增量元数据信息的写入,之后将目标集群的调用服务开启,在后续访问时,便可以为用户提供服务,由于元数据表在搬迁之后,搬迁相应的元数据表对应的数据即可。
下述为本实施例提供的具体方法实施例,本方法实施例的执行主体可以是电子设备,具体可以是分布式集群中对各个服务器进行管理的控制服务器。
图3为本公开实施例提供的数据处理方法流程示意图一。如图3所示,该数据处理方法包括:
步骤31、在执行源集群中的元数据表搬迁至目标集群的处理中,检测到当前针对元数据表的写操作,对元数据表进行检查点操作,以备份检查点操作下元数据表中当前存量元数据信息;
在本步骤中,当源集群中的数据量不断增大,源集群逐渐成为存储和访问的瓶颈,需要重新进行数据分区,即需要将指定的数据搬迁至目标集群,例如,指定的数据可以是将元数据表以及元数据表对应的数据文件搬迁至目标集群,在搬迁过程中,用户存在针对元数据表的访问请求,该访问请求中有对元数据表进行修删改等相关的写操作。
此时,对源集群中的元数据表进行检查点操作,读取checkpoint中待拆分子树的元数据表,即元数据表中的当前存量元数据信息。
可选的,在该实现下,可以设置白名单,即可以记录哪些元数据表是不需要进行搬迁的,在搬迁时,可以过滤掉白名单中的元数据表,仅对未在白名单上的元数据表进行搬迁。
可选的,可以基于集群的容量、资源占用率、以及元数据表和该元数据表对应的数据文件的潮汐关系,选择合适的集群作为目标集群。
步骤32、将当前存量元数据信息搬迁至目标集群之后,基于写操作完成之后相应的日志文件对当前存量元数据信息进行回放操作,以得到对当前存量元数据信息进行写操作之后的目标元数据信息;
其中,日志文件是基于写操作生成的文件,即可以是Editlog;
在本步骤中,由于上述进行的写操作会对源集群中元数据表进行相应的更改,该更改被记录至日志文件中,在当前存量元数据信息注入至目标集群之后,可以利用该日志文件,对目标集群中的当前存量元数据信息进行更新处理,以得到与源集群中进行写操作所对应的元数据(即包括当前存量元数据信息和写操作对应的增量数据)。
可选的,在当前存量元数据信息注入至目标集群的过程中,用户的读写不受影响,增量元数据信息通过Editlog回放((EditLog即源集群和目标集群主从同步使用的binlog),相当于将目标集群临时加入源集群作为特殊的从节点。
在该步骤的实现过程中,待拆分路径的目录树的元数据表不存在同时被两个后端集群管理的阶段,在用户使用时,在搬迁完成之前,由源集群提供服务,在搬迁完成之后,由目标集群提供服务。
应理解:本实施例中的源集群和目标集群为分布式系统中的集群,可以包括多个服务器或相关电子设备等。
进一步地,基于更新后的当前存量元数据信息、以及更新后的当前存量元数据信息在目标集群中的地址,对目标集群所在的分布式系统中的路由表进行更新,得到更新后的路由表。
在该实现下,在增量数据信息回放完成之后,元数据表搬迁也完成,此时利用对当前存量元数据信息进行写操作之后的目标元数据信息、以及目标元数据信息在目标集群中的地址,对分布式系统中的路由表进行更新。
进一步地,接收到针对元数据表的下一次读写请求之后,在更新后的路由表中确定出下一次读写请求对应的元数据信息所处的路径信息,之后基于下一次读写请求对应的元数据信息所处的路径信息,对下一次读写请求对应的元数据信息进行下一次读写请求对应的读写操作
该实现下,基于更新之后的路由表,在用户进行读写操作时,可以准确的根据路由表中记载的信息对元数据表对应的数据文件进行相应操作,即用户发起读写请求之后,可以基于更新后的路由表中记载的内容、以及请求中携带的内容进行匹配,确定出读写请求所实际操作的元数据信息、及其元数据信息对应的数据,之后完成对元数据信息、及其元数据信息对应的数据的读写。
步骤33、在元数据表搬迁完成之后,将元数据表对应的数据文件搬迁至目标集群中。
在本步骤中,由于数据文件也可能存在响应于写操作而发生了相应变化,在元数据表搬迁结束之后,可以直接将元数据表对应的数据文件也搬迁至目标集群中。
在该实现下,数据文件的搬迁可以是一个块一个块依次搬迁,由于元数据搬迁的过程中,发生对元数据的写操作,会引起对数据文件的相关处理,在此时,数据文件的内容已经更改,即直接将数据文件搬迁至目标集群即可。
其中,数据文件由集群池(英文简称:DN)管理和保存,不同文件间的数据不存在相互关系。
可选的,该步骤的实现可以是:若元数据对应的数据文件所在的源集群与目标集群共享同一资源池,将元数据表对应的数据文件的引用信息搬迁至目标集群中;若元数据对应的数据文件所在的源集群与目标集群不共享同一资源池,将元数据表对应的数据文件搬迁至目标集群中。
在该实现下,源集群和目标集群可以根据是否共享同一个DN池,选择浅拷贝(hardlink,共享同一个DN池)或深拷贝(copy,不共享同一个DN池)的方式来搬迁数据文件。
例如,浅拷贝下,数据文件的引用信息可以是数据文件的快捷方式,将该数据文件的快捷方式存储至目标集群中;在深拷贝下,直接将数据文件存储至目标集群中。
当数据文件中某个文件的所有数据都被搬迁后,该文件即完成了搬迁,由目标集群进行管理。
其中,在数据文件的整个拆分(即搬迁)过程中,文件的数据不存同时被两个后端集群(即源集群和目标集群)管理的阶段。
进一步地,根据元数据表中记载的数据文件的唯一标识,在目标集群中确定出数据文件的路径信息,将数据文件的路径信息更新至元数据表中。
在该实现下,需要对目标集群中的数据文件和元数据表(目标当量数据信息)进行关联,即在元数据表中可以知道相应的数据文件的存储路径。
元数据表中携带有数据文件的唯一标识,电子设备在目标集群中确定与该唯一标识一致的数据文件,之后基于该数据文件的路径信息,返回至元数据表中进行相应数据文件的路径信息的记录,即将数据文件的路径信息添加至目标当量数据信息中。
进一步地,在源集群中的元数据表和元数据对应的数据文件搬迁至目标集群之后,停止对源集群中元数据表的远程过程调用服务,并提供目标集群中元数据表的远程过程调用服务。
在元数据表和相应的数据文件成功搬迁至目标集群之后,在用户端访问相应的元数据表时,由目标集群提供元数据表的远程过程调用服务,即关闭源集群关于元数据表相应的远程过程调用服务。
此外,在一些实现下,可以清除源集群中已经被搬迁的元数据表和相应的数据文件,减小源集群的空间资源占用情况。
本公开实施例提供的数据处理方法,通过在执行源集群中的元数据表搬迁至目标集群的处理中,检测到当前针对元数据表的写操作,对元数据表进行检查点操作,以备份检查点操作下元数据表中当前存量元数据信息,将当前存量元数据信息搬迁至目标集群之后,基于写操作完成之后相应的日志文件对当前存量元数据信息进行回放操作,以得到对当前存量元数据信息进行写操作之后的目标元数据信息,在元数据表搬迁完成之后,将元数据表对应的数据文件搬迁至目标集群中。该技术方案中,通过检查点操作确定出当前存量元数据信息,在有写操作时先记载相应操作,之后将相应操作于目标集群中对当前存量元数据信息进行相应写操作的处理方式,可以避免数据搬迁过程中出现的混乱,且不影响用户正常的读写操作。
在上述实施例的基础上,图4为本公开实施例提供的数据处理方法流程示意图二。如图4所示,该数据处理方法从DN(数据节点,即数据文件)、源集群scr nn、目标集群dstnn、以及ZK(ZooKeeper,开源的分布式协调服务框架,即路由表所处的mount table)处进行说明:
一、准备阶段(在元数据表和相应的数据文件搬迁之前的准备):
1.向电子设备(例如,分布式系统中的Alfred)发送split dancenn的指令,给要被迁移的目录设置白名单;
2.电子设备创建并启动split dancenn的任务,并定期向运维平台反馈任务当前状态;
3.电子设备向被拆分路径所属dancenn active节点(即“源集群”)发送checkpoint命令(该实现用于后续对源集群下元数据表中当前存量元数据信息进行备份);
4.源集群确认split task(即拆分任务,即将源集群中的元数据表迁移至目标集群)是否可执行(白名单中是否存在元数据表);
a.可执行:进行split task前置工作,完成后返回更新后的task context给电子设备;
b.不可执行:把异常原因放入task context返回电子设备,流程终止。
二、元数据搬迁与命名空间管理交接(元数据表的搬迁过程,包含元数据表的搬迁以及路由表的更新,在该实现下,源集群中的元数据表、以及数据文件持续为用户提供读写):
1.源集群执行checkpoint task(即检查点任务)并产生split begin log,完成后返回checkpoint path(即检查点路径)、split begintxid(即开始文件标识)、bk ip(即备份ip)等task context(即任务上下文)给电子设备。
2.把split task下发给目的集群dancenn active节点(即“目标集群”),目标集群进行必要检查,如是否会发生元数据冲突。
3.检查通过后,目标集群加载rocksdb(即嵌入式键值存储引擎)checkpoint中的指定路径,此期间新增路径对用户不可见。
4.加载完成后,split path(即拆分路径)在目标集群上可读不可写,下列事情同时进行:
a.目标集群连接task context中的src bk ip(即备份过程中使用的源集群的IP地址)开始消费split begin txid(给定id地址开始)后的相关路径的增量edit log(即编辑日志,即写操作对应的日志文件),按正常写入逻辑处理,同时保留源集群的inode。目标集群维护pending migration block table(即待迁移块表),该table通过checkpointfile初始化,增量edit log中涉及block变动的block info和inode info均会merge进其中,该结构会持久化在目标集群的rocksdb特定CF。
b.电子设备开始消费目标集群中的pending migration block table开始进行block的搬迁(hardlink),此过程中遇到不存在的block会进行忽略并记录ignoredblocks,用于后续的数据校验。
5.电子设备定期检查目标集群消费增量edit log的gap。当gap小于某个值时,同时进行下列任务:
a.通知源集群停止对split path的名字空间的读写服务,并写入namespacesplit finish log(即命名空间完成拆分日志),并把相关txid更新到task context中。
i.源集群收到相关路径rpc(即远程过程调用)返回forward exception(即一种异常传递机制),其中包含目标集群的信息,nnproxy收到后将rpc转发到目标集群处理。
ii.block在目标集群没有完全可用的文件的元数据由两个nn一起维护,目标集群负责维护目录树元数据,源集群负责维护数据块(英文:block)相关元数据。
iii.所有元数据rpc先发送给目标集群,由目标集群决定是否转发block相关rpc给源集群处理。被转发的block rpc(块级别的调用)会有特殊标识,源集群只会处理有特殊标识的block相关rpc。
b.电子设备更改zk的mountable,将dst挂载到split path(拆分路径)的根节点(即路由表的更新)。
c.nnproxy收到forward exception后会检查自身mountable是否过期,并主动刷新mountable(会有退避机制,且目标集群产生的forward exception不刷新)。
6.目标集群持续消费增量edit log,此期间不对外提供split path的元数据服务,直到遇到namespacesplit finish log。至此,split path的名空间元数据管理的转交完成,任务不可回滚或cancel。
三、block过渡期:电子设备进行搬迁任务中的block搬迁以及block相关元数据的交接工作(即元数据表对应的文件数据的搬迁);
1.block搬迁完毕:
a.源集群写入split finish log,目标集群消费该log后写入split finish log以周知standby nn;
b.通知运维平台拆分元数据搬迁完成,进入收尾阶段。
2.block搬迁中:将未搬迁完毕的block信息通知给src/目标集群并进入“block过渡期”。
3.block搬迁超时:通知运维平台拆分任务具体异常,人工介入处理。
四、收尾阶段:(元数据表和数据文件搬迁结束之后的处理);
1.将源集群被迁移目录的元数据移动到特定backup路径,该路径在2天(时间可设置)后删除,完成后关闭相关路径的forward exception(任务上下文的数据持久化存储)机制;
2.进行rocksdb(即嵌入式键值存储引擎)checkpoint(即检查点)等中间文件清理,保存到特定hdfs路径,路径保存进task context,完成后通知运维平台任务完成;
3.解除被迁移目录的quota白名单;
4.持久化task context。
本公开实施例提供一种数据处理方法,其实现原理及技术效果与上述实施例中涉及的原理和技术效果类似,此处不再赘述。
在上述方法实施例的基础上,图5为本公开实施例提供的数据处理设备的结构示意图,如图5所示,该数据处理设备包括:
备份单元51,用于在执行源集群中的元数据表搬迁至目标集群的处理中,检测到当前针对元数据表的写操作,对元数据表进行检查点操作,以备份检查点操作下元数据表中当前存量元数据信息;
回放单元52,用于将当前存量元数据信息搬迁至目标集群之后,基于写操作完成之后相应的日志文件对当前存量元数据信息进行回放操作,以得到对当前存量元数据信息进行写操作之后的目标元数据信息;
搬迁单元53,用于在元数据表搬迁完成之后,将元数据表对应的数据文件搬迁至目标集群中。
根据本公开的一个或多个实施例,搬迁单元53,具体用于:
若元数据对应的数据文件所在的源集群与目标集群共享同一资源池,将元数据表对应的数据文件的引用信息搬迁至目标集群中;
若元数据对应的数据文件所在的源集群与目标集群不共享同一资源池,将元数据表对应的数据文件搬迁至目标集群中。
根据本公开的一个或多个实施例,搬迁单元53,还用于:
根据元数据表中记载的数据文件的唯一标识,在目标集群中确定出数据文件的路径信息,将数据文件的路径信息更新至元数据表中。
根据本公开的一个或多个实施例,在将当前存量元数据信息搬迁至目标集群之后,基于写操作完成之后相应的日志文件对当前存量元数据信息进行回放操作,以得到对当前存量元数据信息进行写操作之后的目标元数据信息之后,搬迁单元53,还用于:
根据目标元数据信息、以及目标元数据信息在目标集群中的路径信息,对目标集群所在的分布式系统中的路由表进行更新,得到更新后的路由表。
根据本公开的一个或多个实施例,处理单元,用于:
接收到针对元数据表的下一次读写请求之后,在更新后的路由表中确定出下一次读写请求对应的元数据信息所处的路径信息;
基于下一次读写请求对应的元数据信息所处的路径信息,对下一次读写请求对应的元数据信息进行下一次读写请求对应的读写操作。
根据本公开的一个或多个实施例,处理单元,还用于:
在源集群中的元数据表和元数据对应的数据文件搬迁至目标集群之后,停止对源集群中元数据表的远程过程调用服务,并提供目标集群中元数据表的远程过程调用服务。
本公开实施例提供的数据处理设备,其技术方案与技术效果与上述实施例中的类似,此处不再赘述。
为了实现上述实施例,本公开实施例还提供了一种电子设备。图6为本公开实施例提供的电子设备的结构示意图,参考图6,该电子设备可以为终端设备。
其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable AndroidDevice,简称PAD)、便携式多媒体播放器(Portable Media Player,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等)61,其可以根据存储在只读存储器(Read Only Memory,简称ROM)62中的程序或者从存储装置68加载到随机访问存储器(Random Access Memory,简称RAM)63中的程序而执行各种适当的动作和处理。在RAM 63中,还存储有电子设备操作所需的各种程序和数据。处理装置61、ROM62以及RAM 63通过总线64彼此相连。输入/输出(I/O)接口65也连接至总线64。
通常,以下装置可以连接至I/O接口65:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置66;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置67;包括例如磁带、硬盘等的存储装置68;以及通信装置69。通信装置69可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置69从网络上被下载和安装,或者从存储装置68被安装,或者从ROM 62被安装。在该计算机程序被处理装置61执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
第一方面,根据本公开的一个或多个实施例,提供了一种数据处理方法,包括:
在执行源集群中的元数据表搬迁至目标集群的处理中,检测到当前针对所述元数据表的写操作,对所述元数据表进行检查点操作,以备份所述检查点操作下所述元数据表中当前存量元数据信息;
将所述当前存量元数据信息搬迁至所述目标集群之后,基于所述写操作完成之后相应的日志文件对所述当前存量元数据信息进行回放操作,以得到对所述当前存量元数据信息进行所述写操作之后的目标元数据信息;
在所述元数据表搬迁完成之后,将所述元数据表对应的数据文件搬迁至所述目标集群中。
根据本公开的一个或多个实施例,所述将所述元数据表对应的数据文件搬迁至所述目标集群中,包括:
若所述元数据对应的数据文件所在的源集群与所述目标集群共享同一资源池,将所述元数据表对应的数据文件的引用信息搬迁至所述目标集群中;
若所述元数据对应的数据文件所在的源集群与所述目标集群不共享同一资源池,将所述元数据表对应的数据文件搬迁至所述目标集群中。
根据本公开的一个或多个实施例,所述方法还包括:
根据所述元数据表中记载的所述数据文件的唯一标识,在所述目标集群中确定出所述数据文件的路径信息,将所述数据文件的路径信息更新至所述元数据表中。
根据本公开的一个或多个实施例,在所述将所述当前存量元数据信息搬迁至所述目标集群之后,基于所述写操作完成之后相应的日志文件对所述当前存量元数据信息进行回放操作,以得到对所述当前存量元数据信息进行所述写操作之后的目标元数据信息之后,所述方法还包括:
根据所述目标元数据信息、以及所述目标元数据信息在所述目标集群中的路径信息,对所述目标集群所在的分布式系统中的路由表进行更新,得到更新后的路由表。
根据本公开的一个或多个实施例,所述方法还用于:
接收到针对所述元数据表的下一次读写请求之后,在所述更新后的路由表中确定出所述下一次读写请求对应的元数据信息所处的路径信息;
基于所述下一次读写请求对应的元数据信息所处的路径信息,对所述下一次读写请求对应的元数据信息进行所述下一次读写请求对应的读写操作。
根据本公开的一个或多个实施例,所述方法还包括:
在所述源集群中的所述元数据表和所述元数据对应的数据文件搬迁至所述目标集群之后,停止对所述源集群中所述元数据表的远程过程调用服务,并提供所述目标集群中所述元数据表的远程过程调用服务。
第二方面,根据本公开的一个或多个实施例,提供了一种数据处理设备,包括:
备份单元,用于在执行源集群中的元数据表搬迁至目标集群的处理中,检测到当前针对所述元数据表的写操作,对所述元数据表进行检查点操作,以备份所述检查点操作下所述元数据表中当前存量元数据信息;
回放单元,用于将所述当前存量元数据信息搬迁至所述目标集群之后,基于所述写操作完成之后相应的日志文件对所述当前存量元数据信息进行回放操作,以得到对所述当前存量元数据信息进行所述写操作之后的目标元数据信息;
搬迁单元,用于在所述元数据表搬迁完成之后,将所述元数据表对应的数据文件搬迁至所述目标集群中。
根据本公开的一个或多个实施例,所述搬迁单元,具体用于:
若所述元数据对应的数据文件所在的源集群与所述目标集群共享同一资源池,将所述元数据表对应的数据文件的引用信息搬迁至所述目标集群中;
若所述元数据对应的数据文件所在的源集群与所述目标集群不共享同一资源池,将所述元数据表对应的数据文件搬迁至所述目标集群中。
根据本公开的一个或多个实施例,所述搬迁单元,还用于:
根据所述元数据表中记载的所述数据文件的唯一标识,在所述目标集群中确定出所述数据文件的路径信息,将所述数据文件的路径信息更新至所述元数据表中。
根据本公开的一个或多个实施例,在所述将所述当前存量元数据信息搬迁至所述目标集群之后,基于所述写操作完成之后相应的日志文件对所述当前存量元数据信息进行回放操作,以得到对所述当前存量元数据信息进行所述写操作之后的目标元数据信息之后,所述搬迁单元,还用于:
根据所述目标元数据信息、以及所述目标元数据信息在所述目标集群中的路径信息,对所述目标集群所在的分布式系统中的路由表进行更新,得到更新后的路由表。
根据本公开的一个或多个实施例,处理单元,用于:
接收到针对所述元数据表的下一次读写请求之后,在所述更新后的路由表中确定出所述下一次读写请求对应的元数据信息所处的路径信息;
基于所述下一次读写请求对应的元数据信息所处的路径信息,对所述下一次读写请求对应的元数据信息进行所述下一次读写请求对应的读写操作。
根据本公开的一个或多个实施例,处理单元,用于:
在所述源集群中的所述元数据表和所述元数据对应的数据文件搬迁至所述目标集群之后,停止对所述源集群中所述元数据表的远程过程调用服务,并提供所述目标集群中所述元数据表的远程过程调用服务。
第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的数据处理方法。
第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的数据处理方法。
第五方面,根据本公开的一个或多个实施例,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计所述的数据处理方法
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
在执行源集群中的元数据表搬迁至目标集群的处理中,检测到当前针对所述元数据表的写操作,对所述元数据表进行检查点操作,以备份所述检查点操作下所述元数据表中当前存量元数据信息;
将所述当前存量元数据信息搬迁至所述目标集群之后,基于所述写操作完成之后相应的日志文件对所述当前存量元数据信息进行回放操作,以得到对所述当前存量元数据信息进行所述写操作之后的目标元数据信息;
在所述元数据表搬迁完成之后,将所述元数据表对应的数据文件搬迁至所述目标集群中。
2.根据权利要求1所述的方法,其特征在于,所述将所述元数据表对应的数据文件搬迁至所述目标集群中,包括:
若所述元数据对应的数据文件所在的源集群与所述目标集群共享同一资源池,将所述元数据表对应的数据文件的引用信息搬迁至所述目标集群中;
若所述元数据对应的数据文件所在的源集群与所述目标集群不共享同一资源池,将所述元数据表对应的数据文件搬迁至所述目标集群中。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述元数据表中记载的所述数据文件的唯一标识,在所述目标集群中确定出所述数据文件的路径信息,将所述数据文件的路径信息更新至所述元数据表中。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述将所述当前存量元数据信息搬迁至所述目标集群之后,基于所述写操作完成之后相应的日志文件对所述当前存量元数据信息进行回放操作,以得到对所述当前存量元数据信息进行所述写操作之后的目标元数据信息之后,所述方法还包括:
根据所述目标元数据信息、以及所述目标元数据信息在所述目标集群中的路径信息,对所述目标集群所在的分布式系统中的路由表进行更新,得到更新后的路由表。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收到针对所述元数据表的下一次读写请求之后,在所述更新后的路由表中确定出所述下一次读写请求对应的元数据信息所处的路径信息;
基于所述下一次读写请求对应的元数据信息所处的路径信息,对所述下一次读写请求对应的元数据信息进行所述下一次读写请求对应的读写操作。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
在所述源集群中的所述元数据表和所述元数据对应的数据文件搬迁至所述目标集群之后,停止对所述源集群中所述元数据表的远程过程调用服务,并提供所述目标集群中所述元数据表的远程过程调用服务。
7.一种数据处理设备,其特征在于,包括:
备份单元,用于在执行源集群中的元数据表搬迁至目标集群的处理中,检测到当前针对所述元数据表的写操作,对所述元数据表进行检查点操作,以备份所述检查点操作下所述元数据表中当前存量元数据信息;
回放单元,用于将所述当前存量元数据信息搬迁至所述目标集群之后,基于所述写操作完成之后相应的日志文件对所述当前存量元数据信息进行回放操作,以得到对所述当前存量元数据信息进行所述写操作之后的目标元数据信息;
搬迁单元,用于在所述元数据表搬迁完成之后,将所述元数据表对应的数据文件搬迁至所述目标集群中。
8.一种电子设备,其特征在于,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如权利要求1至6任一项所述的数据处理方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至6任一项所述的数据处理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的数据处理的方法。
CN202311524622.XA 2023-11-15 2023-11-15 数据处理方法及设备 Pending CN117573027A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311524622.XA CN117573027A (zh) 2023-11-15 2023-11-15 数据处理方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311524622.XA CN117573027A (zh) 2023-11-15 2023-11-15 数据处理方法及设备

Publications (1)

Publication Number Publication Date
CN117573027A true CN117573027A (zh) 2024-02-20

Family

ID=89885530

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311524622.XA Pending CN117573027A (zh) 2023-11-15 2023-11-15 数据处理方法及设备

Country Status (1)

Country Link
CN (1) CN117573027A (zh)

Similar Documents

Publication Publication Date Title
JP4612710B2 (ja) トランザクション並行制御方法、データベース管理システム、およびプログラム
US8977703B2 (en) Clustering without shared storage
CN111309732B (zh) 数据处理方法、装置、介质和计算设备
US10545913B1 (en) Data storage system with on-demand recovery of file import metadata during file system migration
EP3186760B1 (en) Dynamic load-based merging
JP2019519025A (ja) 分散システムにおける範囲の分割および移動
US9836516B2 (en) Parallel scanners for log based replication
CN110807062B (zh) 一种数据同步的方法、装置和数据库主机
US11144432B2 (en) Testing and reproduction of concurrency issues
US10620871B1 (en) Storage scheme for a distributed storage system
CN111198777A (zh) 数据处理方法、装置、终端及存储介质
CN112860697A (zh) 分布式数据库表结构变更方法、装置及系统
CN115543965A (zh) 跨机房数据处理方法、设备、存储介质及程序产品
US20210124516A1 (en) Storage management system and method
CN109165078B (zh) 一种虚拟分布式服务器及其访问方法
CN110019527B (zh) 从库读取方法、相关装置和设备
CN111414356A (zh) 数据存储方法、装置、非关系数据库系统及存储介质
US20210382636A1 (en) Customizable lock management for distributed resources
CN111031126B (zh) 集群缓存共享方法、系统、设备及存储介质
CN109614089B (zh) 数据访问代码的自动生成方法、装置、设备及存储介质
CN113127438A (zh) 用于存储数据的方法、装置、服务器和介质
CN117573027A (zh) 数据处理方法及设备
US9418175B2 (en) Enumeration of a concurrent data structure
CN109343928B (zh) 虚拟化集群中虚拟机的虚拟内存文件重定向方法及其系统
CN112434013A (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