管理数据缓冲的方法、应用及计算设备技术

技术编号:14405091 阅读:106 留言:0更新日期:2017-01-11 16:45
本发明专利技术公开了管理数据缓冲的方法、应用及计算设备。其中,管理数据缓冲的应用适于驻留在计算设备中。该应用包括数据分配单元和多个目标处理单元。数据分配单元包括:数据缓冲区、位置信息存储区、接收模块和分配模块。接收模块适于依次接收包含控制字段和数据字段的原始数据包,将每个原始数据包中数据字段存储为数据缓冲区中一个精简数据包,并且将该精简数据包的开始地址和数据长度存储为位置信息存储区中位置信息。分配模块基于位置信息,依次读取数据缓冲区中精简数据包,分析并选定对应于同一个目标处理单元且连续存储的至少一个精简数据包,以便将该至少一个精简数据包转存到所对应的目标处理单元。

【技术实现步骤摘要】

本专利技术涉及互联网领域,尤其涉及管理数据缓冲的方法、应用及计算设备
技术介绍
随着互联网技术的进步,大量数据被越来越多应用在各领域中。相应地,许多计算设备(例如,应用服务器)需要对大量数据进行处理或转发。例如,缓冲并转发大量数据的应用通常包括一个转发单元和多个目标单元。转发单元首先接收来自本地或者网络的数据包,然后将每个数据包转存到相应的目标单元。目标单元通常配置有缓冲区。缓冲区通常被实现为循环链表结构。转发单元通常将包含控制字段和数据字段的数据包存储到缓冲区。目标单元可以基于链表结构依次读取缓冲区中每个数据包,然后根据预定应用逻辑进行数据处理或转发。然而,现有的缓存并转发数据应用的性能有待提高。为此,本专利技术提出了一种新的管理数据缓冲的技术方案。
技术实现思路
为此,本专利技术提供一种新的管理数据缓冲的技术方案,有效的解决了上面至少一个问题。根据本专利技术的一个方面,提供一种管理数据缓冲的应用,适于驻留在计算设备中。该应用包括数据分配单元和多个目标处理单元。其中,数据分配单元包括:数据缓冲区、位置信息存储区、接收模块和分配模块。接收模块适于依次接收包含控制字段和数据字段的原始数据包,将每个原始数据包中数据字段存储为数据缓冲区中一个精简数据包,并且将该精简数据包在数据缓冲区中开始地址和数据长度存储为位置信息存储区中对应该精简数据包的位置信息。分配模块基于位置信息存储区中位置信息,依次读取数据缓冲区中精简数据包,分析并选定对应于同一个目标处理单元且连续存储的至少一个精简数据包,以便将该至少一个精简数据包转存到所对应的目标处理单元。可选地,在根据本专利技术的管理数据缓冲的应用中,目标处理单元包括循环缓冲区、索引存储区、空间管理模块和处理模块。空间管理模块适于判断循环缓冲区中剩余存储空间是否小于该至少一个精简数据包的长度。在不小于该至少一个精简数据包的长度时,指示分配模块将该至少一个精简数据包写入循环缓冲区中。空间管理模块还适于将所写入到循环缓冲区中每一个精简数据包的存储位置生成为索引存储区中一个位置索引项。处理模块适于根据索引存储区中位置索引项读取循环缓冲区中精简数据包并处理。可选地,在根据本专利技术的管理数据缓冲的应用中,在循环缓冲区中剩余存储空间小于该至少一个精简数据包的长度时,空间管理模块还适于根据索引存储区中位置索引项,依次释放未读取的精简数据包所占用存储空间并更新所述环形缓存区的剩余存储空间,直到剩余存储空间不小于该至少一个精简数据包的长度,以便分配模块将该至少一个精简数据包写入循环缓冲区。可选地,在根据本专利技术的管理数据缓冲的应用中,循环缓冲区包括连续内存区域。该连续内存区域包括首地址、尾地址、沿着首地址到尾地址方向移动的读指针和写指针。其中,读指针指向循环缓冲区中未被所述处理模块读取的精简数据包中一个。写指针指向循环缓冲区中待覆盖区域的开始位置。可选地,在根据本专利技术的管理数据缓冲的应用中,空间管理模块适于根据下述方式判断循环缓冲区中剩余存储空间是否小于该至少一个精简数据包的长度:判断所述写指针是否超过所述读指针的位置;在未超过读指针的位置时,判断读指针和所述写指针之间空间是否小于所述至少一个精简数据包的长度;在超过读指针的位置时,判断写指针与尾地址之间空间是否小于至少一个精简数据包的长度。可选地,在根据本专利技术的管理数据缓冲的应用中,在读指针和写指针之间空间未小于至少一个精简数据包的长度时,分配模块将该至少一个精简数据包写入到所述循环缓冲区中。在读指针和写指针之间空间小于至少一个精简数据包的长度时,空间管理模块还适于根据索引存储区中未读取精简数据包的位置索引项,依次释放未读取精简数据包的占用空间并更新读指针,直到写指针与读指针之间空间不小于至少一个精简数据包的长度或者读指针到达所述尾地址。可选地,在根据本专利技术的管理数据缓冲的应用中,在读指针到达尾地址且当前读指针与写指针之间空间小于所述至少一个精简数据包的长度时,分配模块还适于将至少一个精简数据包的一部分写入到写指针和尾地址之间的空间。空间管理模块还适于继续释放未读取的精简数据包的占用空间并更新读指针,直到首地址到读指针之间的空间不小于至少一个精简数据包中未写入的部分,以便分配模块将该未写入的部分写入到首地址与读指针之间的空间。可选地,在根据本专利技术的管理数据缓冲的应用中,在写指针与尾地址之间空间未小于所述至少一个精简数据包的长度时,分配模块适于将该至少一个精简数据包写入到循环缓冲区中。在写指针与尾地址之间空间小于至少一个精简数据包的长度时,分配模块将该至少一个精简数据包的一部分写入到当前写指针与尾地址之间的空间。空间管理模块还适于判断首地址到读指针之间的空间是否小于该至少一个精简数据包的剩余长度。在首地址到读指针之间的空间不小于该至少一个精简数据包的剩余长度时,分配模块将该至少一个精简数据包的剩余部分写入到首地址与读指针之间的空间。在首地址到读指针之间的空间小于该至少一个精简数据包的剩余长度时,空间管理模块还适于根据所述索引存储区中对应未读取精简数据包的位置索引项,依次释放未读取精简数据包的占用空间并更新读指针,直到首地址与读指针之间空间不小于至少一个精简数据包的剩余长度,以便分配模块将该至少一个精简数据包的剩余部分写入到首地址与读指针之间。可选地,在根据本专利技术的管理数据缓冲的应用中,空间管理模块适于根据下述方式执行释放所述未读取精简数据包的占用空间并更新读指针的操作:删除所述未读取精简数据包在所述索引存储区中对应的位置索引项;将读指针更新为指向下一个未读取精简数据包。可选地,在根据本专利技术的管理数据缓冲的应用中,位置索引项包括其所指向的精简数据包在循环缓冲区中的开始地址和数据长度。读指针的值为该读指针所指向的精简数据包所对应的位置索引项中开始地址。可选地,在根据本专利技术的管理数据缓冲的应用中,处理模块适于根据下述方式执行根据索引存储区中位置索引项读取循环缓冲区中精简数据包并处理:根据索引存储区中位置索引项读取循环缓冲区中所有未读取的精简数据包;转发从循环缓冲区读取到的精简数据包,或者根据预定应用逻辑处理所读取的精简数据包。可选地,在根据本专利技术的管理数据缓冲的应用中,精简数据包具有分配标识信息。分配模块适于根据下述方式依次读取数据缓冲区中精简数据包,分析并选定连续存储且对应同一个目标处理单元的至少一个精简数据包:依次读取所述数据缓冲区中精简数据包;根据每个精简数据包的分配标识信息来确定其对应的目标处理单元;选定对应同一个目标处理单元且连续存储的至少一个精简数据包。可选地,在根据本专利技术的管理数据缓冲的应用中,处理模块还适于删除已读取的精简数据包在索引存储区中对应的位置索引项。分配模块还适于在将至少一个精简数据包写入到对应的目标处理单元的循环缓冲区之后,通知所对应的目标处理单元的处理模块,以便该处理模块执行读取和处理的操作。根据本专利技术的又一个方面,提供一种管理数据缓冲的方法,适于在计算设备中执行。该计算设备包括数据分配单元和多个目标处理单元。该数据分配单元包括数据缓冲区和位置信息存储区。该数据分配单元执行下述步骤:依次接收包含控制字段和数据字段的原始数据包。将每个原始数据包中数据字段存储为数据缓冲区中一个精简数据包。将该精简数据包在数据缓冲区中开始地址和数据长本文档来自技高网...
管理数据缓冲的方法、应用及计算设备

