CN117472296B - 数据处理方法、装置、电子设备以及存储介质 - Google Patents
数据处理方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN117472296B CN117472296B CN202311824685.7A CN202311824685A CN117472296B CN 117472296 B CN117472296 B CN 117472296B CN 202311824685 A CN202311824685 A CN 202311824685A CN 117472296 B CN117472296 B CN 117472296B
- Authority
- CN
- China
- Prior art keywords
- data
- scanning
- attribute information
- file
- aggregation
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000004220 aggregation Methods 0.000 claims abstract description 157
- 230000002776 aggregation Effects 0.000 claims abstract description 156
- 238000000034 method Methods 0.000 claims abstract description 59
- 230000004931 aggregating effect Effects 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 36
- 238000012549 training Methods 0.000 claims description 14
- 230000004048 modification Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 14
- 230000008569 process Effects 0.000 description 13
- 230000001360 synchronised effect Effects 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006854 communication Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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)
- 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
技术领域
本发明属于计算机技术领域,特别是涉及一种数据处理方法、装置、电子设备以及存储介质。
背景技术
人工智能(Artificial Intelligence,AI)技术涉及机器人、语言识别、图像识别、自然语言处理和专家系统等领域的研究。人工智能模型训练,初期阶段是将数据集本地化后,再进行训练,不仅需要本地有足够的磁盘空间,还需要花费更长的时间,等待数据集本地化完成。
相关技术中,数据集本地化往往通过拉取远程数据源中的数据,通过将数据集目录挂载到各个计算节点,训练任务直接从共享存储读取数据。但是在训练过程中,为了兼顾不同存储、不同数据类型文件、不同应用场景的需求,更侧重于通用性的研究,而导致出现千万级别规模的海量小文件数据集。在这种情况下,则需要进行高频率的meta、storage交互访问,以及高并发性和持续的I/O读取等,千万小文件,就需要超过千万次的元数据和数据流量交互,这种访问读取方式带来的开销较大且数据集拉取效率较低。
发明内容
为克服相关技术中存在的问题,本发明提供了一种数据处理方法、装置、电子设备以及存储介质。
第一方面,本发明提供了一种数据处理方法,应用于分布式缓存系统,所述方法包括:
基于扫描任务,按照预设扫描规则对原始数据集中的小文件数据进行扫描,并将所述小文件数据对应的文件属性信息发送至扫描通道;
按照预设聚合规则对所述扫描通道中的文件属性信息进行聚合,得到多个数据列表;
从所述原始数据集中获取各所述数据列表中的文件属性信息对应的小文件数据,并以数据块的形式分批存储至所述分布式缓存系统中的聚合存储;所述数据列表与所述数据块一一对应,所述数据块中的小文件数据是基于所述数据块对应的数据列表中的文件属性信息确定的,所述聚合存储用于供所述分布式缓存系统中的计算节点基于所述聚合存储直接获取小文件数据。
可选地,所述预设扫描规则包括自动为所述扫描任务分配的扫描目录,所述扫描目录用于指示所述扫描任务所扫描的原始数据集的扫描范围。
可选地,所述扫描任务的数量为多个,所述扫描通道的数量为多个;所述基于扫描任务,按照预设扫描规则对原始数据集中的小文件数据进行扫描,并将所述小文件数据对应的文件属性信息发送至扫描通道,包括:
基于多个扫描任务,按照各所述扫描任务对应的扫描目录,对所述原始数据集中的小文件数据进行扫描;不同扫描任务对应的扫描目录不同;
将各所述扫描任务扫描到的小文件数据对应的文件属性信息,基于交错分配规则发送至多个扫描通道中当前空闲的扫描通道。
可选地,所述按照预设聚合规则对所述扫描通道中的文件属性信息进行聚合,得到多个数据列表,包括:
基于聚合任务,获取所述扫描通道中的文件属性信息,并将所述文件属性信息依次聚合为指定大小的数据列表;不同数据列表中包含的文件属性信息不同。
可选地,所述方法还包括:
基于所述扫描通道每秒接收的数据量以及每秒发送的数据量,调整所述扫描通道的通道缓存大小以及所述聚合任务的数量。
可选地,在所述按照预设聚合规则对所述扫描通道中的文件属性信息进行聚合,得到多个数据列表之后,所述方法还包括:
将聚合后的所述多个数据列表依次放入批处理队列;
在所述批处理队列中的数据列表的当前数量每达到目标批处理数量的情况下,将所述批处理队列中的数据列表发送至聚合通道。
可选地,所述目标批处理数量是基于所述数据列表对应的指定大小以及单位数量个所述数据列表所包含的文件属性信息的数量确定的。
可选地,所述将所述批处理队列中的数据列表发送至聚合通道,包括:
将所述批处理队列中的数据列表,基于交错分配规则发送至当前空闲的聚合通道。
可选地,所述从所述原始数据集中获取各所述数据列表中的文件属性信息对应的小文件数据,并以数据块的形式分批存储至所述分布式缓存系统中的聚合存储,包括:
基于存储任务,依次获取所述存储任务对应的聚合通道中的数据列表;
针对任一所述数据列表,基于所述数据列表中的文件属性信息,从所述原始数据集中读取所述文件属性信息对应的目标小文件数据,并将所述目标小文件数据存入所述数据块;所述数据块中包含的目标小文件数据的第一数量与所述数据列表中包含的文件属性信息的第二数量相同;
将所述数据块存储至所述分布式缓存系统中的聚合存储。
可选地,所述方法还包括:
当任一所述聚合通道达到预设缓存阈值的情况下,基于所述聚合通道的单位接收数据量、单位处理数据量以及所述聚合通道对应的存储任务的平均处理时间,调整所述聚合通道的缓存通道大小以及对应的存储任务数量。
可选地,所述聚合存储是基于多个计算节点的存储空间得到的;所述将所述数据块存储至所述分布式缓存系统中的聚合存储,包括:
基于用户空间文件系统挂载指定路径至所述计算节点,所述指定路径用于供所述计算节点访问对应的聚合存储;
响应于写入指令,基于所述分布式缓存系统的目标接口,将所述数据块存储至所述多个计算节点的存储空间。
可选地,在所述从所述原始数据集中获取各所述数据列表中的文件属性信息对应的小文件数据,并以数据块的形式分批存储至所述分布式缓存系统中的聚合存储之后,所述方法还包括:
将所述数据块对应的元数据信息以及写入成功信息发送并存储至目标数据库。
可选地,在所述聚合存储接收到覆盖写指令的情况下,所述覆盖写指令用于指示将目标数据块写入所述聚合存储;所述方法还包括:
若所述原始数据集未发生变化,则更新所述目标数据库中存储的所述目标数据块对应的元数据信息。
可选地,所述方法还包括:
若所述原始数据集中第一小文件数据发生变化,则将所述聚合存储中存储的包含所述第一小文件数据的原始数据块替换为所述目标数据块,并将所述目标数据库中存储的原始数据块对应的第一元数据信息替换为所述目标数据块对应的第二元数据信息;
所述目标数据块中包括所述第一小文件数据。
可选地,所述文件属性信息包括所述小文件数据对应的文件名、所述小文件数据对应的文件大小、所述小文件数据对应的文件相对位置以及所述小文件数据对应的文件修改时间。
可选地,所述分布式缓存系统包括客户端;所述方法还包括:
基于所述客户端,将指定数据块预缓存至所述客户端对应的目标计算节点的本地内存;所述指定数据块用于供所述目标计算节点进行模型训练。
可选地,所述方法还包括:
在所述指定数据块中不存在所述目标计算节点指示的第一小文件数据的情况下,基于所述第一小文件数据的信息,从所述聚合存储中获取包含所述第一小文件数据的第一数据块。
第二方面,本发明提供了一种数据处理装置,所述装置包括:
第一扫描模块,用于基于扫描任务,按照预设扫描规则对原始数据集中的小文件数据进行扫描,并将所述小文件数据对应的文件属性信息发送至扫描通道;
第一聚合模块,用于按照预设聚合规则对所述扫描通道中的文件属性信息进行聚合,得到多个数据列表;
第一存储模块,用于从所述原始数据集中获取各所述数据列表中的文件属性信息对应的小文件数据,并以数据块的形式分批存储至所述分布式缓存系统中的聚合存储;所述数据列表与所述数据块一一对应,所述数据块中的小文件数据是基于所述数据块对应的数据列表中的文件属性信息确定的,所述聚合存储用于供所述分布式缓存系统中的计算节点基于所述聚合存储直接获取小文件数据。
第三方面,本发明提供一种电子设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述第一方面中任一项所述的数据处理方法。
第四方面,本发明提供一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述第一方面中任一项实施例中的数据处理方法中的步骤。
本发明实施例中,通过扫描任务,按照预设扫描规则对原始数据集中的小文件数据进行扫描,并且将文件属性信息发送至扫描通道,相对于直接发送小文件数据,文件属性信息的大小一定程度上小于小文件数据,因此,可以一定程度上减少数据传输过程中的开销以及扫描速度。并且按照预设聚合规则对文件属性信息进行聚合,通过将文件属性信息进行聚合,在后续过程中以聚合后的数据列表为单位进行传输以及处理,降低大量小文件数据的交互次数,并且降低了网络、磁盘等资源开销,提升了原始数据集的写入效率。同时,将小文件数据以多个数据块的形式存储至聚合存储,可以分批将聚合的数据块写入聚合存储,也将写入操作从千万次级别降低至百万或几十万次级别,极大提高了存储系统的写数据效率。本发明实施例通过将原始数据集中的小文件数据以数据块的形式写入聚合存储,可以便于计算节点基于聚合存储直接获取小文件数据,无需重复访问并依次拉取原始数据集中的小文件数据,一定程度上提升了计算节点获取数据的效率,并且降低了数据传输过程中的开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据处理方法的步骤流程图;
图2是本发明实施例提供的一种数据处理方法的具体步骤流程图;
图3是本发明实施例提供的一种数据处理装置的结构图;
图4是本发明实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种数据处理方法的步骤流程图,应用于分布式缓存系统,该分布式缓存系统可以是高速缓存文件系统(cache file system, CacheFS),CacheFS系统可以包括高速缓存文件系统服务(CacheFS服务),高速缓存文件系统客户端(CacheFS客户端)以及高速缓存文件系统命令工具(CacheFS命令工具)。CacheFS客户端可以部署于CacheFS计算集群,CacheFS计算集群中包括多个计算节点,每个计算节点对应一个CacheFS客户端。CacheFS服务用于记录数据块(chunk)的meta信息、同步meta信息等,CacheFS服务可以部署有目标数据库,例如meta数据库,用于记录数据块(chunk)的元数据信息、各CacheFS客户端的相关信息等。为了提高缓存数据的存储空间容量,CacheFS可以将各个计算节点的存储空间(内存、SSD、HDD等)聚合,即将多个计算节点的多个磁盘聚合成一个存储空间,得到一个聚合存储,并对接到CacheFS系统中。
如图1所示,该方法可以包括:
步骤101、基于扫描任务,按照预设扫描规则对原始数据集中的小文件数据进行扫描,并将所述小文件数据对应的文件属性信息发送至扫描通道。
本发明实施例中,根据原始数据集的量级(百万、千万、亿万等)、原始数据集的总体大小、原始数据集包含的目录数量等信息,发起一定数量的扫描任务。扫描任务用于指示基于预设扫描规则,对原始数据集中包含的小文件数据进行扫描。原始数据集可以是远程数据源中的数据集,预设扫描规则可以是一种扫描算法,预设扫描规则可以包括预先自动为扫描任务分配的扫描目录,每个扫描任务对应的扫描目录均不相同,因此,当多个扫描任务并发时,可以确保每个扫描任务扫描的对象不重复,并且扫描得到的原始数据集中的文件不会丢失或遗漏。扫描目录用于指示扫描任务所扫描的原始数据集的扫描范围,即该扫描任务在对原始数据集扫描时对应的扫描文件范围。示例性的,扫描任务的数量可以为3个,可以理解的是,扫描任务的数量小于分布式缓存系统的配置上限。
为了提升对原始数据集的扫描速度和以及聚合速度,同时降低网络延时,以及磁盘IO的开销,在扫描过程中,可以基于逻辑数据(即小文件数据对应的文件属性信息)进行数据传输,相较于在扫描以及聚合过程中直接进行小文件实际数据的读写操作,降低了网络延时,以及磁盘IO的开销,并且提高了扫描速度以及聚合速度。基于扫描任务,按照预设扫描规则对原始数据集中的小文件数据进行扫描,并将小文件数据对应的文件属性信息发送至扫描通道。其中,文件属性信息可以包括小文件数据对应的文件名以及小文件数据对应的属性特性信息(包括文件大小、文件相对位置、文件修改时间等)。在扫描任务为多个的情况下,每个扫描任务基于预设扫描规则(即扫描目录)对原始数据集中的小文件数据进行扫描,并将该扫描任务扫描到的小文件数据对应的文件属性信息发送至扫描通道。扫描通道(scan channel)的数量可以是一个或多个,具体也可以根据原始数据集的量级(百万、千万、亿万等)、原始数据集的总体大小、原始数据集包含的目录数量等信息,开启一定数量的扫描通道。可以理解的是,扫描通道的数量小于分布式缓存系统的配置上限。示例性的,扫描通道的数量可以与扫描任务的数量相同,例如3个。
在对小文件数据进行扫描的过程中,保持原始数据集的相对目录结构,使得扫描后得到的小文件数据对应的文件属性信息的结构与原始数据集中小文件数据的目录结构类似。并在之后聚合以及存储的过程中,均保持原始数据集的相对目录结构。
在一种可能的实施方式中,可以自适应的根据原始数据集的量级(百万、千万、亿万等)、原始数据集的总体大小、原始数据集包含的目录数量等信息,开启一定数量的扫描任务以及扫描通道,也可以由用户指定扫描任务以及扫描通道的数量,本发明实施例对确定扫描任务以及扫描通道的数量的方法不做限制。
可选地,所述扫描通道的数量为多个;步骤101可以包括以下步骤:
步骤201、基于多个扫描任务,按照各所述扫描任务对应的扫描目录,对所述原始数据集中的小文件数据进行扫描;不同扫描任务对应的扫描目录不同。
步骤202、将各所述扫描任务扫描到的小文件数据对应的文件属性信息,基于交错分配规则发送至多个扫描通道中当前空闲的扫描通道。
本发明实施例中,基于多个扫描任务,按照各扫描任务对应的扫描目录,分别对原始数据集中的小文件数据进行扫描。各扫描任务扫描到的小文件数据对应的文件属性信息会基于交错分配规则并行发送至多个扫描通道,为了确保扫描流程的流程性以及扫描效率,可以选择多个扫描通道中当前空闲的扫描通道,向其发送扫描得到的文件属性信息。
多个扫描任务并发工作时,会向多个扫描通道发送小文件数据对应的文件属性信息,而不是每个扫描任务只往指定的通道发送信息,基于多通道流的方式,通过多个扫描任务并行扫描并向多个扫描通道并行发送文件属性信息。为了避免多个扫描任务并发时,只向一个通道,或者只向部分通道发送小文件数据对应的文件属性信息的问题,可以使用通道分配算法,保证每个扫描任务发送的扫描通道,在当前时刻都是未被使用,且通道流工作正常,以保证多个扫描任务能够在多扫描通道中平均分配,即每个扫描任务在发送文件属性信息时,都有轮流使用每个扫描通道的权利,即每个扫描任务交错向多个扫描通道发送文件属性信息。
步骤102、按照预设聚合规则对所述扫描通道中的文件属性信息进行聚合,得到多个数据列表;所述多个数据列表基于聚合通道发送至存储任务。
步骤102可以包括以下步骤:
步骤301、基于聚合任务,获取所述扫描通道中的文件属性信息,并将所述文件属性信息依次聚合为指定大小的数据列表;不同数据列表中包含的文件属性信息不同。
本发明实施例中,可以开启聚合任务,聚合任务用于接收扫描通道中的文件属性信息并进行聚合。基于聚合任务,获取各扫描通道中的文件属性信息,并按照预设聚合规则对文件属性信息进行聚合,得到多个数据列表。其中,预设聚合规则可以定义有数据列表的大小信息,预设聚合规则可以为将多个文件属性信息聚合为指定大小的数据列表。基于聚合任务获取到扫描通道中的文件属性信息后,可以将接收到的文件属性信息聚合为指定大小的数据列表。其中,指定大小可以根据需求自行设定,例如可以根据网络状况和接收方的处理能力来调整数据列表的大小,本发明实施例对此不做限制。示例性的,指定大小可以为4MB,则可以将接收到的文件属性信息聚合为4MB的数据列表,在数据列表的大小达到4MB的情况下,形成最终的数据列表。
本发明实施例中,步骤102之后可以包括以下步骤:
步骤401、将聚合后的所述多个数据列表依次放入批处理队列。
步骤402、在所述批处理队列中的数据列表的当前数量每达到目标批处理数量的情况下,将所述批处理队列中的数据列表发送至聚合通道。
本发明实施例中,聚合任务在将文件属性信息聚合为数据列表后,按照顺序将多个数据列表加入批处理队列。由于在对大量小文件数据进行处理时,需要频繁打开和关闭小文件数据,因此,小文件数据的大小越小,会造成频繁的IO开销,造成IO负载压力过大。此时,为了不给繁重的IO增加负载压力,可以预先设置目标批处理数量(目标批处理大小),根据目标批处理数量分批操作对应的数据列表,以缓解系统的IO负载压力。在批处理队列中的数据列表的当前数量每达到目标批处理数量的情况下,将批处理队列中的本批数据列表发送至聚合通道。其中,聚合通道可以是用来存放和留转聚合的数据列表的通道。
目标批处理数量可以是基于数据列表对应的指定大小以及单位数量个数据列表所包含的文件属性信息的数量确定的。单位数量个数据列表所包含的文件属性信息的数量可以是一个指定大小的数据列表中所能够包含的文件属性信息的数量。针对一个原始数据集,该原始数据集中的小文件数据对应的文件属性信息的大小近似,大小波动相对较小,则针对同一原始数据集,在确定数据列表的指定大小后,每个数据列表中包含的文件属性信息的数量可以视为大致相同。不同原始数据集对应的目标批处理数量可以是不同的,也可以是相同的。示例性的,目标批处理数量的计算公式可以如下:
其中,上述计算公式中的“64”以及“1000”可以是根据实际数据分析推理得到的常数。例如:假设数据列表的指定大小为4MB,单位数量个数据列表中可以包含1000个文件属性信息,则目标批处理数量为16,即当批处理队列中的数据列表达到16个时,将本批数据发送至聚合通道。可以理解的是,目标批处理数量可以在计算过程中向上取整。
可选地,步骤402可以包括以下步骤:
步骤4021、将所述批处理队列中的数据列表,基于交错分配规则发送至当前空闲的聚合通道。
本发明实施例中,出于与扫描通道相似的原理,接受任务在接收到扫描通道中的文件属性信息并聚合为数据列表后,可以基于交错分配规则发送至当前空闲的聚合通道。多个接受任务并发工作时,会向多个聚合通道发送一批数据列表,而不是每个聚合任务只往指定的通道发送信息,基于多通道流的方式,通过多个聚合任务并行接收并聚合得到数据库块并向多个聚合通道并行发送数据列表。为了避免多个聚合任务并发时,只向一个聚合通道,或者只向部分聚合通道发送数据列表的问题,可以使用通道分配算法,保证每个聚合任务发送的聚合通道,在当前时刻都是未被使用,且通道流工作正常,以保证多个聚合任务能够在多聚合通道中平均分配,即每个聚合任务在发送数据列表时,都有轮流使用每个聚合通道的权利,即每个聚合任务交错向多个聚合通道发送数据列表。
步骤103、从所述原始数据集中获取各所述数据列表中的文件属性信息对应的小文件数据,并以数据块的形式分批存储至所述分布式缓存系统中的聚合存储。
本发明实施例中,由于数据列表中包含的为小文件数据的文件属性信息,并未实际进行小文件数据的读写操作,因此,在接收到聚合通道分批发送的数据库后,可以基于各数据库中的文件属性信息,从原始数据集中获取对应的小文件数据,并将小文件数据以多个数据块(chunk)的形式进一步分批存储至分布式缓存系统中的聚合存储。其中,数据列表与数据块一一对应,数据块中的小文件数据是基于数据块对应的数据列表中的文件属性信息确定的,聚合存储用于供分布式缓存系统中的计算节点基于聚合存储直接获取小文件数据。
可选地,步骤103可以包括以下步骤:
步骤501、基于存储任务,依次获取所述存储任务对应的聚合通道中的数据列表。
本发明实施例中,可以开启存储任务,从聚合通道中获取数据列表。存储任务可以被分配为接收一个或多个聚合通道中的数据列表,同样的,一个聚合通道中的数据列表可以被一个或多个存储任务接收。也就是说,存储任务与聚合通道之间可以是一对一、一对多、多对一的关系。基于存储任务,可以依次获取对应聚合通道中的数据列表。
可以理解的是,当存储任务针对一个数据列表,完成对该数据列表对应的数据块的集合以及存储至聚合存储的操作后,结束本次操作,并继续从聚合通道中接收数据列表,进行下一个数据列表的聚合得到数据块以及数据块的写入操作。
步骤502、针对任一所述数据列表,基于所述数据列表中的文件属性信息,从所述原始数据集中读取所述文件属性信息对应的目标小文件数据,并将所述目标小文件数据存入所述数据块;所述数据块中包含的目标小文件数据的第一数量与所述数据列表中包含的文件属性信息的第二数量相同。
本发明实施例中,在获取到聚合通道中的数据列表后,针对任一数据列表,可以基于数据列表中包含的文件属性信息,从原始数据集中读取该文件属性信息对应的目标小文件数据,并将该目标小文件数据放入数据块。也就是说,针对一个数据列表,基于数据列表中包含的文件属性信息,依次从原始数据集中读取出各文件属性信息对应的目标小文件数据,并基于目标小文件数据与文件属性信息的对应关系,将目标小文件数据对应存储至数据块中,在基于数据列表中包含的全部文件属性信息读取并存储对应的目标小文件数据之后,得到的包含文件属性信息以及目标小文件数据的数据集合可以称为数据块。数据块中包含的目标小文件数据与数据块对应的数据列表中的文件属性信息一一对应,针对一个数据列表中的任一文件属性信息,从原始数据集中读取该文件属性信息对应的目标小文件数据,并将该目标小文件数据与该文件属性信息对应存储,对于数据列表中的每个文件属性信息重复上述操作,得到数据块。数据块中的目标小文件数据的相对路径与原始数据集中的小文件数据的相对路径一致。可以理解的是,数据块中包含的目标小文件数据的第一数量与原数据列表中包含的文件属性信息对应的第二数量相同。示例性的,假设一个数据列表中包含3个文件属性信息:文件属性信息1、文件属性信息2、文件属性信息3,则基于三个文件属性信息从原始数据集中获取对应的3个目标小文件数据:目标小文件数据1、目标小文件数据2、目标小文件数据3,进一步地,将目标小文件数据1与文件属性信息1、目标小文件数据2与文件属性信息2、目标小文件数据3与文件属性信息3对应存储在数据块(chunk)中,该包含文件属性信息1-3以及目标小文件数据1-3的数据集合即数据块。
步骤503、将所述数据块存储至所述分布式缓存系统中的聚合存储。
相应的,步骤503可以包括以下步骤:
步骤5031、基于用户空间文件系统挂载指定路径至所述计算节点,所述指定路径用于供所述计算节点访问对应的聚合存储。
步骤5032、响应于写入指令,基于所述分布式缓存系统的目标接口,将所述数据块存储至所述多个计算节点的存储空间。
本发明实施例中,通过linux系统提供的fuse框架建立用户态自定义文件系统,用户态自定义文件系统包括Fuse框架模块,API调用模块,在文件操作函数中调用目标接口(REST API)与各计算节点的存储空间进行交互访问,在内存中保存文件系统的相关元数据。Fuse 框架模块包括Fuse内核模块,用户空间库(libfuse 连接库)和挂载工具(fusermount),Fuse 框架模块处理在挂载目录下操作锁产生的系统调用,并将处理结果返回给用户。API调用模块内部封装有目标接口,目标接口用于供客户端文件系统与聚合存储的通信过程,所述通信过程基于Http协议,依赖性小,易于部署。
本发明实施例中,在针对每个数据列表均得到对应的数据块后,将多个数据块存储至分布式缓存系统中的聚合存储。具体的,聚合存储可以是分布式缓存系统中的多个计算节点的多个磁盘聚合成一个存储空间(总路径)。具体的可以通过指定路径,将多个数据块落盘至聚合存储中。在将多个数据块存储至聚合存储中后,聚合存储会基于自身的分配算法分配至具体的计算节点。在计算节点需要访问数据时,直接基于指定路径查看和访问聚合存储中的数据块。因此,聚合存储用于供计算节点直接获取小文件数据,提高数据加载效率。
示例性的,可以基于挂载命令,通过用户空间文件系统(Filesystem inUserspace,fuse)挂载指定路径到各个计算节点,指定路径例如:/mnt/cachefs路径。这样,可以在计算节点需要访问数据时,直接基于指定路径查看和访问聚合存储中的数据块。在将数据块写入聚合存储的过程中,可以拦截用户空间文件系统对应的写接口,并根据需求重构该写接口。
在一种可能的实施方式中,当需要调用写操作写入数据时,数据块进入内核态的VFS层(VFS:Virtual FileSystem,采用标准的Unix系统调用读写位于不同物理介质上的文件系统,为各类文件系统提供了一个统一的操作界面和应用程序接口,即在Linux系统中,所有的系统调用都会经过VFS层过度到对应的文件系统中),VFS将数据块拷贝到FUSE内核申请的内存中,并将数据写入指定路径中(对指定路径的读写即为对内存的读写操作),随后客户端在处理完这些流程后,将操作结果返回给VFS,进而返回给客户端,完成写操作的调用。
综上所述,本发明实施例中,通过扫描任务,按照预设扫描规则对原始数据集中的小文件数据进行扫描,并且将文件属性信息发送至扫描通道,相对于直接发送小文件数据,文件属性信息的大小一定程度上小于小文件数据,因此,可以一定程度上减少数据传输过程中的开销以及扫描速度。并且按照预设聚合规则对文件属性信息进行聚合,通过将文件属性信息进行聚合,在后续过程中以聚合后的数据列表为单位进行传输以及处理,降低大量小文件数据的交互次数,并且降低了网络、磁盘等资源开销,提升了原始数据集的写入效率。同时,将小文件数据以多个数据块的形式存储至聚合存储,可以分批将聚合的数据块写入聚合存储,也将写入操作从千万次级别降低至百万或几十万次级别,极大提高了存储系统的写数据效率。本发明实施例通过将原始数据集中的小文件数据以数据块的形式写入聚合存储,可以便于计算节点基于聚合存储直接获取小文件数据,无需重复访问并依次拉取原始数据集中的小文件数据,一定程度上提升了计算节点获取数据的效率,并且降低了数据传输过程中的开销。
可选地,本发明实施例还可以包括以下步骤:
步骤601、基于所述扫描通道每秒接收的数据量以及每秒发送的数据量,调整所述扫描通道的通道缓存大小以及所述聚合任务的数量。
本发明实施例中,为了解决扫描任务的扫描速度过快,导致发送到扫描通道的信息可能未被及时处理,造成的扫描通道堵塞,可以基于扫描通道每秒从扫描任务接收的数据量以及每秒发送至聚合任务的数据量,即扫描任务每秒发送到扫描通道的数据量和聚合任务每秒从扫描通道接收处理的数据量,自适应的调整扫描通道的通道缓存大小以及聚合任务的数量。示例性的,当每秒接收的数据量大于第一阈值且/或每秒发送的数据量小于第二阈值,可以提高扫描通道的通道缓存大小和/或增加聚合任务的数量。这样,可以保证扫描通道接收数据和发送数据的流程不被堵塞,保持高效传输。
可选地,本发明实施例还包括以下步骤:
步骤701、当任一所述聚合通道达到预设缓存阈值的情况下,基于所述聚合通道的单位接收数据量、单位处理数据量以及所述聚合通道对应的存储任务的平均处理时间,调整所述聚合通道的缓存通道大小以及对应的存储任务数量。
本发明实施例中,在包含多个聚合通道的情况下,若任一聚合通道中达到预设缓存阈值的情况下,表征该聚合通道中的数据量达到聚合通道的缓存阈值上限,易造成聚合通道堵塞,为了及时疏通聚合通道中的数据,可以调节聚合通道的缓存通道大小以及该聚合通道对应的存储任务的数量。其中,预设缓存阈值可以根据需求为聚合通道设定,本发明实施例对此不做限制。具体的,由于聚合通道每秒接收的数据量以及每秒发送的数据量会影响聚合通道内数据的流转速度,并且在一定程度上,聚合通道对应的存储任务的处理时长也会影响存储任务从聚合通道中获取数据的频次,进而一定程度上影响聚合通道内数据的流转速度,因此可以根据聚合通道的单位接收数据量(聚合任务每秒发送到聚合通道的数据量),单位数据处理量(聚合通道每秒向存储任务发送的数据量)以及该聚合通道对应的存储任务的平均处理时间(存储任务在接收到数据库后,获取小文件数据并得到数据块存入聚合存储中的平均耗时),调整聚合通道的缓存通道大小以及该聚合通道对应的存储任务的数量。示例性的,当单位接收数据量超过阈值和/或单位数据处理量小于阈值和/或该聚合通道对应的存储任务的平均处理时间大于预设时间阈值,则可以提高聚合通道的缓存通道大小和/或该聚合通道对应的存储任务的数量。这样,可以保证聚合通道接收数据和发送数据的流程不被堵塞,保持数据的高效传输。
可选地,本发明实施例还可以包括以下步骤:
步骤801、将所述数据块对应的元数据信息以及写入成功信息发送并存储至目标数据库。
本发明实施例中,在存储任务将数据块成功写入聚合存储后,可以基于同步通道(sync channel)将写入成功信息以及数据块对应的元数据信息发送至CacheFS服务中的目标数据库,使得目标数据库中获知聚合存储中存储了哪些数据。其中,数据块对应的元数据信息可以是数据块对应的属性信息,该属性信息可以包括但不限于数据块的标识(inode)、数据块的名称(id)、数据块中包含的小文件数据名列表、数据块中的小文件数据目录结构、数据块中的小文件数据总数、数据块的大小、数据块中的小文件数据的修改时间戳等。目标数据库可以是redis或mysql等,本发明实施例对此不做限制。
相应的,如果存储任务将数据块写入聚合存储失败,则可以将该数据块对应的写入失败信息发送至数据库中。
可以理解的是,存储任务同样基于交错分配规则将数据块对应的元数据信息以及所述写入成功信息向同步通道。具体的,存储任务可以基于交错分配规则将数据块对应的元数据信息和/或写入成功信息发送至当前空闲的同步通道。多个存储任务并发工作时,会向多个同步通道发送元数据信息和/或写入成功信息,基于多通道流的方式,通过多个存任务并行将数据块存储至聚合存储并在写入成功后向多个同步通道并行发送元数据信息和/或写入成功信息。为了避免多个存储任务并发时,只向一个同步通道,或者只向部分同步通道发送元数据信息和/或写入成功信息的问题,可以使用通道分配算法,保证每个存储任务发送的同步通道,在当前时刻都是未被使用,且通道流工作正常,以保证多个存储任务能够在多同步通道中平均分配,即每个存储任务在发送元数据信息和/或写入成功信息时,都有轮流使用每个同步通道的权利,即每个存储任务交错向多个同步通道发送元数据信息和/或写入成功信息。
在基于同步通道向目标数据库发送元数据信息时,同样可以基于批处理队列降低传输过程中的IO开销以及IO负载,具体的,可以将元数据信息先放入批处理队列,并当批处理队列中的元数据信息的数量达到预设数量的情况下,将批处理队列中的元数据信息批量发送至同步通道。其中,目标数量可以基于公式计算得到也可以根据用户需求设置,本发明实施例对此不做限制。在批处理队列中的元数据信息的数量达到预设数量的情况下,将本批元数据信息基于同步通道发送至目标数据库,并批量写入目标数据库中的slice表中,并将各数据块对应的元数据信息与数据块对应的标识相关联,由于数据块对应的标识是唯一的,因此,在后续使用过程中,基于数据块对应的标识,可以快捷的实现对该数据块的增删改查。具体的,linux文件系统的VFS会将数据块对应的标识透传至目标数据库,在接收到数据块对应的元数据信息的情况下,将元数据信息与标识相关联并对应存储至目标数据库。
进一步地,由于同步通道中的元数据信息和/或写入成功信息需要写入目标数据库,而多同步通道同时并发的处理机制,会导致并发性较高,从而导致目标数据库的事务和连接达到瓶颈,导致目标数据库压力过载,数据写入操作可能会出现失败。为了解决该问题,可以根据同步通道的数据接收速度和数据处理速度,以及目标数据库的连接数限制,自适应的调整批处理队列中的预设数量(即批量向同步通道中发送的数据的数量)、同步通道的缓存大小,用于接收同步通道中的元数据信息的接收任务的数量等。
此外,由于小文件数据越小,指定大小的数据列表中聚合的文件数量越多,相应的,数据块中的数据越多,则数据块对应元数据信息的信息量就越大,因此,为了不影响数据块的读、写效率,以及原始数据集中的小文件数据对应的文件属性信息抽取效率,可以将使用压缩算法,将元数据信息压缩后,再存入目标数据库中,在后续使用时,对压缩后的元数据信息解压缩展示,以提高目标数据库中元数据信息的抽取效率。
可选地,本发明实施例中,在所述聚合存储接收到覆盖写指令的情况下,所述覆盖写指令用于指示将目标数据块写入所述聚合存储;本发明实施例还可以包括以下步骤:
步骤901、若所述原始数据集未发生变化,则更新所述目标数据库中存储的所述目标数据块对应的元数据信息。
本发明实施例中,在聚合存储接收到覆盖写指令的情况下,若原始数据集未发生变化,表征原始数据集内的小文件数据也未发生变化,则数据块的标识(inode)不会发生变化,但数据块的名称(id)会发生变化,因此,可以更新目标数据库中存储的该目标数据块对应的元数据信息。
相应的,本发明实施例还包括以下步骤:
步骤1001、若所述原始数据集中第一小文件数据发生变化,则将所述聚合存储中存储的包含所述第一小文件数据的原始数据块替换为所述目标数据块,并将所述目标数据库中存储的原始数据块对应的第一元数据信息替换为所述目标数据块对应的第二元数据信息;
所述目标数据块中包括所述第一小文件数据。
本发明实施例中,若原始数据集中第一小文件数据发生变化,则将聚合存储中存储的包含第一小文件数据的原始数据块替换为目标数据块,并将目标数据库中存储的原始数据块对应的第一元数据信息替换为目标数据块对应的第二元数据信息。其中,第一小文件数据发生的变化可以包括文件删除或文件内容变化。也就是说,本发明实施例的目标数据库中的元数据信息以及聚合存储中存储的数据块需要跟随原始数据集的变化进行同步更新,以确保数据的可靠性以及一致性。
进一步地,当原始数据集中新增小文件数据,则不影响已经聚合成功的数据块,可以将新增的小文件数据基于上述步骤聚合为新的数据块,并存储至聚合存储中。
本发明实施例中,通过对目标数据库中的元数据信息进行一致性管理,可以使得目标数据库中的元数据信息以及聚合存储中存储的数据块与原始数据集中包含的小文件数据一致,以确保数据的可靠性以及一致性。
可选地,本发明实施例还包括以下步骤:
步骤1101、基于所述客户端,将指定数据块预缓存至所述客户端对应的目标计算节点的本地内存;所述指定数据块用于供所述目标计算节点进行模型训练。
本发明实施例中,为了便于计算节点获取小文件数据,各个执行数据拉取的客户端可以预先将指定数据块提前缓存至客户端对应的目标计算节点的本地缓存。其中,指定数据块可以是从多个数据块中确定的目标计算节点进行第一次迭代训练(epoch)所需的数据所属的数据块,用于供目标计算节点进行模型训练。这样,通过将指定数据块预缓存至目标计算节点的内存,可以节省数据拉取时间,提高训练效率。
可选地,本发明实施例可以包括以下步骤:
步骤1201、在所述指定数据块中不存在所述目标计算节点指示的第一小文件数据的情况下,基于所述第一小文件数据的信息,从所述聚合存储中获取包含所述第一小文件数据的第一数据块。
本发明实施例中,当目标计算节点需要基于第一小文件数据进行训练时,但在指定数据块中不存在目标计算节点指示的第一小文件数据的情况下,需要向聚合存储获取第一小文件数据,则可以基于第一小文件数据的信息,从聚合存储中获取包含第一小文件数据的第一数据块。其中,该第一数据块属于聚合存储中的多个数据块。
本发明实施例中,当目标计算节点需要基于第一小文件数据进行训练时,可以直接熊聚合存储中获取需要的包含第一小文件数据的第一数据块,无需与原始数据集进行重复交互,只需基于聚合存储获取需要的小文件数据即可,一定程度上提高了数据获取效率以及训练效率。
可以理解的是,CacheFS客户端具备数据块管理功能,客户端可以被配置为:随计算节点的训练任务结束,清理所拉取的数据集,也可以基于定时任务,定期清理超过预设时长阈值存储但并未使用的数据块等。
示例性的,图2示出了一种数据处理方法的具体步骤流程图,如图2所示,1、分布式计算集群(CacheFS计算集群),通过训练任务或CacheFS命令工具的拉取命令,触发CacheFS客户端向远程数据源(包含原始数据集),发送拉取数据集的请求;远程数据源响应拉取请求,按照要求,提供小文件数据给CacheFS客户端;CacheFS客户端对远程数据源中的小文件数据进行扫描后,获取小文件数据对应的文件属性信息,并基于文件属性信息,将小文件数据聚合为数据块,将数据块放入聚合存储中。CacheFS客户端将数据块写入聚合存储后,需要将数据块的相关信息(即元数据信息)上报到CacheFS服务的目标数据库,记录该数据块的元数据信息,便于计算节点后续训练过程的使用。
图3是本发明实施例提供的一种数据处理装置的结构示意图,如图3所示,该装置具体可以包括:
第一扫描模块1301,用于基于扫描任务,按照预设扫描规则对原始数据集中的小文件数据进行扫描,并将所述小文件数据对应的文件属性信息发送至扫描通道;
第一聚合模块1302,用于按照预设聚合规则对所述扫描通道中的文件属性信息进行聚合,得到多个数据列表;
第一存储模块1303,用于从所述原始数据集中获取各所述数据列表中的文件属性信息对应的小文件数据,并以数据块的形式分批存储至所述分布式缓存系统中的聚合存储;所述数据列表与所述数据块一一对应,所述数据块中的小文件数据是基于所述数据块对应的数据列表中的文件属性信息确定的,所述聚合存储用于供所述分布式缓存系统中的计算节点基于所述聚合存储直接获取小文件数据。
本发明实施例提供了一种数据处理装置,通过扫描任务,按照预设扫描规则对原始数据集中的小文件数据进行扫描,并且将文件属性信息发送至扫描通道,相对于直接发送小文件数据,文件属性信息的大小一定程度上小于小文件数据,因此,可以一定程度上减少数据传输过程中的开销以及扫描速度。并且按照预设聚合规则对文件属性信息进行聚合,通过将文件属性信息进行聚合,在后续过程中以聚合后的数据列表为单位进行传输以及处理,降低大量小文件数据的交互次数,并且降低了网络、磁盘等资源开销,提升了原始数据集的写入效率。同时,将小文件数据以多个数据块的形式存储至聚合存储,可以分批将聚合的数据块写入聚合存储,也将写入操作从千万次级别降低至百万或几十万次级别,极大提高了存储系统的写数据效率。本发明实施例通过将原始数据集中的小文件数据以数据块的形式写入聚合存储,可以便于计算节点基于聚合存储直接获取小文件数据,无需重复访问并依次拉取原始数据集中的小文件数据,一定程度上提升了计算节点获取数据的效率,并且降低了数据传输过程中的开销。
可选地,所述扫描任务的数量为多个,所述扫描通道的数量为多个;第一扫描模块1301包括:
第一扫描子模块,用于基于多个扫描任务,按照各所述扫描任务对应的扫描目录,对所述原始数据集中的小文件数据进行扫描;不同扫描任务对应的扫描目录不同;
第一发送模块,用于将各所述扫描任务扫描到的小文件数据对应的文件属性信息,基于交错分配规则发送至多个扫描通道中当前空闲的扫描通道。
可选地,第一聚合模块1302,包括:
第一聚合子模块,用于基于聚合任务,获取所述扫描通道中的文件属性信息,并将所述文件属性信息依次聚合为指定大小的数据列表;不同数据列表中包含的文件属性信息不同。
可选地,该装置还包括:
第一调整模块,用于基于所述扫描通道每秒接收的数据量以及每秒发送的数据量,调整所述扫描通道的通道缓存大小以及所述聚合任务的数量。
可选地,该装置还包括:
第一处理模块,用于将聚合后的所述多个数据列表依次放入批处理队列;
第二发送模块,用于在所述批处理队列中的数据列表的当前数量每达到目标批处理数量的情况下,将所述批处理队列中的数据列表发送至聚合通道。
可选地,第二发送模块包括:
第一发送子模块,用于将所述批处理队列中的数据列表,基于交错分配规则发送至当前空闲的聚合通道。
可选地,第一存储模块1303包括:
第一获取模块,用于基于存储任务,依次获取所述存储任务对应的聚合通道中的数据列表;
第二处理模块,用于针对任一所述数据列表,基于所述数据列表中的文件属性信息,从所述原始数据集中读取所述文件属性信息对应的目标小文件数据,并将所述目标小文件数据存入所述数据块;所述数据块中包含的目标小文件数据的第一数量与所述数据列表中包含的文件属性信息的第二数量相同;
第二存储模块,用于将所述数据块存储至所述分布式缓存系统中的聚合存储。
可选地,该装置还包括:
第二调整模块,用于当任一所述聚合通道达到预设缓存阈值的情况下,基于所述聚合通道的单位接收数据量、单位处理数据量以及所述聚合通道对应的存储任务的平均处理时间,调整所述聚合通道的缓存通道大小以及对应的存储任务数量。
可选地,所述聚合存储是基于多个计算节点的存储空间得到的;
第二存储模块包括:
第一挂载模块,用于基于用户空间文件系统挂载指定路径至所述计算节点,所述指定路径用于供所述计算节点访问对应的聚合存储;
第一存储子模块,用于响应于写入指令,基于所述分布式缓存系统的目标接口,将所述数据块存储至所述多个计算节点的存储空间。
可选地,该装置还包括:
第三存储模块,用于将所述数据块对应的元数据信息以及写入成功信息发送并存储至目标数据库。
可选地,在所述聚合存储接收到覆盖写指令的情况下,所述覆盖写指令用于指示将目标数据块写入所述聚合存储;该装置还包括:
第一更新模块,用于若所述原始数据集未发生变化,则更新所述目标数据库中存储的所述目标数据块对应的元数据信息。
可选地,该装置还包括:
第一替换模块,用于若所述原始数据集中第一小文件数据发生变化,则将所述聚合存储中存储的包含所述第一小文件数据的原始数据块替换为所述目标数据块,并将所述目标数据库中存储的原始数据块对应的第一元数据信息替换为所述目标数据块对应的第二元数据信息;
所述目标数据块中包括所述第一小文件数据。
可选地,所述分布式缓存系统包括客户端;该装置还包括:
第一缓存模块,用于基于所述客户端,将指定数据块预缓存至所述客户端对应的目标计算节点的本地内存;所述指定数据块用于供所述目标计算节点进行模型训练。
可选地,该装置还包括:
第二获取模块,用于在所述指定数据块中不存在所述目标计算节点指示的第一小文件数据的情况下,基于所述第一小文件数据的信息,从所述聚合存储中获取包含所述第一小文件数据的第一数据块。
本发明还提供了一种电子设备,参见图4,包括:处理器1401、存储器1402以及存储在所述存储器上并可在所述处理器上运行的计算机程序14021,所述处理器执行所述程序时实现前述实施例的数据处理方法。
本发明还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述实施例的数据处理方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明的排序设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要指出的是,本申请中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种数据处理方法,其特征在于,应用于分布式缓存系统,所述方法包括:
基于扫描任务,按照预设扫描规则对原始数据集中的小文件数据进行扫描,并将所述小文件数据对应的文件属性信息发送至扫描通道;
按照预设聚合规则对所述扫描通道中的文件属性信息进行聚合,得到多个数据列表;
从所述原始数据集中获取各所述数据列表中的文件属性信息对应的小文件数据,并以数据块的形式分批存储至所述分布式缓存系统中的聚合存储;所述数据列表与所述数据块一一对应,所述数据块中的小文件数据是基于所述数据块对应的数据列表中的文件属性信息确定的,所述聚合存储用于供所述分布式缓存系统中的计算节点基于所述聚合存储直接获取小文件数据;
所述预设扫描规则包括自动为所述扫描任务分配的扫描目录,所述扫描目录用于指示所述扫描任务所扫描的原始数据集的扫描范围;
所述扫描任务的数量为多个,所述扫描通道的数量为多个;所述基于扫描任务,按照预设扫描规则对原始数据集中的小文件数据进行扫描,并将所述小文件数据对应的文件属性信息发送至扫描通道,包括:
基于多个扫描任务,按照各所述扫描任务对应的扫描目录,对所述原始数据集中的小文件数据进行扫描;不同扫描任务对应的扫描目录不同;
将各所述扫描任务扫描到的小文件数据对应的文件属性信息,基于交错分配规则发送至多个扫描通道中当前空闲的扫描通道;
所述按照预设聚合规则对所述扫描通道中的文件属性信息进行聚合,得到多个数据列表,包括:
基于聚合任务,获取所述扫描通道中的文件属性信息,并将所述文件属性信息依次聚合为指定大小的数据列表;不同数据列表中包含的文件属性信息不同;
所述从所述原始数据集中获取各所述数据列表中的文件属性信息对应的小文件数据,并以数据块的形式分批存储至所述分布式缓存系统中的聚合存储,包括:
基于存储任务,依次获取所述存储任务对应的聚合通道中的数据列表;
针对任一所述数据列表,基于所述数据列表中的文件属性信息,从所述原始数据集中读取所述文件属性信息对应的目标小文件数据,并将所述目标小文件数据存入所述数据块;所述数据块中包含的目标小文件数据的第一数量与所述数据列表中包含的文件属性信息的第二数量相同;
将所述数据块存储至所述分布式缓存系统中的聚合存储。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述扫描通道每秒接收的数据量以及每秒发送的数据量,调整所述扫描通道的通道缓存大小以及所述聚合任务的数量。
3.根据权利要求1所述的方法,其特征在于,在所述按照预设聚合规则对所述扫描通道中的文件属性信息进行聚合,得到多个数据列表之后,所述方法还包括:
将聚合后的所述多个数据列表依次放入批处理队列;
在所述批处理队列中的数据列表的当前数量每达到目标批处理数量的情况下,将所述批处理队列中的数据列表发送至聚合通道。
4.根据权利要求3所述的方法,其特征在于,所述目标批处理数量是基于所述数据列表对应的指定大小以及单位数量个所述数据列表所包含的文件属性信息的数量确定的。
5.根据权利要求3所述的方法,其特征在于,所述将所述批处理队列中的数据列表发送至聚合通道,包括:
将所述批处理队列中的数据列表,基于交错分配规则发送至当前空闲的聚合通道。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当任一所述聚合通道达到预设缓存阈值的情况下,基于所述聚合通道的单位接收数据量、单位处理数据量以及所述聚合通道对应的存储任务的平均处理时间,调整所述聚合通道的缓存通道大小以及对应的存储任务数量。
7.根据权利要求1所述的方法,其特征在于,所述聚合存储是基于多个计算节点的存储空间得到的;所述将所述数据块存储至所述分布式缓存系统中的聚合存储,包括:
基于用户空间文件系统挂载指定路径至所述计算节点,所述指定路径用于供所述计算节点访问对应的聚合存储;
响应于写入指令,基于所述分布式缓存系统的目标接口,将所述数据块存储至所述多个计算节点的存储空间。
8.根据权利要求1所述的方法,其特征在于,在所述从所述原始数据集中获取各所述数据列表中的文件属性信息对应的小文件数据,并以数据块的形式分批存储至所述分布式缓存系统中的聚合存储之后,所述方法还包括:
将所述数据块对应的元数据信息以及写入成功信息发送并存储至目标数据库。
9.根据权利要求8所述的方法,其特征在于,在所述聚合存储接收到覆盖写指令的情况下,所述覆盖写指令用于指示将目标数据块写入所述聚合存储;所述方法还包括:
若所述原始数据集未发生变化,则更新所述目标数据库中存储的所述目标数据块对应的元数据信息。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
若所述原始数据集中第一小文件数据发生变化,则将所述聚合存储中存储的包含所述第一小文件数据的原始数据块替换为所述目标数据块,并将所述目标数据库中存储的原始数据块对应的第一元数据信息替换为所述目标数据块对应的第二元数据信息;
所述目标数据块中包括所述第一小文件数据。
11.根据权利要求1所述的方法,其特征在于,所述文件属性信息包括所述小文件数据对应的文件名、所述小文件数据对应的文件大小、所述小文件数据对应的文件相对位置以及所述小文件数据对应的文件修改时间。
12.根据权利要求1所述的方法,其特征在于,所述分布式缓存系统包括客户端;所述方法还包括:
基于所述客户端,将指定数据块预缓存至所述客户端对应的目标计算节点的本地内存;所述指定数据块用于供所述目标计算节点进行模型训练。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
在所述指定数据块中不存在所述目标计算节点指示的第一小文件数据的情况下,基于所述第一小文件数据的信息,从所述聚合存储中获取包含所述第一小文件数据的第一数据块。
14.一种数据处理装置,其特征在于,应用于分布式缓存系统,所述装置包括:
第一扫描模块,用于基于扫描任务,按照预设扫描规则对原始数据集中的小文件数据进行扫描,并将所述小文件数据对应的文件属性信息发送至扫描通道;
第一聚合模块,用于按照预设聚合规则对所述扫描通道中的文件属性信息进行聚合,得到多个数据列表;
第一存储模块,用于从所述原始数据集中获取各所述数据列表中的文件属性信息对应的小文件数据,并以数据块的形式分批存储至所述分布式缓存系统中的聚合存储;所述数据列表与所述数据块一一对应,所述数据块中的小文件数据是基于所述数据块对应的数据列表中的文件属性信息确定的,所述聚合存储用于供所述分布式缓存系统中的计算节点基于所述聚合存储直接获取小文件数据;
所述扫描任务的数量为多个,所述扫描通道的数量为多个;所述第一扫描模块包括:
第一扫描子模块,用于基于多个扫描任务,按照各所述扫描任务对应的扫描目录,对所述原始数据集中的小文件数据进行扫描;不同扫描任务对应的扫描目录不同;
第一发送模块,用于将各所述扫描任务扫描到的小文件数据对应的文件属性信息,基于交错分配规则发送至多个扫描通道中当前空闲的扫描通道;
所述第一聚合模块,包括:
第一聚合子模块,用于基于聚合任务,获取所述扫描通道中的文件属性信息,并将所述文件属性信息依次聚合为指定大小的数据列表;不同数据列表中包含的文件属性信息不同;
所述第一存储模块包括:
第一获取模块,用于基于存储任务,依次获取所述存储任务对应的聚合通道中的数据列表;
第二处理模块,用于针对任一所述数据列表,基于所述数据列表中的文件属性信息,从所述原始数据集中读取所述文件属性信息对应的目标小文件数据,并将所述目标小文件数据存入所述数据块;所述数据块中包含的目标小文件数据的第一数量与所述数据列表中包含的文件属性信息的第二数量相同;
第二存储模块,用于将所述数据块存储至所述分布式缓存系统中的聚合存储。
15.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-13中任一所述的数据处理方法。
16.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1-13中一个或多个所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311824685.7A CN117472296B (zh) | 2023-12-27 | 2023-12-27 | 数据处理方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311824685.7A CN117472296B (zh) | 2023-12-27 | 2023-12-27 | 数据处理方法、装置、电子设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117472296A CN117472296A (zh) | 2024-01-30 |
CN117472296B true CN117472296B (zh) | 2024-03-15 |
Family
ID=89633341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311824685.7A Active CN117472296B (zh) | 2023-12-27 | 2023-12-27 | 数据处理方法、装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472296B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363795A (zh) * | 2020-10-13 | 2021-02-12 | 南京赛宁信息技术有限公司 | 一种网络安全实训平台虚拟机快速启动方法与系统 |
CN112465046A (zh) * | 2020-12-03 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 海量小文件的人工智能训练的方法、系统、设备及介质 |
CN116185308A (zh) * | 2023-04-25 | 2023-05-30 | 山东英信计算机技术有限公司 | 一种数据集处理方法、装置、设备、介质及模型训练系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170214701A1 (en) * | 2016-01-24 | 2017-07-27 | Syed Kamran Hasan | Computer security based on artificial intelligence |
-
2023
- 2023-12-27 CN CN202311824685.7A patent/CN117472296B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363795A (zh) * | 2020-10-13 | 2021-02-12 | 南京赛宁信息技术有限公司 | 一种网络安全实训平台虚拟机快速启动方法与系统 |
CN112465046A (zh) * | 2020-12-03 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 海量小文件的人工智能训练的方法、系统、设备及介质 |
CN116185308A (zh) * | 2023-04-25 | 2023-05-30 | 山东英信计算机技术有限公司 | 一种数据集处理方法、装置、设备、介质及模型训练系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117472296A (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7378870B2 (ja) | ファイルシステムデータアクセス方法およびファイルシステム | |
US20190213085A1 (en) | Implementing Fault Domain And Latency Requirements In A Virtualized Distributed Storage System | |
CN102576321B (zh) | 快照系统中的性能存储系统以用于容量优化存储系统的性能改进 | |
US8775479B2 (en) | Method and system for state maintenance of a large object | |
US8904137B1 (en) | Deduplication system space recycling through inode manipulation | |
US20130268499A1 (en) | Information management method, and computer for providing information | |
US7236992B2 (en) | Storage system | |
US11048591B1 (en) | Efficient name space organization in a global name space cluster | |
CN104216806B (zh) | 一种文件系统序列化操作日志的捕获与传输方法及其装置 | |
US20110060882A1 (en) | Request Batching and Asynchronous Request Execution For Deduplication Servers | |
US9940331B1 (en) | Proactive scavenging of file system snaps | |
JP3324572B2 (ja) | 情報処理装置並びにコンピュータに実行させるためのプログラムを記録した記録媒体 | |
CN113377868A (zh) | 一种基于分布式kv数据库的离线存储系统 | |
CN111984191A (zh) | 一种支持分布式存储的多客户端缓存方法及系统 | |
CN113032335A (zh) | 文件访问方法、装置、设备及存储介质 | |
CN108959660A (zh) | 一种基于hdfs分布式文件系统的存储方法及使用方法 | |
US11562000B2 (en) | Storage constrained synchronization engine | |
CN107426319A (zh) | 存储受约束的共享内容项同步 | |
CN112084190A (zh) | 一种基于大数据的采集数据实时存储与管理系统和方法 | |
CN117472296B (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN112256649A (zh) | 一种医学文件的存储方法及装置 | |
WO2017172377A1 (en) | File system support for file-level ghosting | |
US11010408B2 (en) | Hydration of a hierarchy of dehydrated files | |
CN116561358A (zh) | 一种基于hbase的3D场景数据文件统一存储与检索方法 | |
US9384253B1 (en) | System and method for multiple-layer data replication in a Linux architecture |
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 |