CN112579692A - 一种数据同步方法、装置、系统、设备及存储介质 - Google Patents
一种数据同步方法、装置、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN112579692A CN112579692A CN201910931337.7A CN201910931337A CN112579692A CN 112579692 A CN112579692 A CN 112579692A CN 201910931337 A CN201910931337 A CN 201910931337A CN 112579692 A CN112579692 A CN 112579692A
- Authority
- CN
- China
- Prior art keywords
- data
- gpu
- data block
- block corresponding
- computing 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据同步方法、装置、系统、设备及存储介质,该方法可以包括:获取加载指示信息;各个计算节点分别针对该计算节点中各个图形处理器GPU,下载该GPU对应的数据块,并将该GPU对应的数据块加载至该GPU;在下载该GPU对应的数据块之后,当判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将更新数据加载至该GPU以进行数据更新。如此,能够避免单个GPU加载上限的问题,提升数据同步的数据规模。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据同步方法、装置、系统、设备及存储介质。
背景技术
随着计算机技术的发展,大数据技术逐渐发展起来,大数据技术的主要特点是数据量大,即大数据是由大量数据组成的数据集合。一般情况下,通过专门的存储模块如数据库等存储数据,具体的业务处理过程中,将存储模块中的数据同步至计算节点,通过计算节点对数据进行处理,以实现具体业务。为了保证业务的正常处理,将存储模块中的数据同步至计算节点的过程是一个重要方面。
发明内容
本发明实施例的目的在于提供一种数据同步方法、装置、系统、设备及存储介质,以避免单个图形处理器(Graphics Processing Unit,GPU)加载上限的问题,提升数据同步的数据规模。具体技术方案如下:
第一方面,本发明实施例提供了一种数据同步方法,包括:
获取加载指示信息;针对各个计算节点,所述加载指示信息用于指示该计算节点中各个图形处理器(Graphics Processing Unit,GPU)分别对应的数据块;所述数据块是将待同步全量数据进行划分得到的;
各个计算节点分别针对该计算节点中各个GPU,下载该GPU对应的数据块,并将该GPU对应的数据块加载至该GPU;
在所述下载该GPU对应的数据块之后,当判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将所述更新数据加载至该GPU以进行数据更新。
一种可实现实施例中,在所述获取加载指示信息之前,所述方法还包括:
确定所述待同步全量数据;
将所述待同步全量数据进行划分,得到多个数据块;
在所述将所述待同步全量数据进行划分,得到多个数据块之后,发送数据划分完成提示信息,所述数据划分完成提示信息用于触发对所述多个数据块进行分配。
一种可实现实施例中,在所述发送数据划分完成提示信息之后,所述方法还包括:
在接收到所述数据划分完成提示信息后,获取多个数据块的数据块信息、各个计算节点中各个GPU的加载容量以及各个计算节点中GPU的数量;
根据所述数据块信息、所述加载容量和所述数量,对多个数据块进行分配,得到加载指示信息,其中,针对各个计算节点,所述加载指示信息用于指示该计算节点中各个GPU分别对应的数据块;
针对各个计算节点,将所述加载指示信息下发至该计算节点。
一种可实现实施例中,所述下载该GPU对应的数据块,包括:
确定存储服务地址;
根据所述存储服务地址查询并下载该GPU对应的数据块。
可选的,所述下载在该GPU对应的数据块的基础上更新的更新数据,包括:
下载包括所述更新数据的更新数据文件,所述更新数据文件是根据预设时间范围内的所述更新数据生成的。
一种可实现实施例中,所述下载在该GPU对应的数据块的基础上更新的更新数据,包括:
通过消息系统获取所述更新数据。
一种可实现实施例中,在所述下载在该GPU对应的数据块的基础上更新的更新数据之后,所述方法还包括:
确定预定存储目录,其中,所述预定存储目录包括根目录、全量数据划分版本子目录、数据类型子目录和数据子目录;
根据所述预定存储目录,保存各个GPU对应的数据块以及分别在各个GPU对应的数据块的基础上更新的所述更新数据。
一种可实现实施例中,在所述下载在该GPU对应的数据块的基础上更新的更新数据之后,所述方法还包括:
检测计算节点本地磁盘的使用率;
当所述使用率大于等于预设阈值时,发送触发指令,所述触发指令用于指示重新确定所述待同步全量数据;将所述待同步全量数据进行划分,得到多个数据块的步骤。
第二方面,本发明实施例提供了一种数据同步系统,包括:存储模块、调度服务器和计算节点;
所述存储模块,确定待同步全量数据;将所述待同步全量数据进行划分,得到多个数据块,并确定所述多个数据块的数据块信息;在所述将所述待同步全量数据进行划分,得到多个数据块之后,向调度服务器发送数据划分完成提示信息;
所述调度服务器,在接收到所述数据划分完成提示信息后,获取多个数据块的数据块信息、各个计算节点中各个图形处理器GPU的加载容量以及所述各个计算节点中GPU的数量;根据所述数据块信息、所述加载容量和所述数量,对所述多个数据块进行分配,得到加载指示信息,其中,针对各个计算节点,所述加载指示信息用于指示该计算节点中各个GPU分别对应的数据块;针对各个计算节点,将所述加载指示信息下发至该计算节点;
所述计算集群中各个计算节点,获取所述加载指示信息;各个计算节点分别针对该计算节点中各个GPU,下载该GPU对应的数据块,并将该GPU对应的数据块加载至该GPU;在所述下载该GPU对应的数据块之后,当判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将所述更新数据加载至该GPU以进行数据更新。
一种可实现实施例中,所述调度服务器向计算节点发送存储服务地址;
针对各个计算节点,该计算节点根据所述存储服务地址从所述存储模块查询并下载各个GPU对应的数据块。
第三方面,本发明实施例提供了一种数据同步装置,包括:
第一获取模块,用于获取加载指示信息;针对各个计算节点,所述加载指示信息用于指示该计算节点中各个图形处理器GPU分别对应的数据块;所述数据块是将待同步全量数据进行划分得到的;
第一下载模块,用于各个计算节点分别针对该计算节点中各个GPU,下载该GPU对应的数据块,并将该GPU对应的数据块加载至该GPU;
第二下载模块,用于在所述下载该GPU对应的数据块之后,当判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将所述更新数据加载至该GPU以进行数据更新。
一种可实现实施例中,所述装置还包括:
第一确定模块,用于在所述获取加载指示信息之前,确定所述待同步全量数据;
划分模块,用于将所述待同步全量数据进行划分,得到多个数据块;
第一发送模块,用于在所述将所述待同步全量数据进行划分,得到多个数据块之后,发送数据划分完成提示信息,所述数据划分完成提示信息用于触发对所述多个数据块进行分配。
一种可实现实施例中,所述装置还包括:
第二获取模块,用于在接收到所述数据划分完成提示信息后,获取多个数据块的数据块信息、各个计算节点中各个GPU的加载容量以及各个计算节点中GPU的数量;
分配模块,用于根据所述数据块信息、所述加载容量和所述数量,对多个数据块进行分配,得到加载指示信息,其中,针对各个计算节点,所述加载指示信息用于指示该计算节点中各个GPU分别对应的数据块;
下发模块,用于针对各个计算节点,将所述加载指示信息下发至该计算节点。
一种可实现实施例中,所述第一下载模块,用于确定存储服务地址;根据所述存储服务地址查询并下载该GPU对应的数据块。
一种可实现实施例中,所述第二下载模块,用于下载包括所述更新数据的更新数据文件,所述更新数据文件是根据预设时间范围内的所述更新数据生成的。
一种可实现实施例中,所述第二下载模块,用于通过消息系统获取所述更新数据。
一种可实现实施例中,所述装置还包括:
第二确定模块,用于确定预定存储目录,其中,所述预定存储目录包括根目录、全量数据划分版本子目录、数据类型子目录和数据子目录;
保存模块,用于根据所述预定存储目录,保存各个GPU对应的数据块以及分别在各个GPU对应的数据块的基础上更新的所述更新数据。
一种可实现实施例中,所述装置还包括:
检测模块,用于检测计算节点本地磁盘的使用率;
第二发送模块,用于当所述使用率大于等于预设阈值时,发送触发指令,所述触发指令用于指示重新确定所述待同步全量数据;将所述待同步全量数据进行划分,得到多个数据块的步骤。
第四方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现第一方面所述的方法步骤。
第五方面,本发明实施例提供了,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法步骤。
本发明实施例提供的数据同步方法、装置、系统、设备及存储介质,可以针对各个计算节点,分别下载该计算节点中各个GPU分别对应的数据块,且在判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将更新数据加载至该GPU以进行数据更新。如此,避免单个GPU加载上限的问题,提升数据同步的数据规模。且并行下载各个GPU对应的数据,能够实现分布式同步,提高同步的效率以及数据同步的时效性。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为发明实施例提供的数据同步方法的一种流程图;
图2为发明实施例提供的数据同步方法的另一种流程图;
图3为发明实施例提供的数据同步方法的另一种流程图;
图4为本发明实施例中一种可实现方式的流程示意图;
图5为本发明实施例提供的一种数据存储目录示意图;
图6为本发明实施例提供的一种实施例交互示意图;
图7为本发明实施例提供的一种实施例的流程示意图;
图8为本发明实施例提供的数据同步系统的结构示意图;
图9为本发明实施例提供的数据同步装置的一种结构示意图;
图10为本发明实施例提供的数据同步装置的另一种结构示意图;
图11为本发明实施例提供的数据同步装置的另一种结构示意图;
图12为本发明实施例提供的另一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前技术中,人脸黑名单服务,具体地可以是实现该人脸黑名单服务的服务器、包括GPU的计算节点等接收人脸抓拍机上传的图片,对该图片进行建模,得到该图片对应的人脸模型,将该人脸模型与黑名单库进行比对,如果该人脸模型与黑名单库的相似度大于预设相似度阈值,则发送报警信息。一般情况下,黑名单库的数据通常在100万以下,通过单个GPU可以加载黑名单库中的全部数据,进而可实现图片模型与黑名单库的比对。但是,其他业务场景中,有可能需要与其他库中的数据进行比对,如某个省份人口库或者是全国常住人口库,人口库规模一般都比较大一般都是千万级、亿级的数据,单个GPU无法加载人口库中的全部数据。
本发明实施例针对数据量比较大时,单个GPU无法加载全部数据的情况,提供了一种数据同步方法。本发明实施例提供的数据同步方法将待加载的数据切分为多个数据块,并将多个数据块分配给对应的GPU,通过GPU并行加载数据块,且在各个GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将更新数据加载至该GPU以进行数据更新。如此,可以实现对数据的分区管理,对数据的并行同步,提高数据同步的时效性,以及使得数据同步更加高效,且在计算节点中GPU数量允许的情况下能够实现无限制数据量级的同步。
下面对本发明实施例提供的数据同步方法进行详细说明。
本发明实施例提供的数据同步方法可以应用于包括存储模块、调度服务器以及计算节点的数据同步系统。或者,可以应用于电子设备,电子设备可以是是包括多个模块的电子设备,如包括存储模块、调度模块以及计算节点的设备。或者可以应用于实现多个服务的电子设备,如存储服务、调度服务以及计算服务等,各个服务可以分别通过对应的进程等实现。
本发明实施例提供了一种数据同步方法,如图1所示,可以包括:
S101,获取加载指示信息。
针对各个计算节点,加载指示信息用于指示该计算节点中各个GPU分别对应的数据块;数据块是将待同步全量数据进行划分得到的。
计算集群中的计算节点、或者实现计算服务的计算进程等获取加载指示信息,根据该加载指示信息下载GPU对应的数据块,并将GPU对应的数据块加载至GPU。
本发明实施例可以包括对待同步全量数据进行划分,并将划分后得到的多个数据块进行分配,以得到加载指示信息的过程。
对待同步全量数据进行划分的过程可以应用于电子设备中的存储服务,或者应用于不同计算节点的存储设备如存储模块等。
一种可实现实施例中,在获取加载指示信息之前,如图2所示,还可以包括:
S201,确定待同步全量数据。
待同步全量数据可以包括人脸黑名单库中数据,车辆黑名单库中数据、人脸白名单库中数据等等。
待同步全量数据可以是根据用户的指示确定的。如存储模块中存储的是全国人口库,全国人口库中包括全国人口的信息。存储模块接收用户发送的指示信息,该指示信息包括某个省份的标识信息,如某个省份的名称,则存储模块可以从全国人口库中筛选出该省份人口的信息,将该省份人口的信息确定为待同步数据。而待同步全量数据可以是开始将存储模块中数据同步至计算节点时,如存储模块开始数据划分时,存储模块中已经存在的待同步数据。
S202,将待同步全量数据进行划分,得到多个数据块,并确定多个数据块的数据块信息。
可以为每一个数据块都分别分配一个唯一的标识信息,如数据块标号。通过数据块标号区分不同的数据块。如将该待同步全量数据划分为n个数据块,则为n个数据块分别分配0-n范围的一个唯一的数据块标号。
一种可实现实施例中,数据块可以是文件块的形式。即将待同步全量数据进行划分,得到多个文件块。一种可实现方式中,将待同步全量数据切分成多个部分,每一部分生成一个文件块,如可以是Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)文件块。每个文件块都具有hashId标号。一种可实现方式中,可以将生成的多个文件块存储在本地磁盘上。
数据块信息可以包括多个数据块中的数据总量、多个数据块中数据的数据类型、数据块的存储位置以及数据块的标识信息等。
S203,在将待同步全量数据进行划分,得到多个数据块之后,发送数据划分完成提示信息。
数据划分完成提示信息用于触发对多个数据块进行分配,以得到加载指示信息。
一种可实现实施例中,可以将数据划分完成提示信息发送至调度服务,如可以发送给实现该调度服务的进程,通过该进程对多个数据块进行分配,以得到加载指示信息。或者,可以将数据划分完成提示信息发送至调度服务器,通过调度服务器对多个数据块进行分配,以得到加载指示信息。
一种可实现方式中,调度服务器可以实时地向存储模块查询数据块划分的进度,存储模块在接收到调度服务器的查询信息时,向调度服务器反馈数据划分的进度。且在数据划分完成后,即将待同步全量数据进行划分,得到多个数据块后,向调度服务器发送数据划分完成提示信息。调度服务器接收到该数据划分完成提示信息,对多个数据块进行分配。
确定待同步全量数据后,将待同步全量数据划分得到多个数据块,并在将待同步全量数据进行划分,得到多个数据块之后,发送数据划分完成提示信息,以提示开始数据块的分配。
将划分后得到的多个数据块进行分配,以得到加载指示信息的过程可以应用于调度服务器,或者实现调度服务的进程等。
一种可实现方式中,如图3所示,可以包括:
S301,在接收到数据划分完成提示信息后,获取多个数据块的数据块信息、各个计算节点中各个GPU的加载容量以及各个计算节点中GPU的数量。
多个数据块是存储模块将待同步全量数据进行划分得到的,数据划分完成提示信息表示存储模块将待同步全量数据进行划分,得到多个数据块。
一种可实现方式中,可以通过存储模块的服务接口,获取数据块信息。
计算节点可以向调度服务器上报计算节点中GPU的数量以及各个GPU的加载容量,如此,调度服务器可以获取各个计算节点中各个GPU的加载容量以及各个计算节点中GPU的数量。一种可实现方式中,可以通过计算节点中的中间件实现数据管理、任务管理,即可以通过该中间件统计计算节点中GPU的数量,以及确定各个GPU的加载容量,该中间件与调度服务器进行交互,将计算节点中GPU的数量以及各个GPU的加载容量发送给调度服务器。其中,该中间件可以理解为控制模块或管理模块。
S302,根据数据块信息、加载容量和数量,对多个数据块进行分配,得到加载指示信息。
其中,针对各个计算节点,加载指示信息用于指示该计算节点中各个GPU分别对应的数据块。
对多个数据块进行分配,可以理解为确定数据块与GPU的对应关系。加载指示信息可以包括计算节点中各个GPU与数据块的对应关系。
一种可实现方式中,数据块信息为多个数据块的数据总量。另外,为了保证多个GPU计算的同步性,各个GPU的加载容量可以相同,或者近似相同。
一种可实现方式中,可以根据多个数据块的数据容量,将多个数据块分配至所有GPU中的其中几个GPU。如可以根据数据总量与各个GPU的加载容量之间大小关系的不同,分情况对多个数据块进行分配。
一种情况下,数据总量小于单个GPU的加载容量,例如,数据总量为800万,单个GPU的加载容量为1000万,加载容量可以理解为该GPU可以加载的数据量的最大值。一个GPU可以加载多个数据块,此时无需再将多个数据块进行分片,确定一个GPU与所有数据块存在对应关系,即一个GPU加载所有数据块。另一种情况,数据总量大于单个GPU的加载容量,例如数据总量为1200万,单个GPU的加载容量为1000万。可以按照如下方式:1200/1000=1.2,向上取整,得到GPU的需求个数为2,可以从多个GPU中选择2个GPU,如GPU和GPU2,即将数据总量为1200万的多个数据块分配至两个GPU,如包括标号从0至99的100个数据块,将标号为0至54的数据块分配至GPU1,标号为55至99的数据块分配至GPU2。另一种情况,人为对调度服务设定一个全量数据总量值,比如单个GPU的加载容量是1000万,多个数据块的数据总量,即待同步全量数据的实际数据总量可能只有900万,正常情况下,那每个GPU卡可以加载一份完整的全量数据,但是增量操作空间就很小了,只有100万的空间,这种情况可以根据待同步全量数据的实际数据总量预估一个全量数据总量值,该全量数据总量值可以大于实际数据总量,如实际数据总量为900万,可以预估全量数据总量值为2000万,根据该预估的全量数据总量值、GPU的数量以及GPU的加载容量,对多个数据块进行分配。那么调度服务预分配就会分配为2卡一组,实际900万的数据分到2张卡就只有450万,那么每个卡的增量操作空间数量就多了550万。这种应用场景可以应用于:例如一个市的常驻人口是900万,但是还有1100万的暂住人口,而暂住人口是后期通过增量数据的形式增加的。另一种情况,所有GPU的加载容量的总和小于该数据总量,调度服务器不再对多个数据块进行划分,进行报错。
另一种可实现方式中,多个GPU可以实现不同的比对任务,这种情况下,可以将GPU划分为不同的组,如计算集群中计算节点共有10个GPU,两个GPU可以加载完所有的待同步全量数据,则可以将10个GPU分为两两一组,共五组,每一组中两个GPU加载完全部的待同步全量数据,如此,计算集群中可以加载5份待同步全量数据,五组可以根据加载到的数据分别实现不同的比对任务等。
S303,针对各个计算节点,将加载指示信息下发至该计算节点。
S102,各个计算节点分别针对该计算节点中各个GPU,下载该GPU对应的数据块,并将该GPU对应的数据块加载至该GPU。
一种可实现实施例中,下载该GPU对应的数据块,可以包括:获取该计算节点中各个GPU对应的数据块的存储位置信息。从第一存储位置下载该GPU对应的数据块。其中,第一存储位置是该GPU对应的数据块的存储位置信息对应的存储位置。
一种可实现方式中,可以确定存储服务地址;根据存储服务地址查询并下载该GPU对应的数据块。如可以是调度服务器向计算节点发送存储服务地址;针对各个计算节点,该计算节点根据存储服务地址从存储模块查询并下载各个GPU对应的数据块。
一种可实现方式中,计算节点可以通过与存储模块中的服务接口交互,向存储模块中的服务发送请求数据的请求,该请求中可以包括数据块的标识信息、请求数据块的标识等,存储模块中的服务解析该请求可以得到数据块的标识信息,并将标识信息对应的数据块发送给计算节点。如此,计算节点可以从存储模块中下载GPU对应的数据块。
S103,在下载该GPU对应的数据块之后,当判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将更新数据加载至该GPU以进行数据更新。
从开始确定待同步全量数据,并将待同步全量数据划分为多个数据块后,针对于待同步全量数据有可能有更新。对待同步全量数据更新可以包括:对数据块中的数据进行删除、修改等操作,或者在待同步全量数据的基础上新增数据。本发明实施例中可以将开始确定待同步全量数据后针对于待同步全量数据更新的数据同步至即计算节点。
本发明一种可实现实施例中,将待同步全量数据进行划分得到的多个数据块可以具有唯一的标识信息,在针对于该数据块有更新时,可以在记录针对于该GPU对应的数据块的更新数据时,同时记录该更新数据与该数据块的标识信息的对应关系。如此,计算节点可以通过判断是否有该数据块的标识信息对应的更新数据,判断针对该GPU对应的数据块是否有数据更新,并且当判断针对该GPU对应的数据块有数据更新时,下载针对于该GPU对应的数据块的更新数据。
另一种可实现实施例中,当针对于待同步全量数据有新增数据时,可以参照类似于对待同步全量数据划分以及分配的过程,如此可以确定新增数据对应的分块标识信息,若该分块标识信息与数据块的标识信息相同时,即可以确定该数据块对应的GPU为与该新增数据对应的GPU,如此,可以触发GPU对应的计算节点下载该新增数据,将该新增数据加载至该GPU,可以根据该新增数据对GPU已存在的数据进行更新。
一种可实现实施例中,从存储模块中下载在该GPU对应的数据块的基础上更新的更新数据,计算节点可以通过与存储模块中的服务接口交互,向存储模块中的服务发送请求数据的请求,该请求中可以包括该GPU对应的数据块的标识信息、请求更新数据的标识等,存储模块中的服务解析该请求可以得到数据块的标识信息,并将更新数据发送给计算节点。如此,计算节点可以从存储模块中下载更新数据。
或者,调度服务器向计算节点发送存储服务地址;针对各个计算节点,根据该存储服务地址从存储模块中查询并下载在该GPU对应的数据块的基础上更新的更新数据。
本发明实施例中,可以针对各个计算节点,分别下载该计算节点中各个GPU分别对应的数据块,且在判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将更新数据加载至该GPU以进行数据更新。如此,避免单个GPU加载上限的问题,提升数据同步的数据规模。且并行下载各个GPU对应的数据,能够实现分布式同步,提高同步的效率以及数据同步的时效性。
一种可实现实施例中,步骤S103中下载在该GPU对应的数据块的基础上更新的更新数据,可以包括:
下载包括更新数据的更新数据文件。
更新数据文件是根据预设时间范围内的更新数据生成的。
存储模块或实现存储服务的进程确定在预设时间范围内分别在各个GPU对应的数据块的基础上更新的更新数据;根据更新数据,生成更新数据文件。
存储模块或实现存储服务的进程间隔预设时间范围,统计更新数据。预设时间范围可以根据实际需求等确定,如可以是1小时、1天等。
存储模块或实现存储服务的进程可以分别统计在该GPU对应的数据块的基础上更新的更新数据,即在确定待同步全量数据之后更新的数据,如新增数据,或者针对于不同数据块中的数据进行删除或者修改的数据,并在记录该GPU对应的数据块的基础上更新的更新数据时,记录更新数据与数据块的标识信息的对应关系,如在记录的更新数据时,在更新数据中添加数据块的标识信息。
本发明实施例中,可以根据不同时间段统计得到的更新数据,生成不同的更新数据文件,即不同的时间段对应不同的更新数据文件。如预设时间范围为1天,统计第1天内的更新数据,生成更新数据文件1;统计第2天内的更新数据,生成更新数据文件2,等等。一个时间段对应的更新数据文件中可以根据标识信息查找包括各个GPU对应的数据块的基础上更新的更新数据的更新数据文件。
通过获取更新数据文件获取在各个GPU对应的数据块的基础上更新的更新数据,如此可以一次性获取一段时间范围内的更新数据,减少计算节点与存储模块的交互次数,因为计算节点与存储模块建立连接进行交互也是需要时间的,如此,能够减少获取更新数据时的时间消耗。且通过更新数据文件,可以实现本地数据持久化保存,如将更新数据文件保存至计算节点的本地磁盘中,如此,即使计算节点出现断电等异常情况,之前已同步完成的数据无需再进行同步,能够提高数据的安全性和可维护性。
另一种可实现实施例中,下载在该GPU对应的数据块的基础上更新的更新数据,可以包括:
通过消息系统获取更新数据。
消息系统可以实时检测在该GPU对应的数据块的基础上是否有更新,计算节点可以通过该消息系统在检测到在该GPU对应的数据块的基础上有数据更新时下载该更新数据。如此,可以对更新数据进行实时同步,提高数据同步更新的时效性。一种可选的实现方式中,计算节点可以通过控制模块或管理模块与消息系统进行交互,以实时检测在该GPU对应的数据块的基础上是否有更新,如此能够提高数据同步的时效性。
一种可实现方式中,消息系统可以为KAFKA,KAFKA是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据。
另一种可实现实施例中,可以通过更新数据文件和消息系统结合的方式获取更新数据。如存储模块可以在数据更新频繁的时间段内,根据预设时间范围统计得到该时间段内的更新数据文件,计算节点通过获取包括更新文件,获取在该GPU对应的数据块的基础上更新的更新数据。而在数据更新较少的时间段内,通过消息系统获取更新数据。或者,存储模块可以根据预设时间范围间隔统计预设时间段内在该GPU对应的数据块的基础上的更新数据,而在该预设时间段后,通过消息系统获取在该GPU对应的数据块的基础上更新的更新数据。如计算节点在从存储模块下载完待同步全量数据,如下载完各个数据块后的第一时间段内,根据预设时间范围将第一时间段内的更新数据对应生成更新数据文件,计算节点下载更新数据文件;在下载完第一时间段对应的该更新数据文件后的第二时间段,通过消息系统实时获取更新数据。
另一种可实现实施例中,可以通过更新数据文件的方式获取所有的更新数据,同时,也通过消息系统方式获取所有的更新数据。如此,可以实现对更新数据的备份操作。因为计算节点待同步的数据一般情况下是操作记录,操作的时序影响数据的准确性,为了保证操作的连贯性,进而保证同步数据的准确性以及一致性,一种可实现方式中,下载包括更新数据的更新数据文件,更新数据文件是根据预设时间范围内的更新数据生成的,且在下载包括更新数据的更新数据文之后,通过消息系统获取更新数据。
因为消息系统中可以保存的数据是有限的,一般是通过固定长度的消息队列保存数据,当数据个数超过队列长度时,则会删除消息队列中的数据,而增加新增数据,而增量文件是将预设时间范围的更新数据保存至文件中,无需删除之前的数据而保存新增数据,如此,计算节点在下载完全量数据后,先下载增量文件,可以避免在异常情况中,如计算节点重启的过程中,消息队列中被删除的数据无法被计算节点获取造成的时序不连贯。如一种实现方式中,在待同步的全量数据之后,生成增量文件,如图4所示,如根据第1天范围内的更新数据生成的标号为0的增量文件,根据第2天范围内的更新数据生成的标号为1的增量文件,根据第3天范围内的更新数据生成的标号为2的增量文件,根据第4天范围内的更新数据生成的标号为3的增量文件,根据第5天范围内的更新数据生成的标号为4的增量文件,根据第6天范围内的更新数据生成的标号为5的增量文件,为了实现数据备份,同时下载增量文件以及增量实时数据,在异常情况下,如计算节点重启的过程中,增量实时数据有可能被删除,如标号为0至4的增量文件中包括的增量实时数据被删除,此时,先下载增量文件,再下载增量实时数据。
本发明实施例中,计算节点在将存储模块中数据,如根据同步全量数据划分得到的多个数据块以及更新数据,同步至计算节点本地后,可以将这些数据进行存储,如保存在本地磁盘。在保存的过程中,可以包括:
B1,确定预定存储目录。
其中,预定存储目录包括根目录、全量数据划分版本子目录、数据类型子目录和数据子目录。
B2,根据预定存储目录,保存各个GPU对应的数据块以及分别在各个GPU对应的数据块的基础上更新的更新数据。
根目录可以是本地磁盘中的存储位置,如存储位置的路径:/home/ssd/HMSProxy/。
本发明实施例中,可以将对待同步全量数据进行划分,得到多个数据块的过程称之为打基准的过程。每一次对确定的待同步全量数据打基准时,可以确定打基准版本号,全量数据划分版本子目录则对应基准版本目录,如打基准版本号Version。
本发明实施例中可以将待同步全量数据和更新数据分别保存,如通过数据类型子目录包括的不同数据类型标识,有区别地保存根据待同步全量数据进行划分得到的多个数据块,以及更新数据。如全量数据标识Meta,更新数据标识Incremental。如此,可以将上述多个数据块保存至全量数据标识Meta对应的数据类型子目录下,将更新数据保存至更新数据标识Incremental对应的数据类型子目录下。一种可实现方式中,数据块是文件的形式,则保存多个数据块可以理解为保存多个全量文件,如全量文件1、全量文件2、全量文件3,……,全量文件N;更新数据也可以对应更新数据文件,保存更新数据即保存更新数据文件,更新数据文件中可以包括增量文件1、增量文件2、增量文件3,……,增量文件N,其中,数据类型子目录可以理解为文件类型目录。一种可实现实施例中,根据预定存储目录,保存各个GPU对应的数据块以及更新数据的存储路径如图5所示。
一种可实现实施例中,在下载在该GPU对应的数据块的基础上更新的更新数据之后,还可以包括:
检测计算节点本地磁盘的使用率;当使用率大于等于预设阈值时,发送触发指令。
触发指令用于指示重新确定待同步全量数据;将待同步全量数据进行划分,得到多个数据块的步骤。
当计算节点一直同步增量数据并本地存储,必然导致计算节点磁盘存储空间耗尽,本发明提供了重新打基准机制,其中确定待同步全量数据;将待同步全量数据进行划分,得到多个数据块的过程可以称为打基准的过程。
计算节点实时监测本地磁盘的使用率,当该使用率达到一定上限值后,如大于等于预设阈值时,会自动触发存储服务打基准,存储服务内对现有有效的布控数据按原逻辑重新数据分块。打基准过程不影响计算节点比对任务,存储模块打完基准后,通知调度服务基准数据版本的更新,再由调度服务通知到计算节点数据基准版本的更新,则计算节点会清理上一版本的数据,拉取新的全量数据块,增量数据块,消费增量实时数据。数据同步过程中不进行比对任务。
本发明实施例中,将待同步全量数据进行划分,得到多个文件块,并通过调度服务器将多个文件块进行分配。如此可以使计算节点根据调度服务器下发的加载指示信息,下载计算节点中各个GPU对应的数据块。如此,能够实现数据的并行同步,提高数据同步的时效性。同时,可以实现分布式系统数据负载均衡。
本发明一种可实现实施例中,如图6所示,数据存储服务、调度服务以及计算节点交互,以实现将数据存储服务中的数据同步至计算节点。其中,数据存储服务可以是存储模块中的具体服务,可以通过服务器来实现,调度服务可以通过调服服务器来实现。
数据存储服务生成基准数据。数据存储服务确定待同步全量数据,并将该待同步全量数据划分为多个全量文件块,如全量文件块1、全量文件块2、全量文件块3,……,全量文件块n。本发明实施例中可以将确定待同步全量数据,并将该待同步全量数据划分的过程理解为打基准的过程,则划分得到的多个全量文件即可以理解为基准数据。
调度服务实现数据管理以及任务调度,在数据存储服务打基准的过程中,调度服务可以查询打基准进度,且数据存储服务在完成打基准时,可以通过调度服务基准数据生成完毕,如可以向调度服务发送数据划分完成提示信息。调度服务在接收到该数据划分完成提示信息后,获取基准数据信息,如基准数据的数据总量等,调度服务可以接收节点上报,即计算节点向调度服务上报各个GPU的加载容量以及各个计算节点中GPU的数量,调度服务根据基准数据的数据总量、各个GPU的加载容量以及各个计算节点中GPU的数量,对基准数据,即对多个全量文件进行分配。分配得到的结果可以包括全量文件与GPU卡的对应关系。计算节点可以通过中间件与调度服务交互,该中间件可以理解为控制模块或管理模块,该中间件实现数据管理和任务管理,根据调度服务的分配,将多个全量文件下发至对应的GPU卡中,即实现下载全量数据。
在将多个全量文件同步至GPU卡后,可以下载增量数据,这里所说的增量数据可以包括针对于各个全量文件进行更新的数据,对全量文件进行增加、删除、修改等操作。数据存储服务可以根据增量数据生成增量文件块,如增量文件块1、增量文件块2、……,增量文件块n。计算节点可以通过消息系统KAFKA,消费实时增量数据。
本发明实施例中,如图7所示,将存储模块的数据同步至计算节点,也即将大数据同步至计算集群中,计算集群中包括调度服务和计算节点,针对于大数据可以有数据存储服务和消息系统,一种可实现方式中,数据存储服务可以为HDFS,消息系统可以为KAFKA。
计算节点向调度服务上报卡数量。计算集群中各个计算节点向调度服务上报GPU卡的数量。数据存储服务进行打基准过程,如对已布控库从Hbase中进行数据拉取生成HDFS文件块,其中,可以通过多个数据库存储大数据,已布控库可以理解为从大数据中按照预设条件筛选出的数据库。
调度服务不断查询打基准进度,在数据存储服务打基准完成,如将待同步全量数据划分为多个全量文件块,如整理布控数据生成0至8898号文件块,布控数据,即确定的待同步全量数据。
数据存储服务完成打基准过程时,可以通知调度服务,调度服务获取全量文件信息,如全量文件块的数据总量等,根据全量文件信息、计算节点上报的GPU卡数量等,将多个全量文件块进行分配,即多个全量文件块分别对应的GPU卡,实现数据分区,并将数据分析信息下发至计算节点,如针对各个计算节点,可以向该计算节点下发用于指示该计算节点中各个GPU分别对应的数据块法的加载指示信息。计算节点根据该加载指示信息拉取全量文件块,如可以获取全量文件块的存储位置信息,根据存储位置信息下载全量文件块。
当判断针对全量文件块有数据更新时,计算节点拉取增量文件,增量文件可以是数据存储服务根据在全量文件块的基础上的更新数据生成的更新数据文件。通过增量文件的形式可以实现对更新数据的持久化保存,如将增量文件保存至计算节点的本地磁盘。每一个全量文件块可以具有与其他全量文件块区分的标识信息,如hashId。计算节点可以根据该hashId判断该hashId对应的全量文件块是否有更新,如判断在全量文件块的基础上是否有增加、删除或修改。
当判断针对全量文件块有数据更新时,计算节点可以消费增量KAFKA数据。KAFKA数据是实时生效的。其中,消费增量KAFKA数据,可以是根据增量KAFKA数据中的操作记录,对全量文件块中的数据进行操作,如增量KAFKA数据中包括删除某个人的名单记录,则从GPU中删除该名单记录。
一种可实现方式中,计算节点在下载完多个全量文件块后的第一时间段内,根据预设时间范围将第一时间段内的更新数据对应生成增量文件,计算节点下载增量文件;在下载完第一时间段对应的该增量文件后的第二时间段,消费增量KAFKA数据。如此,通过将全量文件、增量文件以及KAFKA实时增量数据消费的方式进行结合,保证了存储模块与计算节点之间数据的一致性和数据实时生效性,可以在计算节点应用同步得到的数据进行具体业务时更加快速,如一种实施例中,可以实现多秒级抓拍人脸的二次比对和去重聚类。
本发明实施例,通过多个GPU加载数据,可以实现分布式系统数据负载均衡,对待同步全量数据进行划分,可以理解为数据分片,调度服务依据计算节点的数量、待同步的数据总量以及GPU的加载容量,也可以理解为GPU的加载能力,对划分得到的数据进行分配,也可以理解为对待同步全量数据进行分区,分配得到的一个数据块可以理解为对应一个分区。计算节点对全量数据同步完成后,自动进行增量数据的同步,增量数据可以理解为更新数据,更新数据可以分为更新数据文件和实时更新数据,每一条更新数据依据分片号同步到对应计算节点,更新数据是针对于全量数据的,分片号可以理解为数据分片对应的数据块的数据块标号,更新数据可以实现计算集群内数据均分。且分布式同步使得计算集群内数据规模和计算能力都得到了很好的可扩展性。
针对于单个GPU无法加载全部数据的情况,本发明实施例中在计算节点数量允许的情况下,可以实现无限制数据量级数据同步。且实现计算集群内节点数据并行拉取,保证数据同步的高效性。
本发明一种可实现实施例中,可以应用于人脸比对、名单比对等应用场景,如待同步的数据为全部人脸库,针对已有技术中无法通过单个加载全部人脸库的情况,本发明实施例中通过对待同步全量数据进行切分后加载和结果合并,使得比对数量达到亿级规模。
本发明实施例还提供了一种数据同步系统,如图8所示,可以包括:存储模块801、调度服务器802和计算节点803。
存储模块801,确定待同步全量数据;将待同步全量数据进行划分,得到多个数据块,并确定多个数据块的数据块信息;在将待同步全量数据进行划分,得到多个数据块之后,向调度服务器802发送数据划分完成提示信息;
调度服务器802,在接收到数据划分完成提示信息后,获取多个数据块的数据块信息、各个计算节点中各个图形处理器GPU的加载容量以及各个计算节点中GPU的数量;根据数据块信息、加载容量和数量,对多个数据块进行分配,得到加载指示信息,其中,针对各个计算节点,加载指示信息用于指示该计算节点中各个GPU分别对应的数据块;针对各个计算节点803,将加载指示信息下发至该计算节点803;
计算集群中各个计算节点803,获取加载指示信息;各个计算节点803分别针对该计算节点803中各个GPU,从存储模块801下载该GPU对应的数据块,并将该GPU对应的数据块加载至该GPU;在从存储模块下载该GPU对应的数据块之后,当判断在该GPU对应的数据块的基础上有数据更新时,从存储模块801下载在该GPU对应的数据块的基础上更新的更新数据,并将更新数据加载至该GPU以进行数据更新。
本发明实施例中,可以针对各个计算节点,分别下载该计算节点中各个GPU分别对应的数据块,且在判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将更新数据加载至该GPU以进行数据更新。如此,避免单个GPU加载上限的问题,提升数据同步的数据规模。且并行下载各个GPU对应的数据,能够实现分布式同步,提高同步的效率以及数据同步的时效性。
一种可实现实施例中,调度服务器802向计算节点803发送存储服务地址;针对各个计算节点803,该计算节点803根据存储服务地址从存储模块801查询并下载各个GPU对应的数据块。
本发明实施例的数据同步系统是应用上述数据同步方法的系统,则上述数据同步方法的所有实施例均适用于该系统,且均能达到相同或相似的有益效果。
对应于上述数据同步方法,本发明实施例提供了一种数据同步装置,如图9所示,可以包括:
第一获取模块901,用于获取加载指示信息;针对各个计算节点,加载指示信息用于指示该计算节点中各个图形处理器GPU分别对应的数据块;数据块是将待同步全量数据进行划分得到的;
第一下载模块902,用于各个计算节点分别针对该计算节点中各个GPU,下载该GPU对应的数据块,并将该GPU对应的数据块加载至该GPU;
第二下载模块903,用于在下载该GPU对应的数据块之后,当判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将更新数据加载至该GPU以进行数据更新。
本发明实施例中,可以针对各个计算节点,分别下载该计算节点中各个GPU分别对应的数据块,且在判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将更新数据加载至该GPU以进行数据更新。如此,避免单个GPU加载上限的问题,提升数据同步的数据规模。且并行下载各个GPU对应的数据,能够实现分布式同步,提高同步的效率以及数据同步的时效性。
一种可实现实施例中,如图10所示,该装置还包括:
第一确定模块904,用于在获取加载指示信息之前,确定待同步全量数据;
划分模块905,用于将待同步全量数据进行划分,得到多个数据块;
第一发送模块906,用于在将待同步全量数据进行划分,得到多个数据块之后,发送数据划分完成提示信息,数据划分完成提示信息用于触发对多个数据块进行分配。
一种可实现实施例中,如图11所示,该装置还包括:
第二获取模块907,用于在接收到数据划分完成提示信息后,获取多个数据块的数据块信息、各个计算节点中各个GPU的加载容量以及各个计算节点中GPU的数量;
分配模块908,用于根据数据块信息、加载容量和数量,对多个数据块进行分配,得到加载指示信息,其中,针对各个计算节点,加载指示信息用于指示该计算节点中各个GPU分别对应的数据块;
下发模块909,用于针对各个计算节点,将加载指示信息下发至该计算节点。
一种可实现实施例中,第一下载模块902,用于确定存储服务地址;根据存储服务地址查询并下载该GPU对应的数据块。
一种可实现实施例中,第二下载模块903,用于下载包括更新数据的更新数据文件,更新数据文件是根据预设时间范围内的更新数据生成的。
一种可实现实施例中,第二下载模块903,用于通过消息系统获取更新数据。
一种可实现实施例中,该装置还包括:
第二确定模块,用于确定预定存储目录,其中,预定存储目录包括根目录、全量数据划分版本子目录、数据类型子目录和数据子目录;
保存模块,用于根据预定存储目录,保存各个GPU对应的数据块以及分别在各个GPU对应的数据块的基础上更新的更新数据。
一种可实现实施例中,该装置还包括:
检测模块,用于检测计算节点本地磁盘的使用率;
第二发送模块,用于当使用率大于等于预设阈值时,发送触发指令,触发指令用于指示重新确定待同步全量数据;将待同步全量数据进行划分,得到多个数据块的步骤。
对应于上述数据同步方法,本发明实施例提供了一种电子设备,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信。
存储器1203,用于存放计算机程序;
处理器1201,用于执行存储器1203上所存放的程序时,实现上述数据同步方法的方法步骤。
本发明实施例中,可以针对各个计算节点,分别下载该计算节点中各个GPU分别对应的数据块,且在判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将更新数据加载至该GPU以进行数据更新。如此,避免单个GPU加载上限的问题,提升数据同步的数据规模。且并行下载各个GPU对应的数据,能够实现分布式同步,提高同步的效率以及数据同步的时效性。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
对应于上述数据同步方法,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述数据同步方法的方法步骤。
本发明实施例中,可以针对各个计算节点,分别下载该计算节点中各个GPU分别对应的数据块,且在判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将更新数据加载至该GPU以进行数据更新。如此,避免单个GPU加载上限的问题,提升数据同步的数据规模。且并行下载各个GPU对应的数据,能够实现分布式同步,提高同步的效率以及数据同步的时效性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统、电子设备及存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (20)
1.一种数据同步方法,其特征在于,包括:
获取加载指示信息;针对各个计算节点,所述加载指示信息用于指示该计算节点中各个图形处理器GPU分别对应的数据块;所述数据块是将待同步全量数据进行划分得到的;
各个计算节点分别针对该计算节点中各个GPU,下载该GPU对应的数据块,并将该GPU对应的数据块加载至该GPU;
在所述下载该GPU对应的数据块之后,当判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将所述更新数据加载至该GPU以进行数据更新。
2.根据权利要求1所述的方法,其特征在于,在所述获取加载指示信息之前,所述方法还包括:
确定所述待同步全量数据;
将所述待同步全量数据进行划分,得到多个数据块;
在所述将所述待同步全量数据进行划分,得到多个数据块之后,发送数据划分完成提示信息,所述数据划分完成提示信息用于触发对所述多个数据块进行分配。
3.根据权利要求2所述的方法,其特征在于,在所述发送数据划分完成提示信息之后,所述方法还包括:
在接收到所述数据划分完成提示信息后,获取多个数据块的数据块信息、各个计算节点中各个GPU的加载容量以及各个计算节点中GPU的数量;
根据所述数据块信息、所述加载容量和所述数量,对多个数据块进行分配,得到加载指示信息,其中,针对各个计算节点,所述加载指示信息用于指示该计算节点中各个GPU分别对应的数据块;
针对各个计算节点,将所述加载指示信息下发至该计算节点。
4.根据权利要求1所述的方法,其特征在于,所述下载该GPU对应的数据块,包括:
确定存储服务地址;
根据所述存储服务地址查询并下载该GPU对应的数据块。
5.根据权利要求1所述的方法,其特征在于,所述下载在该GPU对应的数据块的基础上更新的更新数据,包括:
下载包括所述更新数据的更新数据文件,所述更新数据文件是根据预设时间范围内的所述更新数据生成的。
6.根据权利要求1或3所述的方法,其特征在于,所述下载在该GPU对应的数据块的基础上更新的更新数据,包括:
通过消息系统获取所述更新数据。
7.根据权利要求1所述的方法,其特征在于,在所述下载在该GPU对应的数据块的基础上更新的更新数据之后,所述方法还包括:
确定预定存储目录,其中,所述预定存储目录包括根目录、全量数据划分版本子目录、数据类型子目录和数据子目录;
根据所述预定存储目录,保存各个GPU对应的数据块以及分别在各个GPU对应的数据块的基础上更新的所述更新数据。
8.根据权利要求1所述的方法,其特征在于,在所述下载在该GPU对应的数据块的基础上更新的更新数据之后,所述方法还包括:
检测计算节点本地磁盘的使用率;
当所述使用率大于等于预设阈值时,发送触发指令,所述触发指令用于指示重新确定所述待同步全量数据;将所述待同步全量数据进行划分,得到多个数据块的步骤。
9.一种数据同步系统,其特征在于,包括:存储模块、调度服务器和计算节点;
所述存储模块,确定待同步全量数据;将所述待同步全量数据进行划分,得到多个数据块,并确定所述多个数据块的数据块信息;在所述将所述待同步全量数据进行划分,得到多个数据块之后,向调度服务器发送数据划分完成提示信息;
所述调度服务器,在接收到所述数据划分完成提示信息后,获取多个数据块的数据块信息、各个计算节点中各个图形处理器GPU的加载容量以及所述各个计算节点中GPU的数量;根据所述数据块信息、所述加载容量和所述数量,对所述多个数据块进行分配,得到加载指示信息,其中,针对各个计算节点,所述加载指示信息用于指示该计算节点中各个GPU分别对应的数据块;针对各个计算节点,将所述加载指示信息下发至该计算节点;
所述计算集群中各个计算节点,获取所述加载指示信息;各个计算节点分别针对该计算节点中各个GPU,从所述存储模块下载该GPU对应的数据块,并将该GPU对应的数据块加载至该GPU;在所述从所述存储模块下载该GPU对应的数据块之后,当判断在该GPU对应的数据块的基础上有数据更新时,从所述存储模块下载在该GPU对应的数据块的基础上更新的更新数据,并将所述更新数据加载至该GPU以进行数据更新。
10.根据权利要求9所述的系统,其特征在于,所述调度服务器向计算节点发送存储服务地址;
针对各个计算节点,该计算节点根据所述存储服务地址从所述存储模块查询并下载各个GPU对应的数据块。
11.一种数据同步装置,其特征在于,包括:
第一获取模块,用于获取加载指示信息;针对各个计算节点,所述加载指示信息用于指示该计算节点中各个图形处理器GPU分别对应的数据块;所述数据块是将待同步全量数据进行划分得到的;
第一下载模块,用于各个计算节点分别针对该计算节点中各个GPU,下载该GPU对应的数据块,并将该GPU对应的数据块加载至该GPU;
第二下载模块,用于在所述下载该GPU对应的数据块之后,当判断在该GPU对应的数据块的基础上有数据更新时,下载在该GPU对应的数据块的基础上更新的更新数据,并将所述更新数据加载至该GPU以进行数据更新。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于在所述获取加载指示信息之前,确定所述待同步全量数据;
划分模块,用于将所述待同步全量数据进行划分,得到多个数据块;
第一发送模块,用于在所述将所述待同步全量数据进行划分,得到多个数据块之后,发送数据划分完成提示信息,所述数据划分完成提示信息用于触发对所述多个数据块进行分配。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于在接收到所述数据划分完成提示信息后,获取多个数据块的数据块信息、各个计算节点中各个GPU的加载容量以及各个计算节点中GPU的数量;
分配模块,用于根据所述数据块信息、所述加载容量和所述数量,对多个数据块进行分配,得到加载指示信息,其中,针对各个计算节点,所述加载指示信息用于指示该计算节点中各个GPU分别对应的数据块;
下发模块,用于针对各个计算节点,将所述加载指示信息下发至该计算节点。
14.根据权利要求11所述的装置,其特征在于,所述第一下载模块,用于确定存储服务地址;根据所述存储服务地址查询并下载该GPU对应的数据块。
15.根据权利要求11所述的装置,其特征在于,所述第二下载模块,用于下载包括所述更新数据的更新数据文件,所述更新数据文件是根据预设时间范围内的所述更新数据生成的。
16.根据权利要求11或13所述的装置,其特征在于,所述第二下载模块,用于通过消息系统获取所述更新数据。
17.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于确定预定存储目录,其中,所述预定存储目录包括根目录、全量数据划分版本子目录、数据类型子目录和数据子目录;
保存模块,用于根据所述预定存储目录,保存各个GPU对应的数据块以及分别在各个GPU对应的数据块的基础上更新的所述更新数据。
18.根据权利要求11所述的装置,其特征在于,所述装置还包括:
检测模块,用于检测计算节点本地磁盘的使用率;
第二发送模块,用于当所述使用率大于等于预设阈值时,发送触发指令,所述触发指令用于指示重新确定所述待同步全量数据;将所述待同步全量数据进行划分,得到多个数据块的步骤。
19.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910931337.7A CN112579692B (zh) | 2019-09-29 | 2019-09-29 | 一种数据同步方法、装置、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910931337.7A CN112579692B (zh) | 2019-09-29 | 2019-09-29 | 一种数据同步方法、装置、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579692A true CN112579692A (zh) | 2021-03-30 |
CN112579692B CN112579692B (zh) | 2023-05-05 |
Family
ID=75110593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910931337.7A Active CN112579692B (zh) | 2019-09-29 | 2019-09-29 | 一种数据同步方法、装置、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579692B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109376148A (zh) * | 2018-08-22 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 缓慢变化维表的数据处理方法、装置、电子设备 |
CN113206891A (zh) * | 2021-05-31 | 2021-08-03 | 浙江大华技术股份有限公司 | 元数据上报的调度方法、存储系统、调度装置及存储介质 |
CN114185489A (zh) * | 2021-12-02 | 2022-03-15 | 中国电信股份有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN115292373A (zh) * | 2022-10-09 | 2022-11-04 | 天津南大通用数据技术股份有限公司 | 一种切分数据块的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1686754A1 (en) * | 2005-01-31 | 2006-08-02 | Research In Motion Limited | Synchronizing Server and Device Data Using Device Data Schema |
CN105159610A (zh) * | 2015-09-01 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 大规模数据处理系统及方法 |
CN105227683A (zh) * | 2015-11-11 | 2016-01-06 | 中国建设银行股份有限公司 | 一种ldap集群数据同步方法及系统 |
CN106372221A (zh) * | 2016-09-07 | 2017-02-01 | 华为技术有限公司 | 一种文件同步的方法、设备及系统 |
CN108769212A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 数据同步方法、装置、计算机设备和存储介质 |
-
2019
- 2019-09-29 CN CN201910931337.7A patent/CN112579692B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1686754A1 (en) * | 2005-01-31 | 2006-08-02 | Research In Motion Limited | Synchronizing Server and Device Data Using Device Data Schema |
CN105159610A (zh) * | 2015-09-01 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 大规模数据处理系统及方法 |
CN105227683A (zh) * | 2015-11-11 | 2016-01-06 | 中国建设银行股份有限公司 | 一种ldap集群数据同步方法及系统 |
CN106372221A (zh) * | 2016-09-07 | 2017-02-01 | 华为技术有限公司 | 一种文件同步的方法、设备及系统 |
CN108769212A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 数据同步方法、装置、计算机设备和存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109376148A (zh) * | 2018-08-22 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 缓慢变化维表的数据处理方法、装置、电子设备 |
CN113206891A (zh) * | 2021-05-31 | 2021-08-03 | 浙江大华技术股份有限公司 | 元数据上报的调度方法、存储系统、调度装置及存储介质 |
CN114185489A (zh) * | 2021-12-02 | 2022-03-15 | 中国电信股份有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN115292373A (zh) * | 2022-10-09 | 2022-11-04 | 天津南大通用数据技术股份有限公司 | 一种切分数据块的方法及装置 |
CN115292373B (zh) * | 2022-10-09 | 2023-01-24 | 天津南大通用数据技术股份有限公司 | 一种切分数据块的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112579692B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112579692B (zh) | 一种数据同步方法、装置、系统、设备及存储介质 | |
CN108090225B (zh) | 数据库实例的运行方法、装置、系统及计算机可读存储介质 | |
CN111818112B (zh) | 一种基于Kafka系统的发送消息的方法和装置 | |
CN105049268A (zh) | 分布式计算资源分配系统和任务处理方法 | |
CN110247984B (zh) | 业务处理方法、装置及存储介质 | |
CN110321339B (zh) | 一种数据迁移方法、装置、设备和存储介质 | |
CN107451853B (zh) | 一种红包实时派发的方法、装置、系统及存储介质 | |
CN108574645B (zh) | 一种队列调度方法及装置 | |
CN110602227B (zh) | 一种智能合约管理的方法以及相关装置 | |
CN112667405B (zh) | 信息处理方法、装置、设备及存储介质 | |
CN110851427A (zh) | 数据库容量变更方法和装置 | |
CN115587118A (zh) | 任务数据的维表关联处理方法及装置、电子设备 | |
CN115827162A (zh) | 一种智能化处理镜像仓库数据方法、装置、介质及设备 | |
CN109586970B (zh) | 资源分配方法、装置及系统 | |
CN113422808B (zh) | 物联网平台http信息推送方法、系统、装置及介质 | |
CN114070847B (zh) | 服务器的限流方法、装置、设备及存储介质 | |
CN116483546B (zh) | 分布式训练任务调度方法、装置、设备及存储介质 | |
CN110912949B (zh) | 位点提交方法和装置 | |
CN113407551A (zh) | 数据一致性确定方法、装置、设备及存储介质 | |
CN108121730B (zh) | 一种将数据更新快速同步到业务系统的装置及方法 | |
CN106888244B (zh) | 一种业务处理方法及装置 | |
CN115098157A (zh) | 一种公共业务数据的处理方法及装置 | |
CN114896073A (zh) | 一种数据分摊处理方法、装置及系统 | |
CN114090201A (zh) | 资源调度方法、装置、设备及存储介质 | |
CN112799820A (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 |