一种面向结构化流式数据的缓存方法及系统技术方案

技术编号:32430037 阅读:14 留言:0更新日期:2022-02-24 18:39
本发明专利技术公开了一种面向结构化流式数据的缓存方法及系统,所述方法包括:根据待接收的结构化流式数据的类型与长度,采用不同的预分配方式设定缓存空间;其中,当数据为定长数据时预分配定长的缓存空间;当数据为不定长数据时预分配变长的缓存空间或复合缓存空间;接收结构化流式数据,当数据为定长数据时,将结构化流式数据存储到预分配的定长缓存空间;当数据为不定长数据时,根据接收的结构化流式数据的实际长度对预先分配的缓存空间进行动态扩容直到该结构化流式数据存储完毕。本发明专利技术从根本上解决了定长缓存空间可能面临的溢出问题,同时变长缓存机制的应用也极大地节约了存储空间,兼顾了内存资源优化与缓存性能的需求。兼顾了内存资源优化与缓存性能的需求。兼顾了内存资源优化与缓存性能的需求。

【技术实现步骤摘要】
一种面向结构化流式数据的缓存方法及系统


[0001]本专利技术属于信息
,尤其涉及一种面向结构化流式数据的缓存方法及系统。

技术介绍

[0002]在网络审计工作中,面对的网络流量,往往可以达到10Gbps以上,以此产生的监控和审计的结果数据是十分巨大的,处理TB级网络日志数据已经不是一个罕见的情形。在这样的背景下,监控和审计产生的结果数据的组织和管理效率也会成为一个网络数据分析系统性能的瓶颈。在本专利技术所涉及的应用场景中,网络审计应用程序会采集网络中的流量数据,分析、统计、监视网络流量中包含的多种信息,针对感兴趣的部分输出分析结果。这些分析结果以数据形式按照一定的格式输出,随着程序处理的网络流量的不断增长,应用的输出源源不断的产生,如何高效地对待输出数据进行缓存管理是本专利技术所关心的应用场景。
[0003]在该应用场景中,核心要素是网络审计应用程序所产生的结果数据,结合具体场景与实践操作,我们可以总结并说明这类数据的特性。首先,审计程序的输入和输出有着一定的对应关系,在时间层面上,由于作为应用程序输入网络流量数据具有流式特性,与输入对应的输出数据也具有实时、顺序、大量、快速、连续到达的流式特性。其次,网络流量内容有着内在联系,应用程序解析网络流量时,按照网络流量的五元组属性,即源/目的地址、源/目的端口以及协议类别,将网络数据包划分为不同的网络流,同属一个网络流的网络数据包,从中解析的到的审计数据高度的相关性;同时,对于特定类别的网络流,审计应用程序解析得到的数据有着确定的类别,例如,对于HTTP协议流量,审计程序往往会解析这条流对应的mac地址、ip地址、端口号、http协议版本、服务器/客户端版本、客户端方法、URL、Host、cookie、相应内容等数据,这些数据会以字段的形式输出。对于特定类型的网络流,解析得到的输出数据有着确定的类别,各类别数据之间有着确定的关系,输出数据的类别是可以通过应用程序定义的,因此该应用场景下的输出数据同时具有结构化特性。这种作为网络审计应用程序输出的数据,即具有流式特性,也有着结构化特性,因此称之为结构化流式数据。
[0004]结构化流式数据具有实时、大量、连续到达的特性,需要根据其结构化特征进行整理、缓存并使用批处理的方式保存至磁盘文件或是数据库之中。而如何缓存结构化流式数据,便是本专利技术所解决的问题。结合具体实践,可以将结构化流式数据分为两类,一类数据有着固定长度,例如解析HTTP流量得到的各类数据中,MAC字段数据长度固定为48位(6字节),该类数据的缓存较为简单,只需划分足够的缓存空间即可。而对于长度并不固定的另一类数据,又可以分为两类,一类是长度完全不可预知的数据,例如数据库协议的响应数据字段;另一类则是理论上没有固定的长度,但在实际操作中往往有一个典型的阈值,例如同样是来自HTTP流量,URL字段数据则可长可短,尽管在实践中,各个客户端或服务器自行限制了URL字段的长度,但HTTP协议中没有对URL长度做出限制。在缓存这类长度不确定的数据时,就会遇到各种问题。长度不确定的结构化流式数据有着流式特性,长度不可预知,使
用传统的定长缓存空间可能导致溢出,而将数据截断则造成了信息的丢失,单纯使用定长缓存无法解决变长结构化流式数据的缓存问题,只能通过对扩大定长缓存空间来减小溢出的概率,但从另一方面来看,这会造成内存资源的浪费。
[0005]对于不定长内容缓存问题,现有的专利技术提出的解决方案如下:
[0006]参考文献[1](申请号201310631997.6、专利《一种变长数据的存储方法与装置》)中,提出了一种使用连续缓存空间储存变长TLV结构的方法,该方法首先申请了足够大的连续缓存空间,然后使用该空间缓存变长数据,当新的变长数据到达后,则会判断现有剩余空间能否满足新数据的需求,空间不足则会申请新的缓存空间并在原缓存空间标记终止并指向新缓存空间。该专利申请了大块缓存空间以避免空间溢出,但这种方法没有针对缓存内容的类别进行区分处理,同时可能生成内存碎片,对内存资源是一种浪费。
[0007]参考文献[2](申请号201810023778.2、专利《一种基于网络编码的变长数据段的写入方法及读取方法》)利用了分布式文件系统的特点,将变长数据切分为多个定长数据块进行多地点的编码储存。这种方法同样没有对数据进行区分化处理,同时截断数据的方法不能满足数据缓存的性能需求。
[0008]对于流式数据缓存问题,现有的专利技术提出解决方案如下:
[0009]参考文献[3](申请号201911302664.2、《一种流式数据的缓存方法及装置》)中,提出了针对流式数据长度的抽样预测方法,并没有说明实际缓存方式,与本专利技术侧重点不同。
[0010]参考文献[4](申请号201310741116.6、《一种大规模网络流式数据缓存写入的方法》)中,提出了根据数据来源采用不同的缓存策略,并将满足策略触发条件的数据写入文件、数据库中并定期合并小数据。本专利的侧重点在于缓存输出策略,与本专利技术侧重点不同。

技术实现思路

[0011]本专利技术的目的在于克服现有技术缺陷,提出了一种面向结构化流式数据的缓存方法及系统。
[0012]为了实现上述目的,本专利技术提出了一种面向结构化流式数据的缓存方法,所述方法包括:
[0013]根据待接收的结构化流式数据的类型与长度,采用不同的预分配方式设定缓存空间;其中,当数据为定长数据时预分配定长的缓存空间;当数据为不定长数据时预分配变长的缓存空间或复合缓存空间;
[0014]接收结构化流式数据,当数据为定长数据时,将结构化流式数据存储到预分配的定长缓存空间;当数据为不定长数据时,根据接收的结构化流式数据的实际长度对预先分配的缓存空间进行动态扩容直到该结构化流式数据存储完毕。
[0015]作为上述方法的一种改进,所述当数据为定长数据时预分配定长的缓存空间;具体为:根据定长数据的长度设定连续的内存空间,空间大小等于定长数据的长度,并不可扩容。
[0016]作为上述方法的一种改进,所述不定长数据的类型包括:第一类不定长数据和第二类不定长数据;其中,
[0017]所述第一类不定长数据的长度完全不可预知;
[0018]所述第二类不定长数据的长度90%的概率低于某个长度阈值。
[0019]作为上述方法的一种改进,所述当数据为不定长数据时预分配变长的缓存空间或复合缓存空间;具体为:
[0020]当数据为所述第一类不定长数据时,预分配变长的缓存空间进行存储;
[0021]当数据为所述第二类不定长数据时,预分配定长缓存空间进行存储,该空间大小等于所述长度阈值。
[0022]作为上述方法的一种改进,所述当数据为不定长数据时,根据接收数据的实际长度对预先分配的缓存空间进行动态扩容直到该结构化流式数据存储完毕;具体为:
[0023]对于第一类不定长数据,当监测到实际接收的数据长度和现有的存储空间中已存储的数据长度之和超过现有的存储空间大小时,对变长缓存空间动态扩容;<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向结构化流式数据的缓存方法,所述方法包括:根据待接收的结构化流式数据的类型与长度,采用不同的预分配方式设定缓存空间;其中,当数据为定长数据时预分配定长的缓存空间;当数据为不定长数据时预分配变长的缓存空间或复合缓存空间;接收结构化流式数据,当数据为定长数据时,将结构化流式数据存储到预分配的定长缓存空间;当数据为不定长数据时,根据接收的结构化流式数据的实际长度对预先分配的缓存空间进行动态扩容直到该结构化流式数据存储完毕。2.根据权利要求1所述的面向结构化流式数据的缓存方法,其特征在于,所述当数据为定长数据时预分配定长的缓存空间;具体为:根据定长数据的长度设定连续的内存空间,空间大小等于定长数据的长度,并不可扩容。3.根据权利要求1所述的面向结构化流式数据的缓存方法,其特征在于,所述不定长数据的类型包括:第一类不定长数据和第二类不定长数据;其中,所述第一类不定长数据的长度完全不可预知;所述第二类不定长数据的长度90%的概率低于某个长度阈值。4.根据权利要求3所述的面向结构化流式数据的缓存方法,其特征在于,所述当数据为不定长数据时预分配变长的缓存空间或复合缓存空间;具体为:当数据为所述第一类不定长数据时,预分配变长的缓存空间进行存储;当数据为所述第二类不定长数据时,预分配定长缓存空间进行存储,该空间大小等于所述长度阈值。5.根据权利要求4所述的面向结构化流式数据的缓存方法,其特征在于,所述当数据为不定长数据时,根据接收数据的实际长度对预先分配的缓存空间进行动态扩容直到该结构化流式数据存储完毕;具体为:对于第一类不定长数据,当监测到实际接收的数据长度和现有的存储空间中已存储的数据长度之和超过现有的存储空间大小时,对变长缓存空间动态扩容;对于第二类不定长数据,当监测到实际接收的数据长度和现有的存储空间中已存储的数据长度之和超过长度阈值时,采用动态分配变长的缓存空间替换原有的定长缓存空间,并将原有缓存空间中存储的数据复制到新申请的变长缓存空间中,从而实现缓存空间的动态扩容和缓存空间的切换。6.一种面向结构化流式数据的缓存系统,其特征在于,所述系统包括:存储空间预分配模块和数据接收存储模块;其中,所述存储空间预分配模块,用于根据待接收的结构化流式数据的类型与长度,采用不同的预分配方式设定缓存空间;其中,当数据为定长数...

【专利技术属性】
技术研发人员:吴京洪李逸飞宋磊
申请(专利权)人:北京中科视云科技有限公司
类型:发明
国别省市:

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

1