基于多线程实现数据记录仪海量数据高速转存的方法技术

技术编号:15391239 阅读:45 留言:0更新日期:2017-05-19 04:39
本发明专利技术属于软件算法设计领域,具体涉及一种基于多线程实现数据记录仪海量数据高速转存的方法。与现有技术相比较,本发明专利技术具备如下有益效果:(1)利用并发算法设计和多线程编程实现的工具,最大程度的发挥了高性能存储系统硬件能力,提高了资源利用率。(2)发明专利技术可以大幅度提升提数据记录仪数据卸载速度,提高数据记录仪的工作效率和实践利用率。

Method for realizing high-speed data storage of data recorder based on Multithreading

The invention belongs to the field of software algorithm design, in particular to a method for realizing high-speed data storage of data recorders based on multithreading. Compared with the prior art, the invention has the following advantages: (1) the use of concurrent algorithm design and multi thread programming tools, to maximize the high performance storage system hardware capabilities, improving the utilization rate of resources. (2) the invention can greatly improve the data unloading speed of the data recorder and improve the work efficiency and the practical utilization rate of the data recorder.

【技术实现步骤摘要】
基于多线程实现数据记录仪海量数据高速转存的方法
本专利技术属于软件算法设计领域,具体涉及一种基于多线程实现数据记录仪海量数据高速转存的方法,其以多核CPU的计算机系统为平台,针对海量数据在不同存储空间转存的应用需求,利用多线程工具实现数据转存过程的读写并发,达到提升数据转存速度的目的。
技术介绍
在军事飞行试验、无人机侦查、影像拍摄、监控摄录、野外测绘、轨道交通等众多军用和民用领域,都需要大容量的专用数据记录仪用来记录工作中的各种数据和信息。随着记录任务越来越复杂,所需要记录的信息种类和数量越来越多,各种数据记录仪的存储容量也变得更为巨大。虽然存储容量是数据记录仪的一个最重要指标,但同时,对于数据记录仪来说,只有将存储在数据记录仪中的数据和信息转存到地面环境中的计算服务器,或者网络化的信息系统中(下文简称数据御载),才能被人们进行深入详细专业的解析和处理,从而取得有用的分析结果。所以,数据记录仪的数据御载速度,是数据记录仪的又一项关键指标。以无人机应用为例,很多军用、民用无人机的机载数据记录仪的存储容量都高达几个TB,通过计算机接口(USB、SATA)或者网络接口,完成数据卸载都需要几个小时到十几个小时,这直接影响数据分析的工作效率和数据记录仪的利用率,进而影响无人机的工作频次和使用效能。如何提高数据记录仪的数据卸载速度是在当前数据记录仪存储容量越来越巨大的情况下必须面临和解决的问题。为解决这个问题,业内设计了很多高性能存储系统硬件架构,主要思想是提升数据记录仪和地面服务器存储空间的并发读写速度,同时设计并行的高速数据转存接口,支撑起对海量数据的高速卸载。一个有代表性的工业数据记录仪地面数据卸载硬件架构如附图1所示。在附图1所示的硬件架构下,运行于地面服务器的传统的数据卸载工具工作流程如附图2所示,具体描述如下:1)从数据记录仪中读取指定大小的数据块到内存中;2)将内存中的数据块存入服务器存储空间中;3)重复前述两步操作直到记录仪内所有数据转存到服务器存储空间中。在上述传统的数据卸载工具流程下,数据记录仪数据转存的读写的次序情况可见附图3。分析可知,卸载软件针对每一个数据块,设计了读、写串行操作,即每一个数据块完成从数据记录仪到地面服务器的转存都要依次完成读、写个两步骤,且从数据记录仪读取数据块的速度为N字节/秒,向地面服务器写入的速度为P字节/秒。这在低性能的单处理器核的服务器时代是无奈的办法,目前,地面服务器早已经都采用高性能多核架构,完全可以将读写操作并行起来,充分利用硬件资源,提升数据卸载速度。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何以多核处理器的高性能服务器系统为平台,改进传统的数据卸载工具的算法和流程,将数据卸载工中数据转存的读、写串行操作修改为并行操作,提高数据卸载工的工作效率,大幅度提升提数据转存的速度,从而减少数据记录仪数据卸载所需要的时间。(二)技术方案为解决上述技术问题,本专利技术提供一种基于多线程实现数据记录仪海量数据高速转存的方法,该方法包括如下步骤:步骤1:数据卸载工具首先在服务器内存中开辟出两个共享缓冲区,每个缓冲区足够满足保存一个转存数据块;两个共享缓冲区分为第一共享缓冲区和第二共享缓冲区;步骤2:两个共享缓冲区设置为可以被多个线程所访问,为保证缓冲区内数据的同步和一致性,为每一个缓冲区配备一个信号灯,分别为第一信号灯和第二信号灯,用来控制对对应缓冲区的读写;线程只有在取得到信号灯的时候才能对指定的缓冲区进行读写操作;步骤3:初始化两个线程,分别为读线程和写线程,并将两个共享缓冲区的访问信号灯都初始化为读线程控制;步骤4:数据卸载工具同时启动运行两个线程;在读线程运行过程中遵循步骤5-步骤7的流程;在写线程运行过程中遵循步骤8-步骤10的流程;步骤5:读线程请求第一共享缓冲区的第一信号灯,如果失败则等待第一信号灯,如果成功则从数据记录仪中读取数据块到第一共享缓冲区中,释放第一信号灯;步骤6:读线程再继续请求第二共享缓冲区的第二信号灯,如果失败则等待第二信号灯;如果成功则从数据记录仪中读取数据块到第二共享缓冲区中,释放第二信号灯;步骤7:读线程重复步骤5-步骤6操作直到记录仪存储体内所有数据读出;步骤8:写线程请求第一共享缓冲区的第一信号灯,如果失败则等待第一信号灯,如果成功则从第一共享缓冲区中读取数据块写到本地服务器存储空间中,释放第一信号灯;步骤9:写线程再继续请求第二共享缓冲区的第二信号灯,如果失败则等待第二信号灯;如果成功则从第二共享缓冲区中读取数据块写到本地服务器存储空间中,释放第二信号灯;步骤10:写线程重复步骤8-步骤9操作直到完成所有数据的卸载。(三)有益效果与现有技术相比较,本专利技术具备如下有益效果:(1)利用并发算法设计和多线程编程实现的工具,最大程度的发挥了高性能存储系统硬件能力,提高了资源利用率。(2)专利技术可以大幅度提升提数据记录仪数据卸载速度,提高数据记录仪的工作效率和实践利用率。附图说明图1是有代表性海量数据记录仪地面数据卸载硬件架构。图2是运行于地面服务器的传统数据卸载工具的工作流程图,图中虚线下为工具工作流程,虚线上为实际数据流。图3是传统的数据卸载工具中数据转存的读写次序分析图。图4是本专利技术中设计的新数据卸载工具工作流程图,图中虚线下为工具工作流程,虚线上为实际数据流。图5是本专利技术中设计的新数据卸载工具中数据转存读写次序图。具体实施方式为使本专利技术的目的、内容、和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。对于多核处理器体系的地面服务器,在操作系统的支持下,同一时间可以运行多个线程。本专利技术利用操作系统多线程工具编程接口,开展新的数据卸载工具的算法和流程设计,通过在工具中启动两个并发线程,即一个读线程和一个写线程,将数据转存的读、写操作分别由两个线程独立完成,两个线程之间通过专用的信号灯和共享内存进行通信,实现对读写流程的控制和数据的交换。具体而言,为解决现有技术的问题,本专利技术提供一种基于多线程实现数据记录仪海量数据高速转存的方法,如图4-图5所示,该方法包括如下步骤:步骤1:数据卸载工具首先在服务器内存中开辟出两个共享缓冲区,每个缓冲区足够满足保存一个转存数据块;两个共享缓冲区分为第一共享缓冲区和第二共享缓冲区;步骤2:两个共享缓冲区设置为可以被多个线程所访问,为保证缓冲区内数据的同步和一致性,为每一个缓冲区配备一个信号灯,分别为第一信号灯和第二信号灯,用来控制对对应缓冲区的读写;线程只有在取得到信号灯的时候才能对指定的缓冲区进行读写操作;步骤3:初始化两个线程,分别为读线程和写线程,并将两个共享缓冲区的访问信号灯都初始化为读线程控制;步骤4:数据卸载工具同时启动运行两个线程;在读线程运行过程中遵循步骤5-步骤7的流程;在写线程运行过程中遵循步骤8-步骤10的流程;步骤5:读线程请求第一共享缓冲区的第一信号灯,如果失败则等待第一信号灯,如果成功则从数据记录仪中读取数据块到第一共享缓冲区中,释放第一信号灯;步骤6:读线程再继续请求第二共享缓冲区的第二信号灯,如果失败则等待第二信号灯;如果成功则从数据记录仪中读取数据块到第二共享缓冲区中,释放第二信号灯;步骤7:读线程重复步骤5-步骤6本文档来自技高网
...

