一种数据上传方法及系统与流程

文档序号:12494506阅读:241来源:国知局
一种数据上传方法及系统与流程

本发明涉及数据传输技术领域,更为具体来说,本发明是一种数据上传方法及系统。



背景技术:

近年来,随着大数据的应用与发展,传统小规模计算集群的能力已经不能适应对大数据处理的需要,而集成众多最新技术的超算中心对解决大数据问题具有巨大优势。随着远程超级计算技术发展和要求,大规模数据上传及高性能计算集群的出现,对计算速度和计算规模的要求越来越高。由于上传的数据量巨大,上传过程中经过的服务器及网络环节众多,因此,对数据上传效率、可靠性、安全性等方面提出了更高的要求。

对于传统的远程超算中心结构,采用面向连接的文件上传批量小文件和大文件是一件非常耗时的事情,常用的优化方法是采用多个小文件包装在一个数据集里整体上传,虽然这样能提高上传性能,但是需要用户主动将数据进行打包,当数据集比较大是非常耗费系统资源,并且当上传一个由大文件和小文件混合的目录时,打包也非常不合适,传统的上传方法存在着上传效率低下、上传批量上传小文件时存在负载过重的问题。

因此,如何提高数据上传效率、如何解决负载过重的问题,已成为了本领域技术人员亟待解决的技术问题和研究的重点。



技术实现要素:

为解决现有的上传方法存在的上传效率低、重复上传等问题,本发明公开了一种数据上传方法及系统,从对数据文件处理的角度出发,创新地将数据文件分片和完整性管理,对数据片段进行传输和接收到的文件进行完整性校验,完成大数据的高速传输和增量数据传输,从而提高数据上传效率,解决上传批量小文件占用系统资源过大等问题。

为实现上述技术目的,本发明公开了一种数据上传方法,该方法包括如下步骤,

步骤1,读取数据文件;

步骤2,对所述数据文件进行数据分片操作、生成数据片段;

步骤3,对所述数据片段进行完整性管理操作;

步骤4,通过上传数据片段的方式上传数据文件;

步骤5,接收到所述数据片段后,校验接收到的所有数据片段的完整性。

本发明通过数据分片、完整性管理、上传数据片段、校验完整性操作解决了传统上传过程上传效率低的问题,特别对于批量小文件和大文件的上传,本发明极大地提高了大规模数据的上传效率;另外,本发明可有效地避免数据重复上传的问题,由于上传及时,本发明使超算作业可以进行实时提交。

进一步地,步骤1中,判断所述数据文件是否为首次上传:如果是,则步骤4中上传所有的数据片段;如果否,则步骤4中上传发生改变的数据片段。

本发明针对大规模远程超级计算中客户端数据重复上传带来的大量无用作业占用客户端或服务端的计算网络资源带来的数据上传效率低的问题,本发明对于已上传的数据文件,仅上传发生改变的数据片段,即本发明设计了基于任务-文件特征值列表以及文件-唯一特征值一一对应的文件增量上传方式,从而避免数据重复上传,提高了数据上传效率。

进一步地,步骤3中对待上传的数据片段进行编号;步骤5中,依据所述编号校验接收到的数据文件的完整性。

本发明采用了数据片段编号这种简单的方式,使得服务器对完整性的验证变得更为容易,使本发明更容易实施。

进一步地,步骤2中,对已生成的数据片段进行缓存操作;步骤5中,上传成功后,删除缓存中已经上传的数据片段。

通过客户端与服务器的通信,当服务器成功接收相关数据片段后,则通知客户端接受结果,客户端根据接收结果判断删除相关数据片段或重发数据片段;避免了冗余数据对客户端缓存的占用而影响其他的文件的上传工作。

进一步地,步骤2中,所述数据片段大小符合高速传输协议要求;步骤4中,基于高速传输协议并发上传数据片段。

本发明创新地将数据文件切割为符合高速传输协议要求的数据片段,为本发明能够高速地上传数据文件做了充足的准备。

