数据处理方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:27812660 阅读:25 留言:0更新日期:2021-03-30 09:53
本申请公开了一种数据处理方法、装置、电子设备及可读存储介质,涉及云计算技术领域和云存储技术领域。其中,所述数据处理方法包括:服务器响应于终端发送的对第一数据集的缓存预读请求,在所述第一数据集未被缓存的情况下,将所述第一数据集中的部分数据组的数据预读至服务器的缓存中。通过将数据集的不同数据组交给不同的服务器执行缓存和管理,可以保证不同服务器上执行不同数据的缓存,从而避免了多个服务器上缓存有相同数据的情况,能够提高缓存资源的利用率。缓存资源的利用率。

【技术实现步骤摘要】
数据处理方法、装置、电子设备及可读存储介质


[0001]本申请涉及云计算
,尤其涉及云存储
,具体涉及一种数据处理方法、装置、电子设备及可读存储介质。

技术介绍

[0002]深度学习训练过程中,为了能够以随机的方式访问训练数据,深度学习训练框架会使用索引序列来反复遍历读取数据集。因而,通常通过高速缓存Cache来加快训练过程中的数据读取速度。
[0003]现有技术中,后端服务端通常部署有分布式缓存系统,分布式缓存系统的多台缓存服务器上可能缓存有大量相同的数据,使得缓存资源没有得到充分有效的利用,利用效率不高。

技术实现思路

[0004]本申请提供了一种数据处理方法、装置、电子设备及可读存储介质。
[0005]根据本申请的一方面,提供了一种数据处理方法,由服务器执行,所述方法包括:
[0006]接收终端发送的针对第一数据集的缓存预读请求,所述第一数据集包括M个数据组,M为正整数;
[0007]确定所述M个数据组中的N个数据组,N为小于M的正整数;
[0008]将所述N个数据组的数据预读至缓存中。
[0009]根据本申请的另一方面,提供了一种数据处理方法,由终端执行,包括:
[0010]向Q个服务器发送针对第一数据集的缓存预读请求,所述第一数据集包括M个数据组,Q和M为正整数;
[0011]从所述Q个服务器获取所述M个数据组的数据,每个服务器的缓存中存储有所述M个数据组中的至少一个数据组的数据;
[0012]将所述M个数据组的数据预读至缓存中。
[0013]根据本申请的另一方面,提供了一种数据处理装置,所述装置包括:
[0014]接收模块,用于接收终端发送的对第一数据集的缓存预读请求;
[0015]第一预读模块,用于响应于所述缓存预读请求,在所述第一数据集未被缓存的情况下,将所述第一数据集中N个数据组的数据预读至服务器的缓存中,所述第一数据集包括M个数据组,N和M均为正整数且M大于N。
[0016]根据本申请的另一方面,提供了一种数据处理装置,所述装置包括:
[0017]接收模块,用于接收终端发送的针对第一数据集的缓存预读请求,所述第一数据集包括M个数据组,M为正整数;
[0018]第一确定模块,用于确定所述M个数据组中的N个数据组,N为小于M的正整数;
[0019]第一预读模块,用于将所述N个数据组的数据预读至缓存中。
[0020]根据本申请的另一方面,提供了一种数据处理装置,所述装置包括:
[0021]发送模块,用于向Q个服务器发送针对第一数据集的缓存预读请求,所述第一数据集包括M个数据组,Q和M为正整数;
[0022]获取模块,用于从所述Q个服务器获取所述M个数据组的数据,每个服务器的缓存中存储有所述M个数据组中的至少一个数据组的数据;
[0023]第三预读模块,用于将所述M个数据组的数据预读至缓存中。
[0024]根据本申请的另一方面,提供了一种电子设备,包括:
[0025]至少一个处理器;以及
[0026]与所述至少一个处理器通信连接的存储器;其中,
[0027]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请提供的数据处理方法。
[0028]根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本申请提供的数据处理方法。
[0029]根据本申请的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本申请提供的数据处理方法根据本申请的技术提高了缓存资源的利用率。
[0030]应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0031]附图用于更好地理解本方案,不构成对本申请的限定。其中:
[0032]图1是根据本申请第一实施例的数据处理方法的流程示意图;
[0033]图2是根据本申请第二实施例的数据处理方法的流程示意图;
[0034]图3是根据本申请第三实施例的数据处理装置的结构框图;
[0035]图4是根据本申请第四实施例的数据处理装置的结构框图;
[0036]图5是用来实现本申请实施例的数据处理方法的电子设备的框图。
具体实施方式
[0037]以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0038]为方便理解,以下对本申请涉及的一些内容进行说明:
[0039]高速缓存(Cache):缓存是指可以进行高速数据交换的存储器,它先于内存与中央处理器(Central Processing Unit,CPU)交换数据,因此速率很快。当应用程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高速缓存当中,当CPU要读取一个数据时,可以先从CPU的缓存中查找;若没有找到,就从速率相对较慢的内存中读取,并同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,这样来提高数据读取的效率。
[0040]终端(Client):本申请所述的终端是指在深度学习训练中的缓存终端,通过干预
深度学习训练框架来访问训练数据。
[0041]服务器(Server):本申请所述的服务器是指缓存服务器,其可以是在深度学习训练中的缓存服务器,其通常设置于分布式架构的缓存系统中。
[0042]训练周期(Epoch):在深度学习训练中,为了能够以随机方式访问训练数据,深度学习训练框架会使用索引序列来遍历数据集中的数据。假设训练数据有100万个文件,那么会维护一个包含每一个文件索引的列表,并对它进行随机的排列。当全部的数据都完整遍历训练一次,一个Epoch完成。对于下一个Epoch,再次对文件索引进行随机排列,重复对全部的数据完整遍历训练一次。对一个数据集的一次训练通常需要进行多个Epoch。
[0043]数据的可替换性:在深度学习训练中,数据具有可替换性,既使用同一类别的数据替换当前将要读取的数据,不会影响训练结果的精度,所以当训练框架需要读取的数据没有被缓存时,可以返回同一类别的其他已经缓存的文件。这里的同一类别的数据是指具有同一特征的数据。
[0044]缓存命中率:终端或者服务端在读取数据时,会先在本地缓存中查找数据,若在本地缓存中查找到数据时,可以认为缓存住了要被读取的数据,这种情况可以称之为缓存命中;若在本地缓存中没有查找到数据时,则需要到后端查找,这种本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,由服务器执行,所述方法包括:接收终端发送的针对第一数据集的缓存预读请求,所述第一数据集包括M个数据组,M为正整数;确定所述M个数据组中的N个数据组,N为小于M的正整数;将所述N个数据组的数据预读至缓存中。2.根据权利要求1所述的方法,其中,所述确定所述M个数据组中的N个数据组,包括:根据预设映射表,确定所述M个数据组中与服务器对应的N个数据组,所述预设映射表中存储有数据组与服务器之间的对应关系。3.根据权利要求1所述的方法,其中,所述将所述N个数据组的数据预读至缓存中,包括:根据服务器的缓存上限,确定所述N个数据组中每个数据组的可缓存数据量;根据所述N个数据组中每个数据组的可缓存数据量,将所述N个数据组的数据预读至所述缓存中。4.根据权利要求1至3任一项所述的方法,其中,所述将所述N个数据组的数据预读至缓存中,包括:通过L批次缓存预读操作,将所述N个数据组的数据预读至所述缓存中,其中,在每批次缓存预读操作中,对所述N个数据组逐组执行数据的缓存预读。5.根据权利要求1所述的方法,其中,所述将所述N个数据组的数据预读至缓存中之后,所述方法还包括:若接收到终端发送的第一目标数据集合,则删除所述缓存中属于所述第一目标数据集合的数据,所述第一目标数据集合为终端当前已经缓存的数据集合;将第二目标数据集合预读至服务器的缓存中,所述第二目标数据集合为所述N个数据组中未被终端和服务器缓存的数据。6.根据权利要求1所述的方法,其中,在所述将所述N个数据组的数据预读至缓存中之后,所述方法还包括:每间隔预设时间周期,根据缓存系统当前可缓存的所述第一数据集的最小数据量,确定服务器当前可缓存的所述N个数据组的最小数据量;其中,所述缓存系统当前可缓存的所述第一数据集的最小数据量,根据所述第一数据集的数据总量、终端在上一时间周期的数据读取速度和所述缓存系统在上一时间周期的数据读取速度确定。7.根据权利要求6所述的方法,其中,确定缓存系统当前可缓存的所述第一数据集的最小数据量,包括:按照以下计算式缓存系统当前可缓存的所述第一数据集的最小数据量:其中,R为缓存系统当前可缓存的所述第一数据集的数据量,S为所述第一数据集的数据总量,C为终端在上一个时间周期的数据读取速度,Q为所述缓存系统在上一个时间周期的数据读取速度。8.根据权利要求1所述的方法,其中,所述将所述N个数据组的数据预读至缓存中之后,
所述方法还包括:在接收到终端发送的针对第一数据集的第一数据的数据读取请求,且服务器的缓存中缓存有所述第一数据的情况下,获取并向终端发送所述第一数据;在接收到终端发送的针对第一数据集的第一数据的数据读取请求,且服务器的缓存中未缓存有所述第一数据但缓存有第二数据的情况下,获取并向终端发送所述第二数据;所述第一数据和所述第二数据属于所述第一数据集中的同一数据组;在接收到终端发送的针对第一数据集的第一数据的数据读取请求,且服务器的缓存中未缓存有所述第一数据所属的数据组的情况下,向服务器的后端存储系统发送对所述第一数据集的第一数据的数据读取请求。9.一种数据处理方法,由终端执行,包括:向Q个服务器发送针对第一数据集的缓存预读请求,所述第一数据集包括M个数据组,Q和M为正整数;从所述Q个服务器获取所述M个数据组的数据,每个服务器的缓存中存储有所述M个数据组中的至少一个数据组的数据;将所述M个数据组的数据预读至缓存中。10.根据权利要求9所述的方法,其中,所述将所述M个数据组的部分或者全部数据预读至缓存中,包括:根据终端的缓存上限,确定所述每个所述数据组的可缓存数据量;根据每个所述数据组的可缓存数据量,将所述M个数据组的数据预读至终端缓存中。11.根据权利要求9或10所述的方法,其中,所述将所述M个数据组的部分或者全部数据预读至缓存中,包括:通过T批次缓存预读操作,将所述M个数据组预读至终端缓存中,其中,在每批次缓存预读操作中,对每个所述数据组逐组执行数据的缓存预读。12.根据权利要求9所述的方法,其中,所述将所述M个数据组的部分或者全部数据预读至缓存中之后,所述方法还包括:在接收到对第一数据集的第一数据的数据读取请求,且终端的缓存中缓存有所述第一数据的情况下,获取所述第一数据;在接收到对第一数据集的第一数据的数据读取请求,且终端的缓存中未缓存有所述第一数据但缓存有第二数据的情况下,获取所述第二数据,所述第一数据和所述第二数据属于所述第一数据集中的同一数据组;在接收到对第一数据集的第一数据的数据读取请求,且终端的缓存中未缓存有所述第一数据所属的数据组的情况下,向服务器发送对所述第一数据集的第一数据的数据读取请求。13.一种数据处理装置,所述装置包括:接收模块,用于接收终端发送的针对第一数据集的缓存预读请求,所述第一数据集包括M个数据组,M为正整数;第一确定模块,用于确定所述M个数据组中的N个数据组,N为小于M的正整数;第一预读模块,用于将所述N个数据组的数据预读至缓存中。14.根据权利要求13所述的装...

【专利技术属性】
技术研发人员:刘朋
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1