【技术保护点】
一种基于多线程实现数据记录仪海量数据高速转存的方法,其特征在于,该方法包括如下步骤:步骤1:数据卸载工具首先在服务器内存中开辟出两个共享缓冲区,每个缓冲区足够满足保存一个转存数据块;两个共享缓冲区分为第一共享缓冲区和第二共享缓冲区;步骤2:两个共享缓冲区设置为可以被多个线程所访问,为保证缓冲区内数据的同步和一致性,为每一个缓冲区配备一个信号灯,分别为第一信号灯和第二信号灯,用来控制对对应缓冲区的读写;线程只有在取得到信号灯的时候才能对指定的缓冲区进行读写操作;步骤3:初始化两个线程,分别为读线程和写线程,并将两个共享缓冲区的访问信号灯都初始化为读线程控制;步骤4:数据卸载工具同时启动运行两个线程;在读线程运行过程中遵循步骤5‑步骤7的流程;在写线程运行过程中遵循步骤8‑步骤10的流程;步骤5:读线程请求第一共享缓冲区的第一信号灯,如果失败则等待第一信号灯,如果成功则从数据记录仪中读取数据块到第一共享缓冲区中,释放第一信号灯;步骤6:读线程再继续请求第二共享缓冲区的第二信号灯,如果失败则等待第二信号灯;如果成功则从数据记录仪中读取数据块到第二共享缓冲区中,释放第二信号灯;步骤7:读线程重复步骤5‑步骤6操作直到记录仪存储体内所有数据读出;步骤8:写线程请求第一共享缓冲区的第一信号灯,如果失败则等待第一信号灯,如果成功则从第一共享缓冲区中读取数据块写到本地服务器存储空间中,释放第一信号灯;步骤9:写线程再继续请求第二共享缓冲区的第二信号灯,如果失败则等待第二信号灯;如果成功则从第二共享缓冲区中读取数据块写到本地服务器存储空间中,释放第二信号灯;步骤10:写线程重复步骤8‑步骤9操作直到完成所有数据的卸载。...

【技术特征摘要】
1.一种基于多线程实现数据记录仪海量数据高速转存的方法,其特征在于,该方法包括如下步骤:步骤1:数据卸载工具首先在服务器内存中开辟出两个共享缓冲区,每个缓冲区足够满足保存一个转存数据块;两个共享缓冲区分为第一共享缓冲区和第二共享缓冲区;步骤2:两个共享缓冲区设置为可以被多个线程所访问,为保证缓冲区内数据的同步和一致性,为每一个缓冲区配备一个信号灯,分别为第一信号灯和第二信号灯,用来控制对对应缓冲区的读写;线程只有在取得到信号灯的时候才能对指定的缓冲区进行读写操作;步骤3:初始化两个线程,分别为读线程和写线程,并将两个共享缓冲区的访问信号灯都初始化为读线程控制;步骤4:数据卸载工具同时启动运行两个线程;在读线程运行过程中遵循步骤5-步骤7的流程;在写线程运行过程中遵循步骤8-步骤10的流程;步骤5:读线程请...

【专利技术属性】
技术研发人员:王可杨阳曾永红纪策李岩
申请(专利权)人:天津津航计算技术研究所
类型:发明
国别省市:天津,12

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

1