System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及数据处理,尤其涉及一种多进程的数据处理方法、装置、计算机设备、计算机可读存储介质。
技术介绍
1、在直播场景中,cdn可以通过多种实时传输协议(如基于长连接的rtmp、flv,或基于短连接的hls)将直播文件分发给用户。其中,基于短连接的直播协议可能会导致用户触发回源的qps显著增加。为了更好地利用资源,cdn节点可以采用多进程模式。
2、然而,多进程模式会涉及进程间同步、资源竞争等问题。引入锁机制虽然可以缓解前述问题,但又会导致锁的激烈竞争。且直播文件数据的更新频繁,进一步加剧了锁的竞争现象,从而导致cpu利用率下降、用户也难以及时获取到最新的直播文件数据、用户体验差。
3、需要说明的是,上述内容并不必然是现有技术,也不用于限制本申请的专利保护范围。
技术实现思路
1、本申请实施例提供一种多进程的数据处理方法、装置、计算机设备、计算机可读存储介质,以解决或缓解上面提出的一项或更多项技术问题。
2、本申请实施例的一个方面提供了一种多进程的数据处理方法,用于cdn节点,所述方法包括:
3、响应于针对目标文件的数据获取请求,从多个进程中确定目标进程;
4、通过所述目标进程,从cdn节点本地查找目标文件;
5、在本地未查找到目标文件或目标文件已过期的情况下,通过所述目标进程创建临时文件;
6、从源服务器中获取目标文件的数据,并写入到临时文件中;
7、在所述临时文件写入完成的情况
8、可选地,每个进程关联有一个文件控制队列,所述文件控制队列被配置为管理和更新其内的多个文件信息,所述更新包括添加和删除;所述多进程的数据处理方法还包括:
9、在得到本地目标文件的情况下,获取所述本地目标文件的文件信息;
10、将所述本地目标文件的文件信息添加到所述目标进程关联的文件控制队列中;
11、如果一个文件信息被文件控制队列删除,则将该被删除的文件信息对应的文件删除。
12、可选地,文件信息包括文件名和文件描述信息,文件控制队列包括链表和哈希表;其中,链表的节点用于存储文件描述信息,哈希表用于建立文件名与存储有文件描述信息的链表节点之间的映射关系。
13、可选地,所述本地目标文件的文件信息包括目标文件名和目标文件描述信息;对应地,将所述本地目标文件的文件信息添加到所述目标进程关联的文件控制队列中,包括:
14、将所述目标文件名和哈希表进行匹配;
15、在所述哈希表存在所述目标文件名的情况下:通过所述哈希表确定对应的链表节点;根据所述目标文件描述信息,更新所述对应的链表节点;以及在所述文件控制队列为最近最少使用队列的情况下,将更新后的链表节点移至链首;
16、在所述哈希表不存在所述目标文件名的情况下:将所述目标文件描述信息作为新节点插入所述链表,并在所述哈希表中建立所述目标文件名与链表新节点之间的映射关系。
17、可选地,所述文件控制队列为先入先出队列;对应地,如果一个文件信息被文件控制队列删除,则将该被删除的文件信息对应的文件删除,包括:
18、获取哈希表的长度;
19、在所述哈希表长度超过预设长度的情况下,删除链首节点,以及所述链首节点对应的文件;
20、在所述哈希表中删除所述链首节点对应的映射关系。
21、可选地,所述文件控制队列为最近最少使用队列;对应地,如果一个文件信息被文件控制队列删除,则将该被删除的文件信息对应的文件删除,包括:
22、获取哈希表的长度;
23、在所述哈希表的长度超过预设长度的情况下,删除链尾节点,以及所述链尾节点对应的文件;
24、在所述哈希表中删除所述链尾节点对应的映射关系。
25、可选地,所述预设长度通过以下操作确定:
26、监测所述cdn节点的可用资源;
27、根据所述可用资源,动态确定所述预设长度。
28、可选地,所述多进程的数据处理方法还包括:
29、在本地查找到目标文件且目标文件未过期的情况下,从所述cdn节点本地获取所述目标文件;
30、根据所述数据获取请求,解析所述目标文件以获取目标数据;
31、将所述目标数据分发至请求端。
32、可选地,在cdn节点本地查找目标文件,包括:
33、在查找到目标文件的情况下,获取查找到的目标文件所关联的缓存控制信息;
34、解析所述缓存控制信息,以获取过期时间和内容验证数据;
35、根据所述过期时间和所述内容验证数据,确定所查找到的目标文件是否过期。
36、本申请实施例的另一个方面提供了一种多进程的数据处理装置,用于cdn节点,所述装置包括:
37、确定模块,用于响应于针对目标文件的数据获取请求,从多个进程中确定目标进程;
38、查找模块,用于通过所述目标进程,从cdn节点本地查找目标文件;
39、创建模块,用于在本地未查找到目标文件或目标文件已过期的情况下,通过所述目标进程创建临时文件;
40、写入模块,用于从源服务器中获取目标文件的数据,并写入到临时文件中;
41、重命名模块,用于在所述临时文件写入完成的情况下,为所述临时文件重命名,以得到用于分发的本地目标文件。
42、本申请实施例的另一个方面提供了一种计算机设备,包括:
43、至少一个处理器;及
44、与所述至少一个处理器通信连接的存储器;
45、其中:所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
46、本申请实施例的另一个方面提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如上所述的方法。
47、本申请实施例采用上述技术方案可以包括如下优势:
48、在接收到用户针对目标文件的数据获取请求时,cdn节点可以从多个进程中选择出一个目标进程来处理该请求。目标进程可以优先查看cdn节点本地是否存在目标文件。在目标文件不存在或过期失效的情况下,则触发回源。在回源过程中,目标进程会在本地创建一个独占的临时文件,用于写入从源服务器获取的目标文件数据。在临时文件写入完成(回源完成)的情况下,为临时文件重命名,以得到可用于分发的本地目标文件。可知,本申请实施例可以通过使用临时文件和重命名操作,有效缓解多进程的资源竞争问题:确保每个进程读取操作的原子性,避免读取临时数据的情况,同时防止多个进程对同一临时文件的写入操作,保障数据的正确性。采用无锁设计,消除了多进程的锁竞争问题:在一个进程进行回源时,其它进程也能同时执行回源操作,无本文档来自技高网...
【技术保护点】
1.一种多进程的数据处理方法,其特征在于,用于CDN节点,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,每个进程关联有一个文件控制队列,所述文件控制队列被配置为管理和更新其内的多个文件信息,所述更新包括添加和删除;所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,文件信息包括文件名和文件描述信息,文件控制队列包括链表和哈希表;其中,链表的节点用于存储文件描述信息,哈希表用于建立文件名与存储有文件描述信息的链表节点之间的映射关系。
4.根据权利要求3所述的方法,其特征在于,所述本地目标文件的文件信息包括目标文件名和目标文件描述信息;对应地,将所述本地目标文件的文件信息添加到所述目标进程关联的文件控制队列中,包括:
5.根据权利要求3所述的方法,其特征在于,所述文件控制队列为先入先出队列;对应地,如果一个文件信息被文件控制队列删除,则将该被删除的文件信息对应的文件删除,包括:
6.根据权利要求3所述的方法,其特征在于,所述文件控制队列为最近最少使用队列;对应地,如果一个文件信息被文件控制队列删除,则将该
7.根据权利要求6所述的方法,其特征在于,所述预设长度通过以下操作确定:
8.根据权利要求1~7任意一项所述的方法,其特征在于,所述方法还包括:
9.根据权利要求1~7任意一项所述的方法,其特征在于,在CDN节点本地查找目标文件,包括:
10.一种多进程的数据处理装置,其特征在于,用于CDN节点,所述装置包括:
11.一种计算机设备,其特征在于,包括:
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1至9中任一项所述的方法。
...【技术特征摘要】
1.一种多进程的数据处理方法,其特征在于,用于cdn节点,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,每个进程关联有一个文件控制队列,所述文件控制队列被配置为管理和更新其内的多个文件信息,所述更新包括添加和删除;所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,文件信息包括文件名和文件描述信息,文件控制队列包括链表和哈希表;其中,链表的节点用于存储文件描述信息,哈希表用于建立文件名与存储有文件描述信息的链表节点之间的映射关系。
4.根据权利要求3所述的方法,其特征在于,所述本地目标文件的文件信息包括目标文件名和目标文件描述信息;对应地,将所述本地目标文件的文件信息添加到所述目标进程关联的文件控制队列中,包括:
5.根据权利要求3所述的方法,其特征在于,所述文件控制队列为先入先出队列;对应地,如果一个文件信息被文件控制队列删除,...
【专利技术属性】
技术研发人员:张建锋,蔡尚志,刘勇江,杨成进,
申请(专利权)人:上海幻电信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。