进一步地,所述高速传输协议为无连接协议。

本发明针对大规模远程超级计算中上传单一超大文件及批量小文件传输速度低、受网络影响传输导致的稳定性差的问题,本发明基于无连接网络协议的可靠文件传输方法。提高网络传输速度,保证了文件传输的完整性。

本发明的另一个发明目的在于提供一种数据上传系统,该系统包括客户端和服务器;所述客户端包括读取模块、分片模块、管理模块及上传模块,所述读取模块读取数据文件,所述分片模块对所述数据文件进行数据分片操作、生成数据片段,所述管理模块对所述数据片段进行完整性管理操作,所述上传模块通过上传数据片段的方式上传数据文件;所述服务器包括接收模块和校验模块,所述接收模块用于接收上传模块上传的数据片段,所述校验模块用于校验接收到的所有数据片段的完整性。

进一步地,所述客户端还包括判断模块;所述判断模块用于判断所述数据文件是否为首次上传:如果是,则上传模块上传所有的数据片段;如果否,则上传模块上传发生改变的数据片段。

进一步地,所述客户端还包括划分模块,所述划分模块对待上传的数据片段进行编号;所述服务器与所述客户端通信,所述校验模块依据所述编号校验接收到的数据文件的完整性。

进一步地,所述客户端还包括缓存模块,所述缓存模块用于存储生成的数据片段。

本发明的有益效果为:本发明为超级计算提供一种高效、快速的数据上传方法及系统,避免了数据重复上传的问题,有效减少了数据传输时间,极大提高了大规模数据的上传效率,进而使超算作业可以进行实时提交。

本发明针对大规模远程超级计算中数据上传问题,提供了一种完整的解决方案,解决了传统远程超级计算系统中依靠面向连接的文件上传方式存在的上传效率低、不能解决数据重复上传的问题,使得大规模数据处理作业无需长时间等待数据上传,即可进行实时提交。

附图说明

图1为数据上传方法流程示意图。

图2为数据上传系统组成示意图。

图3为客户端上传流程示意图。

图4为服务器接收流程示意图。

具体实施方式

下面结合说明书附图对本发明数据上传方法和系统进行详细的解释和说明。

如图1、2、3、4所示,本发明公开了一种数据上传方法,该方法是一种高效的上传方法,上传后的数据用于远程超级计算。远程超级计算的高效数据上传方法及系统主要是科学或者面向工程计算的大规模数据的上传方法和传输方法。其中,大数据整体高速上传是通过创建文件特征值列表,大文件分片处理,采用高速传输协议进行并行传输,然后在服务端进行文件重组,为了保证良好的传输效率,远程超级计算的高效数据上传避免了数据重复上传,而且提高传输效率。解决了负载过重的问题,同时自适应传输系统对各种传输方式进行状态监控,以确保传输的可控性和可靠性。该方法具体包括如下步骤:

步骤1,读取数据文件,本实施例中,通过客户端读取数据文件,本发明中,通过客户端与服务器通信判断数据文件是否为首次上传:如果是,则上传所有的数据片段;如果否,则需上传的数据文件为增量数据,上传发生改变的数据片段,减少了冗余数据的重复上传导致的系统资源浪费,服务器仅接收到发生改变的数据,然后进行文件的重组,完成增量文件接收。

步骤2,对数据文件进行数据分片操作、生成数据片段,为满足后序高速传输的要求,本发明将数据文件切分成符合高速传输协议要求大小的数据片段;对已生成的数据片段进行缓存操作,或者说,对数据文件进行缓存。为方便后期的远程超级计算,本步骤中对待上传数据文件进行计算。

步骤3,对数据片段进行完整性管理操作,以满足后期服务器对数据片段完整性的校验。

步骤4,基于高速传输协议,通过上传数据片段的方式上传数据文件;另外,本发明通过客户端对于待上传的数据片段进行编号,基于上述编号,服务器端对完整性的检查。本实施例中,上述的高速传输协议是一种无连接协议;建立文件缓存区,即用于存放待上传数据的缓存,创建多线程对缓存中的文件进行上传。

步骤5,本发明服务器接收到数据片段后,校验数据片段的完整性,即校验接收到的所有数据片段是否有遗漏。本实施例中,可通过数据对比等算法校验数据片段或数据的完整性,比如,依据步骤4中的编号校验接收到的数据文件的完整性,若发现客户端发出的数据片段存在部分没有被服务器接收到的情况,比如10个数据片段仅接收到了8个,则服务器向客户端发送重发请求,从而确保数据文件或数据片段的完整性;重发的数据文件可为上次发送的全部数据片段或仅重发未被接收的数据片段。如果相应数据片段上传成功,即客户端收到服务器接收成功的恢复,则本发明可自动删除步骤2的缓存中已经上传的数据片段。

另外,在服务器接收数据片段后,将数据片段整合为数据文件,完成增量文件接收,然后存储数据文件,通过超级计算集群对存储的数据文件进行计算、完成作业。

如图2、1、3、4所示,本发明还公开了一种数据上传系统,针对在远程超级计算过程中文件上传速度慢以及重复上传导致的文件上传效率低的问题,提出一种基于C/S架构的用于超级计算的高效数据上传的系统完整解决方案。

本发明一种数据上传系统包括客户端和服务器;如图2、3、1所示,客户端包括读取模块、分片模块、管理模块及上传模块,读取模块、分片模块、管理模块及上传模块可依次连接或按照数据的传输关系连接。读取模块读取数据文件,分片模块对数据文件进行数据分片操作、生成数据片段,管理模块对数据片段进行完整性管理操作、管理待发送数据片段的缓冲池、管理并发的线程池,上传模块通过上传数据片段的方式上传数据文件。本发明的客户端还包括判断模块;判断模块用于判断数据文件是否为首次上传:如果是,则上传模块上传所有的数据片段;如果否,则上传模块上传发生改变的数据片段。客户端还包括划分模块,划分模块对待上传的数据片段进行编号;服务器与客户端通信,校验模块依据编号校验接收到的数据文件的完整性。客户端还包括缓存模块,即缓存,缓存模块用于存储生成的数据片段,当数据片段上传成功后,控制缓存模块自动删除缓存中已经上传的数据片段。

如图2、4、1所示,服务器包括接收模块和校验模块,接收模块用于接收上传模块上传的数据片段,校验模块用于校验数据片段的完整性以及请求重发未上传成功的文件,校验模块还用于将数据片段重组为数据文件、写入存储;在文件上传结束后,超级计算集群根据存储中的数据完成作业。

另外,客户端还可包括网络检测模块,网络监测模块结合管理模块和上传模块,基于无连接网络协议的可靠传输方式,网络检测模块将客户端与服务器的连接状态推送给上传模块;上传模块在确认网络连接可靠的情况下,进行数据的发送。本发明对比传统系统中使用基于TCP的FTP文件上传方式,大大提高了大文件传输速率。提高了超级计算任务系统的运行效率。

依据上述的数据上传方法和上传系统,本发明可按照如下的方式进行实施。

(1)根据传输协议设定的文件分片大小,并将该值设定为文件分片的阈值,将大于该阈值的文件进行分片,并对文件分片进行编号。

(2)在客户端启动多个传输线程,对文件进行传输。

(3)在服务端建立接收窗口,进行文件接收,对于已分片的文件根据文件的编号进行文件完整性验证,对于未接收到的文件分片,向客户端发送重发请求。

(4)将窗口中已经接收完的大文件进行文件的重组。

(5)根据服务端和客户端上同步的文件列表检验文件是否已经传输完成,如果未完成,向客户端发送重发请求。

(6)完成文件传输,向客户端返回完成响应。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“本实施例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明实质内容上所作的任何修改、等同替换和简单改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1