CN117857614A - 一种针对多核场景下网络数据流的session处理系统 - Google Patents
一种针对多核场景下网络数据流的session处理系统 Download PDFInfo
- Publication number
- CN117857614A CN117857614A CN202311722305.9A CN202311722305A CN117857614A CN 117857614 A CN117857614 A CN 117857614A CN 202311722305 A CN202311722305 A CN 202311722305A CN 117857614 A CN117857614 A CN 117857614A
- Authority
- CN
- China
- Prior art keywords
- session
- module
- aging
- linked list
- lru
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 47
- 230000032683 aging Effects 0.000 claims abstract description 79
- 238000000034 method Methods 0.000 claims abstract description 26
- 230000006854 communication Effects 0.000 claims abstract description 15
- 238000004891 communication Methods 0.000 claims abstract description 14
- 230000007246 mechanism Effects 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 17
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 5
- 230000007717 exclusion Effects 0.000 description 5
- 238000009434 installation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 101100377706 Escherichia phage T5 A2.2 gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于数据通信并发计算领域,涉及一种针对多核场景下网络数据流的SESSION处理系统,包括SESSION创建模块、SESSION更新模块和SESSION老化操作模块,多核场景下SESSION的创建、更新由worker并发执行,老化操作由master执行,在创建阶段,worker采用SPINLOCK解决冲突,并将数据流传递给更新模块,在更新阶段,worker查找表项,采用ATOMIC更新老化时间,在老化操作阶段,根据更新模块获取会话的状态信息,并由master引入LRU和RCU解决。本发明通过重新设计SESSION的创建、更新和老化架构,解决了以往并发架构下全部使用RDLOCK导致的性能问题,最大限度的释放worker的压力,使其在大部分场景下只做了ATOMIC更新下老化时间,提升了高并发处理SEESION的性能。
Description
技术领域
本发明属于数据通信并发计算领域,具体的说是一种针对多核场景下网络数据流的SESSION处理系统。
背景技术
SESSION是记录数据流通信状态的会话,常用来根据数据流的五元组记录并缓存该数据流相关的状态信息,为相同数据流的后续处理提供依据。比如ARP SESSION(AddressResolution Protocol Session)是通过ARP协议建立的一种通信会话,保存了将IP地址转换为MAC地址的映射关系,以便在本地网络上发送数据包时识别目标主机,当要发送数据包时,ARP会话通过广播ARP请求来查找目标主机的MAC地址,当目标主机收到ARP请求后,将会响应一个ARP响应,包含MAC地址信息,从而建立一个ARP SESSION,之后源主机可以使用目标主机的MAC地址将数据包发送到正确的目的地。
SESSION的操作主要分为新建、更新与老化三种,为了避免多核并发场景下的冲突,以上三种操作均是通过RDLOCK控制对共享资源的访问。该锁是一种排他锁,当一个写锁存在时,其他的读写锁均被锁住,无法访问共享资源。因此在高并发读取和写入场景中,会产生大量的访问等待现象,从而影响系统的整体性能。
如申请公开号为CN111966368A的中国专利公开了应用程序静默安装方法、系统、安卓终端和可读介质,其特征是,获取待安装的程序安装包的存储路径S在系统中创建该应用的Session;读取程序安装包以数据流的形式写入到创建的所述Session中;刷新系统的写入数据缓存,获取写入结果;将写好的Session提交至系统,由系统的PackageManagerService完成应用程序的安装。本发明的系统包括存储位置获取模块、Session创建模块、数据写入模块、刷新模块和Session提交模块。本发明通过创建SessionID,向系统的packageinstaller的Session中写入所需安装的apk的数据流,达到免root安装第三方应用程序的目的,简易方便易操作。
如申请公开号为CN102510470A的中国专利公开了一种媒体流数据复制方法和设备,本发明包括:DM服务器获得RTSP数据流的Session ID、以及其他VC接收RTSP数据流的地址信息和端口信息;所述DM服务器通过所述Session ID查找发送给VC的RTSP数据流,并在向所述VC发送查找到的RTSP数据流时,通过所述地址信息和端口信息将所述RTSP数据流发送给所述其他VC。本发明中,在向某VC发送RTSP数据流的过程中,可以将RTSP数据流同时发送给其他VC,从而实现RTSP数据流的复制分发过程。
以上现有技术均存在以下问题:1)多核场景下性能低;2)会暴露系统的脆弱性,导致安全性和稳定性问题;3)带宽消耗、增加了时延且不适合大规模分发。
发明内容
针对现有技术的不足,本发明提出了一种针对多核场景下网络数据流的SESSION处理系统,通过对SESSION的创建、更新、老化操作的处理架构进行改造,在创建阶段,worker采用SPINLOCK解决冲突,在更新阶段worker采用ATOMIC只更新老化时间,在老化阶段由master引入LRU和RCU,最大限度的释放worker被锁住的压力,提高整体的数据转发性能。
为实现上述目的,本发明提供如下技术方案:
一种针对多核场景下网络数据流的SESSION处理系统,系统包括数据接收模块、处理模块、缓存模块、会话管理模块、锁机制模块、通信机制模块、调度器模块,
所述数据接收模块,用于从网络中接收数据流,并传递给后续处理模块;
所述处理模块,用于处理接收到的数据流,分配给不同的核心;
所述缓存模块,用于快速查找和访问存储的数据;
所述会话管理模块,用于存储当前的SESSION信息;
所述锁机制模块,用于保护共享资源;
所述通信机制模块,用于线程之间或模块之间的通信;
所述调度器模块,用于调度和处理任务。
具体的,所述会话管理模块包括SESSION创建单元、SESSION更新单元和SESSION老化操作单元,多核场景下SESSION的创建、更新由worker并发执行,老化操作由master执行,
所述SESSION创建单元,用于系统接收新的网络数据流,创建模块判断是否已存在与之关联的会话,若不存在,创建一个新的会话,为新的会话分配资源并与数据流关联;
所述SESSION更新单元,用于接收并处理来自网络的数据流,针对每个接收到的数据包,解析并提取信息,根据信息更新会话状态;
所述SESSION老化操作单元,用于定期检测会话的活跃程度,释放会话占用的资源。
具体的,所述会话管理模块的具体处理流程包括:
A1:在创建单元,worker采用SPINLOCK解决冲突,并将数据流传递给更新模块;
A2:在更新单元,worker查找表项,采用ATOMIC更新老化时间;
A3:在老化操作单元,根据更新模块获取会话的状态信息,并由master引入LRU和RCU解决。
具体的,如权利要求2所述的一种针对多核场景下网络数据流的SESSION处理系统,其特征在于,所述A1的具体流程包括:
A1.1:系统接收新的网络数据流,通过worker查找SESSION;
A1.2:判断查找结果,若查找不到,根据流量特征匹配规则生成新的表项;
A1.3:使用SPINLOCK将新的表项插入到全局链表中。
具体的,所述A2中采用ATOMIC更新老化时间的具体流程包括:
A2.1:通过遍历链表从全局链表中选取要更新的表项;
A2.2:选取表项后,获取当前的老化时间;
A2.3:根据业务逻辑和需求,使用锁机制保护对表项的访问和修改操作,计算新的老化时间,并使用原子操作更新老化时间;
A2.4:成功更新老化时间后,将该表项从全局链表中移除,更新表项的状态。
具体的,所述所述A3中判断老化操作开始运行的流程包括:
A3.1:LRU非空,第一个表项的老化到期时间;
A3.2:LRU为空,默认等待1s。
具体的,所述A3的具体步骤主要包括遍历SESSION全局链表和遍历LRU链表,其中全局链表受RCU保护。
具体的,遍历SESSION全局链表的具体流程包括:
B1:遍历全局链表并读取每个表项的信息,确定LRU策略;
B2:设定为零的变量max_aging_time,并在遍历每个表项时,比较表项老化时间与max_aging_time的大小,将较大值赋予max_aging_time进行更新;
B3:判断是否需要更新老化时间,若需要,则根据权利要求4中的ATOMIC更新老化时间;
B4:判断是否需要创建新的表项并更新链表的状态;
B5:遍历整个链表,释放之前获取的锁机制,返回结果。
具体的,所述B1中LRU策略是指当缓存容量满时,优先删除最近最少使用的数据。
具体的,所述遍历LRU链表的具体流程包括:
C1:设定当前LRU链表最大老化时间T;
C2:判断表项的老化时间和当前LRU链表最大老化时间的大小关系;
C3:若表项的老化时间大于T,则将表项从LRU中删除,若表项的老化时间小于T,则将该表项从LRU和全局链表中删除。
与现有技术相比,本发明的有益效果是:
1.本发明提出一种针对多核场景下网络数据流的SESSION处理系统,并进行了架构、运行步骤和流程上的优化改进,系统具备流程简单,投资运行费用低廉,生产工作成本低的优点。
2.本发明提出一种针对多核场景下网络数据流的SESSION处理系统,提出了高并发下新的worker session处理思路,通过重新设计SESSION的创建、更新和老化架构,解决了以往并发架构下全部使用RDLOCK导致的性能问题,使其在大部分场景下只做了ATOMIC更新下老化时间,也使得worker在大部分情况下只做无锁原子更新。
附图说明
图1为本发明一种针对多核场景下网络数据流的SESSION处理系统流程图;
图2为本发明一种针对多核场景下网络数据流的SESSION处理系统work创建和更新流程图;
图3为本发明一种针对多核场景下网络数据流的SESSION处理系统master执行session老化操作流程图;
图4为本发明一种针对多核场景下网络数据流的SESSION处理系统系统架构图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“一号”、“二号”、“三号”仅用于描述目的,而不能理解为指示或暗示相对重要性。下面结合具体实施方式,进一步阐述本发明。
实施例1
请参阅图1-图3,本发明提供的一种实施例:一种针对多核场景下网络数据流的SESSION处理系统,系统包括数据接收模块、处理模块、缓存模块、会话管理模块、锁机制模块、通信机制模块、调度器模块,
所述数据接收模块,用于从网络中接收数据流,并传递给后续处理模块;
所述处理模块,用于处理接收到的数据流,分配给不同的核心;
所述缓存模块,用于快速查找和访问存储的数据;
所述会话管理模块,用于存储当前的SESSION信息;
所述锁机制模块,用于保护共享资源;
所述通信机制模块,用于线程之间或模块之间的通信;
所述调度器模块,用于调度和处理任务。
具体的,所述会话管理模块包括SESSION创建单元、SESSION更新单元和SESSION老化操作单元,多核场景下SESSION的创建、更新由worker并发执行,老化操作由master执行,
所述SESSION创建单元,用于系统接收新的网络数据流,创建模块判断是否已存在与之关联的会话,若不存在,创建一个新的会话,为新的会话分配资源并与数据流关联;
所述SESSION更新单元,用于接收并处理来自网络的数据流,针对每个接收到的数据包,解析并提取信息,根据信息更新会话状态;
所述SESSION老化操作单元,用于定期检测会话的活跃程度,释放会话占用的资源。
SESSION是一种记录浏览器状态的机制,处理网络数据流SESSION是指在网络通信过程中,对一组传输的数据包进行接收、处理、更新和老化等操作,以维护和管理与用户会话相关的数据流的过程。
所述会话管理模块的具体处理流程包括:
A1:在创建单元,worker采用SPINLOCK解决冲突,并将数据流传递给更新模块;
SPINLOCK是一种低级别的互斥同步基元,适用于等待时间预计较短且争用情况很少的场合,当线程进入锁之后,必须先正确地退出锁,然后才能再次进入锁,否则,任何重新进入锁的尝试都可能导致死锁,除此之外,SpinLock不是可重入的。
在SESSION系统中,除了采用SPINLOCK解决冲突,worker还可以采用以下几种方法来解决冲突:
(1)互斥锁:互斥锁是一种常用的同步机制,用于保护临界区代码段免受多个线程的干扰,当一个线程获得互斥锁时,其他线程无法访问被保护的代码段,直到该线程释放锁,可以避免多个线程同时修改共享数据而引起的冲突;
(2)读写锁:读写锁是一种用于多线程读写操作的同步机制,允许多个线程同时读取共享数据,但在写入数据时只允许一个线程进行,可以有效地降低写操作的冲突概率,提高并发性能;
(3)自旋锁:自旋锁是一种特殊的互斥锁,当一个线程尝试获取锁失败时,会持续在原地进行轮询,直到成功获取锁,适用于短时间内等待锁的情况,避免了线程上下文的切换开销;
(4)信号量:信号量是一种计数器,用于控制对共享资源的访问次数,维护计数器,当计数器为零时,表示资源不可用;当计数器大于零时,表示资源可用,可以用于解决多线程访问共享资源的冲突问题;
(5)事件:事件是一种用于线程间通信的机制,通过使用事件,一个线程可以等待另一个线程触发某个事件,以便在特定条件下进行操作,事件可以用于协调多个线程之间的操作顺序,以避免冲突。
本发明采用SPINLOCK解决冲突,以达到高效性、适应性、易用性、可预测性的效果,适用于各种场景,且使用方法简单。
A2:在更新单元,worker查找表项,采用ATOMIC更新老化时间;
在更新老化时间的场景中,ATOMIC表示原子操作,代表对表项的更新操作具有原子性,即在更新过程中不会被其他线程或核心干扰或中断,从而保证更新操作的正确性和一致性
A3:在老化操作单元,根据更新模块获取会话的状态信息,并由master引入LRU和RCU解决。
LRU(Least Recently Used)是一种缓存淘汰算法,属于内存管理算法,是根据缓存中数据项的使用历史来决定哪些数据应该被淘汰出缓存,具体来说,当缓存已满时,最近最少使用的数据项将被淘汰,以便为新的数据项腾出空间。LRU算法维护了一个按照访问时间排序的数据项列表,每当一个数据项被访问时,它就会被提升到列表的顶部,表示它是最近使用过的,当需要淘汰数据时,列表底部的数据项就会被移除,因为它们是最近最少使用的。本发明采用LRU算法的优势在于可以有效地利用缓存空间,有助于具有局部性的访问模式,因为这些访问模式通常会导致某些数据被反复使用,而其他数据则很少被使用。
RCU(Read-Copy-Update)是一种同步机制,用于提高并发性并降低同步开销,RCU允许在更新数据的同时读取数据,通过保存对象的多个副本来保障读操作的连续性,并保证在预定的读方临界区没有完成之前不会释放这个对象。
所述A1的具体流程包括:
A1.1:系统接收新的网络数据流,通过worker查找SESSION;
A1.2:判断查找结果,若查找不到,根据流量特征匹配规则生成新的表项;
数据流特征匹配:worker检查数据流的特征,如源IP地址、目标IP地址、端口号,以确定是否存在与该数据流匹配的表项,若数据流的特征与现有表项不匹配,worker将生成一个新的表项。
A1.3:使用SPINLOCK将新的表项插入到全局链表中。
所述A2中采用ATOMIC更新老化时间的具体流程包括:
A2.1:通过遍历链表从全局链表中选取要更新的表项;
通过对数据流中的会话ID进行匹配以查找需要更新的表项,在查找过程中,需要确保原子性操作,以避免多个线程同时修改同一表项导致的数据不一致问题。
A2.2:选取表项后,获取当前的老化时间;
获取当前的老化时间的步骤包括:1)定位到包含所需会话ID的表项;2)获取相应的锁机制;3)获取锁之后,通过对表项中的相应字段进行读取操作获取表项中存储的老化时间;4)在读取完老化时间后,释放之前获取的锁机制。此外,还需要考虑锁的粒度、性能和并发性等方面的问题,以确保系统的整体性能和稳定性。
A2.3:根据业务逻辑和需求,使用锁机制保护对表项的访问和修改操作,计算新的老化时间,并使用原子操作更新老化时间;
A2.4:成功更新老化时间后,将该表项从全局链表中移除,更新表项的状态。
计算新的老化时间包括:1)在当前老化时间的基础上增加一定的时间间隔;2)根据系统的负载情况动态计算新的老化时间。
所述A3中判断老化操作开始运行的流程包括:
A3.1:LRU非空,第一个表项的老化到期时间;
A3.2:LRU为空,默认等待1s。
所述A3的具体步骤主要包括遍历SESSION全局链表和遍历LRU链表,其中全局链表受RCU保护。
遍历SESSION全局链表的具体流程包括:
B1:遍历全局链表并读取每个表项的信息,确定LRU策略;
LRU策略是一种常见的缓存替换策略,基本思想是:一个数据在最近一段时间没有被访问到,那么在将来一段时间内被再次访问的概率也很低,因此,当缓存达到最大容量时,最长时间没有被访问的数据会被首先替换。确定LRU策略时,可以采取以下步骤:1)根据系统的内存大小、可用内存、可用的CPU核数因素确定缓存的最大容量;2)维护访问列表,记录每个数据项的访问时间戳;3)对于每一个需要存入缓存的数据项,判断是否可重复使用,若数据项不可重复使用,则直接将其存入缓存,若数据项可重复使用,则需要判断缓存中是否存在相同的数据项;4)若缓存已满,淘汰最久未被使用的数据项,更新访问列表;5)将可重复使用的数据项存入缓存,并更新访问列表。
B2:设定为零的变量max_aging_time,并在遍历每个表项时,比较表项老化时间与max_aging_time的大小,将较大值赋予max_aging_time进行更新;
B3:判断是否需要更新老化时间,若需要,则根据权利要求4中的ATOMIC更新老化时间;
B4:判断是否需要创建新的表项并更新链表的状态;
B5:遍历整个链表,释放之前获取的锁机制,返回结果。
在使用锁机制时,需要注意以下几点:
(1)选择合适的锁类型:针对全局链表的并发访问,可以使用读写锁或互斥锁锁类型,根据具体的使用场景和需求,选择适合的锁类型可以更好地平衡并发性和性能;
(2)合理控制锁的粒度:在多核场景下,锁的粒度应适中,若锁的粒度太粗,会影响并发性能;若锁的粒度太细,会增加锁竞争的概率,导致性能下降;
(3)避免死锁:为了防止死锁,要确保每个线程在获取锁时都按照一定的顺序获取,并在释放锁时遵循正确的释放顺序;
(4)考虑锁的性能开销:使用锁机制会造成性能开销,包括获取锁和释放锁的开销以及因等待锁而导致的线程阻塞的开销;
(5)使用合适的同步原语:除了锁机制外,可以使用同步原语,如信号量、条件变量实现对全局链表的并发访问。
所述B1中LRU策略是指当缓存容量满时,优先删除最近最少使用的数据。
所述遍历LRU链表的具体流程包括:
C1:设定当前LRU链表最大老化时间T;
C2:判断表项的老化时间和当前LRU链表最大老化时间的大小关系;
C3:若表项的老化时间大于T,则将表项从LRU中删除,若表项的老化时间小于T,则将该表项从LRU和全局链表中删除。
以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可以对上述实施例进行变化、修改、替换和变型,这些均属于本发明的保护之内。
Claims (10)
1.一种针对多核场景下网络数据流的SESSION处理系统,其特征在于,系统包括数据接收模块、处理模块、缓存模块、会话管理模块、锁机制模块、通信机制模块、调度器模块,
所述数据接收模块,用于从网络中接收数据流,并传递给后续处理模块;
所述处理模块,用于处理接收到的数据流,分配给不同的核心;
所述缓存模块,用于快速查找和访问存储的数据;
所述会话管理模块,用于存储当前的SESSION信息;
所述锁机制模块,用于保护共享资源;
所述通信机制模块,用于线程之间或模块之间的通信;
所述调度器模块,用于调度和处理任务。
2.如权利要求1所述的一种针对多核场景下网络数据流的SESSION处理系统,其特征在于,会话管理模块包括SESSION创建单元、SESSION更新单元和SESSION老化操作单元,多核场景下SESSION的创建、更新由worker并发执行,老化操作由master执行,
所述SESSION创建单元,用于系统接收新的网络数据流,创建模块判断是否已存在与之关联的会话,若不存在,创建一个新的会话,为新的会话分配资源并与数据流关联;
所述SESSION更新单元,用于接收并处理来自网络的数据流,针对每个接收到的数据包,解析并提取信息,根据信息更新会话状态;
所述SESSION老化操作单元,用于定期检测会话的活跃程度,释放会话占用的资源。
3.如权利要求2所述的一种针对多核场景下网络数据流的SESSION处理系统,其特征在于,所述会话管理模块的具体处理流程包括:
A1:在创建单元,worker采用SPINLOCK解决冲突,并将数据流传递给更新模块;
A2:在更新单元,worker查找表项,采用ATOMIC更新老化时间;
A3:在老化操作单元,根据更新模块获取会话的状态信息,并由master引入LRU和RCU解决。
4.如权利要求3所述的一种针对多核场景下网络数据流的SESSION处理系统,其特征在于,所述A1的具体流程包括:
A1.1:系统接收新的网络数据流,通过worker查找SESSION;
A1.2:判断查找结果,若查找不到,根据流量特征匹配规则生成新的表项;
A1.3:使用SPINLOCK将新的表项插入到全局链表中。
5.如权利要求4所述的一种针对多核场景下网络数据流的SESSION处理系统,其特征在于,所述A2中采用ATOMIC更新老化时间的具体流程包括:
A2.1:通过遍历链表从全局链表中选取要更新的表项;
A2.2:选取表项后,获取当前的老化时间;
A2.3:根据业务逻辑和需求,使用锁机制保护对表项的访问和修改操作,计算新的老化时间,并使用原子操作更新老化时间;
A2.4:成功更新老化时间后,将该表项从全局链表中移除,更新表项的状态。
6.如权利要求5所述的一种针对多核场景下网络数据流的SESSION处理系统,其特征在于,所述A3中判断老化操作开始运行的流程包括:
A3.1:LRU非空,第一个表项的老化到期时间;
A3.2:LRU为空,默认等待1s。
7.如权利要求6所述的一种针对多核场景下网络数据流的SESSION处理系统,其特征在于,所述A3的具体步骤主要包括遍历SESSION全局链表和遍历LRU链表,其中全局链表受RCU保护,且老化操作只会老化LRU链表中的表项。
8.如权利要求7所述的一种针对多核场景下网络数据流的SESSION处理系统,其特征在于,遍历SESSION全局链表的具体流程包括:
B1:遍历全局链表并读取每个表项的信息,确定LRU策略;
B2:设定为零的变量max_aging_time,并在遍历每个表项时,比较表项老化时间与max_aging_time的大小,将较大值赋予max_aging_time进行更新;
B3:判断是否需要更新老化时间,若需要,则根据权利要求4中的ATOMIC更新老化时间;
B4:判断是否需要创建新的表项并更新链表的状态;
B5:遍历整个链表,释放之前获取的锁机制,返回结果。
9.如权利要求8所述的一种针对多核场景下网络数据流的SESSION处理系统,其特征在于,所述B1中LRU策略是指当缓存容量满时,优先删除最近最少使用的数据。
10.如权利要求9所述的一种针对多核场景下网络数据流的SESSION处理系统,其特征在于,所述遍历LRU链表的具体流程包括:
C1:设定当前LRU链表最大老化时间T;
C2:判断表项的老化时间和当前LRU链表最大老化时间的大小关系;
C3:若表项的老化时间大于T,则将表项从LRU中删除,若表项的老化时间小于T,则将该表项从LRU和全局链表中删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311722305.9A CN117857614A (zh) | 2023-12-14 | 2023-12-14 | 一种针对多核场景下网络数据流的session处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311722305.9A CN117857614A (zh) | 2023-12-14 | 2023-12-14 | 一种针对多核场景下网络数据流的session处理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117857614A true CN117857614A (zh) | 2024-04-09 |
Family
ID=90541204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311722305.9A Pending CN117857614A (zh) | 2023-12-14 | 2023-12-14 | 一种针对多核场景下网络数据流的session处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117857614A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100325371A1 (en) * | 2009-06-22 | 2010-12-23 | Ashwin Jagadish | Systems and methods for web logging of trace data in a multi-core system |
US20120117075A1 (en) * | 2010-11-04 | 2012-05-10 | Electron Database Corporation | Systems and methods for grouped request execution |
CN104618152A (zh) * | 2015-01-19 | 2015-05-13 | 迈普通信技术股份有限公司 | 一种会话表老化方法及系统 |
CN112437125A (zh) * | 2020-11-10 | 2021-03-02 | 北京百度网讯科技有限公司 | 信息并发处理方法、装置、电子设备及存储介质 |
CN116166437A (zh) * | 2023-02-22 | 2023-05-26 | 北京人大金仓信息技术股份有限公司 | 数据库会话进程的处理方法、存储介质与设备 |
-
2023
- 2023-12-14 CN CN202311722305.9A patent/CN117857614A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100325371A1 (en) * | 2009-06-22 | 2010-12-23 | Ashwin Jagadish | Systems and methods for web logging of trace data in a multi-core system |
US20120117075A1 (en) * | 2010-11-04 | 2012-05-10 | Electron Database Corporation | Systems and methods for grouped request execution |
CN104618152A (zh) * | 2015-01-19 | 2015-05-13 | 迈普通信技术股份有限公司 | 一种会话表老化方法及系统 |
CN112437125A (zh) * | 2020-11-10 | 2021-03-02 | 北京百度网讯科技有限公司 | 信息并发处理方法、装置、电子设备及存储介质 |
CN116166437A (zh) * | 2023-02-22 | 2023-05-26 | 北京人大金仓信息技术股份有限公司 | 数据库会话进程的处理方法、存储介质与设备 |
Non-Patent Citations (1)
Title |
---|
朱阅岸等: "多核处理器下事务型数据库性能优化技术综述", 计算机学报, 30 September 2015 (2015-09-30) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9996403B2 (en) | System and method for providing message queues for multinode applications in a middleware machine environment | |
US7587566B2 (en) | Realtime memory management via locking realtime threads and related data structures | |
US5613139A (en) | Hardware implemented locking mechanism for handling both single and plural lock requests in a lock message | |
US20110161540A1 (en) | Hardware supported high performance lock schema | |
US20100332755A1 (en) | Method and apparatus for using a shared ring buffer to provide thread synchronization in a multi-core processor system | |
US10331500B2 (en) | Managing fairness for lock and unlock operations using operation prioritization | |
US8281103B2 (en) | Method and apparatus for allocating storage addresses | |
US7899794B2 (en) | Optimizing lock acquisition on transaction logs | |
US10802890B2 (en) | System and method for multidimensional search with a resource pool in a computing environment | |
US10846240B2 (en) | Supporting concurrent remove operations and add-to-front operations on a least recently used (LRU) queue | |
US8190857B2 (en) | Deleting a shared resource node after reserving its identifier in delete pending queue until deletion condition is met to allow continued access for currently accessing processor | |
US20230099664A1 (en) | Transaction processing method, system, apparatus, device, storage medium, and program product | |
CN111416825A (zh) | 线程间无锁日志管理方法和系统、终端、存储介质 | |
CN113157467B (zh) | 一种多进程数据输出方法 | |
CN112307119A (zh) | 数据同步方法、装置、设备及存储介质 | |
KR20140106576A (ko) | 버퍼 리소스 관리 방법 및 원격통신 장비 | |
US10248420B2 (en) | Managing lock and unlock operations using active spinning | |
CN116755635B (zh) | 一种硬盘控制器缓存系统、方法、硬盘设备及电子设备 | |
CN111221773B (zh) | 一种基于rdma高速网络和跳表的数据存储架构方法 | |
WO2007135532A2 (en) | Method and system for managing buffers pool | |
CN117857614A (zh) | 一种针对多核场景下网络数据流的session处理系统 | |
CN105094993B (zh) | 一种多核处理器、数据同步的方法及装置 | |
US11645113B2 (en) | Work scheduling on candidate collections of processing units selected according to a criterion | |
JP5553685B2 (ja) | 情報処理装置および情報処理方法 | |
JP2011248469A (ja) | 情報処理装置および情報処理方法 |
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 |