CN114035746B - 一种高采样率数据实时采集存储方法及采集存储系统 - Google Patents
一种高采样率数据实时采集存储方法及采集存储系统 Download PDFInfo
- Publication number
- CN114035746B CN114035746B CN202111262767.8A CN202111262767A CN114035746B CN 114035746 B CN114035746 B CN 114035746B CN 202111262767 A CN202111262767 A CN 202111262767A CN 114035746 B CN114035746 B CN 114035746B
- Authority
- CN
- China
- Prior art keywords
- data
- independent
- writing
- cache
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于数据存储和数据处理技术领域,具体地说,涉及一种高采样率数据实时采集存储方法,该方法包括:步骤1)在声纳数据采集系统中的计算机端开辟n组独立的数据缓存空间,对n组独立的数据缓存空间开辟一条数据接收线程;步骤2)根据数据采集速度和数据存储速度之间的差异程度,对该组独立的数据缓存空间开辟m组独立缓存区,形成m*n组总缓存区;步骤3)对每组独立缓存区开辟对应的一条数据写入文件线程,得到m条数据写入文件线程,用于从同一位置上的、不同的数据缓存空间中的每组独立缓存区中纵向地重复读取实时更新的采集数据并将其写入本地文件;步骤4)判断每条数据写入文件线程是否满足预先设定的开启条件。
Description
技术领域
本发明属于数据存储和数据处理技术领域,具体地说,涉及一种高采样率数据实时采集存储方法及采集存储系统。
背景技术
目前,声纳数据采集系统包括:声阵、模拟信号采集单元、模拟-数字转换单元、数字采集控制单元(具有集成网络传输功能)、计算机(包括运行的上位机软件)、直流稳压电源和交流电源;声纳采集的采集数据发送至模拟信号采集单元,模拟信号采集单元将采集数据发送至模拟-数字转换单元,将采集数据转换成数字形式的采集数据,并通过数字采集控制单元进行采集,并经由网络将采集数据发送至计算机,计算机接收采集数据,直流稳压电源和交流电源是提供正常工作的电源。
针对声纳数据采集系统,常规的数据采集与存储方法都是在计算机端(声纳数据采集系统中的一部分)开辟特定的内存作为数据缓存空间,将采集到的采集数据写入到该数据缓存空间,然后从该数据缓存空间读取采集数据,并写入本地文件,完成数据存储工作,该现有方法的实现比较简单,但是,对于存储高采样率数据,由于数据量较大,导致计算机端的系统资源占用过大,甚至存在不能开辟足够的数据暂存空间的问题。
针对声纳数据采集系统,采集到的采集数据具有采集过程持续时间长,数据采样率高和数据采集通道多的特点。采集数据经由网络传输到计算机端,并在计算机端将数据存储到本地文件的过程中会由于数据采集和存储速度不匹配,导致数据丢失的问题。
另外,对于声纳数据采集系统在高采样率和长时间的数据采集过程中,传统数据采集存储方法不能满足数据实时采集存储的要求,不具有实时性。
此外,另一种传统的数据采集存储方法是将采集到的采集数据写入计算机端的数据缓存空间开辟的一条线程,利用开辟的另一条线程将读取数据缓存空间中存储的采集数据写入本地文件。相较于前者,多线程的使用,能够提高数据存储的效率。但是,对于声纳数据采集系统在高采样率和长时间的数据采集过程中,上述的传统数据存储方法由于开辟的数据缓存空间受限和数据存储到本地文件的数据存储速度远不及采集数据写入计算机端的数据缓存空间的数据存储速度,导致采集到的采集数据不能完整的存储到本地文件,使得采集数据中包含的信息会有缺失,给后续的数据处理造成不利的影响。
发明内容
为解决现有技术存在的上述缺陷,本发明提出了一种高采样率数据实时采集存储方法,该方法包括:
步骤1)在声纳数据采集系统中的计算机端开辟n组独立的数据缓存空间,对n组独立的数据缓存空间开辟一条数据接收线程;
步骤2)根据采集数据写入该组独立的数据缓存空间的数据采集速度和从每个独立缓存区中读取采集数据并写入本地文件的数据存储速度之间的差异程度,对该组独立的数据缓存空间开辟m组独立缓存区,形成m*n组总缓存区;
步骤3)对每组独立缓存区开辟对应的一条数据写入文件线程,得到m条数据写入文件线程,用于从同一位置上的、不同的数据缓存空间中的每组独立缓存区中纵向地重复读取实时更新的采集数据并将其写入本地文件,形成一条数据接收线程对应m条数据写入文件线程;
步骤4)判断每条数据写入文件线程是否满足预先设定的开启条件;
如果满足开启条件,则新建本地文件目录,并且该条数据写入本地文件线程纵向地从同一位置上的、不同的数据缓存空间的每组独立缓存区中重复读取实时更新的采集数据,并写入该本地文件;同时将对应的数据缓存空间清空,以供新的采集数据写入;
如果不满足开启条件,则进一步判断该条数据写入文件线程是否处于启用状态;
若该条数据写入文件线程处于未启用状态,则继续保持等待该条数据写入文件线程满足开启条件;
若该条数据写入文件线程处于已启用状态,且该条数据写入文件线程正在进行纵向方向上的上一组独立缓存区中的采集数据的读取,并写入本地文件;则等待该条数据写入文件线程完成对上一组独立缓存区的采集数据的读取和写入操作之后,且满足开启条件,开始对下一组独立缓存区的采集数据进行读取和写入操作。
作为上述技术方案的改进之一,所述步骤2)具体包括:
假设采集数据的数据采样率为150kHz,采集数据的类型为short类型,采集通道的数量为多个,将每个采集通道采集的数据以串行写入方式串在一起,得到采集数据;
根据采集数据写入独立的数据缓存空间的数据采集速度和从每个独立缓存区中读取采集数据并写入本地文件的数据存储速度之间的差异程度,获取预先设定的数据采集速度与数据存储速度,计算数据采集速度与数据存储速度的比值,该比值取整数后再除以开辟独立的数据缓存空间的组数,得到中间值,将得到的中间值取整数后再加1,得到每组独立的数据缓存空间所开辟的独立缓存区的组数;
并依据上述过程,对每组独立的数据缓存空间开辟m组独立缓存区,形成m*n组总缓存区。
作为上述技术方案的改进之一,所述预先设定的满足条件为当接收采集数据的数据量经过当前独立缓存区时,接收采集数据的数据量大于当前的数据写入文件线程开始写入采集数据到本地文件的边界条件,和对上一组独立缓存区内的采集数据执行完读取和写入操作的数据写入文件线程未占用且无写入操作;
其中,边界条件为开始写入采集数据到本地文件的起始时刻;上一组独立缓存区为在纵向方向上与当前独立缓存区处于相同位置的独立缓存区。
作为上述技术方案的改进之一,所述每条数据写入文件线程的边界条件各不相同。
本发明还提供了一种高采样率数据实时采集存储系统,其特征在于,该系统包括:
数据写入模块,用于在声纳数据采集系统中的计算机端开辟n组独立的数据缓存空间,对n组独立的数据缓存空间开辟一条数据接收线程;
缓存区分配模块,用于根据采集数据写入该组独立的数据缓存空间的数据采集速度和从每个独立缓存区中读取采集数据并写入本地文件的数据存储速度之间的差异程度,对该组独立的数据缓存空间开辟m组独立缓存区,形成m*n组总缓存区;
线程匹配模块,用于对每组独立缓存区开辟对应的一条数据写入文件线程,得到m条数据写入文件线程,用于从每组独立缓存区中重复地读取采集数据并将其写入本地文件,形成一条数据接收线程对应m条数据写入文件线程;和
判断模块,用于判断每条数据写入文件线程是否满足预先设定的开启条件;
如果满足开启条件,则新建本地文件目录,并且该条数据写入本地文件线程纵向地从同一位置上的、不同的数据缓存空间的每组独立缓存区中重复读取实时更新的采集数据,并写入该本地文件;同时将对应的数据缓存空间清空,以供新的采集数据写入;
如果不满足开启条件,则进一步判断该条数据写入文件线程是否处于启用状态;
若该条数据写入文件线程处于未启用状态,则继续保持等待该条数据写入文件线程满足开启条件;
若该条数据写入文件线程处于已启用状态,且该条数据写入文件线程正在进行纵向方向上的上一组独立缓存区中的采集数据的读取,并写入本地文件;则等待该条数据写入文件线程完成对上一组独立缓存区的采集数据的读取和写入操作之后,且满足开启条件,开始对下一组独立缓存区的采集数据进行读取和写入操作。
本发明与现有技术相比的有益效果是:
1、有效解决了声纳数据采集系统中数据的长时间和高速采集过程中数据实时存储问题,该方法在声纳数据采集系统中的计算机端接收的采集数据开辟独立的数据缓存空间,并利用多条数据写入文件线程对多个独立缓存区进行重复写入和读取采集数据,该方法提高了数据存储到本地文件的数据存储速度,解决了数据采集速度和数据存储速度不匹配的问题,达到了数据实时存储和节约系统资源的目的;
2、本发明的方法首次在计算机端开辟独立的数据缓存区,并利用多线程对多个独立缓存区进行对应的重复写入和读取采集数据,多线程同时执行从对应的独立缓存区中读取采集数据并存储到本地文件的操作,大大地提高了采集数据写入本地文件的数据存储速度,而独立缓存区接收经由网络传输到计算机端的采集数据的数据采集速度不变,由此解决了数据采集速度和数据存储速度不匹配的问题,并且通过利用多线程对多个独立缓存区的纵向重复读写并存储到本地文件,能够减少计算机端的数据缓存空间的开辟,节约了系统中的资源开销。
附图说明
图1是本发明的一种高采样率数据实时采集存储的方法的流程图;
图2是图1的一个实施例的数据缓存空间A中的采集数据并行写入本地文件的结构示意图;
图3是图1的一个实施例的数据缓存空间A和数据缓存空间B中的采集数据并行写入本地文件的结构示意图;
图4是图1的一个实施例的数据缓存空间A再次接收采集数据的结构示意图;
图5是图1的数据写入文件线程1再次读取数据缓存空间A中的采集数据并行写入本地文件的结构示意图;
图6是利用图1的方法存储采集数据的解析局部示意图;
图7是利用现有的方法存储采集数据的解析局部示意图;
图8是利用图1的方法存储采集数据的性能分析图;
图9是利用现有的方法存储采集数据的性能分析图。
具体实施方式
现结合附图和实例对本发明作进一步的描述。
本发明提供了一种高采样率数据实时采集存储的方法,该方法具体涉及一种多线程数据实时存储方法,能够对每个数据写入文件线程所对应的独立缓存区进行重复读写操作,减少了系统资源的开销。另外,该方法为经由网络传输到计算机端的采集数据写入数据缓存区的操作开辟一条独立线程,为读取数据缓存区中的数据写入本地文件开辟多个线程,多个线程分别对应数据缓空间内的多个独立缓存区域,以此大幅提高了数据存储速度(存储速度为单位时间内数据存储量,数据存储到本地文件的速度不会改变),从而解决了声纳数据采集系统中数据采集和存储速度(该速度指的是单位时间内数据采集的总量和单位时间内数据存储到本地文件的总量)不匹配所造成存储过程中数据丢失的问题。
如图1所示,该方法包括:
步骤1)在声纳数据采集系统中的计算机端开辟n组独立的数据缓存空间,对n组独立的数据缓存空间开辟一条数据接收线程;其中,采集数据是将每个采集通道采集的数据以串行写入方式串联在一起形成的;其中,所述采集数据为高采样率数据;其中,高采样率数据指的是采样率在100kHz及以上的高采样率数据;
步骤2)根据采集数据写入该组独立的数据缓存空间的数据采集速度和从每个独立缓存区中读取采集数据并写入本地文件的数据存储速度之间的差异程度,对该组独立的数据缓存空间开辟m组独立缓存区,形成m*n组总缓存区;
具体地,假设采集数据的数据采样率为150kHz,采集数据的类型为short类型,采集通道的数量为多个,将每个采集通道采集的数据以串行写入方式串在一起,得到采集数据;
根据采集数据写入独立的数据缓存空间的数据采集速度和从每个独立缓存区中读取采集数据并写入本地文件的数据存储速度之间的差异程度,获取预先设定的数据采集速度与数据存储速度,计算数据采集速度与数据存储速度的比值,该比值取整数后再除以开辟独立的数据缓存空间的组数,得到中间值,将得到的中间值取整数后再加1,得到每组独立的数据缓存空间所开辟的独立缓存区的组数;
并依据上述过程,对每组独立的数据缓存空间开辟m组独立缓存区,形成m*n组总缓存区。
步骤3)对每组独立缓存区开辟对应的一条数据写入文件线程,得到m条数据写入文件线程,用于从同一位置上的、不同的数据缓存空间中的每组独立缓存区中纵向地重复读取实时更新的采集数据并将其写入本地文件,形成一条数据接收线程对应m条数据写入文件线程;利用m条数据写入文件线程对n*m组独立缓存区进行纵向地重复读取和写入采集数据的操作,提高数据存储速度,达到采集数据的数据采集速度和数据存储速度相匹配的目的,实现采集数据的无误存储和节约系统资源的目的。
其中,m条数据写入文件线程中的每条数据写入文件线程是针对不同组的独立缓存区的相同位置处的采集数据进行读取和写入的操作,即如图2-5所示,数据写入文件线程1只针对数据缓存空间A中的独立缓存区A0和数据缓存空间B中的独立缓存区B0,进行读取和写入实时更新的采集数据的操作;数据写入文件线程2只针对数据缓存空间A中的独立缓存区A1和数据缓存空间B中的独立缓存区B1,进行读取和写入实时更新的采集数据的操作,以此减少数据写入文件线程的数量,实现一条数据写入文件线程同时对纵向方向上的独立缓存区A0,B0进行读取和写入实时更新的采集数据的操作。
步骤4)判断每条数据写入文件线程是否满足预先设定的开启条件;
如果满足开启条件,则新建本地文件目录,并且该条数据写入本地文件线程纵向地从同一位置上的、不同的数据缓存空间的每组独立缓存区中重复读取实时更新的采集数据,并写入该本地文件;同时将对应的数据缓存空间清空,以供新的采集数据写入;
具体地,对每组独立缓存区开辟对应的一条数据写入文件线程,得到m条数据写入文件线程;
针对其中的第1条数据写入文件线程,假设开辟的独立的数据缓存空间的组数为n;假设开辟的独立缓存空间数据命名为A,B,C…,共n组(n<=26),每组独立的数据缓存空间开辟q组独立缓冲区,相应的独立缓存区为Ai,Bi,Ci…(i=0,1…q-1)在纵向方向上,位于同一首位置的n组独立的数据缓存空间的独立缓存区记为Ai,Bi,Ci…(其中i=0);
当第1条数据写入文件线程处于启用状态,满足开启条件,则新建本地文件目录,并且该条数据写入本地文件线程纵向地从不同的独立缓存区A0,B0,C0,…中重复读取对应组的独立缓存区中的采集数据,并写入该本地文件;同时将对应的数据缓存空间清空,以供新的采集数据写入。
如果不满足开启条件,则进一步判断该条数据写入文件线程是否处于启用状态;
若该条数据写入文件线程处于未启用状态,则继续保持等待该条数据写入文件线程满足开启条件;
其中,未启用状态指的是,采集数据接收初始,数据写入文件线程虽已经开辟,但是由于数据接收量还未遍历首次接收数据的第一组数据缓存空间的各个独立缓存区,因此,有的数据写入文件线程还未执行过文件写入的操作,因此,称之为未启用状态。
若该条数据写入文件线程处于已启用状态,且该条数据写入文件线程正在进行纵向方向上的上一组独立缓存区中的采集数据的读取,并写入本地文件;则等待该条数据写入文件线程完成对上一组独立缓存区的采集数据的读取和写入操作之后,且满足开启条件,开始对下一组独立缓存区的采集数据进行读取和写入操作。
实施例1.
本发明为了能够更好地说明本发明的方法,特给出了一个具体的数据采集方法的具体过程,具体如下:
步骤1)如图2所示,在声纳数据采集系统中的计算机端开辟2组独立的数据缓存空间,即数据缓存空间A和数据缓存空间B;对2组独立的数据缓存空间开辟对应的一条数据接收线程;将计算机端采集的采集数据以数据串行方式写入数据缓存空间A;
步骤2)根据采集数据写入数据缓存空间A的数据采集速度和从每个独立缓存区Ai(i=0,1,2,3)中读取采集数据并写入本地文件的数据存储速度之间的差异程度,对该组独立的数据缓存空间开辟4组独立缓存区,形成4*2组总缓存区;
具体地,假设采集数据的数据采样率为150kHz/s,采集数据的类型为short类型;采集通道的数量为20个;采集通道的数据采集速度为6MB/s,数据存储速度为1MB/s,采用串行写入方式写入某一组独立的数据缓存空间计算数据采集速度与数据存储速度的比值为6,由于每个数据写入文件线程同时纵向执行数据缓存空间A和数据缓存空间B的写入本地文件的操作,即数据写入本地文件的线程对于两组缓存空间中每块独立的数据缓存区的起始写数据时刻是一致的,则需要开辟6组独立缓存区;但是,由于数据写入文件线程是复用的,并且写数据开始的时刻对于每块独立缓存区是有先后顺序的,因此,将上述得到的比值再除以开辟独立的数据缓存空间的组数,即6除以2,得到3,为了留出冗余量,需要将得到的3再加1得到4,即4为所开辟的独立缓存区的组数。
步骤3)对每组独立缓存区Ai开辟对应的一条数据写入文件线程,得到4条数据写入文件线程,用于纵向地从每组独立缓存区中重复地读取采集数据并将其写入本地文件,形成一条数据接收线程对应4条数据写入文件线程;利用4条数据写入文件线程对2*4组独立缓存区进行纵向地、重复地读取和写入采集数据的操作,提高数据存储速度,达到采集数据的数据采集速度和数据存储速度相匹配的目的,实现采集数据的无误存储和节约系统资源的目的。
步骤4)判断每条数据写入文件线程是否满足预先设定的开启条件;
如果满足开启条件,则新建本地文件目录,并且该条数据写入本地文件线程纵向地从不同的数据缓存空间中重复读取每组独立缓存区中的采集数据,并写入该本地文件;同时将对应的数据缓存空间清空,以供新的采集数据写入;
如果不满足开启条件,则进一步判断该条数据写入文件线程是否处于启用状态;
若该条数据写入文件线程处于未启用状态,则继续保持等待该条数据写入文件线程满足开启条件;
若该条数据写入文件线程处于已启用状态,且该条数据写入文件线程正在进行纵向方向上的上一组独立缓存区中的采集数据的读取,并写入本地文件;则等待该条数据写入文件线程完成对上一组独立缓存区的采集数据的读取和写入操作之后,且满足开启条件,开始对下一组独立缓存区的采集数据进行读取和写入操作。
具体过程如下:
如图2所示,数据接收线程向数据缓存空间A中以数据串行方式存入采集数据,数据写入文件线程读取数据缓存空间A中的采集数据并行写入本地文件。
图2中的数据接收线程箭头所示位置为接收采集数据的数据接收量已到达数据缓存空间A中的位置,数据写入文件线程箭头所示位置为该独立缓存区已读取采集数据并写入本地文件的数据量到达数据缓存空间A中的位置,斜线所在的空间为已接收采集数据但未写入本地文件的数据量在数据缓存空间A中所占的内存空间。已写入和存储采集数据所占有的空间将会释放掉,等待接收的新的采集数据的再次写入和存储,例如,A0中空白部分。
图2中,对于数据写入文件线程1、数据写入文件线程2、数据写入文件线程3和数据写入文件线程4共四条数据写入文件线程,每条数据写入线程在执行数据读取和写入本地文件的操作要同时满足两个条件:
1)读取并接收采集数据的数据接收量大于对应的数据写入文件线程开始写入采集数据的边界条件,即采集数据的数据量达到了该数据写入文件线程1的独立缓存区A0;
2)当前的数据写入文件线程无数据写入文件操作,即对上一组独立缓存区内的采集数据执行完读取和写入操作的数据写入文件线程未占用且无写入操作。
在图2中,所述边界条件为每组独立缓存区中的左边界,记为开始写入时刻;例如,对于独立缓存区A0、独立缓存区A1、独立缓存区A2、独立缓存区A3的内存部分,数据接收线程数据所接收的采集数据的数据接收量位于独立缓存A3的中间部分时,即满足数据接收量分别大于A0、A1、A2、A3的边界条件,因此,四条数据写入文件线程开始数据写入文件的操作。从图2中可以看出,由于四条数据写入文件线程的边界条件不一样,即开始写入文件的起始时刻不同,因此,四条数据写入文件线程已写入文件的数据量(即A0、A1、A2、A3左端空白内存空间)随数据写入文件操作的起始时刻从早到晚依次递减。
从图3可以看出,数据接收量已到数据缓存空间B的独立缓存区B1,则判断执行上一组独立缓存区A0的数据写入文件线程1是否有写入操作,根据判断结果,显示执行上一组独立缓存区A0的数据写入文件线程1已经将读取的采集数据完全写入本地文件,且此时,数据写入文件线程1空闲,未占用,则该数据写入文件线程1可以用来执行B0读取的采集数据写入本地文件的操作。此时数据写入文件线程2仍在执行A1的采集数据写入本地文件的操作,虽然,采集数据的数据接收量大于B1的数据写入文件的边界条件,但仍需要等待数据写入文件线程2将A1的采集数据完全写入本地文件之后,再利用数据写入文件线程2执行B1的采集数据写入本地文件操作,从而实现纵向重复读取和写入操作。
如图4所示,当数据缓存空间A中数据存储的工作已经完成,数据缓存空间A处于空闲状态。当数据缓存空间B接收数据完成时,可以继续由数据缓存空间A接收采集数据,图中A0部分已经有数据接收线程写入的数据。
图5中当数据写入文件线程1完成读取B0的采集数据并存储采集数据的操作,根据满足条件,数据写入文件线程1继续读取内存A0中的采集数据并写入本地文件。其他数据写入文件线程在完成数据缓存空间B中各线程所对应内存中的数据存储工作后,也会再次读取数据缓存空间A中的采集数据并写入本地文件。
重复上述步骤,直至数据采集工作停止。
图6、图7截取了数据存储文件中部分数据,图6为使用本发明方法存储数据的解析图,图7为使用现有方法存储数据解析局部图。从两幅图中可以看出当采集相同间隔的脉冲信号时,利用现有发放存储采集的数据会出现脉冲数据丢失的现象,而利用本发明的方法存储采集的脉冲数据分布均匀,不存在数据丢失现象。
图8、图9分别给出了本发明存储数据和现有数据存储方法性能的分析图。分析数据接收性能方法是:
1)在数据采集端对采集的每包数据添加相应的包序号信息;
2)在数据接收端添加数据接收包序号统计的操作,每接收新的数据包,包序号加1;
3)在接收固定长度的数据结束时,解析每包采集数据的包序号,并求出与接收包序号的关系,以此来统计数据接收的完整性。
其中,数据采集端为声纳数据采集系统中的数字采集控制单元,数据接收端为计算机。
假设数据存储过程中不存在数据丢失的现象,当图8中横坐标为接收包序号,纵坐标为接收包序号时,两者之间的关系在图中应表现为斜率为1的直线,其目的是为了说明接收包数和接收包序号一一对应,不存在数据丢失的问题。根据上述验证方法,图8中接收数据包数和接收包序号实测关系曲线和理论关系曲线相重合,说明存储数据中不存在数据丢失的现象,而图9中接收数据包数和接收包序号实测关系曲线和理论关系曲线具有很大程度的偏离,综上证明,本发明方法能够实时准确的存储采集到的数据。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (5)
1.一种高采样率数据实时采集存储方法,该方法包括:
步骤1)在声纳数据采集系统中的计算机端开辟n组独立的数据缓存空间,对n组独立的数据缓存空间开辟一条数据接收线程;
步骤2)根据采集数据写入该组独立的数据缓存空间的数据采集速度和从每个独立缓存区中读取采集数据并写入本地文件的数据存储速度之间的差异程度,对该组独立的数据缓存空间开辟m组独立缓存区,形成m*n组总缓存区;
步骤3)对每组独立缓存区开辟对应的一条数据写入文件线程,得到m条数据写入文件线程,用于从同一位置上的、不同的数据缓存空间中的每组独立缓存区中纵向地重复读取实时更新的采集数据并将其写入本地文件,形成一条数据接收线程对应m条数据写入文件线程;
步骤4)判断每条数据写入文件线程是否满足预先设定的开启条件;
如果满足开启条件,则新建本地文件目录,并且该条数据写入本地文件线程纵向地从同一位置上的、不同的数据缓存空间的每组独立缓存区中重复读取实时更新的采集数据,并写入该本地文件;同时将对应的数据缓存空间清空,以供新的采集数据写入;
如果不满足开启条件,则进一步判断该条数据写入文件线程是否处于启用状态;
若该条数据写入文件线程处于未启用状态,则继续保持等待该条数据写入文件线程满足开启条件;
若该条数据写入文件线程处于已启用状态,且该条数据写入文件线程正在进行纵向方向上的上一组独立缓存区中的采集数据的读取,并写入本地文件;则等待该条数据写入文件线程完成对上一组独立缓存区的采集数据的读取和写入操作之后,且满足开启条件,开始对下一组独立缓存区的采集数据进行读取和写入操作。
2.根据权利要求1所述的高采样率数据实时采集存储方法,其特征在于,所述步骤2)具体包括:
假设采集数据的数据采样率为150kHz,采集数据的类型为short类型,采集通道的数量为多个,将每个采集通道采集的数据以串行写入方式串在一起,得到采集数据;
根据采集数据写入独立的数据缓存空间的数据采集速度和从每个独立缓存区中读取采集数据并写入本地文件的数据存储速度之间的差异程度,获取预先设定的数据采集速度与数据存储速度,计算数据采集速度与数据存储速度的比值,该比值取整数后再除以开辟独立的数据缓存空间的组数,得到中间值,将得到的中间值取整数后再加1,得到每组独立的数据缓存空间所开辟的独立缓存区的组数;
并依据上述过程,对每组独立的数据缓存空间开辟m组独立缓存区,形成m*n组总缓存区。
3.根据权利要求1所述的高采样率数据实时采集存储方法,其特征在于,所述预先设定的满足条件为当接收采集数据的数据量经过当前独立缓存区时,接收采集数据的数据量大于当前的数据写入文件线程开始写入采集数据到本地文件的边界条件,和对上一组独立缓存区内的采集数据执行完读取和写入操作的数据写入文件线程未占用且无写入操作;
其中,边界条件为开始写入采集数据到本地文件的起始时刻;上一组独立缓存区为在纵向方向上与当前独立缓存区处于相同位置的独立缓存区。
4.根据权利要求3所述的高采样率数据实时采集存储方法,其特征在于,所述每条数据写入文件线程的边界条件各不相同。
5.一种高采样率数据实时采集存储系统,其特征在于,该系统包括:
数据写入模块,用于在声纳数据采集系统中的计算机端开辟n组独立的数据缓存空间,对n组独立的数据缓存空间开辟一条数据接收线程;
缓存区分配模块,用于根据采集数据写入该组独立的数据缓存空间的数据采集速度和从每个独立缓存区中读取采集数据并写入本地文件的数据存储速度之间的差异程度,对该组独立的数据缓存空间开辟m组独立缓存区,形成m*n组总缓存区;
线程匹配模块,用于对每组独立缓存区开辟对应的一条数据写入文件线程,得到m条数据写入文件线程,用于从同一位置上的、不同的数据缓存空间中的每组独立缓存区中纵向地重复读取实时更新的采集数据并将其写入本地文件,形成一条数据接收线程对应m条数据写入文件线程;和
判断模块,用于判断每条数据写入文件线程是否满足预先设定的开启条件;
如果满足开启条件,则新建本地文件目录,并且该条数据写入本地文件线程纵向地从同一位置上的、不同的数据缓存空间的每组独立缓存区中重复读取实时更新的采集数据,并写入该本地文件;同时将对应的数据缓存空间清空,以供新的采集数据写入;
如果不满足开启条件,则进一步判断该条数据写入文件线程是否处于启用状态;
若该条数据写入文件线程处于未启用状态,则继续保持等待该条数据写入文件线程满足开启条件;
若该条数据写入文件线程处于已启用状态,且该条数据写入文件线程正在进行纵向方向上的上一组独立缓存区中的采集数据的读取,并写入本地文件;则等待该条数据写入文件线程完成对上一组独立缓存区的采集数据的读取和写入操作之后,且满足开启条件,开始对下一组独立缓存区的采集数据进行读取和写入操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111262767.8A CN114035746B (zh) | 2021-10-28 | 2021-10-28 | 一种高采样率数据实时采集存储方法及采集存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111262767.8A CN114035746B (zh) | 2021-10-28 | 2021-10-28 | 一种高采样率数据实时采集存储方法及采集存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114035746A CN114035746A (zh) | 2022-02-11 |
CN114035746B true CN114035746B (zh) | 2023-06-16 |
Family
ID=80142164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111262767.8A Active CN114035746B (zh) | 2021-10-28 | 2021-10-28 | 一种高采样率数据实时采集存储方法及采集存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114035746B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912479A (zh) * | 2016-04-07 | 2016-08-31 | 武汉数字派特科技有限公司 | 一种并发数据的缓存方法及结构 |
CN111061434A (zh) * | 2019-12-17 | 2020-04-24 | 人和未来生物科技(长沙)有限公司 | 基因压缩多流数据并行写入及读取方法、系统及介质 |
CN111399781A (zh) * | 2020-04-21 | 2020-07-10 | 中国科学院光电技术研究所 | 一种提高实时图像记录系统可靠性的存储方法 |
-
2021
- 2021-10-28 CN CN202111262767.8A patent/CN114035746B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912479A (zh) * | 2016-04-07 | 2016-08-31 | 武汉数字派特科技有限公司 | 一种并发数据的缓存方法及结构 |
CN111061434A (zh) * | 2019-12-17 | 2020-04-24 | 人和未来生物科技(长沙)有限公司 | 基因压缩多流数据并行写入及读取方法、系统及介质 |
CN111399781A (zh) * | 2020-04-21 | 2020-07-10 | 中国科学院光电技术研究所 | 一种提高实时图像记录系统可靠性的存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114035746A (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4210961A (en) | Sorting system | |
DE3838240C2 (zh) | ||
CN106227507B (zh) | 计算系统及其控制器 | |
CN110109847A (zh) | Apb总线多个主设备的仲裁方法、系统及存储介质 | |
CN112269752B (zh) | 一种PCIe虚拟通道的数据处理方法及相关装置 | |
CN109388590A (zh) | 提升多通道dma访问性能的动态缓存块管理方法和装置 | |
CN110187969A (zh) | 一种基于gpu的分布式大数据并行计算方法 | |
CN103325426A (zh) | 基于ddr2sdram阵列分段存储的无缝采集方法 | |
CN110457238A (zh) | 减缓GPU访存请求及指令访问cache时停顿的方法 | |
CN114035746B (zh) | 一种高采样率数据实时采集存储方法及采集存储系统 | |
CN109669635A (zh) | 用于固态存储主控芯片的命令lba重合检测方法及装置 | |
CN111290305B (zh) | 多套惯导系统多路数字量采集与处理防冲突方法及系统 | |
CN108563399B (zh) | 存储设备的数据读取方法、装置、终端设备和存储介质 | |
CN111143261A (zh) | 一种基于pcie高速数据采集系统 | |
CN113777395A (zh) | 一种高频同步用电数据采集装置 | |
CN113238527B (zh) | 一种工业数据汇聚方法及系统 | |
CN114741028A (zh) | 一种基于ocssd的持久键值存储方法、设备及系统 | |
CN112433672B (zh) | 一种固态硬盘读方法和装置 | |
CN109343117B (zh) | 双缓存双线程地震数据显示方法 | |
CN111694777B (zh) | 基于PCIe接口的DMA传输方法 | |
CN112416825A (zh) | 面向异构众核基于空间重排的数据传输方法 | |
DE19956114A1 (de) | Verfahren und System zur Steuerung des Speicherzugriffs durch eine zentrale Verarbeitungseinheit in einem Computersystem | |
CN112199333A (zh) | 一种支持多值索引文件的存储方法和装置 | |
CN115269017B (zh) | 一种星载测控数传NANDFlash并行读写控制方法 | |
CN111651273B (zh) | 一种基于gpu的大容量短突发信号接收机设计 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |