大容量数据的内存转发方法

文档序号:7602559阅读:503来源:国知局
专利名称:大容量数据的内存转发方法
技术领域
本发明涉及一种计算机技术,尤其是一种大容量数据的转发方法,具体地说是一种大容量数据的内存转发方法。
背景技术
目前,卫星数据转发过程中出现TB级大容量文件(文件总量达TB级且单个文件在( 级)传输而影响卫星文件传输的高时效性需求,而传统的数据传输大多需经过磁盘交换,不仅影响传输速率,而且直接影响了数据的时效性和安全性。

发明内容
本发明的目的是针对现有的大容量文件传输过程中存在的时效性不高的问题,发明一种利用内存直接进行数据转发的大容量数据的内存转发方法以提高传输的时效性和安全性。本发明的技术方案是一种大容量数据的内存转发方法,其特征是它包括以下步骤首先,通过FTP协议将上传的文件保存在内存中;其次,对内存文件识别,获取文件的传输时效及分发用户的信息;第三,对内存文件进行管理,并对外提供统一的内存文件操作接口,同时对内存过载的异常情况进行处理;第四,根据分发用户信息将内存文件转发给多个分发用户,实现一对多的内存转发;如果内存转发失败则进行失败重发,如果是链路断开则将内存文件交由内存文件转发模块自动保存到磁盘,并通过记录的转发失败信息来检测网络连通状态,当链路恢复进,重新将磁盘上的文件加载到内存中,由内存文件转发模块负责重发,直至发出为止;第五,将文件传输的实时状态进行记录并实时展现到Web页面中。 所述的通过FTP协议将上传的文件保存在内存中是指通过基于FTP协议的文件接收实现FTP服务器的功能,响应FTP客户端的所有命令请求,并接收客户端上传的文件,同时调用内存文件管理接口来创建并读写内存文件。所述的内存文件识别是指对接收的内存文件进行文件名识别检查,并通过已定义的配置信息来获取内存文件的属性为内存文件管理功能以及内存文件转发功能提供信息服务。所述的内存文件的属性包括文件的类型、文件的传输时效和文件的分发用户信息。所述的内存文件管理包括内存申请、存放、读取和释放,解决大块连续内存的申请导致的内存碎片,并对外提供统一的内存文件操作接口,同时,对内存过载的异常情况进行处理;解决大块连续内存的申请是通过将接收的文件切割成若干个小的数据块,每个小的数据块单独申请一段连续的内存空间,并记录每个小数据块的内存地址和内存空间大小,以避免大块连续内存的申请;解决内存过载是通过与磁盘进行数据交互实现内存文件的磁盘存储,当内存使用率达到上限阀值时,将内存中传输时效性低的文件进行存盘,当内存使用率低于下限阀值时,再将保存在磁盘中的文件加载到内存中。所述的内存文件转发是指将内存文件转发给多个分发用户,实现内存文件的一对多转发;同时,多个内存文件可以由多个线程来负责转发,这样可以大大提高转发效率,无需读写磁盘,直接从内存转发;分发给多个用户的文件不需要多份拷贝,内存中只要一份即可实现多线程同时分发;当转发给多个分发用户全部成功则关闭内存文件并释放所占的内存空间,当转发出现失败时,记录转发失败信息,并将内存文件存储到磁盘中。所述的实时传输状态监视是通过Web页面来实时监视文件接收和转发的状态信息;通过memcached来缓存实时传输状态信息,并通过Ajax实时将缓存中的数据显示在页面中。本发明的有益效果本发明通过基于FTP协议的内存文件传输,使卫星数据文件不需要落盘而直接通过内存进行转发,解决了大容量卫星数据文件的高时效传输难题,可广泛应用于基于FTP 协议传输的大容量文件转发。本发明可提高数据传输的速率和时效性。


图1是本发明的内存文件接收流程图。图2是本发明的内存文件识别流程图。图3是本发明的内存管理流程图。图4是本发明的内存文件转发流程图。图5是本发明的转发失败处理流程图。图6是本发明的实时状态监视流程图。图7是本发明的卫星数据内存接收处理流程图。
具体实施例方式下面结合附图和实施例对本发明作进一步的说明。如图1-7所示。一种大容量数据的内存转发方法,通过FTP协议将上传的文件保存在内存中(传统的FTP协议将上传的文件保存在磁盘中);对接收的内存文件进行识别,获取文件的传输时效、分发用户等相关信息;对内存中的文件进行管理,并对外提供统一的内存文件操作接口(包括创建、读、写、定位、关闭等操作接口),同时对内存过载的异常情况进行处理;根据分发用户信息将内存文件转发给多个分发用户,实现一对多的内存转发;将文件传输的实时状态信息进行记录并实时展现到Web页面中,整个过程如图7所示。其中基于FTP协议的文件接收是指基于FTP协议的文件接收实现了 FTP服务器的功能,它响应FTP客户端的所有命令请求,并接收客户端上传的文件,同时调用内存文件管理接口来创建并读写内存文件。其实现的原理是通过改写现有的、成熟的、开源的FTP服务程序(pure-ftpd)实现FTP服务器功能,同时对pure-ftpd的部分功能进行修改,将磁盘存储方式改为内存存储方式。如图1 所示。内存文件识别是指内存文件识别实现对接收的内存文件进行文件名识别检查,并通过已定义的配置信息来获取内存文件的相关属性(包括文件的类型、文件的传输时效、文件的分发用户等信息),为内存文件管理功能以及内存文件转发功能提供信息服务。其识别的原理是通过对文件名进行正则表达式的解析,获取文件所属的资料类型,并根据资料类型从配置信息中获取文件的相关属性信息。如图2所示。内存文件管理是指内存文件管理实现文件的内存申请、存放、读取和释放等功能,解决大块连续内存的申请导致的内存碎片,并对外提供统一的内存文件操作接口(包括创建、读、写、定位、关闭等操作)。同时,对内存过载的异常情况进行处理。解决大块连续内存的申请可通过将接收的文件切割成若干个小的数据块,每个小的数据块单独申请一段连续的内存空间,并记录每个小数据块的内存地址和内存空间大小,这样可以避免大块连续内存的申请。解决内存过载可通过与磁盘进行数据交互实现内存文件的磁盘存储,当内存使用率达到上限阀值时,将内存中传输时效性低的文件进行存盘(如果内存中文件的传输时效都相同则将后进入内存的文件保存在磁盘中),当内存使用率低于下限阀值时,将保存在磁盘中的文件加载到内存中。如图6所示。内存文件转发是指内存文件转发负责将内存文件转发给多个分发用户,实现了内存文件的一对多转发。同时,多个内存文件可以由多个线程来负责转发,这样可以大大提高转发效率无需读写磁盘,直接从内存转发;分发给多个用户的文件不需要多份拷贝,内存中只要一份即可; 多线程同时分发。当转发给多个分发用户全部成功则关闭内存文件并释放所占的内存空间,当转发出现失败时,记录转发失败信息,并将内存文件存储到磁盘中。如图7所示。转发失败处理是指转发失败处理负责对内存转发失败的文件进行失败重发,通过记录的转发失败信息来检测网络连通状态,当链路恢复时,重新将磁盘中的相应文件加载到内存中,由内存文件转发模块负责重发。如图5所示。实时传输状态监视是指实时传输状态监视实现通过Web页面来实时监视文件接收和转发的状态信息。其实现的原理是通过memcached来缓存实时传输状态信息,并通过Ajax实时将缓存中的数据显示在页面中。如图6所示。本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
权利要求
1.一种大容量数据的内存转发方法,其特征是它包括以下步骤首先,通过FTP协议将上传的文件保存在内存中;其次,对内存文件识别,获取文件的传输时效及分发用户的信息;第三,对内存文件进行管理,并对外提供统一的内存文件操作接口,同时对内存过载的异常情况进行处理;第四,根据分发用户信息将内存文件转发给多个分发用户,实现一对多的内存转发;如果内存转发失败则进行失败重发,如果是链路断开则将内存文件交由内存文件转发模块自动保存到磁盘,并通过记录的转发失败信息来检测网络连通状态,当链路恢复进,重新将磁盘上的文件加载到内存中,由内存文件转发模块负责重发,直至发出为止;第五,将文件传输的实时状态进行记录并实时展现到Web页面中。
2.根据权利要求1所述的大容量数据的内存转发方法,其特征是所述的通过FTP协议将上传的文件保存在内存中是指通过基于FTP协议的文件接收实现FTP服务器的功能,响应FTP客户端的所有命令请求,并接收客户端上传的文件,同时调用内存文件管理接口来创建并读写内存文件。
3.根据权利要求1所述的大容量数据的内存转发方法,其特征是所述的内存文件识别是指对接收的内存文件进行文件名识别检查,并通过已定义的配置信息来获取内存文件的属性为内存文件管理功能以及内存文件转发功能提供信息服务。
4.根据权利要求3所述的大容量数据的内存转发方法,其特征是所述的内存文件的属性包括文件的类型、文件的传输时效和文件的分发用户信息。
5.根据权利要求1所述的大容量数据的内存转发方法,其特征是所述的内存文件管理包括内存申请、存放、读取和释放,解决大块连续内存的申请导致的内存碎片,并对外提供统一的内存文件操作接口,同时,对内存过载的异常情况进行处理;解决大块连续内存的申请是通过将接收的文件切割成若干个小的数据块,每个小的数据块单独申请一段连续的内存空间,并记录每个小数据块的内存地址和内存空间大小,以避免大块连续内存的申请;解决内存过载是通过与磁盘进行数据交互实现内存文件的磁盘存储,当内存使用率达到上限阀值时,将内存中传输时效性低的文件进行存盘,当内存使用率低于下限阀值时,再将保存在磁盘中的文件加载到内存中。
6.根据权利要求1所述的大容量数据的内存转发方法,其特征是所述的内存文件转发是指将内存文件转发给多个分发用户,实现内存文件的一对多转发;同时,多个内存文件可以由多个线程来负责转发,这样可以大大提高转发效率,无需读写磁盘,直接从内存转发; 分发给多个用户的文件不需要多份拷贝,内存中只要一份即可实现多线程同时分发;当转发给多个分发用户全部成功则关闭内存文件并释放所占的内存空间,当转发出现失败时, 记录转发失败信息,并将内存文件存储到磁盘中。
7.根据权利要求1所述的大容量数据的内存转发方法,其特征是所述的实时传输状态监视是通过Web页面来实时监视文件接收和转发的状态信息;通过memcached来缓存实时传输状态信息,并通过Ajax实时将缓存中的数据显示在页面中。
全文摘要
一种大容量数据的内存转发方法,其特征是它包括以下步骤首先,通过FTP协议将上传的文件保存在内存中;其次,对内存文件识别,获取文件的传输时效及分发用户的信息;第三,对内存文件进行管理,并对外提供统一的内存文件操作接口,同时对内存过载的异常情况进行处理;第四,根据分发用户信息将内存文件转发给多个分发用户,实现一对多的内存转发;如果内存转发失败则进行失败重发,如果是链路断开则将内存文件交由内存文件转发模块自动保存到磁盘,并通过记录的转发失败信息来检测网络连通状态,当链路恢复进,重新将磁盘上的文件加载到内存中,由内存文件转发模块负责重发,直至发出为止;第五,将文件传输的实时状态进行记录并实时展现到Web页面中。本发明解决了大容量卫星数据文件的高时效传输难题,可广泛应用于基于FTP协议传输的大容量文件转发。
文档编号H04L29/08GK102164174SQ20111005559
公开日2011年8月24日 申请日期2011年3月9日 优先权日2011年3月9日
发明者张伟 申请人:南京恩瑞特实业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1