CN111131081B - 一种支持多进程的高性能单向传输的方法和装置 - Google Patents

一种支持多进程的高性能单向传输的方法和装置 Download PDF

Info

Publication number
CN111131081B
CN111131081B CN201911405964.3A CN201911405964A CN111131081B CN 111131081 B CN111131081 B CN 111131081B CN 201911405964 A CN201911405964 A CN 201911405964A CN 111131081 B CN111131081 B CN 111131081B
Authority
CN
China
Prior art keywords
foreground
buffer
buffers
preset threshold
buffer area
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
Application number
CN201911405964.3A
Other languages
English (en)
Other versions
CN111131081A (zh
Inventor
牛晨光
张本军
叶志钢
王赟
李明栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Greenet Information Service Co Ltd
Original Assignee
Wuhan Greenet Information Service Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Greenet Information Service Co Ltd filed Critical Wuhan Greenet Information Service Co Ltd
Priority to CN201911405964.3A priority Critical patent/CN111131081B/zh
Publication of CN111131081A publication Critical patent/CN111131081A/zh
Application granted granted Critical
Publication of CN111131081B publication Critical patent/CN111131081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及传输技术领域,提供了一种支持多进程的高性能单向传输的方法和装置。方法包括接收一个或者多个客户端的发送数据请求,为所述客户端分配前台缓冲区进行发送数据的临时存储;扫描各个前台发送缓冲区以确定是否满足发送要求;当前台缓冲区满足发送标准时,对缓冲区进行加锁;所述加锁操作后的前台缓冲区转换为后台缓冲区后,完成所述发送操作。本发明适用于大多数依赖高速以太网络进行单向数据传输的系统,并且对进行海量琐碎数据传输的场景尤其适用。

Description

一种支持多进程的高性能单向传输的方法和装置
【技术领域】
本发明涉及传输技术领域,特别是涉及一种支持多进程的高性能单向传输的方法和装置。
【背景技术】
电信运营商相关OSS系统中为了能通过某些专家子系统导出和查看单用户在其网络中的控制面和业务面的原始数据,要求建设的诸如DPI系统支持根据用户号码存储和查询用户信令原始数据,此系统的原始数据由采集设备通过网络发送而来。
目前以省为单位建设的DPI系统承载的用户数大都在1000万以上,实时产生的原始信令包速据高达6000000pps,平均包长仅有136字节。此海量数据中大约有1000000pps的数据需要发往后端系统进行存储。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
【发明内容】
本发明要解决的技术问题IPC机制(如Socket、消息队列等)造成的二次消耗。在其他IPC机制中发送客户端需要将数据通过数据通道发至核心服务的缓冲区管理模块,再由缓冲区管理模块待为存入缓冲区,整个过程中涉及到两次(或以上)数据拷贝,影响处理性能。
本发明采用如下技术方案:
第一方面,本发明提供了一种支持多进程的高性能单向传输的方法,建立共享内容空间,所述共享内存空间被划分为至少两个前台缓冲区和至少一个后台缓冲区,其中,所述前台缓冲区设置为客户端可访问,所述后台缓冲区设置为客户端不可访问,方法包括:
接收一个或者多个客户端的发送数据请求,为所述客户端分配前台缓冲区进行发送数据的临时存储;
扫描各个前台发送缓冲区以确定是否满足发送要求;当前台缓冲区满足发送标准时,对缓冲区进行加锁;
前台缓冲区在进行加锁操作后,与处于空闲状态的后台缓冲区进行标识替换,使得所述加锁操作后的前台缓冲区转换为后台缓冲区,被替换标识后的所述处于空闲状态的后台缓冲区成为客户端可访问的前台缓冲区;
所述加锁操作后的前台缓冲区转换为后台缓冲区后,完成所述发送操作。
优选的,前台缓冲区被分配给客户端后,在所述前台缓冲区进入加锁操作的同时,客户端进入加锁等待状态,则前台缓冲区在进行加锁操作后,与处于空闲状态的后台缓冲区进行标识替换后,所述方法还包括:
所述客户端从加锁等待状态切换为自由状态;其中,所述自由状态为所述客户端允许发送新一轮的发送数据请求。
优选的,前台缓冲区满足发送标准,具体包括:
前台缓冲区中存储的数据包占整个缓冲区的空间达到第一预设阈值,和/或客户端传输过来的数据包时间间隔超过第二预设阈值。
优选的,在所述前台缓冲区满足发送标准为满足前台缓冲区中存储的数据包占整个缓冲区的空间达到第一预设阈值和客户端传输过来的数据包时间间隔超过第二预设阈值中的任意一项时,所述第一预设阈值和第二预设阈值的组合包括:
第一预设阈值为90%时,所述第二预设阈值为0ms;
第一预设阈值为75%时,所述第二预设阈值为500ms;
第一预设阈值为50%时,所述第二预设阈值为1s;
第一预设阈值为0时,所述第二预设阈值为2s。
优选的,完成所述发送操作,具体包括:
各个数据包在所述前端缓冲区进行合并,并在前台缓冲区满足发送标准时,提交给系统TCP协议栈发送到目的端。
优选的,所述方法还包括:
轮询当前共享内存空间中的有前台缓冲区和后台缓冲区,若当前工作状态中前台缓冲区被分配给各客户端的总量占比超过第三阈值,而所述后台缓冲区的被占用的量小于第四阈值,则选择所述后台缓冲区中处于空闲状态的指定对象,直接将其标识修改为前台缓冲区。
优选的,所述方法还包括:
轮询当前共享内存空间中的所有前台缓冲区和后台缓冲区,若当前工作状态中前台缓冲区被分配给各客户端的总量占比超过第三阈值,而所述后台缓冲区的被占用的量小于第四阈值,选择前台缓冲区中存储的数据包占整个缓冲区的空间接近第一预设阈值,和/或客户端传输过来的数据包时间间隔接近第二预设阈值的一个或者多个前台缓冲区,并将所述选择出的一个或者多个前台缓冲区和相应空闲的后台缓冲区进行对换,完成发送操作。
优选的,所述方法应用场景包括:
数据传输对数据包时序不敏感、仅需单向海量数据传输而无需进行业务面应答的场景和/或对数据包发送时延的容忍度在大于等于100ms的场景。
第二方面,本发明还提供了一种支持多进程的高性能单向传输的装置,用于实现第一方面所述的支持多进程的高性能单向传输的方法,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的支持多进程的高性能单向传输的方法。
第三方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的支持多进程的高性能单向传输的方法。
本发明提出了一种基于共享内存技术、用户态缓冲区和多缓冲压力均衡模式的高性能单向传输方法。此方法适用于大多数依赖高速以太网络进行单向数据传输的系统,并且对进行海量琐碎数据传输的场景尤其适用。
在本发明中使用共享内存技术进行缓冲区映射发送客户端可直接将待发数据通过访问接口存入缓冲区,避免了其他IPC机制(如Socket、消息队列等)造成的二次消耗。在其他IPC机制中发送客户端需要将数据通过数据通道发至核心服务的缓冲区管理模块,再由缓冲区管理模块待为存入缓冲区,整个过程中涉及到两次(或以上)数据拷贝,影响处理性能。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种支持多进程的高性能单向传输的方法流程示意图;
图2是本发明实施例提供的一种给多个客户端分配前台缓冲区的架构示意图;
图3是本发明实施例提供的一种示例性架构示意图;
图4是本发明实施例提供的一种内容共享管理架构示意图;
图5是本发明实施例提供的一种支持多进程的高性能单向传输的方法流程示意图;
图6是本发明实施例提供的一种支持多进程的高性能单向传输的装置结构示意图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本专利所述方案的适用条件必须满足:
数据传输对数据包时序不敏感。
仅需单向海量数据传输而无需进行业务面应答的场景。
对数据包发送时延的容忍度在100ms及以上的场景。
实施例1:
本发明实施例1提供了本发明提供了一种支持多进程的高性能单向传输的方法,建立共享内容空间,所述共享内存空间被划分为至少两个前台缓冲区和至少一个后台缓冲区,其中,所述前台缓冲区设置为客户端可访问,所述后台缓冲区设置为客户端不可访问。如图1所示,方法包括:
在步骤201中,接收一个或者多个客户端的发送数据请求,为所述客户端分配前台缓冲区进行发送数据的临时存储。
其中,一个或者多个客户端的发送数据请求可以是表现为时序上存在前后关系,也可以是表现为一种并发产生的形式。此处表述的临时存储是因为其存储的目的就是为了后续步骤中的发送出去,因此作临时存储表述。
如图2所示,为给多个客户端分配前台缓冲区的架构示意图,从图中可以看到,缓冲区管理在确定两个客户端具有相似数据对象和/或相似数据传输特性的情况下,可以将两者分配给同一前台缓冲区(如图2中发送客户端2和发送客户端3所示)。其中,相似数据传输特性包括数据传输速度、数据总量大小等等。
在步骤202中,扫描各个前台发送缓冲区以确定是否满足发送要求;当前台缓冲区满足发送标准时,对缓冲区进行加锁。
在步骤203中,前台缓冲区在进行加锁操作后,与处于空闲状态的后台缓冲区进行标识替换,使得所述加锁操作后的前台缓冲区转换为后台缓冲区,被替换标识后的所述处于空闲状态的后台缓冲区成为客户端可访问的前台缓冲区。
在本发明实施例中,所述的客户端可访问的前台缓冲区可以是表现为用户可见的方式,即客户端侧可以看到当前的前台缓冲区状态;而另一种形式则表现为客户不可见的方式,即由专门的缓冲区管理程序负责对接客户端,而所述的客户端可访问则表现为客户端可向缓冲区管理程序发送数据请求,并完成相应数据在被分配的前台缓冲区上的临时存储。
在步骤204中,所述加锁操作后的前台缓冲区转换为后台缓冲区后,完成所述发送操作。
其中,完成所述发送操作,表现为各个数据包在所述前端缓冲区进行合并,并在前台缓冲区满足发送标准时,提交给系统TCP协议栈发送到目的端。
如图3所示,为本发明实施例为上述方法提供的一种示例性架构示意图;其中,操作系统中执行着缓冲区管理、调度管理、连接管理、发送管理,分别对应着上述各步骤中相关的方法功能,需要指出的是上述的管理模块的划分仅仅是为了架构上呈现的直观,实际实现时各功能模块可以表现为相应可相互调用的线程或者进程,在此不做过多赘述。
本发明提出了一种基于共享内存技术、用户态缓冲区和多缓冲压力均衡模式的高性能单向传输方法。此方法适用于大多数依赖高速以太网络进行单向数据传输的系统,并且对进行海量琐碎数据传输的场景尤其适用。
在本发明中使用共享内存技术进行缓冲区映射发送客户端可直接将待发数据通过访问接口存入缓冲区,避免了其他进程间通信(Inter-Process Communication,简写为:IPC)(如Socket、消息队列等)造成的二次消耗。在其他IPC机制中发送客户端需要将数据通过数据通道发至核心服务的缓冲区管理模块,再由缓冲区管理模块待为存入缓冲区,整个过程中涉及到两次(或以上)数据拷贝,影响处理性能。
现有技术中,操作系统的TCP协议栈本身已经支持发送缓冲区功能,即会将大量小包进行合并后一次性发出。将数据包提交到系统TCP协议栈需要进行系统调用才能实现,而在小包量极大情况下频繁进行系统调用会造成CPU压力增大性能急剧下降,最终造成网络数据传输吞吐量骤减。
为了增加传输吞吐量降低系统压力就必须减少系统调用,本发明通过在用户态实现自身的缓冲区达到此目的。大量的小包在此缓冲区进行合并达到一定的阈值后再通过系统调用一次性提交给系统TCP协议栈。
为提高发送系统的灵活性,必须保证发送端数量可动态伸缩。发送端数量可伸缩即核心服务启动后根据实际需求可随时启动或关闭多个进程/线程,发送端可以连接到当前发送服务后将可将待发数据提交给核心发送服务。
核心服务将发送缓冲区通过共享内存技术实现,并由缓冲区管理模块对每个缓冲区的系统唯一标示进行管理。如图4所示,客户端可通过本系统提供的客户端API连接到核心服务,与核心服务中的缓冲区实现地址映射。
多进程对缓冲区的访问需要进行加锁操作,即同一时间只有一个进程能对缓冲区进行读写。当发送客户端数量达到一定的量级时抢锁会消耗大量的性能造成数据吞吐量的急剧下降。结合本发明实施例,还存在一种优选的扩展方案,以改善上述情况,前台缓冲区被分配给客户端后,在所述前台缓冲区进入加锁操作的同时,客户端进入加锁等待状态,则前台缓冲区在进行加锁操作后,与处于空闲状态的后台缓冲区进行标识替换后,所述方法还包括:
所述客户端从加锁等待状态切换为自由状态;其中,所述自由状态为所述客户端允许发送新一轮的发送数据请求。
不同的发送客户端经过缓冲区管理功能进行缓冲区映射,从而达到不同进程提交待发数据时尽量被分配到不同的缓冲区。缓冲区管理器可通过全局的轮巡计数器实现缓冲区分配,也可以根据发送客户端的PID以及接入时间进行组合计算散列值。为保证前台缓冲区的压力可以负载均衡,通过轮训方式进行缓冲区分配时应该进行事物级重分配(一次数据提交被称为一次事物),而不能实现客户端实例级的轮训分配。
在本发明实施例中所涉及的前台缓冲区满足发送标准,具体包括:
前台缓冲区中存储的数据包占整个缓冲区的空间达到第一预设阈值,和/或客户端传输过来的数据包时间间隔超过第二预设阈值。上述两个条件可以同时使用(包括达到任意一条便满足发送标准方式,或者,要两条都达到才满足发送标准方式),也可以择一使用;优选的是采用上述的达到任意一条便满足发送标准方式,其更契合实际使用情况。
为了保证缓冲区的利用率率和发送延迟能达到一个适合具体使用场景的平衡,对缓冲区是否满足发送要求的判断不能仅仅通过时延或仅仅通过使用率作为标准。
1)仅用使用率作为标准的弊端。如果使用率达到N才进行发送则低流量场景下每个缓冲区的发送时延会极大,在很多系统中会造成接收端的严重逻辑问题。
2)仅用使用超时时间为标准的弊端。高流量场景下很多缓冲区会快速用尽,造成发送客户端无空闲缓冲区可用,从而造成严重丢包。
为了更灵活的控制发送时延和利用率本系统设计为支持区分使用率进行发送延迟设置。如当某个前台缓冲区使用率达到95%时会立即发送,当使用率达到75%时如果500毫秒内没有向我提交数据则会发送,当使用率达到50%时如果2秒内没有向我提交数据则会发送。
以下为经过测试的适用电信运营商原始数据包发送的延迟设置:
序号 使用率 延迟
1 大于等于90% 0ms
2 大于等于75% 500ms
3 大于等于50% 1s
4 小于50% 2s
第一预设阈值为90%时,所述第二预设阈值为0ms;
第一预设阈值为75%时,所述第二预设阈值为500ms;
第一预设阈值为50%时,所述第二预设阈值为1s;
第一预设阈值为0时,所述第二预设阈值为2s。
结合本发明实施例,考虑到不同的应用场景、不同的时间节点上,客户终端的发送数据请求的数量和满足发送条件需要进行数据发送的数量之间关系通常是存在动态变换的,例如:某一时刻客户终端的发送数据请求量较大,此时前台缓冲区的压力会较大,而此时相对的后台缓冲区的压力反而不大时,基于本发明接下来提出的优选方案便可以很好的改善上述情况可能产生的发送请求响应不及时或者响应处理数据拥塞为题,具体改进方法如下:
轮询当前共享内存空间中的有前台缓冲区和后台缓冲区,若当前工作状态中前台缓冲区被分配给各客户端的总量占比超过第三阈值,而所述后台缓冲区的被占用的量小于第四阈值,则选择所述后台缓冲区中处于空闲状态的指定对象,直接将其标识修改为前台缓冲区。
在具体改善方法中,除了上述调度后台缓冲区作为前天缓冲区的方式外,还可以采用下面所描述的方式进行调整;需要说明的是,两种方式都可以用于改善上面所介绍的某一时刻客户终端的发送数据请求量较大,此时前台缓冲区的压力会较大,而此时相对的后台缓冲区的压力反而不大情况。而两者也可以以一种组合方案的形式存在,例如:在上述情况严重性不大情况下,可以采用下面的方式,而在严重性较大情况下可以采用上面种方式,或者两种方式的组合。相比较上面介绍的直接将其标识修改为前台缓冲区方式的另一种方式阐述如下:
轮询当前共享内存空间中的所有前台缓冲区和后台缓冲区,若当前工作状态中前台缓冲区被分配给各客户端的总量占比超过第三阈值,而所述后台缓冲区的被占用的量小于第四阈值,选择前台缓冲区中存储的数据包占整个缓冲区的空间接近第一预设阈值,和/或客户端传输过来的数据包时间间隔接近第二预设阈值的一个或者多个前台缓冲区,并将所述选择出的一个或者多个前台缓冲区和相应空闲的后台缓冲区进行对换,完成发送操作。
所述方法应用场景包括,数据传输对数据包时序不敏感、仅需单向海量数据传输而无需进行业务面应答的场景和/或对数据包发送时延的容忍度在大于等于100ms的场景。
实施例2:
本发明实施例从另一个角度描述了本发明方案的实现过程,所述接收一个或者多个客户端的发送数据请求,为所述客户端分配前台缓冲区进行发送数据的临时存储,如图5所示,具体包括:
在步骤301中,当发送客户端申请一个缓冲区时缓冲区管理器通过算法选出一个前台缓冲区使用。
在步骤302中,发送管理线程无锁扫描所有前台缓冲区,发现某个前台缓冲区达到发送标准时通过缓冲管理器用后台缓冲区替换此前台缓冲区,此时两个缓冲区角色互换。
在步骤303中,发送管理器讲新的后台缓冲区数据通过网络发送,然后继续无锁扫描所有前台缓冲区,完成循环处理。
本发明提出了一种基于共享内存技术、用户态缓冲区和多缓冲压力均衡模式的高性能单向传输方法。此方法适用于大多数依赖高速以太网络进行单向数据传输的系统,并且对进行海量琐碎数据传输的场景尤其适用。
在本发明中使用共享内存技术进行缓冲区映射发送客户端可直接将待发数据通过访问接口存入缓冲区,避免了其他进程间通信(Inter-Process Communication,简写为:IPC)(如Socket、消息队列等)造成的二次消耗。在其他IPC机制中发送客户端需要将数据通过数据通道发至核心服务的缓冲区管理模块,再由缓冲区管理模块待为存入缓冲区,整个过程中涉及到两次(或以上)数据拷贝,影响处理性能。
本发明实施例同样适用于实施例1方案中所阐述的各种扩展/优选方案,在此不再赘述。
实施例3:
如图6所示,是本发明实施例的支持多进程的高性能单向传输的装置的架构示意图。本实施例的支持多进程的高性能单向传输的装置包括一个或多个处理器21以及存储器22。其中,图6中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图6中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的支持多进程的高性能单向传输的方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行支持多进程的高性能单向传输的方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的支持多进程的高性能单向传输的方法,例如,执行以上描述的图1和图5所示的各个步骤。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种支持多进程的高性能单向传输的方法,其特征在于,建立共享内容空间,所述共享内存空间被划分为至少两个前台缓冲区和至少一个后台缓冲区,其中,所述前台缓冲区设置为客户端可访问,所述后台缓冲区设置为客户端不可访问,方法包括:
接收一个或者多个客户端的发送数据请求,为所述客户端分配前台缓冲区进行发送数据的临时存储;
扫描各个前台发送缓冲区以确定是否满足发送要求;当前台缓冲区满足发送标准时,对缓冲区进行加锁;
前台缓冲区在进行加锁操作后,与处于空闲状态的后台缓冲区进行标识替换,使得所述加锁操作后的前台缓冲区转换为后台缓冲区,被替换标识后的所述处于空闲状态的后台缓冲区成为客户端可访问的前台缓冲区;
所述加锁操作后的前台缓冲区转换为后台缓冲区后,完成所述发送操作;
轮询当前共享内存空间中的所有前台缓冲区和后台缓冲区,若当前工作状态中前台缓冲区被分配给各客户端的总量占比超过第三阈值,而所述后台缓冲区的被占用的量小于第四阈值,则选择所述后台缓冲区中处于空闲状态的指定对象,直接将其标识修改为前台缓冲区。
2.根据权利要求1所述的支持多进程的高性能单向传输的方法,其特征在于,前台缓冲区被分配给客户端后,在所述前台缓冲区进入加锁操作的同时,客户端进入加锁等待状态,则前台缓冲区在进行加锁操作后,与处于空闲状态的后台缓冲区进行标识替换后,所述方法还包括:
所述客户端从加锁等待状态切换为自由状态;其中,所述自由状态为所述客户端允许发送新一轮的发送数据请求。
3.根据权利要求1所述的支持多进程的高性能单向传输的方法,其特征在于,前台缓冲区满足发送标准,具体包括:
前台缓冲区中存储的数据包占整个缓冲区的空间达到第一预设阈值,和/或客户端传输过来的数据包时间间隔超过第二预设阈值。
4.根据权利要求3所述的支持多进程的高性能单向传输的方法,其特征在于,在所述前台缓冲区满足发送标准为满足前台缓冲区中存储的数据包占整个缓冲区的空间达到第一预设阈值和客户端传输过来的数据包时间间隔超过第二预设阈值中的任意一项时,所述第一预设阈值和第二预设阈值的组合包括:
第一预设阈值为90%时,所述第二预设阈值为0ms;
第一预设阈值为75%时,所述第二预设阈值为500ms;
第一预设阈值为50%时,所述第二预设阈值为1s;
第一预设阈值为0时,所述第二预设阈值为2s。
5.根据权利要求3所述的支持多进程的高性能单向传输的方法,其特征在于,完成所述发送操作,具体包括:
各个数据包在所述前台缓冲区进行合并,并在前台缓冲区满足发送标准时,提交给系统TCP协议栈发送到目的端。
6.根据权利要求1所述的支持多进程的高性能单向传输的方法,其特征在于,所述方法还包括:
轮询当前共享内存空间中的所有前台缓冲区和后台缓冲区,若当前工作状态中前台缓冲区被分配给各客户端的总量占比超过第三阈值,而所述后台缓冲区的被占用的量小于第四阈值,选择前台缓冲区中存储的数据包占整个缓冲区的空间接近第一预设阈值,和/或客户端传输过来的数据包时间间隔接近第二预设阈值的一个或者多个前台缓冲区,并将所述选择出的一个或者多个前台缓冲区和相应空闲的后台缓冲区进行对换,完成发送操作。
7.根据权利要求1所述的支持多进程的高性能单向传输的方法,其特征在于,所述方法应用场景包括:
数据传输对数据包时序不敏感、仅需单向海量数据传输而无需进行业务面应答的场景和/或对数据包发送时延的容忍度在大于等于100ms的场景。
8.一种支持多进程的高性能单向传输的装置,其特征在于,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行权利要求1-7任一所述的支持多进程的高性能单向传输的方法。
CN201911405964.3A 2019-12-31 2019-12-31 一种支持多进程的高性能单向传输的方法和装置 Active CN111131081B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911405964.3A CN111131081B (zh) 2019-12-31 2019-12-31 一种支持多进程的高性能单向传输的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911405964.3A CN111131081B (zh) 2019-12-31 2019-12-31 一种支持多进程的高性能单向传输的方法和装置

