System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及存储系统领域,具体而言,涉及一种分布式缓存方法、装置、电子设备及非易失性存储介质。
技术介绍
1、对于训练任务所需数据的缓存,相关技术中的分布式缓存系统有阿鲁克西欧分布式存储系统(alluxio distributed storage system,简称为alluxio),alluxio分布式存储系统和果汁文件系统(juice file system,简称为juicefs),现有的分布式缓存系统在进行缓存时存在以下问题:alluxio是典型的读写缓存,实现复杂,大量的逻辑用于处理写操作的一致性,占用大量的cpu、内存资源,缓存淘汰机制会造成缓存的冲刷,不适合ai场景的多轮反复全量读取,以及对所训练数据进行针对性的预加载,使用复杂的数据淘汰算法,但在ai训练的随机负载下,对应的预取算法不起作用,反而会使近期不会访问的数据驻留于缓存内,降低整体命中率;juicefs也不支持缓存预加载功能,只能在使用时加载,会造成第一次训练时速度变低。
2、尤其对于ai训练任务,随着大数据和ai技术的发展,基于海量数据的超大规模分布式训练已在生产环境中广泛使用。如今ai芯片的算力逐步提升以及分布式训练技术的完善,使得ai性能的瓶颈不局限在训练卡上,逐步向其他方面转移:对于ai数据存储的容量和性能,很可能成为新的瓶颈,容量上,目前数据集包含海量图片、音频、视频等素材,许多经典数据集都达到几百gb的规模,这给ai训练场景,尤其在云服务中的应用提出的新的存储容量要求;性能上,当cpu、图形处理器(graphics processing
3、针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本申请实施例提供了一种分布式缓存方法、装置、电子设备及非易失性存储介质,以至少解决现有分布式缓存方法无法进行预加载导致的无法满足训练任务的数据缓存需求的技术问题。
2、根据本申请实施例的一个方面,提供了一种分布式缓存方法,包括:获取预设存储介质集合中各个存储介质的缓存磁盘列表、总容量、已缓存容量,其中,每个存储介质创建多个不同的缓存磁盘,缓存磁盘用于对训练任务需要的数据集进行缓存;响应于接收的缓存请求,确定与缓存请求对应的训练任务,并获取训练任务需要的数据集;依据训练任务以及各个存储介质的总容量、已缓存容量、缓存磁盘列表为各个存储介质创建空的缓存磁盘;在确定对数据集进行预加载的情况下,采用预加载方式将数据集至少缓存至空的缓存磁盘。
3、在本申请的一些实施例中,缓存磁盘列表包括存储介质中已经创建的缓存磁盘的缓存位置和缓存状态,缓存状态包括空缓存、可写入以及可访问。
4、在本申请的一些实施例中,在确定不对数据集进行预加载的情况下,采用在线加载方式将数据集至少缓存至空的缓存磁盘。
5、在本申请的一些实施例中,为各个存储介质创建空的缓存磁盘之后,方法还包括:更新各个存储介质的缓存磁盘列表:将每个空的缓存磁盘添加至对应的存储介质的缓存磁盘列表中,并将每个空的缓存磁盘在缓存磁盘列表的缓存状态设置为空缓存。
6、在本申请的一些实施例中,依据训练任务以及各个存储介质的总容量、已缓存容量、缓存磁盘列表为各个存储介质创建空的缓存磁盘,包括:确定执行训练任务时缓存数据集需要的各个存储介质的缓存磁盘的个数和每个缓存磁盘的容量的大小;依据各个存储介质的总容量、已缓存容量、缓存磁盘列表,确定各个存储介质的剩余容量;从各个存储介质中选择剩余容量能创建至少一个缓存数据集需要的缓存磁盘的所有存储介质,组成待存储介质集;为待存储介质集中的各个存储介质创建空的缓存磁盘。
7、在本申请的一些实施例中,在采用预加载方式或在线加载方式将数据集至少缓存至空的缓存磁盘之前,方法还包括:确定执行训练任务时需要经过的各个任务节点;按照执行训练任务时到达各个任务节点的顺序对各个任务节点进行排序,得到任务节点优先级排序。
8、在本申请的一些实施例中,在确定对数据集进行预加载的情况下,采用预加载方式将数据集至少缓存至空的缓存磁盘,包括:在执行训练任务前,从外部数据库中的外部数据源列表中获取数据集中每个的文件的外部数据源卷号,依据外部数据源卷号定位存储在外部数据库中的数据集中每个文件;按照任务节点优先级排序的顺序,在各个任务节点处将训练任务需要的数据集中的每个文件从外部数据库至少缓存至创建好的空的缓存磁盘。
9、在本申请的一些实施例中,在确定不对数据集进行预加载的情况下,采用在线加载方式将数据集至少缓存至空的缓存磁盘,包括:在执行训练任务前,从外部数据库中的外部数据源列表中获取数据集中每个的文件的外部数据源卷号,依据外部数据源卷号定位存储在外部数据库中的数据集中的每个文件;在执行训练任务时,按照任务节点优先级排序的顺序,在各个任务节点处将训练任务需要的数据集中的每个文件从外部数据库至少缓存至创建好的空的缓存磁盘:按照任务节点优先级排序的顺序,确定执行任务节点需要的数据集中的文件是否存在于缓存元数据服务组件中的缓存记录中;在数据集中的文件存在于缓存记录的情况下,不对文件进行在线缓存,并获取缓存记录中存储的数据集中的文件的缓存元数据,依据文件的缓存元数据定位至缓存文件的缓存磁盘;在数据集中的文件未存在于缓存记录的情况下,对文件进行在线缓存,将文件缓存至创建好的空的缓存磁盘。
10、在本申请的一些实施例中,采用预加载方式缓存数据集或者采用在线加载方式缓存数据集之后,方法还包括:存储缓存记录至缓存元数据服务组件:将数据集中的每个文件的缓存元数据存入缓存元数据服务组件中,缓存元数据包括文件的缓存卷卷号、缓存卷偏移、文件名、文件大小、外部数据源卷号。
11、在本申请的一些实施例中,缓存磁盘通过以下方式对训练任务需要的数据集进行缓存:对数据集采用缓存卷的形式进行缓存;缓存卷包括聚合缓存卷和非聚合缓存卷,其中,聚合缓存卷预先设置预设缓存卷大小,聚合缓存卷用于将数据集中的多个小于预设缓存卷大小的文件聚合在一个聚合文件中,并将聚合文件通过聚合缓存卷缓的形式缓存至缓存磁盘,非聚合缓存卷用于将数据集中的大于预设缓存卷大小的文件中的各个文件分别通过非聚合缓存卷的形式缓存至缓存磁盘。
12、缓存磁盘通过以下方式对训练任务需要的数据集进行缓存:
13、在本申请的一些实施例中,对数据集采用缓存卷的形式进行缓存;缓存卷包括聚合缓存卷和非聚合缓存卷,其中,聚合缓存卷预先设置预设缓存卷大小,聚合缓存卷用于将数据集中的多个小于预设缓存卷大小的文件聚合在一个聚合文件中,并将聚合文件通过聚合缓存卷缓的形式缓存至缓存磁盘,非聚合缓存卷用于将数据集中的大于预设缓存卷大小的文件中的各个文件分别通过非聚合缓存卷的形式缓存至缓存磁盘。
14、在本申请的一些实施例中,聚合缓存卷的卷头包含完整性校验信息以及预设缓存卷大本文档来自技高网...
【技术保护点】
1.一种分布式缓存方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在确定不对所述数据集进行预加载的情况下,采用在线加载方式将所述数据集至少缓存至所述空的缓存磁盘。
3.根据权利要求1所述的方法,其特征在于,所述缓存磁盘列表包括所述存储介质中已经创建的所述缓存磁盘的缓存位置和缓存状态,所述缓存状态包括空缓存、可写入以及可访问。
4.根据权利要求1或3所述的方法,其特征在于,为所述各个存储介质创建所述空的缓存磁盘之后,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,依据所述训练任务以及所述各个存储介质的所述总容量、所述已缓存容量、所述缓存磁盘列表为所述各个存储介质创建空的缓存磁盘,包括:
6.根据权利要求1或2所述的方法,其特征在于,在采用所述预加载方式或所述在线加载方式将所述数据集至少缓存至所述空的缓存磁盘之前,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,在确定对所述数据集进行预加载的情况下,采用所述预加载方式将所述数据集至少缓存至所述空的缓存磁盘
8.根据权利要求6所述的方法,其特征在于,在确定不对所述数据集进行预加载的情况下,采用在线加载方式将所述数据集至少缓存至所述空的缓存磁盘,包括:
9.根据权利要求1或2所述的方法,其特征在于,采用预加载方式缓存所述数据集或者采用在线加载方式缓存所述数据集之后,所述方法还包括:
10.根据权利要求1所述的方法,其特征在于,所述缓存磁盘通过以下方式对所述训练任务需要的所述数据集进行缓存:
11.根据权利要求10所述的方法,其特征在于,所述聚合缓存卷的卷头包含完整性校验信息以及所述预设缓存卷大小。
12.一种分布式缓存装置,其特征在于,包括:
13.一种非易失性存储介质,其特征在于,所述非易失性存储介质中存储有程序,其中,在所述程序执行时控制所述非易失性存储介质所在设备执行权利要求1至11中任意一项所述的分布式缓存方法。
14.一种电子设备,其特征在于,包括:存储器和处理器,所述处理器用于执行存储在所述存储器中的程序,其中,所述程序执行时执行权利要求1至11中任意一项所述的分布式缓存方法。
15.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行时实现权利要求1至11中任意一项所述的分布式缓存方法。
...【技术特征摘要】
1.一种分布式缓存方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在确定不对所述数据集进行预加载的情况下,采用在线加载方式将所述数据集至少缓存至所述空的缓存磁盘。
3.根据权利要求1所述的方法,其特征在于,所述缓存磁盘列表包括所述存储介质中已经创建的所述缓存磁盘的缓存位置和缓存状态,所述缓存状态包括空缓存、可写入以及可访问。
4.根据权利要求1或3所述的方法,其特征在于,为所述各个存储介质创建所述空的缓存磁盘之后,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,依据所述训练任务以及所述各个存储介质的所述总容量、所述已缓存容量、所述缓存磁盘列表为所述各个存储介质创建空的缓存磁盘,包括:
6.根据权利要求1或2所述的方法,其特征在于,在采用所述预加载方式或所述在线加载方式将所述数据集至少缓存至所述空的缓存磁盘之前,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,在确定对所述数据集进行预加载的情况下,采用所述预加载方式将所述数据集至少缓存至所述空的缓存磁盘,包括:
8.根据权利要求6所述的方法,其特征在于,在确定不...
【专利技术属性】
技术研发人员:隋毅,王红成,
申请(专利权)人:中国电信股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。