【技术保护点】
一种管理数据缓冲的应用,适于驻留在计算设备中,该应用包括数据分配单元和多个目标处理单元,其中,数据分配单元包括:数据缓冲区;位置信息存储区;接收模块,适于依次接收包含控制字段和数据字段的原始数据包,将每个原始数据包中数据字段存储为数据缓冲区中一个精简数据包,并且将该精简数据包在数据缓冲区中开始地址和数据长度存储为位置信息存储区中对应该精简数据包的位置信息;和分配模块,基于位置信息存储区中位置信息,依次读取数据缓冲区中精简数据包,分析并选定对应于同一个目标处理单元且连续存储的至少一个精简数据包,以便将该至少一个精简数据包转存到所对应的目标处理单元。

【技术特征摘要】
1.一种管理数据缓冲的应用,适于驻留在计算设备中,该应用包括数据分配单元和多个目标处理单元,其中,数据分配单元包括:数据缓冲区;位置信息存储区;接收模块,适于依次接收包含控制字段和数据字段的原始数据包,将每个原始数据包中数据字段存储为数据缓冲区中一个精简数据包,并且将该精简数据包在数据缓冲区中开始地址和数据长度存储为位置信息存储区中对应该精简数据包的位置信息;和分配模块,基于位置信息存储区中位置信息,依次读取数据缓冲区中精简数据包,分析并选定对应于同一个目标处理单元且连续存储的至少一个精简数据包,以便将该至少一个精简数据包转存到所对应的目标处理单元。2.如权利要求1所述的应用,其中,所对应的目标处理单元包括:循环缓冲区;索引存储区;空间管理模块,适于:判断循环缓冲区中剩余存储空间是否小于该至少一个精简数据包的长度,在不小于该至少一个精简数据包的长度时,指示所述分配模块将该至少一个精简数据包写入循环缓冲区中,将所写入到循环缓冲区中每一个精简数据包的存储位置生成为索引存储区中一个位置索引项;处理模块,适于根据索引存储区中位置索引项读取循环缓冲区中精简数据包并处理。3.如权利要求2所述的应用,其中,在所述循环缓冲区中剩余存储空间小于该至少一个精简数据包的长度时,所述空间管理模块还适于:根据索引存储区中、关于循环缓冲区中已存储的精简数据包的位置索引项,依次释放未读取的精简数据包所占用存储空间并更新所述环形缓存区的剩余存储空间,直到剩余存储空间不小于该至少一个精简数据包的长度,以便所述分配模块将该至少一个精简数据包写入循环缓冲区。4.如权利要求2或3所述的应用,其中,所述循环缓冲区包括:连续内存区域,该连续内存区域包括首地址和尾地址;沿着首地址到尾地址方向移动的读指针和写指针,其中,读指针指向所述循环缓冲区中未被所述处理模块读取的精简数据包中一个,写指针指向所述循环缓冲区中待覆盖区域的开始位置。5.如权利要求2-4中任一项所述的应用,其中,所述空间管理模块适于根据下述方式判断循环缓冲区中剩余存储空间是否小于该至少一个精简数据包的长度:判断所述写指针是否超过所述读指针的位置;在未超过读指针的位置时,判断所述读指针和所述写指针之间空间是否小于所述至少一个精简数据包的长度;在超过读指针的...

【专利技术属性】
技术研发人员:张春利高鑫何冰清张金磊张炜刘红军刘盼盼王国伟杜中原杨鹏杨康李俊成李世伟
申请(专利权)人:北京蓝海讯通科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1