CN111399781A - 一种提高实时图像记录系统可靠性的存储方法 - Google Patents
一种提高实时图像记录系统可靠性的存储方法 Download PDFInfo
- Publication number
- CN111399781A CN111399781A CN202010315170.4A CN202010315170A CN111399781A CN 111399781 A CN111399781 A CN 111399781A CN 202010315170 A CN202010315170 A CN 202010315170A CN 111399781 A CN111399781 A CN 111399781A
- Authority
- CN
- China
- Prior art keywords
- thread
- cache region
- cache
- read
- real
- 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.)
- Granted
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/0614—Improving the reliability of 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/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
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/78—Television signal recording using magnetic recording
- H04N5/781—Television signal recording using magnetic recording on disks or drums
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)
- Multimedia (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供一种提高实时图像记录系统可靠性的存储方法,包括:实时图像记录系统启动时建立一个内存缓存区、一个读缓存区线程、一个写缓存区线程、读缓存线程同步标识、写缓存线程同步标识;写缓存区线程接收需要记录的数据;写缓存区线程将数据写入缓存区,更新写缓存线程同步标识;记录开始后读缓存区线程查询线程同步标识判断是否可读出;判断读出数据在缓存区的位置;读缓存区线程将缓存区内数据读出并写入磁盘;在记录过程中同时运行读缓存区线程、写缓存区线程直至记录结束。本发明采用建立一个循环缓存区和读写缓存同步的方法避免了多个线程在多个缓存区间切换带来的不可靠问题;避免了多线程同时写入磁盘时带来的不可靠问题。
Description
技术领域
本发明属于图像存储特别是实时图像存储领域。具体涉及一种提高实时图像记录系统可靠性的存储方法。
背景技术
目前,实时图像记录系统为了保证记录的实时性,基本上都采取了建立多个乒乓缓存区,使用多个线程切换访问这些缓存,同时采用多个线程同时写入硬盘的存储方法。采用多个线程切换访问多个缓存区导致线程操作复杂、缓存访问冲突和数据容易出错等问题,采用多个线程写入磁盘的方式导致硬盘访问冲突,数据容易丢包,错序等问题。目前,实时图像记录系统为了解决上述问题,设计的存储带宽远大于实际需要存储数据的带宽,通常为两倍以上,例如,需要存储2GB/s数据时,就需要设计4GB/s的硬盘带宽,带来了很大的成本提升。要提高实时图像记录系统的可靠性,降低设计冗余存储带宽带来的成本,迫切需要一种提高实时图像记录系统可靠性的方法。
发明内容
本发明技术解决问题:针对现有技术的不足,提供一种操作简洁、读写均为单线程的循环缓存同步存储方法,提高实时图像记录系统的可靠性。为实现这样的目的,本发明提出的技术方案为:一种提高实时图像记录系统可靠性的存储方法,包括如下步骤:
步骤一、实时图像记录系统启动;
步骤二、实时图像记录系统在内存建立一个缓存区,记为A,该缓存区分为m个记录区,每个记录区记A[i],1≤i≤m,对应单次写入或读出缓存区的数据;建立一个读缓存区线程ThreadRead,建立读出缓存区位置标识q=0,建立一个写缓存区线程ThreadWrite,建立写入缓存区位置标识n=0,建立一个读缓存线程同步标识ReadFlag=0,建立一个写缓存线程同步标识WriteFlag=0;
步骤三、写缓存区线程接收需要记录的数据,判断写入缓存区的位置标识n,如果n≤m,则n=n,如果n>m,则n=1,;执行步骤三的同时执行步骤五;
步骤四、写缓存区线程将数据写入缓存区A[n],更新写缓存线程同步标识WriteFlag为WriteFlag+1,更新建立写入缓存区位置n为n+1;转到步骤八;
步骤五、读缓存区线程查询线程同步标识判断缓存区数据是否可读出,如果ReadFlag<WriteFlag,执行步骤六,否则,ReadFlag由读缓存区线程更新,WriteFlag由写缓存区线程更新,继续执行步骤五;
步骤六、读缓存区线程判断当前读出缓存区的位置是否到尾部,判断读出缓存区的位置标识q,如果q≤m,则q=q,如果q>m,则q=1;
步骤七、读缓存区线程读出缓存区数据A[q]并将数据写入磁盘,更新读缓存线程同步标识ReadFlag为ReadFlag+1,更新读出缓存区位置q为q+1;
步骤八、判断记录是否完成,如果完成,执行步骤九,如果未完成,继续执行步骤三;
步骤九、实时图像记录系统完成本次记录。
进一步的,读缓存区线程、写缓存区线程同时运行。
进一步的,所述的m值为10~100之间。
本发明与现有技术相比的有益效果在于:
本发明提出的一种提高实时图像记录系统可靠性的存储方法,利用循环缓存同步的存储方法,采用建立一个循环缓存区和一个写缓存线程的方法避免了多个线程在多个缓存区间切换带来的不可靠问题,采用一个读缓存区线程读出缓存数据并写入磁盘的方式避免了多线程同时写入磁盘时带来的不可靠问题,从而提高了实时图像记录系统的存储可靠性。
附图说明
图1为本发明方法实现流程图;
图2为本发明实时图像记录系统在进行记录任务时的实际工作流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
如图1所示,本发明提供了一种利用循环缓存同步提高实时图像记录系统可靠性的方法,实时图像记录系统启动后,建立一个内存缓存区、一个读缓存区线程、一个写缓存区线程、读缓存线程同步标识、写缓存线程同步标识;读缓存区线程、写缓存区线程同时运行;写缓存区线程接收需要记录的数据,判断数据需要写入缓存区的位置;写缓存区线程将数据写入缓存区,更新写缓存线程同步标识;读缓存区线程查询线程同步标识判断是否可读出;判断读出数据在缓存区的位置;读缓存区线程将缓存区内数据读出并写入磁盘,更新读缓存线程同步标识;在记录过程中同时运行读缓存区线程、写缓存区线程直至记录结束。
如图2所示,实时图像记录系统在进行记录任务时的步骤如下:
步骤一、实时图像记录系统启动;
步骤二、实时图像记录系统建立一个内存缓存区A,该缓存区分为m个记录区,每个记录区记A[i],1≤i≤m,对应单次写入或读出缓存区的数据,m值一般建议为10~100之间;建立一个读缓存区线程ThreadRead,建立读出缓存区位置标识q=0,建立一个写缓存区线程ThreadWrite,建立写入缓存区位置标识n=0,建立一个读缓存线程同步标识ReadFlag=0,建立一个写缓存线程同步标识WriteFlag=0;
步骤三、写缓存区线程接收需要记录的数据,判断写入缓存区的位置标识n,如果n≤m,则n=n,如果n>m,则n=1,例如当m=10,n=11时,n变为1,而当m=10,n=9时,n仍然为9;同时执行步骤五;
步骤四、写缓存区线程将数据写入缓存区A[n],更新写缓存线程同步标识WriteFlag为WriteFlag+1,更新建立写入缓存区位置n为n+1;转到步骤八;
步骤五、读缓存区线程查询线程同步标识判断缓存区数据是否可读出,如果ReadFlag<WriteFlag,执行步骤六,否则,ReadFlag由读缓存区线程更新,WriteFlag由写缓存区线程更新,继续执行步骤五;例如ReadFlag=10,WriteFlag=11时,内存缓存区可读出,执行步骤六,而当ReadFlag=10,WriteFlag=10时,内存缓存区不可读出,执行步骤五;
步骤六、读缓存区线程判断当前读出缓存区的位置是否到尾部,判断读出缓存区的位置标识q,如果q≤m,则q=q,如果q>m,则q=1,例如当m=10,q=11时,q变为1,而当m=10,q=9时,q仍然为9;
步骤七、读缓存区线程读出缓存区数据A[q]并将数据写入磁盘,更新读缓存线程同步标识ReadFlag为ReadFlag+1,更新读出缓存区位置q为q+1;
步骤八、判断记录是否完成,如果完成,执行步骤九,如果未完成,继续执行步骤三;
步骤九、实时图像记录系统完成本次记录。
如图2所示,采用本发明,实时图像记录系统在进行记录任务时,采用只建立一个循环缓存区和一个写缓存线程的方法避免了多个线程在多个缓存区间切换带来的不可靠问题,采用只使用一个读缓存区线程读出缓存数据并写入磁盘的方式避免了多线程同时写入磁盘时带来的不可靠问题,提高了实时图像记录系统的存储可靠性。
本发明未详细阐述部分属于本领域技术人员的公知技术。
本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非作为对本发明的限定,只要在本发明的实质精神范围内,对上述实施例子的变化,变型都将落在本发明权利要求书的范围内。
Claims (3)
1.一种提高实时图像记录系统可靠性的存储方法,其特征在于,包括如下步骤:
步骤一、实时图像记录系统启动;
步骤二、实时图像记录系统在内存建立一个缓存区,记为A,该缓存区分为m个记录区,每个记录区记A[i],1≤i≤m,对应单次写入或读出缓存区的数据;建立一个读缓存区线程ThreadRead,建立读出缓存区位置标识q=0,建立一个写缓存区线程ThreadWrite,建立写入缓存区位置标识n=0,建立一个读缓存线程同步标识ReadFlag=0,建立一个写缓存线程同步标识WriteFlag=0;
步骤三、写缓存区线程接收需要记录的数据,判断写入缓存区的位置标识n,如果n≤m,则n=n,如果n>m,则n=1,;执行步骤三的同时执行步骤五;
步骤四、写缓存区线程将数据写入缓存区A[n],更新写缓存线程同步标识WriteFlag为WriteFlag+1,更新建立写入缓存区位置n为n+1;转到步骤八;
步骤五、读缓存区线程查询线程同步标识判断缓存区数据是否可读出,如果ReadFlag<WriteFlag,执行步骤六,否则,ReadFlag由读缓存区线程更新,WriteFlag由写缓存区线程更新,继续执行步骤五;
步骤六、读缓存区线程判断当前读出缓存区的位置是否到尾部,判断读出缓存区的位置标识q,如果q≤m,则q=q,如果q>m,则q=1;
步骤七、读缓存区线程读出缓存区数据A[q]并将数据写入磁盘,更新读缓存线程同步标识ReadFlag为ReadFlag+1,更新读出缓存区位置q为q+1;
步骤八、判断记录是否完成,如果完成,执行步骤九,如果未完成,继续执行步骤三;
步骤九、实时图像记录系统完成本次记录。
2.根据权利要求1所述的一种提高实时图像记录系统可靠性的存储方法,其特征在于:
所述读缓存区线程、写缓存区线程同时运行。
3.根据权利要求1所述的一种提高实时图像记录系统可靠性的存储方法,其特征在于:
所述的m值为10~100之间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010315170.4A CN111399781B (zh) | 2020-04-21 | 2020-04-21 | 一种提高实时图像记录系统可靠性的存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010315170.4A CN111399781B (zh) | 2020-04-21 | 2020-04-21 | 一种提高实时图像记录系统可靠性的存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399781A true CN111399781A (zh) | 2020-07-10 |
CN111399781B CN111399781B (zh) | 2023-09-19 |
Family
ID=71437174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010315170.4A Active CN111399781B (zh) | 2020-04-21 | 2020-04-21 | 一种提高实时图像记录系统可靠性的存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111399781B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114035746A (zh) * | 2021-10-28 | 2022-02-11 | 中国科学院声学研究所 | 一种高采样率数据实时采集存储方法及采集存储系统 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1499671A1 (de) * | 1965-09-07 | 1970-12-23 | Vogue Instr Corp | Puffer-Datenspeichersystem mit einem zyklischen Speicher |
US6622206B1 (en) * | 1999-06-11 | 2003-09-16 | International Business Machines Corporation | Method for controlling write cache transfer and disk unit |
US20050076176A1 (en) * | 2003-09-19 | 2005-04-07 | Tomomi Takada | Circulating recording apparatus, method and program |
US20090271544A1 (en) * | 2008-04-23 | 2009-10-29 | International Business Machines Corporation | Apparatus and method for writing data to recording medium |
CN102169420A (zh) * | 2011-04-18 | 2011-08-31 | 杭州海康威视系统技术有限公司 | 缓冲区循环读写方法及装置 |
CN102479160A (zh) * | 2010-11-23 | 2012-05-30 | 国际商业机器公司 | 用于使用滑动写入窗口机制写入数据的方法和系统 |
CN103514261A (zh) * | 2013-08-13 | 2014-01-15 | 江苏华大天益电力科技有限公司 | 一种应用于工业控制系统的数据异步存储及访问机制 |
CN103559319A (zh) * | 2013-11-21 | 2014-02-05 | 华为技术有限公司 | 分布式集群文件系统的缓存同步方法和设备 |
CN104090730A (zh) * | 2014-07-08 | 2014-10-08 | 飞天诚信科技股份有限公司 | 一种对存储设备进行数据读写的方法及装置 |
CN104424116A (zh) * | 2013-08-19 | 2015-03-18 | 中国科学院声学研究所 | 一种嵌入式浏览器磁盘缓存的方法及系统 |
CN107247561A (zh) * | 2017-05-31 | 2017-10-13 | 成都华立达电力信息系统有限公司 | 缓冲池循环存储读写方法 |
WO2017193488A1 (zh) * | 2016-05-09 | 2017-11-16 | 福建联迪商用设备有限公司 | 一种提高虚拟磁盘写入性能的方法及系统 |
US20180143939A1 (en) * | 2016-11-18 | 2018-05-24 | Microsoft Technology Licensing, Llc | Flow Control in Remote Direct Memory Access Data Communications with Mirroring of Ring Buffers |
CN109298837A (zh) * | 2018-09-13 | 2019-02-01 | 郑州云海信息技术有限公司 | 一种多控制器缓存备份方法、装置、设备及可读存储介质 |
CN109426434A (zh) * | 2017-08-23 | 2019-03-05 | 北京易华录信息技术股份有限公司 | 一种光盘数据读写方法 |
CN110018782A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种数据读/写方法及相关装置 |
CN110910921A (zh) * | 2019-11-29 | 2020-03-24 | 深圳市国微电子有限公司 | 一种命令读写方法、装置及计算机存储介质 |
-
2020
- 2020-04-21 CN CN202010315170.4A patent/CN111399781B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1499671A1 (de) * | 1965-09-07 | 1970-12-23 | Vogue Instr Corp | Puffer-Datenspeichersystem mit einem zyklischen Speicher |
US6622206B1 (en) * | 1999-06-11 | 2003-09-16 | International Business Machines Corporation | Method for controlling write cache transfer and disk unit |
US20050076176A1 (en) * | 2003-09-19 | 2005-04-07 | Tomomi Takada | Circulating recording apparatus, method and program |
US20090271544A1 (en) * | 2008-04-23 | 2009-10-29 | International Business Machines Corporation | Apparatus and method for writing data to recording medium |
CN102479160A (zh) * | 2010-11-23 | 2012-05-30 | 国际商业机器公司 | 用于使用滑动写入窗口机制写入数据的方法和系统 |
CN102169420A (zh) * | 2011-04-18 | 2011-08-31 | 杭州海康威视系统技术有限公司 | 缓冲区循环读写方法及装置 |
CN103514261A (zh) * | 2013-08-13 | 2014-01-15 | 江苏华大天益电力科技有限公司 | 一种应用于工业控制系统的数据异步存储及访问机制 |
CN104424116A (zh) * | 2013-08-19 | 2015-03-18 | 中国科学院声学研究所 | 一种嵌入式浏览器磁盘缓存的方法及系统 |
CN103559319A (zh) * | 2013-11-21 | 2014-02-05 | 华为技术有限公司 | 分布式集群文件系统的缓存同步方法和设备 |
CN104090730A (zh) * | 2014-07-08 | 2014-10-08 | 飞天诚信科技股份有限公司 | 一种对存储设备进行数据读写的方法及装置 |
WO2017193488A1 (zh) * | 2016-05-09 | 2017-11-16 | 福建联迪商用设备有限公司 | 一种提高虚拟磁盘写入性能的方法及系统 |
US20180143939A1 (en) * | 2016-11-18 | 2018-05-24 | Microsoft Technology Licensing, Llc | Flow Control in Remote Direct Memory Access Data Communications with Mirroring of Ring Buffers |
CN107247561A (zh) * | 2017-05-31 | 2017-10-13 | 成都华立达电力信息系统有限公司 | 缓冲池循环存储读写方法 |
CN109426434A (zh) * | 2017-08-23 | 2019-03-05 | 北京易华录信息技术股份有限公司 | 一种光盘数据读写方法 |
CN110018782A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种数据读/写方法及相关装置 |
CN109298837A (zh) * | 2018-09-13 | 2019-02-01 | 郑州云海信息技术有限公司 | 一种多控制器缓存备份方法、装置、设备及可读存储介质 |
CN110910921A (zh) * | 2019-11-29 | 2020-03-24 | 深圳市国微电子有限公司 | 一种命令读写方法、装置及计算机存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114035746A (zh) * | 2021-10-28 | 2022-02-11 | 中国科学院声学研究所 | 一种高采样率数据实时采集存储方法及采集存储系统 |
CN114035746B (zh) * | 2021-10-28 | 2023-06-16 | 中国科学院声学研究所 | 一种高采样率数据实时采集存储方法及采集存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111399781B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7739475B2 (en) | System and method for updating dirty data of designated raw device | |
US7085087B2 (en) | Data storage apparatus and method for managing buffer memory | |
CN104811645B (zh) | 一种嵌入式录像数据存储方法 | |
EP1783595A2 (en) | Information processing system, control method for information processing system, and storage system | |
CN109669888A (zh) | 一种可配置且高效的嵌入式Nor-Flash控制器及控制方法 | |
WO2016176807A1 (zh) | 一种dram刷新方法、装置和系统 | |
US20240028568A1 (en) | Data migration method and apparatus, device, distributed system and storage medium | |
US20190287571A1 (en) | Method and device for playing video | |
CN108763531A (zh) | 一种mdvr文件存储系统及其运行方法 | |
CN111399781A (zh) | 一种提高实时图像记录系统可靠性的存储方法 | |
US4494157A (en) | Information readout apparatus | |
US9098421B2 (en) | Shingled media write operation | |
CN103729239A (zh) | 一种镜像元数据的分布式锁算法 | |
CN109213898A (zh) | 视频监控系统的录像检索方法及装置 | |
US20160070648A1 (en) | Data storage system and operation method thereof | |
CN104572764A (zh) | 一种多路视频数据读写方法 | |
CN106371950B (zh) | 一种实现raid级别转换的方法及装置 | |
CN100543748C (zh) | 一种利用文件分配表进行文件寻道的方法及系统 | |
CN108491161B (zh) | 一种高效多通道预分配磁盘录像方法 | |
CN113109778A (zh) | 一种基于中断响应机制的多体制雷达预处理实现方法 | |
JP2002351741A (ja) | 半導体集積回路装置 | |
CN102063271B (zh) | 一种磁盘外置Cache基于状态机的写回方法 | |
CN104156327A (zh) | 一种分布式文件系统中写回模式下对象掉电识别方法 | |
CN101807212A (zh) | 嵌入式文件系统的缓存方法及嵌入式文件系统 | |
CN102831078B (zh) | 一种cache中提前返回访存数据的方法 |
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 |