Publications (2)

Publication Number Publication Date
CN111131081A CN111131081A (zh) 2020-05-08
CN111131081B true CN111131081B (zh) 2022-12-23

Family

ID=70506392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911405964.3A Active CN111131081B (zh) 2019-12-31 2019-12-31 一种支持多进程的高性能单向传输的方法和装置

Country Status (1)

Country Link
CN (1) CN111131081B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913965B (zh) * 2020-08-03 2024-02-27 北京吉威空间信息股份有限公司 一种面向空间大数据缓冲区分析的方法
CN112506676B (zh) * 2020-12-02 2024-04-05 深圳市广和通无线股份有限公司 进程间的数据传输方法、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2045973A1 (en) * 2007-10-02 2009-04-08 Deutsche Thomson OHG A memory buffer system and method for operating a memory buffer system for fast data exchange
CN106657365A (zh) * 2016-12-30 2017-05-10 清华大学 一种基于rdma的高并发数据传输方法
CN106909460A (zh) * 2017-01-24 2017-06-30 广东德诚网络科技有限公司 数据缓冲方法、装置及存储介质
CN110083468A (zh) * 2019-05-05 2019-08-02 Oppo广东移动通信有限公司 一种数据传输方法、电子装置和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2045973A1 (en) * 2007-10-02 2009-04-08 Deutsche Thomson OHG A memory buffer system and method for operating a memory buffer system for fast data exchange
CN106657365A (zh) * 2016-12-30 2017-05-10 清华大学 一种基于rdma的高并发数据传输方法
CN106909460A (zh) * 2017-01-24 2017-06-30 广东德诚网络科技有限公司 数据缓冲方法、装置及存储介质
CN110083468A (zh) * 2019-05-05 2019-08-02 Oppo广东移动通信有限公司 一种数据传输方法、电子装置和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种高性能环形缓冲区的研究与实现;姚章俊,陈蜀宇,卢尧;《计算机工程》;20120430;全文 *

