CN113986585B - 报文处理方法、装置、计算机设备和存储介质 - Google Patents
报文处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113986585B CN113986585B CN202111625626.8A CN202111625626A CN113986585B CN 113986585 B CN113986585 B CN 113986585B CN 202111625626 A CN202111625626 A CN 202111625626A CN 113986585 B CN113986585 B CN 113986585B
- Authority
- CN
- China
- Prior art keywords
- control information
- information context
- suspended state
- signaling
- state
- 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
Images
Classifications
-
- 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/544—Buffers; Shared memory; Pipes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种报文处理方法、装置、计算机设备和存储介质,根据信令线程的创建信令在共享内存中创建控制信息上下文,并将控制信息上下文标记为激活状态,在接收到修改信令时,复制控制信息上下文,将复制后的一份控制信息上下文标记为挂起状态,根据修改信令对具有挂起状态的控制信息上下文标记进行修改,之后互换两份控制信息上下文的标记,确保报文的控制信息引用是安全的,不需要小粒度的锁,解决现有技术中采用小粒度的锁来解决并发冲突,所需固定开销会很大的问题。
Description
技术领域
本发明涉及网络数据处理技术领域,尤其涉及一种报文处理方法、装置、计算机设备和存储介质。
背景技术
针对多核或者多线程的数据共享应用场景中,存在数据竞争的问题采用的通用解决办法是小粒度的锁,目前,采用小粒度的锁来解决并发冲突的问题存在如下缺点:1、小粒度的锁,在报文处理时,无论是否存在竞争情况,都需要上锁和解锁,在大流量场景中,这样花在上锁和解锁的固定开销就会很大。2、锁碰撞发生是概率事件,如果发生锁碰撞,则未获取到锁的数据处理核会处于空转等待状态。
发明内容
有鉴于此,本发明提供了一种报文处理方法、装置、计算机设备和存储介质,用于解决现有技术中采用小粒度的锁来解决并发冲突,所需固定开销会很大的问题。
为达上述之一或部分或全部目的或是其他目的,本发明提出一种报文处理方法,所述方法包括:
接收到信令线程的创建信令;
根据所述创建信令在共享内存中创建控制信息上下文,并配置所述控制信息上下文到全局的映射表中,以及标记所述控制信息上下文为激活状态,具有激活状态标记的所述控制信息上下文用于为各数据线程提供访问和查询使用;
接收到信令线程的修改信令;
复制所述控制信息上下文得到另一份所述控制信息上下文,标记复制后的控制信息上下文为挂起状态,具有挂起状态的所述控制信息上下文用于修改控制信息上下文使用;
根据所述修改信令修改具有挂起状态的所述控制信息上下文;
待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
优选地,在所述根据所述创建信令在共享内存中创建控制信息上下文,并配置所述控制信息上下文到全局的映射表中,以及标记所述控制信息上下文为激活状态的步骤之后,或者在所述将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态的步骤之后,包括:
接收到信令线程的删除信令;
去除所述控制信息上下文的映射信息;
在安全时长之后,删除所述控制信息上下文。
优选地,在所述在安全时长之后,删除所述控制信息上下文的步骤中,包括:
获取每个报文在数据线程上的处理时延,得到时延列表;
从所述时延列表中筛选出最大值和最小值,得到最大时延Δt1和最小时延Δt2;
通过第一公式计算出安全时长,其中,第一公式为:t=10(Δt1+Δt2),t是安全时长。
优选地,在所述接收到信令线程的创建信令的步骤之前,包括:
通过网卡接口接收报文;
将所述报文中的所有控制信令映射到同一接收队列,并由所述信令线程处理;
将所述报文中的数据处理分散到不同数据线程处理。
优选地,在所述将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态的步骤之后,包括:
复制具有激活状态的所述控制信息上下文得到另一份所述控制信息上下文;
用最新的控制信息上下文替换具有挂起状态的所述控制信息上下文。
优选地,在所述用最新的控制信息上下文替换具有挂起状态的所述控制信息上下文的步骤之后,包括:
若接收到所述数据线程对所述控制信息上下文访问或者查询失败时,则分析失败的错误代码;
若所述错误代码所代表的含义为所述控制信息上下文的故障引起的错误,则将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
优选地,在所述将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态的步骤之后,包括:
将所述共享内存划分为第一共享区域和第一加密区域;
将具有激活状态的所述控制信息上下文存储在所述第一共享区域,及将具有挂起状态的所述控制信息上下文存储在所述第一加密区域;
再次接收到信令线程的修改信令;
将具有挂起状态的所述控制信息上下文从所述第一加密区域转移到所述第一共享区域;
判断具有激活状态的所述控制信息上下文与具有挂起状态的所述控制信息上下文是否相同;
若相同,则根据所述修改信令修改具有挂起状态的所述控制信息上下文;
待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态;
将具有挂起状态的所述控制信息上下文存储在所述第一加密区域。
本发明还提出一种报文处理装置,所述处理装置包括:
第一接收模块,用于接收到信令线程的创建信令;
第一处理模块,用于根据所述创建信令在共享内存中创建控制信息上下文,并配置所述控制信息上下文到全局的映射表中,以及标记所述控制信息上下文为激活状态,具有激活状态标记的所述控制信息上下文用于为各数据线程提供访问和查询使用;
第二接收模块,用于接收到信令线程的修改信令;
第二处理模块,用于复制所述控制信息上下文得到另一份所述控制信息上下文,标记复制后的控制信息上下文为挂起状态,具有挂起状态的所述控制信息上下文用于修改控制信息上下文使用;
第一修改模块,用于根据所述修改信令修改具有挂起状态的所述控制信息上下文;
第一标记模块,用于待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
本发明还提出一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述的方法的步骤。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实上述任一项所述的方法的步骤。
实施本发明实施例,将具有如下有益效果:
采用了上述报文处理方法、装置、计算机设备和存储介质之后,根据信令线程的创建信令在共享内存中创建控制信息上下文,并将控制信息上下文标记为激活状态,在接收到修改信令时,复制控制信息上下文,将复制后的一份控制信息上下文标记为挂起状态,根据修改信令对具有挂起状态的控制信息上下文标记进行修改,之后互换两份控制信息上下文的标记,确保报文的控制信息引用是安全的,不需要小粒度的锁,解决现有技术中采用小粒度的锁来解决并发冲突,所需固定开销会很大的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中报文处理方法的流程图;
图2为一个实施例中报文处理装置的功能模块图;
图3为一个实施例中计算机设备的结构示意框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明的实施例公开了一种报文处理方法,所述方法包括以下步骤:
步骤S101、接收到信令线程的创建信令。
通过网卡接口接收报文,由信令线程统一处理报文的控制信令,信令线程并将创建信令发送给共享内存。
步骤S102、根据所述创建信令在共享内存中创建控制信息上下文,并配置所述控制信息上下文到全局的映射表中,以及标记所述控制信息上下文为激活状态,具有激活状态标记的所述控制信息上下文用于为各数据线程提供访问和查询使用。
共享内存执行创建信令,在自身存储空间中创建控制信息上下文,进行全局映射,并标记为激活状态,以供各数据线程访问和查询。
步骤S103、接收到信令线程的修改信令。
如果共享内存接收到信令线程的修改信令,那么需要对当前控制信息上下文进行修改。
步骤S104、复制所述控制信息上下文得到另一份所述控制信息上下文,标记复制后的控制信息上下文为挂起状态,具有挂起状态的所述控制信息上下文用于修改控制信息上下文使用。
将之前创建的控制信息上下文进行复制,得到两份控制信息上下文,其中一份之前已标记为激活状态,现对另一份的控制信息上下文进行标记,标记为挂起状态,数据线程是不能访问和查询挂起状态的控制信息上下文,只能访问和查询激活状态的控制信息上下文,而挂起状态的控制信息上下文是用于修改控制信息上下文使用。
步骤S105、根据所述修改信令修改具有挂起状态的所述控制信息上下文。
在得到挂起状态的控制信息上下文之后,再根据修改信令修改控制信息上下文。
步骤S106、待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
在修改完成之后,此时,共享内存中存在两份控制信息上下文,一份是已经修改的控制信息上下文,标记为挂起状态,一份是未修改的控制信息上下文,标记为激活状态,之后,重新互换两份控制信息上下文的标记,即是,已经修改的控制信息上下文由原来挂起状态替换为激活状态,以及未修改的控制信息上下文由原来激活状态替换为挂起状态。
根据信令线程的创建信令在共享内存中创建控制信息上下文,并将控制信息上下文标记为激活状态,在接收到修改信令时,复制控制信息上下文,将复制后的一份控制信息上下文标记为挂起状态,根据修改信令对具有挂起状态的控制信息上下文标记进行修改,之后互换两份控制信息上下文的标记,确保报文的控制信息引用是安全的,不需要小粒度的锁,解决现有技术中采用小粒度的锁来解决并发冲突,所需固定开销会很大的问题。
在本实施例中,在步骤S102之后,或者在步骤S104之后,包括:
接收到信令线程的删除信令;
去除所述控制信息上下文的映射信息;
在安全时长之后,删除所述控制信息上下文。
如果控制信息上下文需要删除,则分两步来完成,第一步是去除控制信息上下文的映射信息,如此,在数据线程中,即使新接收到该控制信息上下文的报文,也会因为查询不到上下文信息而不做处理,而仅仅需要考虑那部分在删除上下文操作处理之前收到而没有处理完成的数据线程的报文的处理即可。
具体地,安全时长可以是用户预设的时长,也可以是根据数据线程的处理能力进行计算得到的时长。
在本实施例中,在所述在安全时长之后,删除所述控制信息上下文的步骤中,包括:
获取每个报文在数据线程上的处理时延,得到时延列表;
从所述时延列表中筛选出最大值和最小值,得到最大时延Δt1和最小时延Δt2;
通过第一公式计算出安全时长,其中,第一公式为:t=10(Δt1+Δt2),t是安全时长。
通过第一公式计算出的安全时长是远大于最大时延,这样就可以安全地删除。
在本实施例中,在步骤S101之前,包括:
通过网卡接口接收报文;
将所述报文中的所有控制信令映射到同一接收队列,并由所述信令线程处理;
将所述报文中的数据处理分散到不同数据线程处理。
对于UPF的控制信令而言,主要是PFCP协议控制信令,其报文封装格式是:IP/UDP/PFCP,知名端口号为8805,如果采用IP五元组的散列算法,在网卡的接收队列中,对于同一对PFCP连接下面的所有控制报文信息都将映射到同一个接收队列中,因此,控制信息会在同一个CPU核中处理,也就是由信令线程处理。
在本实施例中,在步骤S106之后,包括:
复制具有激活状态的所述控制信息上下文得到另一份所述控制信息上下文;
用最新的控制信息上下文替换具有挂起状态的所述控制信息上下文。
复制具有激活状态的控制信息上下文是复制控制信息上下文,不会复制其标记,将复制之后的控制信息上下文替换具有挂起状态的所述控制信息上下文,这样得到一份新的具有挂起状态的控制信息上下文。此时,具有挂起状态的控制信息上下文与具有激活状态的控制信息上下文相一致。
在本实施例中,在所述用最新的控制信息上下文替换具有挂起状态的所述控制信息上下文的步骤之后,包括:
若接收到所述数据线程对所述控制信息上下文访问或者查询失败时,则分析失败的错误代码;
若所述错误代码所代表的含义为所述控制信息上下文的故障引起的错误,则将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
如果由于控制信息上下文自身原因导致不能被数据线程访问或者查询,可能控制信息上下文被破坏,那么将具有挂起状态的控制信息上下文标记为激活状态,以及将具有激活状态的控制信息上下文标记为挂起状态,这样就能解决问题。
在本实施例中,在步骤S106之后,包括:
将所述共享内存划分为第一共享区域和第一加密区域;
将具有激活状态的所述控制信息上下文存储在所述第一共享区域,及将具有挂起状态的所述控制信息上下文存储在所述第一加密区域;
再次接收到信令线程的修改信令;
将具有挂起状态的所述控制信息上下文从所述第一加密区域转移到所述第一共享区域;
判断具有激活状态的所述控制信息上下文与具有挂起状态的所述控制信息上下文是否相同;
若相同,则根据所述修改信令修改具有挂起状态的所述控制信息上下文;
待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态;
将具有挂起状态的所述控制信息上下文存储在所述第一加密区域。
共享内存划分为第一共享区域和第一加密区域,具有激活状态的控制信息上下文存储在第一共享区域,具有挂起状态的控制信息上下文存储在第一加密区域,这样避免具有挂起状态的控制信息上下文被破坏。
如图2所示,本发明还提出一种报文处理装置1,处理装置1包括第一接收模块11、第一处理模块12、第二接收模块13、第二处理模块14、第一修改模块15和第一标记模块16。
第一接收模块11,用于接收到信令线程的创建信令。
通过网卡接口接收报文,由信令线程统一处理报文的控制信令,信令线程并将创建信令发送给共享内存。
第一处理模块12,用于根据所述创建信令在共享内存中创建控制信息上下文,并配置所述控制信息上下文到全局的映射表中,以及标记所述控制信息上下文为激活状态,具有激活状态标记的所述控制信息上下文用于为各数据线程提供访问和查询使用。
共享内存执行创建信令,在自身存储空间中创建控制信息上下文,进行全局映射,并标记为激活状态,以供各数据线程访问和查询。
第二接收模块13,用于接收到信令线程的修改信令。
如果共享内存接收到信令线程的修改信令,那么需要对当前控制信息上下文进行修改。
第二处理模块14,用于复制所述控制信息上下文得到另一份所述控制信息上下文,标记复制后的控制信息上下文为挂起状态,具有挂起状态的所述控制信息上下文用于修改控制信息上下文使用。
将之前创建的控制信息上下文进行复制,得到两份控制信息上下文,其中一份之前已标记为激活状态,现对另一份的控制信息上下文进行标记,标记为挂起状态,数据线程是不能访问和查询挂起状态的控制信息上下文,只能访问和查询激活状态的控制信息上下文,而挂起状态的控制信息上下文是用于修改控制信息上下文使用。
第一修改模块15,用于根据所述修改信令修改具有挂起状态的所述控制信息上下文。
在得到挂起状态的控制信息上下文之后,再根据修改信令修改控制信息上下文。
第一标记模块16,用于待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
在修改完成之后,此时,共享内存中存在两份控制信息上下文,一份是已经修改的控制信息上下文,标记为挂起状态,一份是未修改的控制信息上下文,标记为激活状态,之后,重新互换两份控制信息上下文的标记,即是,已经修改的控制信息上下文由原来挂起状态替换为激活状态,以及未修改的控制信息上下文由原来激活状态替换为挂起状态。
根据信令线程的创建信令在共享内存中创建控制信息上下文,并将控制信息上下文标记为激活状态,在接收到修改信令时,复制控制信息上下文,将复制后的一份控制信息上下文标记为挂起状态,根据修改信令对具有挂起状态的控制信息上下文标记进行修改,之后互换两份控制信息上下文的标记,确保报文的控制信息引用是安全的,不需要小粒度的锁,解决现有技术中采用小粒度的锁来解决并发冲突,所需固定开销会很大的问题。
在本实施例中,处理装置1包括:
第一子接收模块,用于接收到信令线程的删除信令;
第一子去除模块,用于去除所述控制信息上下文的映射信息;
第一子删除模块,用于在安全时长之后,删除所述控制信息上下文。
如果控制信息上下文需要删除,则分两步来完成,第一步是去除控制信息上下文的映射信息,如此,在数据线程中,即使新接收到该控制信息上下文的报文,也会因为查询不到上下文信息而不做处理,而仅仅需要考虑那部分在删除上下文操作处理之前收到而没有处理完成的数据线程的报文的处理即可。
具体地,安全时长可以是用户预设的时长,也可以是根据数据线程的处理能力进行计算得到的时长。
在本实施例中,第一子删除模块包括:
第一子获取模块,用于获取每个报文在数据线程上的处理时延,得到时延列表;
第一子筛选模块,用于从所述时延列表中筛选出最大值和最小值,得到最大时延Δt1和最小时延Δt2;
第一子计算模块,用于通过第一公式计算出安全时长,其中,第一公式为:t=10(Δt1+Δt2),t是安全时长。
通过第一公式计算出的安全时长是远大于最大时延,这样就可以安全地删除。
在本实施例中,处理装置1包括:
第二子接收模块,用于通过网卡接口接收报文;
第一子映射模块,用于将所述报文中的所有控制信令映射到同一接收队列,并由所述信令线程处理;
第一子分配模块,用于将所述报文中的数据处理分散到不同数据线程处理。
对于UPF的控制信令而言,主要是PFCP协议控制信令,其报文封装格式是:IP/UDP/PFCP,知名端口号为8805,如果采用IP五元组的散列算法,在网卡的接收队列中,对于同一对PFCP连接下面的所有控制报文信息都将映射到同一个接收队列中,因此,控制信息会在同一个CPU核中处理,也就是由信令线程处理。
在本实施例中,处理装置1包括:
第一子复制模块,用于复制具有激活状态的所述控制信息上下文得到另一份所述控制信息上下文;
第二子替换模块,用于用最新的控制信息上下文替换具有挂起状态的所述控制信息上下文。
复制具有激活状态的控制信息上下文是复制控制信息上下文,不会复制其标记,将复制之后的控制信息上下文替换具有挂起状态的所述控制信息上下文,这样得到一份新的具有挂起状态的控制信息上下文。此时,具有挂起状态的控制信息上下文与具有激活状态的控制信息上下文相一致。
在本实施例中,处理装置1包括:
第一子分析模块,用于若接收到所述数据线程对所述控制信息上下文访问或者查询失败时,则分析失败的错误代码;
第一子标记模块,用于若所述错误代码所代表的含义为所述控制信息上下文的故障引起的错误,则将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
如果由于控制信息上下文自身原因导致不能被数据线程访问或者查询,可能控制信息上下文被破坏,那么将具有挂起状态的控制信息上下文标记为激活状态,以及将具有激活状态的控制信息上下文标记为挂起状态,这样就能解决问题。
在本实施例中,处理装置1包括:
第一子划分模块,用于将所述共享内存划分为第一共享区域和第一加密区域;
第一子存储模块,用于将具有激活状态的所述控制信息上下文存储在所述第一共享区域,及将具有挂起状态的所述控制信息上下文存储在所述第一加密区域;
第三子接收模块,用于再次接收到信令线程的修改信令;
第一子转移模块,用于将具有挂起状态的所述控制信息上下文从所述第一加密区域转移到所述第一共享区域;
第一子判断模块,用于判断具有激活状态的所述控制信息上下文与具有挂起状态的所述控制信息上下文是否相同;
第一子修改模块,用于若相同,则根据所述修改信令修改具有挂起状态的所述控制信息上下文;
第二子标记模块,用于待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态;
第二子存储模块,用于将具有挂起状态的所述控制信息上下文存储在所述第一加密区域。
共享内存划分为第一共享区域和第一加密区域,具有激活状态的控制信息上下文存储在第一共享区域,具有挂起状态的控制信息上下文存储在第一加密区域,这样避免具有挂起状态的控制信息上下文被破坏。
如图3所示,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储报文处理方法的模型等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现报文处理方法。
上述处理器执行上述报文处理方法的步骤:接收到信令线程的创建信令;
根据所述创建信令在共享内存中创建控制信息上下文,并配置所述控制信息上下文到全局的映射表中,以及标记所述控制信息上下文为激活状态,具有激活状态标记的所述控制信息上下文用于为各数据线程提供访问和查询使用;
接收到信令线程的修改信令;
复制所述控制信息上下文得到另一份所述控制信息上下文,标记复制后的控制信息上下文为挂起状态,具有挂起状态的所述控制信息上下文用于修改控制信息上下文使用;
根据所述修改信令修改具有挂起状态的所述控制信息上下文;
待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
在一个实施例中,在所述根据所述创建信令在共享内存中创建控制信息上下文,并配置所述控制信息上下文到全局的映射表中,以及标记所述控制信息上下文为激活状态的步骤之后,或者在所述将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态的步骤之后,包括:
接收到信令线程的删除信令;
去除所述控制信息上下文的映射信息;
在安全时长之后,删除所述控制信息上下文。
在一个实施例中,在所述在安全时长之后,删除所述控制信息上下文的步骤中,包括:
获取每个报文在数据线程上的处理时延,得到时延列表;
从所述时延列表中筛选出最大值和最小值,得到最大时延Δt1和最小时延Δt2;
通过第一公式计算出安全时长,其中,第一公式为:t=10(Δt1+Δt2),t是安全时长。
在一个实施例中,在所述接收到信令线程的创建信令的步骤之前,包括:
通过网卡接口接收报文;
将所述报文中的所有控制信令映射到同一接收队列,并由所述信令线程处理;
将所述报文中的数据处理分散到不同数据线程处理。
在一个实施例中,在所述将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态的步骤之后,包括:
复制具有激活状态的所述控制信息上下文得到另一份所述控制信息上下文;
用最新的控制信息上下文替换具有挂起状态的所述控制信息上下文。
在一个实施例中,在所述用最新的控制信息上下文替换具有挂起状态的所述控制信息上下文的步骤之后,包括:
若接收到所述数据线程对所述控制信息上下文访问或者查询失败时,则分析失败的错误代码;
若所述错误代码所代表的含义为所述控制信息上下文的故障引起的错误,则将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
在一个实施例中,在所述将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态的步骤之后,包括:
将所述共享内存划分为第一共享区域和第一加密区域;
将具有激活状态的所述控制信息上下文存储在所述第一共享区域,及将具有挂起状态的所述控制信息上下文存储在所述第一加密区域;
再次接收到信令线程的修改信令;
将具有挂起状态的所述控制信息上下文从所述第一加密区域转移到所述第一共享区域;
判断具有激活状态的所述控制信息上下文与具有挂起状态的所述控制信息上下文是否相同;
若相同,则根据所述修改信令修改具有挂起状态的所述控制信息上下文;
待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态;
将具有挂起状态的所述控制信息上下文存储在所述第一加密区域。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定。
本发明一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现报文处理方法,具体为:接收到信令线程的创建信令;
根据所述创建信令在共享内存中创建控制信息上下文,并配置所述控制信息上下文到全局的映射表中,以及标记所述控制信息上下文为激活状态,具有激活状态标记的所述控制信息上下文用于为各数据线程提供访问和查询使用;
接收到信令线程的修改信令;
复制所述控制信息上下文得到另一份所述控制信息上下文,标记复制后的控制信息上下文为挂起状态,具有挂起状态的所述控制信息上下文用于修改控制信息上下文使用;
根据所述修改信令修改具有挂起状态的所述控制信息上下文;
待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
在一个实施例中,在所述根据所述创建信令在共享内存中创建控制信息上下文,并配置所述控制信息上下文到全局的映射表中,以及标记所述控制信息上下文为激活状态的步骤之后,或者在所述将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态的步骤之后,包括:
接收到信令线程的删除信令;
去除所述控制信息上下文的映射信息;
在安全时长之后,删除所述控制信息上下文。
在一个实施例中,在所述在安全时长之后,删除所述控制信息上下文的步骤中,包括:
获取每个报文在数据线程上的处理时延,得到时延列表;
从所述时延列表中筛选出最大值和最小值,得到最大时延Δt1和最小时延Δt2;
通过第一公式计算出安全时长,其中,第一公式为:t=10(Δt1+Δt2),t是安全时长。
在一个实施例中,在所述接收到信令线程的创建信令的步骤之前,包括:
通过网卡接口接收报文;
将所述报文中的所有控制信令映射到同一接收队列,并由所述信令线程处理;
将所述报文中的数据处理分散到不同数据线程处理。
在一个实施例中,在所述将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态的步骤之后,包括:
复制具有激活状态的所述控制信息上下文得到另一份所述控制信息上下文;
用最新的控制信息上下文替换具有挂起状态的所述控制信息上下文。
在一个实施例中,在所述用最新的控制信息上下文替换具有挂起状态的所述控制信息上下文的步骤之后,包括:
若接收到所述数据线程对所述控制信息上下文访问或者查询失败时,则分析失败的错误代码;
若所述错误代码所代表的含义为所述控制信息上下文的故障引起的错误,则将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
在一个实施例中,在所述将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态的步骤之后,包括:
将所述共享内存划分为第一共享区域和第一加密区域;
将具有激活状态的所述控制信息上下文存储在所述第一共享区域,及将具有挂起状态的所述控制信息上下文存储在所述第一加密区域;
再次接收到信令线程的修改信令;
将具有挂起状态的所述控制信息上下文从所述第一加密区域转移到所述第一共享区域;
判断具有激活状态的所述控制信息上下文与具有挂起状态的所述控制信息上下文是否相同;
若相同,则根据所述修改信令修改具有挂起状态的所述控制信息上下文;
待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态;
将具有挂起状态的所述控制信息上下文存储在所述第一加密区域。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种报文处理方法,其特征在于:所述方法包括:
接收到信令线程的创建信令;
根据所述创建信令在共享内存中创建控制信息上下文,并配置所述控制信息上下文到全局的映射表中,以及标记所述控制信息上下文为激活状态,具有激活状态标记的所述控制信息上下文用于为各数据线程提供访问和查询使用;
接收到信令线程的修改信令;
复制所述控制信息上下文得到另一份所述控制信息上下文,标记复制后的控制信息上下文为挂起状态,具有挂起状态的所述控制信息上下文用于修改控制信息上下文使用;
根据所述修改信令修改具有挂起状态的所述控制信息上下文;
待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
2.如权利要求1所述的报文处理方法,其特征在于:在所述根据所述创建信令在共享内存中创建控制信息上下文,并配置所述控制信息上下文到全局的映射表中,以及标记所述控制信息上下文为激活状态的步骤之后,或者在所述将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态的步骤之后,包括:
接收到信令线程的删除信令;
去除所述控制信息上下文的映射信息;
在安全时长之后,删除所述控制信息上下文。
3.如权利要求2所述的报文处理方法,其特征在于:在所述在安全时长之后,删除所述控制信息上下文的步骤中,包括:
获取每个报文在数据线程上的处理时延,得到时延列表;
从所述时延列表中筛选出最大值和最小值,得到最大时延Δt1和最小时延Δt2;
通过第一公式计算出安全时长,其中,第一公式为:t=10(Δt1+Δt2),t是安全时长。
4.如权利要求1所述的报文处理方法,其特征在于:在所述接收到信令线程的创建信令的步骤之前,包括:
通过网卡接口接收报文;
将所述报文中的所有控制信令映射到同一接收队列,并由所述信令线程处理;
将所述报文中的数据处理分散到不同数据线程处理。
5.如权利要求1所述的报文处理方法,其特征在于:在所述将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态的步骤之后,包括:
复制具有激活状态的所述控制信息上下文得到另一份所述控制信息上下文;
用最新的控制信息上下文替换具有挂起状态的所述控制信息上下文。
6.如权利要求5所述的报文处理方法,其特征在于:在所述用最新的控制信息上下文替换具有挂起状态的所述控制信息上下文的步骤之后,包括:
若接收到所述数据线程对所述控制信息上下文访问或者查询失败时,则分析失败的错误代码;
若所述错误代码所代表的含义为所述控制信息上下文的故障引起的错误,则将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
7.如权利要求1所述的报文处理方法,其特征在于:在所述将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态的步骤之后,包括:
将所述共享内存划分为第一共享区域和第一加密区域;
将具有激活状态的所述控制信息上下文存储在所述第一共享区域,及将具有挂起状态的所述控制信息上下文存储在所述第一加密区域;
再次接收到信令线程的修改信令;
将具有挂起状态的所述控制信息上下文从所述第一加密区域转移到所述第一共享区域;
判断具有激活状态的所述控制信息上下文与具有挂起状态的所述控制信息上下文是否相同;
若相同,则根据所述修改信令修改具有挂起状态的所述控制信息上下文;
待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态;
将具有挂起状态的所述控制信息上下文存储在所述第一加密区域。
8.一种报文处理装置,其特征在于:所述处理装置包括:
第一接收模块,用于接收到信令线程的创建信令;
第一处理模块,用于根据所述创建信令在共享内存中创建控制信息上下文,并配置所述控制信息上下文到全局的映射表中,以及标记所述控制信息上下文为激活状态,具有激活状态标记的所述控制信息上下文用于为各数据线程提供访问和查询使用;
第二接收模块,用于接收到信令线程的修改信令;
第二处理模块,用于复制所述控制信息上下文得到另一份所述控制信息上下文,标记复制后的控制信息上下文为挂起状态,具有挂起状态的所述控制信息上下文用于修改控制信息上下文使用;
第一修改模块,用于根据所述修改信令修改具有挂起状态的所述控制信息上下文;
第一标记模块,用于待具有挂起状态的所述控制信息上下文完成修改之后,将具有挂起状态的所述控制信息上下文标记为激活状态,以及将具有激活状态的所述控制信息上下文标记为挂起状态。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111625626.8A CN113986585B (zh) | 2021-12-29 | 2021-12-29 | 报文处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111625626.8A CN113986585B (zh) | 2021-12-29 | 2021-12-29 | 报文处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986585A CN113986585A (zh) | 2022-01-28 |
CN113986585B true CN113986585B (zh) | 2022-04-01 |
Family
ID=79734754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111625626.8A Active CN113986585B (zh) | 2021-12-29 | 2021-12-29 | 报文处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986585B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001016703A1 (en) * | 1999-09-01 | 2001-03-08 | Intel Corporation | Instruction for multithreaded parallel processor |
CN101322111A (zh) * | 2005-04-07 | 2008-12-10 | 杉桥技术公司 | 每个线程具有多个并发流水线的多线程处理器 |
US7543126B2 (en) * | 2005-08-31 | 2009-06-02 | International Business Machines Corporation | Apparatus, system, and method for implementing protected virtual memory subcontexts |
US10037228B2 (en) * | 2012-10-25 | 2018-07-31 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
US9135183B2 (en) * | 2013-03-13 | 2015-09-15 | Samsung Electronics Co., Ltd. | Multi-threaded memory management |
US10353826B2 (en) * | 2017-07-14 | 2019-07-16 | Arm Limited | Method and apparatus for fast context cloning in a data processing system |
-
2021
- 2021-12-29 CN CN202111625626.8A patent/CN113986585B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113986585A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109828847B (zh) | 基于区块链的锁处理方法、装置、计算机设备及存储介质 | |
CN110334126B (zh) | 基于Spring MVC的定时任务处理方法、装置和计算机设备 | |
CN110750267B (zh) | 业务信息更新方法、装置、计算机设备和存储介质 | |
CN112527534A (zh) | 基于消息队列的业务处理方法、装置、设备及存储介质 | |
CN110928653A (zh) | 跨集群任务的执行方法、装置、计算机设备和存储介质 | |
CN109120616B (zh) | 一种身份认证方法、装置、代理服务端和存储介质 | |
CN111026807A (zh) | 分布式锁的同步方法、装置、计算机设备及可读存储介质 | |
CN108710541B (zh) | 一种定时任务的执行方法及装置 | |
CN111159233A (zh) | 分布式缓存方法、系统、计算机设备以及存储介质 | |
US20190280925A1 (en) | Hash based device configuration management | |
CN113986585B (zh) | 报文处理方法、装置、计算机设备和存储介质 | |
CN113612814B (zh) | 一种会话信息的筛选方法、装置、终端及存储介质 | |
CN110555017A (zh) | 区块链数据清理方法、装置、计算机设备和存储介质 | |
CN115378815A (zh) | 数据恢复的方法、装置、网络设备及存储介质 | |
CN111338848B (zh) | 故障应用副本处理方法、装置、计算机设备和存储介质 | |
CN114091017A (zh) | 计算机软件防御方法、装置、计算机设备及存储介质 | |
CN113742681A (zh) | 一种账户管理方法、装置、计算机设备和存储介质 | |
TWI795551B (zh) | 排他控制系統及排他控制方法 | |
CN113127266A (zh) | 一种基于分布式数据库的多副本灾难恢复方法及装置 | |
CN113609211B (zh) | 一种集群信息同步方法、装置、计算机设备及存储介质 | |
CN114268624B (zh) | 版本文件传输方法、装置及服务器 | |
CN114285722B (zh) | 一种分布式存储集群节点通信告警方法、装置、设备及介质 | |
CN111400324B (zh) | 一种锁定云存储中对象的方法、装置及服务器 | |
CN115277232B (zh) | 安全策略回收方法和装置 | |
CN113268348B (zh) | 分布式锁服务器的切换方法、装置、计算机设备和介质 |
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 |