CN116303513A - 一种分布式平台的数据加载方法、装置及介质 - Google Patents
一种分布式平台的数据加载方法、装置及介质 Download PDFInfo
- Publication number
- CN116303513A CN116303513A CN202310335184.6A CN202310335184A CN116303513A CN 116303513 A CN116303513 A CN 116303513A CN 202310335184 A CN202310335184 A CN 202310335184A CN 116303513 A CN116303513 A CN 116303513A
- Authority
- CN
- China
- Prior art keywords
- cache
- node
- information
- data
- task
- 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
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/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式平台的数据加载方法、装置及介质,适用于分布式平台技术领域。包括:获取当前作业的镜像数据和数据集的缓存信息;根据缓存信息和对应的节点缓存实例确定对应的事件队列;根据各事件队列和缓存信息更新目标节点的节点缓存任务状态信息和执行对应的缓存任务队列操作以便于将缓存信息加载至目标节点。在预加载方式下无需进行请求,直接将缓存信息加载至目标节点,无需中转站的设置,减少与目标节点的交互过程。通过双队列(镜像缓存任务队列和数据集缓存任务队列)的设计,实现并发操作处理。结合分布式平台的海量数据,通过实时更新节点缓存任务状态信息避免数据报错,以提高平台作业运行效率。
Description
技术领域
本发明涉及分布式平台技术领域,特别是涉及一种分布式平台的数据加载方法、装置及介质。
背景技术
基于现有的数据缓存技术实现于客户端与服务端之间的业务软件的缓存数据以及通过目标路径读取镜像数据。然而分布式平台系统的大规模集群节点数量、网络链路条件以及边缘节点与集群中心通信的可靠性的环境条件显而不适用。
对于现有的数据缓存技术仅考虑业务层的数据需求,使用镜像和数据集中心仓库存储全部数据以作为中转站,作业启动时客户端请求仓库中心进行镜像和数据加载,期间产生的服务端和客户端的频繁交互使得加载过程较为漫长。或者,划分多个区域,在各区域中设置区域本地映像仓库,本地仓库仅对区域内的节点作业进行分发,导致从本地仓库中提取镜像和数据集存在延迟以影响平台作业资源利用率。结合分布式平台系统,在训练任务作业时镜像和数据集的状态存在变化更新,现有的仅是流程处理,并未对各数据的状态标注,由于分布式平台系统的海量数据,可能导致作业运行时数据报错,平台作业运行效率造成影响。
因此,寻求一种分布式平台的数据加载方法是本领域技术人员亟需要解决的。
发明内容
本发明的目的是提供一种分布式平台的数据加载方法、装置及介质,避免现有的通过中心仓库或者本地映像仓库的分发导致出现的延迟问题。通过双队列(镜像缓存任务队列和数据集缓存任务队列)的设计,实现并发操作处理。结合分布式平台的海量数据,通过实时更新节点缓存任务状态信息避免数据报错,以提高平台作业运行效率。
为解决上述技术问题,本发明提供一种分布式平台的数据加载方法,包括:
获取当前作业的镜像数据和数据集的缓存信息,其中所述缓存信息通过资源配置预加载方式或目标节点根据所述当前作业运行请求方式得到的信息;
根据所述缓存信息和对应的节点缓存实例确定对应的事件队列;
根据各事件队列和所述缓存信息更新所述目标节点的节点缓存任务状态信息和执行对应的缓存任务队列操作以便于将所述缓存信息加载至所述目标节点,其中所述缓存任务队列包括镜像缓存任务队列和数据集缓存任务队列。
优选地,所述缓存信息通过所述资源配置预加载方式得到,所述获取当前作业的镜像数据和数据集的缓存信息,包括:
根据各资源配置信息和所述当前作业获取对应的所述镜像数据和所述数据集以作为所述缓存信息;
对应地,各所述资源配置信息的获取通过所述资源配置预加载方式得到,具体包括:
建立镜像列表和第一预加载缓存节点;
获取所述镜像数据的第一拉取加解密配置信息;
将所述镜像列表、所述第一预加载缓存节点和所述第一拉取加解密配置信息作为所述镜像数据的资源配置信息;
建立数据集列表和第二预加载缓存节点;
获取所述数据集的第二拉取加解密配置信息;
将所述镜像列表、所述第二预加载缓存节点和所述第二拉取加解密配置信息作为所述数据集的资源配置信息。
优选地,所述建立镜像列表和第一预加载缓存节点,包括:
当所述镜像列表中未设置节点选择标签和节点列表,则将所述镜像数据预加载至当前集群的所有节点以作为所述第一预加载缓存节点;
当所述镜像列表中设置所述节点选择标签和所述节点列表,则将所述镜像数据缓存至与所述节点选择标签匹配且所述节点列表中记录的待缓存节点以作为所述第一预加载缓存节点;
对应地,所述建立数据集列表和所述第二预加载缓存节点与所述建立镜像列表和所述第一预加载缓存节点方式相同。
优选地,所述缓存信息通过所述目标节点根据所述当前作业运行请求方式得到,所述获取当前作业的镜像数据和数据集的缓存信息,包括:
判断所述目标节点对应的所述节点缓存实例是否存在变化;
若存在,则将所述节点缓存实例的变化数据作为所述缓存数据;
接收所述目标节点的节点请求以获取所述缓存数据。
优选地,所述根据所述缓存信息和对应的节点缓存实例确定对应的事件队列,包括:
根据所述节点缓存实例确定对应的事件处理类型,其中所述事件处理类型包括节点缓存事件处理类型、节点状态事件处理类型和节点垃圾清理事件类型;
根据各事件处理类型入列对应的所述事件队列;
对应地,根据所述节点缓存实例确定所述节点缓存事件处理类型,包括:
根据所述节点缓存实例生成节点缓存事件并确定所述节点缓存事件的事件类型,其中所述事件类型包括创建类型、更新类型和重试类型,当所述缓存信息通过所述资源配置预加载方式得到时,所述节点缓存实例通过所述缓存信息得到。
优选地,根据各所述事件队列和所述缓存信息更新所述目标节点的所述节点缓存任务状态信息和执行对应的所述缓存任务队列操作,包括:
所述根据各所述事件队列和所述缓存信息更新所述目标节点的所述节点缓存任务状态信息,包括:
创建节点缓存任务队列;
根据所述事件队列的所述事件处理类型更新所述节点缓存任务队列内的所述节点缓存任务状态信息;
对应地,根据所述事件队列和所述缓存信息执行对应的所述缓存任务队列操作,包括:
根据所述事件队列的所述事件处理类型和所述缓存信息确定对应的任务类型,其中所述任务类型包括节点数据集下载类型、节点数据集删除类型、节点数据集重新下载类型、节点镜像下载类型、节点镜像删除类型或节点镜像重新下载类型;
根据各任务类型确定对应的程序组件;
根据各程序组件执行对应的所述缓存任务队列的操作。
优选地,所述节点缓存实例包含节点快照机制,还包括:
当所述分布式平台的网络异常时,通过所述节点快照机制将所述缓存信息保留以便于在所述分布式平台网络正常时完成所述缓存信息的加载。
为解决上述技术问题,本发明还提供一种分布式平台的数据加载装置,包括:
获取模块,用于获取当前作业的镜像数据和数据集的缓存信息,其中所述缓存信息通过资源配置预加载方式或目标节点根据所述当前作业运行请求方式得到的信息;
确定模块,用于根据所述缓存信息和对应的节点缓存实例确定对应的事件队列;
更新执行模块,用于根据各事件队列和所述缓存信息更新所述目标节点的节点缓存任务状态信息和执行对应的缓存任务队列操作以便于将所述缓存信息加载至所述目标节点,其中所述缓存任务队列包括镜像缓存任务队列和数据集缓存任务队列。
为解决上述技术问题,本发明还提供一种分布式平台的数据加载装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的分布式平台的数据加载方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的分布式平台的数据加载方法的步骤。
本发明提供的一种分布式平台的数据加载方法,包括:获取当前作业的镜像数据和数据集的缓存信息,其中缓存信息通过资源配置预加载方式或目标节点根据当前作业运行请求方式得到的信息;根据缓存信息和对应的节点缓存实例确定对应的事件队列;根据各事件队列和缓存信息更新目标节点的节点缓存任务状态信息和执行对应的缓存任务队列操作以便于将缓存信息加载至目标节点,其中缓存任务队列包括镜像缓存任务队列和数据集缓存任务队列。该方法在预加载方式下无需进行请求,直接加载至目标节点,减少与目标节点的交互过程,同时,将缓存信息直接加载至目标节点,无需中转站的设置,避免现有的通过中心仓库或者本地映像仓库的分发导致出现的延迟问题。通过双队列(镜像缓存任务队列和数据集缓存任务队列)的设计,实现并发操作处理。结合分布式平台的海量数据,通过实时更新节点缓存任务状态信息避免数据报错,以提高平台作业运行效率。
另外,本发明还提供了一种分布式平台的数据加载装置及介质,具有如上述分布式平台的数据加载方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式平台的数据加载方法的流程图;
图2为本发明实施例提供的一种基于分布式云平台的镜像和数据集加载示意图;
图3为本发明实施例提供的一种节点缓存的应用示意图;
图4为本发明实施例提供的一种分布式平台的数据加载装置的结构图;
图5为本发明实施例提供的另一种分布式平台的数据加载装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种分布式平台的数据加载方法、装置及介质,避免现有的通过中心仓库或者本地映像仓库的分发导致出现的延迟问题。通过双队列(镜像缓存任务队列和数据集缓存任务队列)的设计,实现并发操作处理。结合分布式平台的海量数据,通过实时更新节点缓存任务状态信息避免数据报错,以提高平台作业运行效率。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
需要说明的是,现有的数据加载方式,仅通过普通业务软件的缓存数据常规处理流程,先根据用户客户端所在区域构造缓存请求至相应的服务端,服务端进行数据预加载,然后用户再次请求服务端加载所匹配的数据。该方法涉及到客户端和服务端之间的多次交互,流程处理较简单,不适用于云平台分布式系统(人工智能平台中常用的镜像和数据集类型的数据)。同时分布式云平台集群节点规模较大,从百十个节点到上千个节点的规模,若通过多节点的业务按照上述流程处理以加载数据,则会导致数据加载过程较为漫长,以及加载过程中数据内容错误反而大大降低平台运行效率。
另外一种现有的数据加载方式通过选择路径缓存节点以进行读取镜像数据,每次拉取镜像数据时都要进行路径判断。现有加载数据方式仅考虑业务层的数据要求,设计最优选择算法,使用最优缓存节点进行数据分发下载。通过中心仓库的转发,存在明显的延迟以影响平台作业资源利用率。本发明实施例提供的分布式平台的数据加载方法可以解决基于云平台集群系统加载镜像数据和数据集的延迟问题,以保障平台业务运行稳定性和持续性。
图1为本发明实施例提供的一种分布式平台的数据加载方法的流程图,如图1所示,该方法包括:
S11:获取当前作业的镜像数据和数据集的缓存信息,其中缓存信息通过资源配置预加载方式或目标节点根据当前作业运行请求方式得到的信息;
S12:根据缓存信息和对应的节点缓存实例确定对应的事件队列;
S13:根据各事件队列和缓存信息更新目标节点的节点缓存任务状态信息和执行对应的缓存任务队列操作以便于将缓存信息加载至目标节点,其中缓存任务队列包括镜像缓存任务队列和数据集缓存任务队列。
具体地,获取当前作业的镜像数据和数据集的缓存信息,可以理解的是,镜像数据和数据集的缓存信息可以通过两种方式获取,一种是通过资源配置预加载方式获取,另一种是目标节点根据当前作业运行的业务请求方式获取。在通过资源配置预加载方式获取时,其目标节点处无任何镜像数据和数据集,处于控制器组件刚启动的状态。通过当前作业运行的业务请求方式是在控制器组件运行期间,对应的节点缓存实例有变化,例如预加载方式的缓存信息已经下载完成,或者节点作业所需的镜像数据和数据集添加至缓存实例的动态缓存中等。无论何种方式,均可以获取当前作业的镜像数据和数据集的缓存数据。
作为一种实施例,缓存信息通过资源配置预加载方式得到,获取当前作业的镜像数据和数据集的缓存信息,包括:
根据各资源配置信息和当前作业获取对应的镜像数据和数据集以作为缓存信息;
对应地,各资源配置信息的获取通过资源配置预加载方式得到,具体包括:
建立镜像列表和第一预加载缓存节点;
获取镜像数据的第一拉取加解密配置信息;
将镜像列表、第一预加载缓存节点和第一拉取加解密配置信息作为镜像数据的资源配置信息;
建立数据集列表和第二预加载缓存节点;
获取数据集的第二拉取加解密配置信息;
将镜像列表、第二预加载缓存节点和第二拉取加解密配置信息作为数据集的资源配置信息。
具体地,图2为本发明实施例提供的一种基于分布式云平台的镜像和数据集加载示意图,如图2所示,在集群节点缓存资源配置装置内,主要进行集群节点可预先加载的镜像数据和数据集的配置过程。节点缓存控制器可以根据此配置,批量进行相应节点缓存下载。如果平台作业所需的镜像数据和数据集都在此配置中,则平台作业通过预加载方式在完成调度后即可进行运行业务。缓存控制器启动时会先预加载缓存数据,消除作业等待镜像数据和数据集下载的延迟。需要说明的是,集群节点缓存资源配置不是简单的配置文件,而是如存放在主机的文本文件,持久化到分布式系统的资源存储中,可以联动生成某一节点上的节点缓存实例。对于分布式平台来说,基于运行及时性较高的作业,可以在此配置作业所需的镜像数据和数据集。
提供给节点缓存控制器需要预加载的节点缓存配置信息,若平台作业要去快速启动运行业务,可以将其所需加载的镜像数据和数据集作为缓存信息加入至资源配置中。本实施例提供的资源配置能够灵活配置各节点所需的预加载缓存信息以便于生成缓存实例。
具体地,根据各资源配置信息和当前作业的运行业务获取对应的镜像数据和数据集以此作为缓存数据。对于资源配置信息的获取需要通过预加载方式得到,先建立镜像列表和第一预加载缓存节点。值得注意的是,第一预加载缓存节点并不是代表节点的个数,而是归为节点的类别,均作为第一预加载缓存节点出现。获取镜像数据的第一拉取加解密配置信息,将镜像列表、第一预加载缓存节点和第一拉取加解密配置信息作为镜像数据的资源配置信息。关于数据集的资源配置信息的获取方式和镜像数据对应的资源配置信息的获取方式相同,具体可参考镜像数据对应的资源配置信息实施例,在此不再赘述。
对应地,作为一种实施例,建立镜像列表和第一预加载缓存节点,包括:
当镜像列表中未设置节点选择标签和节点列表,则将镜像数据预加载至当前集群的所有节点以作为第一预加载缓存节点;
当镜像列表中设置节点选择标签和节点列表,则将镜像数据缓存至与节点选择标签匹配且节点列表中记录的待缓存节点以作为第一预加载缓存节点;
对应地,建立数据集列表和第二预加载缓存节点与建立镜像列表和第一预加载缓存节点方式相同。
具体地,当镜像列表中未设置节点选择标签nodeSelector和节点列表nodenames,将镜像数据预加载至当前集群的所有节点以作为第一预加载缓存节点。若设置节点选择标签nodeSelector和节点列表nodenames,则镜像数据缓存至与节点选择标签匹配且节点列表中记录的待缓存节点以作为第一预加载缓存节点。对于建立数据集列表和第二预加载缓存节点的建立方式与上述镜像列表和第一预加载缓存节点的建立方式相同。
例如:集群节点缓存资源配置NodeCacheResource设计如下:
另一种获取方式的优选实施例,缓存信息通过目标节点根据当前作业运行请求方式得到,获取当前作业的镜像数据和数据集的缓存信息,包括:
判断目标节点对应的节点缓存实例是否存在变化;
若存在,则将节点缓存实例的变化数据作为缓存数据;
接收目标节点的节点请求以获取缓存数据。
具体地,根据目标节点对应的节点缓存实例中是否存在变化,如果变化,则说明通过节点缓存实例维护节点缓存信息和状态,每一个节点对应一个节点缓存实例,控制器会先根据缓存配置生成预加载缓存内容,根据运行期间的缓存状态更新其动态内容。将节点缓存实例的变化数据作为缓存数据,接收目标节点的节点请求以此获取缓存数据。节点缓存实例内的缓存信息和上述实施例中资源配置的配置信息的获取方式相同,可参考上述的获取方式。
例如:节点缓存实例nodeCacheInstance设计如下:
在步骤S11中得到缓存信息后,根据缓存信息和对应的节点缓存施例确定对应的事件队列。图3为本发明实施例提供的一种节点缓存的应用示意图,如图3所述,上述实施例中对应的两种获取方式为通过节点缓存资源的资源配置预加载方式和目标节点通过对应的节点缓存实例事件确定到对应的事件队列中。在第一种获取方式中通过事件队列生成节点缓存运行实例,第二种获取方式通过目标节点中对应的节点缓存运行实例的配置信息变化加入对应的事件队列。
根据各事件队列和缓存信息以更新节点缓存任务状态信息和执行对应的缓存任务队列操作。缓存任务队列为双队列(镜像缓存任务队列和数据集缓存任务队列),可以提高节点缓存控制器处理缓存事件和任务的响应速度。对于任务队列的处理,可以同时进行镜像和数据集缓存任务,如:某个节点上可以同时进行镜像数据和数据集下载以提高缓存执行效率。对于节点上运行的nodeCacheJob,可以同时运行不同类型的具体Job进程。如:同时进行镜像A的下载和镜像B的删除。对于节点上运行的具体nodeCacheJob类型任务,可以根据nodeCacheJob的性能配置,进行多镜像和多数据集的并发操作处理。如:节点镜像下载imagePullJob,可以同时进行多个镜像下载操作以提升下载效率。当平台作业启动时,会先根据其所需镜像和数据集查询所在节点缓存实例,如果数据都已预加载,则立即运行;如果数据并未在节点缓存实例,则在实例中添加要下载的数据进行缓存实例更新。此处理不再是传统的客户端访问服务端应用程序编程接口(Application Programming Interface,API)方式,能够自维护更新缓存信息状态,特别对于网络条件不太稳定可靠的边缘节点,此方式能够更好的适应处理。
本发明实施例提供的一种分布式平台的数据加载方法,包括:获取当前作业的镜像数据和数据集的缓存信息,其中缓存信息通过资源配置预加载方式或目标节点根据当前作业运行请求方式得到的信息;根据缓存信息和对应的节点缓存实例确定对应的事件队列;根据各事件队列和缓存信息更新目标节点的节点缓存任务状态信息和执行对应的缓存任务队列操作以便于将缓存信息加载至目标节点,其中缓存任务队列包括镜像缓存任务队列和数据集缓存任务队列。该方法在预加载方式下无需进行请求,直接加载至目标节点,减少与目标节点的交互过程,同时,将缓存信息直接加载至目标节点,无需中转站的设置,避免现有的通过中心仓库或者本地映像仓库的分发导致出现的延迟问题。通过双队列(镜像缓存任务队列和数据集缓存任务队列)的设计,实现并发操作处理。结合分布式平台的海量数据,通过实时更新节点缓存任务状态信息避免数据报错,以提高平台作业运行效率。
在上述实施例的基础上,步骤S12中的根据缓存信息和对应的节点缓存实例确定对应的事件队列,包括:
根据节点缓存实例确定对应的事件处理类型,其中事件处理类型包括节点缓存事件处理类型、节点状态事件处理类型和节点垃圾清理事件类型;
根据各事件处理类型入列对应的事件队列;
对应地,根据节点缓存实例确定节点缓存事件处理类型,包括:
根据节点缓存实例生成节点缓存事件并确定节点缓存事件的事件类型,其中事件类型包括创建类型、更新类型和重试类型,当缓存信息通过资源配置预加载方式得到时,节点缓存实例通过缓存信息得到。
具体地,根据节点缓存施例确定其事件处理类型,根据节点缓存实例的变化产生事件进入事件队列。事件处理类型包括节点缓存事件处理类型、节点状态事件处理类型和节点垃圾清理事件类型。根据各事件处理类型入列对应的事件队列。
如图3所示,节点缓存事件处理类型包括创建类型、更新类型和重试类型,节点缓存事件处理,由控制器中的CacheWorker来完成。主要应用以下场景:
一、当控制器组件启动时,先根据缓存资源配置,解析出集群节点预加载信息,生成节点对应的缓存实例,此时缓存实例有该节点预加载缓存信息。并产生节点node1缓存实例,同时,生成节点缓存事件,事件类型为创建类型(create),入列事件队列。CacheWorker会根据事件关联的缓存实例,进行节点缓存任务创建,如node1节点缓存任务、node2节点缓存任务等等,并将缓存任务入列到缓存任务队列中。准备开始集群节点缓存预加载。
二、在控制器组件运行期间,如果节点缓存实例有变化,比如:预加载的缓存已经下载完成,或者节点作业所需镜像和数据集添加到缓存实例的动态缓存中等。生成节点缓存事件,事件类型为更新类型(update),入列事件队列。CacheWorker会根据事件关联的缓存实例,进行节点缓存任务状态更新或者缓存下载任务创建。
三、在控制器组件运行期间,如果节点缓存实例有异常变化,比如:某节点的某个镜像预加载缓存失败,需要删除重试,生成节点缓存事件,事件类型为重试类型(repull),进行节点缓存失败项重新下载。
对应地节点状态事件处理类型,具体包括监控节点和缓存将抗状态,监控节点和缓存健康状态由MonitorWroker实现,MonitorWroker做节点链路的业务健康检查,心跳检查,节点镜像空间和数据空间指标监测,节点镜像和数据集的作业使用情况。并触发缓存更新或缓存删除任务。
节点垃圾清理事件类型具体为节点缓存垃圾清理,节点缓存垃圾清理由RefreshWorker实现,根据MonitorWroker的监控指标,如:节点缓存剩余空间不足时,进行节点缓存垃圾清扫。并触发缓存更新或缓存删除任务。发出清扫操作之前,需要确保这些待清扫镜像和数据集没有被节点作业使用。如果发现缺少一些预加载的镜像和数据集(这些缓存被删除或添加了新节点等),就会触发缓存更新任务,通知重新下载这些节点缓存。
本发明实施例提供的事件队列的确定过程,实现控制集群节点缓存的下载、删除、更新等流程;维护更新集群节点缓存状态;监控节点和缓存健康状态同时实现节点缓存垃圾清理以节省节点资源。
在上述实施例的基础上,步骤S13中的根据各事件队列和缓存信息更新目标节点的节点缓存任务状态信息和执行对应的缓存任务队列操作,包括:
根据各事件队列和缓存信息更新目标节点的节点缓存任务状态信息,包括:
创建节点缓存任务队列;
根据事件队列的事件处理类型更新节点缓存任务队列内的节点缓存任务状态信息;
对应地,根据事件队列和缓存信息执行对应的缓存任务队列操作,包括:
根据事件队列的事件处理类型和缓存信息确定对应的任务类型,其中任务类型包括节点数据集下载类型、节点数据集删除类型、节点数据集重新下载类型、节点镜像下载类型、节点镜像删除类型或节点镜像重新下载类型;
根据各任务类型确定对应的程序组件;
根据各程序组件执行对应的缓存任务队列的操作。
具体地,根据各事件队列和缓存信息更新节点缓存任务状态信息,先创建节点缓存任务队列,根据上述实施例的事件处理类型更新节点缓存任务状态信息。
在根据事件队列和缓存信息执行对应的缓存任务队列操作中先确定任务类型,根据各任务类型确定对应的程序组件,根据各程序组件执行缓存任务队列操作。如图3所示,datasetManager缓存管理器,用于执行节点数据集缓存操作。根据任务类型,具体操作有:
节点数据集下载:datasetPullJob
节点数据集删除:datasetDeleteJob
节点数据集重新下载:datasetRePullJob
imageManager缓存管理器,用于执行节点数据集缓存操作。根据任务类型,具体操作有:
节点镜像下载:imagePullJob
节点镜像删除:imageDeleteJob
节点镜像重新下载:imageRePullJob
nodeCacheJob是执行节点缓存的程序组件,具体的缓存任务程序有:datasetPullJo,datasetDeleteJob,datasetRePullJob,imagePullJob,imageDeleteJob,imageRePullJob。这些nodeCacheJob不是传统的常驻节点运行的程序组件,而是根据实际的缓存任务需要,由datasetManager和imageManager触发创建,并运行在缓存任务指定的节点上。一旦缓存任务结束完成,节点运行的nodeCacheJob就会退出,不再占用云平台节点系统资源。另外,nodeCacheJob在缓存过程中,还要同步更新节点缓存实例信息,比如:缓存信息列表,缓存大小,缓存结果和状态等。
节点缓存任务组件为运行在节点上的程序组件,执行节点镜像和数据集缓存的具体操作。能根据该节点的缓存资源实例和下载命令配置,进行节点缓存的下载或删除操作。这里的缓存任务组件,不是传统的采用节点常驻程序组件一直运行。而是由节点缓存控制器远程调用运行和终止,避免了传统方式组件一直占用云平台资源的缺点。
另外,在图3中的节点缓存控制器装置及其子模块具体如下:
节点缓存控制器,控制运行集群节点的镜像和数据集缓存流程,收集和处理跟作业业务缓存状态和生命周期相关的动态数据。
镜像管理器,加载镜像拉取配置信息,节点预加载缓存信息,节点动态缓存信息,镜像缓存下载流程控制等。
数据集管理器,加载数据集下载配置信息,节点预加载缓存信息,节点动态缓存信息,数据集缓存下载流程控制等。
清理管理器,标记节点已缓存的镜像和数据集是否为垃圾待清理,如:长时间未使用的非预加载的镜像和数据集,并进行清扫,以便释放节点存储空间。
监控管理器,进行集群节点健康监测和缓存进度状态探测,便于镜像管理器和数据集管理器能够在节点异常场景下,处理节点缓存下载更新。
作为一种实施例,节点缓存实例包含节点快照机制,还包括:
当分布式平台的网络异常时,通过节点快照机制将缓存信息保留以便于在分布式平台网络正常时完成缓存信息的加载。
具体地,节点缓存资源配置和节点缓存实例都是持久化到分布式系统中,为节点访问资源提供可靠服务,且节点缓存控制能够对这些资源配置进行在线更新和同步。比如:平台预置的镜像和数据集有更新,只需更改节点缓存资源配置,就能立即通知到节点缓存实例的同步更新,然后触发控制器中的相应子模块进行联动处理。同时对节点缓存实例增加了节点快照机制,当正在平台网络发生异常时,边缘节点无法访问集群中心节点(masternode)或异常重启时,仍能感知节点当前缓存信息,满足节点作业运行的数据需求。
本发明实施例提供的节点缓存任务状态信息的更新和缓存任务队列的操作执行,能够保证平台组件和用户作业能够可靠访问节点缓存信息和即时快速感知缓存信息变化。
上述详细描述了分布式平台的数据加载方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的分布式平台的数据加载装置,图4为本发明实施例提供的一种分布式平台的数据加载装置的结构图。如图4所示,分布式平台的数据加载装置包括:
获取模块11,用于获取当前作业的镜像数据和数据集的缓存信息,其中缓存信息通过资源配置预加载方式或目标节点根据当前作业运行请求方式得到的信息;
确定模块12,用于根据缓存信息和对应的节点缓存实例确定对应的事件队列;
更新执行模块13,用于根据各事件队列和缓存信息更新目标节点的节点缓存任务状态信息和执行对应的缓存任务队列操作以便于将缓存信息加载至目标节点,其中缓存任务队列包括镜像缓存任务队列和数据集缓存任务队列。
由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
对于本发明提供的一种分布式平台的数据加载装置的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述分布式平台的数据加载方法相同的有益效果。
图5为本发明实施例提供的另一种分布式平台的数据加载装置的结构图,如图5所示,该装置包括:
存储器21,用于存储计算机程序;
处理器22,用于执行计算机程序时实现分布式平台的数据加载方法的步骤。
本实施例提供的分布式平台的数据加载装置可以包括但不限于平板电脑、笔记本电脑或者台式电脑等。
其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序211,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的分布式平台的数据加载方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统212和数据213等,存储方式可以是短暂存储或者永久存储。其中,操作系统212可以包括Windows、Unix、Linux等。数据213可以包括但不限于分布式平台的数据加载方法所涉及到的数据等等。
在一些实施例中,分布式平台的数据加载装置还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
领域技术人员可以理解,图5中示出的结构并不构成对分布式平台的数据加载装置的限定,可以包括比图示更多或更少的组件。
处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的分布式平台的数据加载方法。
对于本发明提供的一种分布式平台的数据加载装置的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述分布式平台的数据加载方法相同的有益效果。
进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述分布式平台的数据加载方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述分布式平台的数据加载方法相同的有益效果。
以上对本发明所提供的一种分布式平台的数据加载方法、分布式平台的数据加载装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种分布式平台的数据加载方法,其特征在于,包括:
获取当前作业的镜像数据和数据集的缓存信息,其中所述缓存信息通过资源配置预加载方式或目标节点根据所述当前作业运行请求方式得到的信息;
根据所述缓存信息和对应的节点缓存实例确定对应的事件队列;
根据各事件队列和所述缓存信息更新所述目标节点的节点缓存任务状态信息和执行对应的缓存任务队列操作以便于将所述缓存信息加载至所述目标节点,其中所述缓存任务队列包括镜像缓存任务队列和数据集缓存任务队列。
2.根据权利要求1所述的分布式平台的数据加载方法,其特征在于,所述缓存信息通过所述资源配置预加载方式得到,所述获取当前作业的镜像数据和数据集的缓存信息,包括:
根据各资源配置信息和所述当前作业获取对应的所述镜像数据和所述数据集以作为所述缓存信息;
对应地,各所述资源配置信息的获取通过所述资源配置预加载方式得到,具体包括:
建立镜像列表和第一预加载缓存节点;
获取所述镜像数据的第一拉取加解密配置信息;
将所述镜像列表、所述第一预加载缓存节点和所述第一拉取加解密配置信息作为所述镜像数据的资源配置信息;
建立数据集列表和第二预加载缓存节点;
获取所述数据集的第二拉取加解密配置信息;
将所述镜像列表、所述第二预加载缓存节点和所述第二拉取加解密配置信息作为所述数据集的资源配置信息。
3.根据权利要求2所述的分布式平台的数据加载方法,其特征在于,所述建立镜像列表和第一预加载缓存节点,包括:
当所述镜像列表中未设置节点选择标签和节点列表,则将所述镜像数据预加载至当前集群的所有节点以作为所述第一预加载缓存节点;
当所述镜像列表中设置所述节点选择标签和所述节点列表,则将所述镜像数据缓存至与所述节点选择标签匹配且所述节点列表中记录的待缓存节点以作为所述第一预加载缓存节点;
对应地,所述建立数据集列表和所述第二预加载缓存节点与所述建立镜像列表和所述第一预加载缓存节点方式相同。
4.根据权利要求1所述的分布式平台的数据加载方法,其特征在于,所述缓存信息通过所述目标节点根据所述当前作业运行请求方式得到,所述获取当前作业的镜像数据和数据集的缓存信息,包括:
判断所述目标节点对应的所述节点缓存实例是否存在变化;
若存在,则将所述节点缓存实例的变化数据作为所述缓存数据;
接收所述目标节点的节点请求以获取所述缓存数据。
5.根据权利要求1所述的分布式平台的数据加载方法,其特征在于,所述根据所述缓存信息和对应的节点缓存实例确定对应的事件队列,包括:
根据所述节点缓存实例确定对应的事件处理类型,其中所述事件处理类型包括节点缓存事件处理类型、节点状态事件处理类型和节点垃圾清理事件类型;
根据各事件处理类型入列对应的所述事件队列;
对应地,根据所述节点缓存实例确定所述节点缓存事件处理类型,包括:
根据所述节点缓存实例生成节点缓存事件并确定所述节点缓存事件的事件类型,其中所述事件类型包括创建类型、更新类型和重试类型,当所述缓存信息通过所述资源配置预加载方式得到时,所述节点缓存实例通过所述缓存信息得到。
6.根据权利5所述的分布式平台的数据加载方法,其特征在于,根据各所述事件队列和所述缓存信息更新所述目标节点的所述节点缓存任务状态信息和执行对应的所述缓存任务队列操作,包括:
所述根据各所述事件队列和所述缓存信息更新所述目标节点的所述节点缓存任务状态信息,包括:
创建节点缓存任务队列;
根据所述事件队列的所述事件处理类型更新所述节点缓存任务队列内的所述节点缓存任务状态信息;
对应地,根据所述事件队列和所述缓存信息执行对应的所述缓存任务队列操作,包括:
根据所述事件队列的所述事件处理类型和所述缓存信息确定对应的任务类型,其中所述任务类型包括节点数据集下载类型、节点数据集删除类型、节点数据集重新下载类型、节点镜像下载类型、节点镜像删除类型或节点镜像重新下载类型;
根据各任务类型确定对应的程序组件;
根据各程序组件执行对应的所述缓存任务队列的操作。
7.根据权利要求1至6任意一项所述的分布式平台的数据加载方法,其特征在于,所述节点缓存实例包含节点快照机制,还包括:
当所述分布式平台的网络异常时,通过所述节点快照机制将所述缓存信息保留以便于在所述分布式平台网络正常时完成所述缓存信息的加载。
8.一种分布式平台的数据加载装置,其特征在于,包括:
获取模块,用于获取当前作业的镜像数据和数据集的缓存信息,其中所述缓存信息通过资源配置预加载方式或目标节点根据所述当前作业运行请求方式得到的信息;
确定模块,用于根据所述缓存信息和对应的节点缓存实例确定对应的事件队列;
更新执行模块,用于根据各事件队列和所述缓存信息更新所述目标节点的节点缓存任务状态信息和执行对应的缓存任务队列操作以便于将所述缓存信息加载至所述目标节点,其中所述缓存任务队列包括镜像缓存任务队列和数据集缓存任务队列。
9.一种分布式平台的数据加载装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的分布式平台的数据加载方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的分布式平台的数据加载方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310335184.6A CN116303513A (zh) | 2023-03-31 | 2023-03-31 | 一种分布式平台的数据加载方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310335184.6A CN116303513A (zh) | 2023-03-31 | 2023-03-31 | 一种分布式平台的数据加载方法、装置及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116303513A true CN116303513A (zh) | 2023-06-23 |
Family
ID=86779760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310335184.6A Pending CN116303513A (zh) | 2023-03-31 | 2023-03-31 | 一种分布式平台的数据加载方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116303513A (zh) |
-
2023
- 2023-03-31 CN CN202310335184.6A patent/CN116303513A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3428811B1 (en) | Database interface agent for a tenant-based upgrade system | |
US9407714B2 (en) | Data refreshing of applications | |
US9942353B2 (en) | Management of connections within a messaging environment based on the statistical analysis of server responsiveness | |
US10936423B2 (en) | Enhanced application write performance | |
US20130091376A1 (en) | Self-repairing database system | |
CN105765534A (zh) | 虚拟计算系统和方法 | |
US10789111B2 (en) | Message oriented middleware with integrated rules engine | |
US10229010B2 (en) | Methods for preserving state across a failure and devices thereof | |
CN113312072A (zh) | 配置文件更新方法及装置、电子设备和介质 | |
US9805038B2 (en) | Efficient conflict resolution among stateless processes | |
CN111782341A (zh) | 用于管理集群的方法和装置 | |
US11595493B2 (en) | System and method for namespace masking in an integration flow | |
CN113760638A (zh) | 一种基于kubernetes集群的日志服务方法和装置 | |
CN116208487A (zh) | 区块链系统中的共识算法升级方法、装置、设备及介质 | |
CN113360689B (zh) | 图像检索系统、方法、相关装置及计算机程序产品 | |
US20220067065A1 (en) | Providing instant and distributed access to a source blob via copy-on-read blobs and link blobs | |
CN116303513A (zh) | 一种分布式平台的数据加载方法、装置及介质 | |
US11675931B2 (en) | Creating vendor-neutral data protection operations for vendors' application resources | |
CN109005059A (zh) | 一种实现Redis自动备份的系统及方法 | |
CN111858234A (zh) | 一种任务执行方法、装置、设备、介质 | |
CN109101253A (zh) | 云计算系统中主机的管理方法和装置 | |
CN111149118A (zh) | 用于智能工作空间管理的系统和方法 | |
US20240061725A1 (en) | Regeneration audit log | |
US20230409600A1 (en) | Synchronous processing systems and methods with in-memory database | |
US20240012669A1 (en) | Recovery of management appliance after upgrade failure without creating data inconsistencies |
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 |