Also Published As

Publication number Publication date
CN111131081A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
CN111580995B (zh) 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与系统
WO2020019743A1 (zh) 流量控制方法及装置
CN109697122B (zh) 任务处理方法、设备及计算机存储介质
US10686728B2 (en) Systems and methods for allocating computing resources in distributed computing
CN111131081B (zh) 一种支持多进程的高性能单向传输的方法和装置
US20110274117A1 (en) Bandwith allocation method and routing device
US8539089B2 (en) System and method for vertical perimeter protection
CN109802895B (zh) 数据处理系统、方法及令牌管理方法
CN112631788B (zh) 数据传输方法及数据传输服务器
CN111404931B (zh) 一种基于持久性内存的远程数据传输方法
CN111107586A (zh) 一种bbu前传数据的处理方法及系统
US11316916B2 (en) Packet processing method, related device, and computer storage medium
CN109002364A (zh) 进程间通信的优化方法、电子装置以及可读存储介质
CN106789099B (zh) 基于pcie的高速隔离网络方法及终端
US9985902B2 (en) Method and system for providing deterministic quality of service for communication devices
CN111586140A (zh) 一种数据交互的方法及服务器
CN112799811B (zh) 一种边缘网关的高并发线程池任务调度方法
US20240106763A1 (en) Device and method for controlling traffic transmission/reception in network end terminal
CN107819764B (zh) 面向c-ran的数据分发机制的演进方法
US6625149B1 (en) Signaled receiver processing methods and apparatus for improved protocol processing
CN114911632B (zh) 一种进程间通信的控制方法和系统
CN109257227B (zh) 数据传输中的偶联管理方法、装置及系统
CN110661731A (zh) 一种报文处理方法及其装置
US7583678B1 (en) Methods and apparatus for scheduling entities using a primary scheduling mechanism such as calendar scheduling filled in with entities from a secondary scheduling mechanism
CN111737176B (zh) 一种基于pcie数据的同步装置及驱动方法

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