CN104331463B - 一种文件系统多线程实现的方法及装置 - Google Patents
一种文件系统多线程实现的方法及装置 Download PDFInfo
- Publication number
- CN104331463B CN104331463B CN201410603639.9A CN201410603639A CN104331463B CN 104331463 B CN104331463 B CN 104331463B CN 201410603639 A CN201410603639 A CN 201410603639A CN 104331463 B CN104331463 B CN 104331463B
- Authority
- CN
- China
- Prior art keywords
- thread
- file system
- daemon
- index
- impaired
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供了一种文件系统多线程实现的方法及装置,属于计算机技术领域。在本发明中,首先建立守护线程,所述守护线程用于维护文件系统的完整性;然后休眠所述守护线程;最后当执行写操作线程时,若发现所述文件系统的索引受损,则唤醒所述守护进程,并同时执行所述守护线程和所述写操作线程。本发明通过所述文件系统多线程实现的方法及装置,实现了在维护文件系统完整性的同时,及时保存录像数据到硬盘。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种文件系统多线程实现的方法及装置。
背景技术
录像监控文件系统的首要目标是确保录像数据不丢失。为了避免浪费中央处理器资源,上层应用程序通常休眠一定时间,如20毫秒,再唤醒以把缓存中的录像数据写入硬盘后再休眠。为避免录像数据不丢失,缓存大小必须保证能够完全容纳上层应用程序休眠期间(20毫秒)可能产生的录像数据量;而且必须保证上层应用程序休眠预定的时间长度后能够被及时唤醒,以避免缓存溢出,不允许录像存储应用程序长时间阻塞或休眠过长。
除了响应读、写、查询等请求外,录像监控文件系统还需要完成一项很重要的任务:文件系统索引完整性维护。绝大部分录像监控系统不录像却反复重启的故障的原因是文件系统索引受损。原因是上层应用程序读取到异常的索引数据,不知道如何处理,只能终止;由于该异常点存放文件系统的关键管理数据,无法绕过,所以上层业务表现为反复异常终止,不录像。及时修复受损的文件系统索引是确保录像不丢失的另一个必要条件。
录像监控文件系统当前普遍的实现方式是提供一系列功能接口,如:读、写、查询、录像文件空间分配、过期录像文件删除、文件系统索引完整性维护等,供上层应用程序调用。
不过,对于上层应用而言,每当休眠期满被唤醒,确保录像数据能够及时地写入硬盘是首要目标。文件系统索引完整性维护必须在规定的时间内(如20毫秒)结束,否则就可能造成录像数据缓存溢出,即录像数据丢失,因此在运行过程中,一方面需要冗余安排录像数据缓存,另一方面往往不得不牺牲耗时长的关键业务,如文件系统索引完整性维护。
及时保存录像数据到硬盘和及时维护文件系统完整性,两者必须同时兼顾,但在业界现有录像监控文件系统的具体实现实例中,却成为一对无法调和的矛盾。
发明内容
本发明提供了一种文件系统多线程实现的方法及装置,旨在解决及时保存录像数据到硬盘和及时维护文件系统完整性易发生冲突的问题。
一方面,本发明提供了一种文件系统多线程实现的方法,所述方法包括:
建立守护线程,所述守护线程用于维护文件系统的完整性;
休眠所述守护线程;
当执行写操作线程时,若发现所述文件系统的索引受损,则唤醒所述守护进程,并同时执行所述守护线程和所述写操作线程。
第二方面,本发明提供了一种文件系统多线程实现的装置,所述装置包括:
建立模块,用于建立守护线程,所述守护线程用于维护文件系统的完整性;
休眠模块,用于休眠所述守护线程;
第一执行模块,用于当执行写操作线程时,若发现所述文件系统的索引受损,则唤醒所述守护进程,并同时执行所述守护线程和所述写操作线程。
在本发明中,由于首先建立守护线程,守护线程用于维护文件系统的完整性;然后休眠守护线程;最后当执行写操作线程时,若发现文件系统的索引受损,则唤醒守护进程,并同时执行守护线程和写操作线程,因此,实现了在维护文件系统完整性的同时,及时保存录像数据到硬盘。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的文件系统多线程实现的方法一种流程图;
图2为本发明实施例一提供的文件系统多线程实现的方法另一种流程图;
图3为本发明实施例二提供的文件系统多线程实现的装置一种结构示意图;
图4为本发明实施例二提供的文件系统多线程实现的装置另一种结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一:
本发明实施例一提供了一种文件系统多线程实现的方法,参见图1,文件系统多线程实现的方法包括以下步骤:
101.建立守护线程,守护线程用于维护文件系统的完整性。
守护线程用于维护文件系统的完整性具体为:守护线程用于当检查文件系统的索引受损时,恢复文件系统的索引。
102.休眠守护线程。
103a.当执行写操作线程时,若发现文件系统的索引受损,则唤醒守护进程,并同时执行守护线程和写操作线程。录像监控文件系统提供读、写、查询等文件系统功能接口,供上层应用程序调用,上层应用程序调用文件系统功能接口过程中发现文件系统的索引受损,如果文件系统功能接口是写操作,则唤醒守护进程,并同时执行守护线程和写操作线程。
如图2所示,步骤101与步骤102之间还包括步骤101-2.
101-2.执行守护线程。文件系统启动时,执行一次守护线程。
如图2所示,步骤102之后还包括步骤103b。
103b.当执行读操作线程或查询操作线程时,若发现文件系统的索引受损,则先休眠读操作线程或查询操作线程,再唤醒守护线程,最后在执行完守护线程后唤醒读操作线程或查询操作线程。上层应用程序调用文件系统功能接口过程中发现文件系统索引受损,如果文件系统功能接口是读操作或查询操作,则先向上层应用程序报错,休眠读操作线程或查询操作线程,再唤醒守护线程,最后在执行完守护线程后唤醒读操作线程或查询操作线程。
例如,文件系统启动时,建立守护线程,该守护线程用于维护文件系统的完整性;并执行一次守护线程,执行文件系统完整性检查,修复受损的文件系统的索引;然后休眠守护线程;当执行写操作线程时,若发现文件系统的索引受损,则唤醒守护进程,并同时执行守护线程和写操作线程,这样文件系统索引完整性维护不需在规定的时间内结束,不会造成录像数据缓存溢出现象。
本实施例通过首先建立守护线程,守护线程用于维护文件系统的完整性;然后休眠守护线程;最后当执行写操作线程时,若发现文件系统的索引受损,则唤醒守护进程,并同时执行守护线程和写操作线程,因此,实现了在维护文件系统完整性的同时,及时保存录像数据到硬盘。
实施例二:
本发明实施例二提供了一种文件系统多线程实现的装置,如图3所示,文件系统多线程实现的装置30包括建立模块310、休眠模块320和第一执行模块330a。
建立模块310,用于建立守护线程,守护线程用于维护文件系统的完整性。
其中,守护线程用于维护文件系统的完整性具体为:守护线程用于当检查文件系统的索引受损时,恢复文件系统的索引。
休眠模块320,用于休眠守护线程。
第一执行模块330a,用于当执行写操作线程时,若发现文件系统的索引受损,则唤醒守护进程,并同时执行守护线程和写操作线程。
可选的,如图4所示,文件系统多线程实现的装置40还包括第二执行模块310-2和第三执行模块330b。
第二执行模块310-2,用于执行守护线程。
第三执行模块330b,用于当执行读操作线程或查询操作线程时,若发现文件系统的索引受损,则先休眠读操作线程或查询操作线程,再唤醒守护线程,最后在执行完守护线程后唤醒读操作线程或查询操作线程。
本实施例通过首先建立守护线程,守护线程用于维护文件系统的完整性;然后休眠守护线程;最后当执行写操作线程时,若发现文件系统的索引受损,则唤醒守护进程,并同时执行守护线程和写操作线程,因此,实现了在维护文件系统完整性的同时,及时保存录像数据到硬盘。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种文件系统多线程实现的方法,其特征在于,所述方法包括:
建立守护线程,所述守护线程用于维护文件系统的完整性;
休眠所述守护线程;
当执行写操作线程时,若发现所述文件系统的索引受损,则唤醒所述守护进程,并同时执行所述守护线程和所述写操作线程;
所述建立守护线程的步骤之后和所述休眠所述守护线程的步骤之前还包括:
执行所述守护线程;
所述执行所述守护线程具体为:文件系统启动时,执行一次所述守护线程;
所述休眠所述守护线程的步骤之后包括:
当执行读操作线程或查询操作线程时,若发现所述文件系统的索引受损,则先休眠所述读操作线程或所述查询操作线程,再唤醒所述守护线程,最后在执行完所述守护线程后唤醒所述读操作线程或所述查询操作线程;
所述当执行写操作线程时,若发现所述文件系统的索引受损,则唤醒所述守护进程,并同时执行所述守护线程和所述写操作线程具体为:
上层应用程序调用文件系统功能接口过程中发现文件系统的索引受损,如果文件系统功能接口是写操作,则唤醒所述守护进程,并同时执行所述守护线程和所述写操作线程。
2.根据权利要求1所述的方法,其特征在于,所述守护线程用于维护文件系统的完整性具体为:
所述守护线程用于当检查文件系统的索引受损时,恢复所述文件系统的索引。
3.一种文件系统多线程实现的装置,其特征在于,所述装置包括:
建立模块,用于建立守护线程,所述守护线程用于维护文件系统的完整性;
休眠模块,用于休眠所述守护线程;
第一执行模块,用于当执行写操作线程时,若发现所述文件系统的索引受损,则唤醒所述守护进程,并同时执行所述守护线程和所述写操作线程;
还包括:
第二执行模块,用于执行所述守护线程;
所述第二执行模块具体用于:文件系统启动时,执行一次所述守护线程;
第三执行模块,用于当执行读操作线程或查询操作线程时,若发现所述文件系统的索引受损,则先休眠所述读操作线程或所述查询操作线程,再唤醒所述守护线程,最后在执行完所述守护线程后唤醒所述读操作线程或所述查询操作线程;
所述第一执行模块具体用于:上层应用程序调用文件系统功能接口过程中发现文件系统的索引受损,如果文件系统功能接口是写操作,则唤醒所述守护进程,并同时执行所述守护线程和所述写操作线程。
4.根据权利要求3所述的装置,其特征在于,所述守护线程用于维护文件系统的完整性具体为:
所述守护线程用于当检查文件系统的索引受损时,恢复所述文件系统的索引。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410603639.9A CN104331463B (zh) | 2014-10-30 | 2014-10-30 | 一种文件系统多线程实现的方法及装置 |
PCT/CN2014/092870 WO2016065690A1 (zh) | 2014-10-30 | 2014-12-03 | 一种文件系统多线程实现的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410603639.9A CN104331463B (zh) | 2014-10-30 | 2014-10-30 | 一种文件系统多线程实现的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104331463A CN104331463A (zh) | 2015-02-04 |
CN104331463B true CN104331463B (zh) | 2018-07-17 |
Family
ID=52406190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410603639.9A Active CN104331463B (zh) | 2014-10-30 | 2014-10-30 | 一种文件系统多线程实现的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104331463B (zh) |
WO (1) | WO2016065690A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451257A (zh) * | 2017-07-31 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种基于分布式文件系统的可维护性系统和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1694095A (zh) * | 2004-04-30 | 2005-11-09 | 微软公司 | 实时文件系统修复 |
WO2005111867A2 (en) * | 2004-05-03 | 2005-11-24 | Microsoft Corporation | Systems and methods for automatic database or file system maintenance and repair |
CN1801096A (zh) * | 2005-01-05 | 2006-07-12 | 国际商业机器公司 | 在计算机系统中用于对进程进行休眠的方法和系统 |
CN103309858A (zh) * | 2012-03-06 | 2013-09-18 | 深圳市腾讯计算机系统有限公司 | 一种多线程日志管理的方法及装置 |
CN103678045A (zh) * | 2013-12-31 | 2014-03-26 | 曙光云计算技术有限公司 | 虚拟机的数据备份方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102651007A (zh) * | 2011-02-28 | 2012-08-29 | 国际商业机器公司 | 一种管理数据库索引的方法和装置 |
CN104063447B (zh) * | 2014-06-17 | 2018-04-17 | 惠州华阳通用电子有限公司 | 一种监控视频文件修复方法 |
-
2014
- 2014-10-30 CN CN201410603639.9A patent/CN104331463B/zh active Active
- 2014-12-03 WO PCT/CN2014/092870 patent/WO2016065690A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1694095A (zh) * | 2004-04-30 | 2005-11-09 | 微软公司 | 实时文件系统修复 |
WO2005111867A2 (en) * | 2004-05-03 | 2005-11-24 | Microsoft Corporation | Systems and methods for automatic database or file system maintenance and repair |
CN1801096A (zh) * | 2005-01-05 | 2006-07-12 | 国际商业机器公司 | 在计算机系统中用于对进程进行休眠的方法和系统 |
CN103309858A (zh) * | 2012-03-06 | 2013-09-18 | 深圳市腾讯计算机系统有限公司 | 一种多线程日志管理的方法及装置 |
CN103678045A (zh) * | 2013-12-31 | 2014-03-26 | 曙光云计算技术有限公司 | 虚拟机的数据备份方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104331463A (zh) | 2015-02-04 |
WO2016065690A1 (zh) | 2016-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI554875B (zh) | 基於資源存取模式預測、診斷應用程式故障並從應用程式故障恢復 | |
CN110413205B (zh) | 用于向磁盘阵列进行写入的方法、设备和计算机可读存储介质 | |
US9372743B1 (en) | System and method for storage management | |
US8448013B2 (en) | Failure-specific data collection and recovery for enterprise storage controllers | |
US20150331624A1 (en) | Host-controlled flash translation layer snapshot | |
KR102303008B1 (ko) | 파일 시스템에서의 플러싱 기법 | |
US20140317444A1 (en) | Storage control device and storage device | |
JP2008276626A (ja) | 記憶制御装置及び記憶制御装置の制御方法 | |
US8271968B2 (en) | System and method for transparent hard disk drive update | |
US9501427B2 (en) | Primary memory module with record of usage history | |
US20090300433A1 (en) | Information processing apparatus, medium recording error notification program, and error notification method | |
CN105302488A (zh) | 一种存储系统的数据写入方法及系统 | |
CN104657088B (zh) | 一种硬盘坏块信息的获取方法及装置 | |
CN104331463B (zh) | 一种文件系统多线程实现的方法及装置 | |
JP2017033113A (ja) | システム、情報処理装置、および情報処理方法 | |
CN102789813B (zh) | 一种控制存储设备内非最低有效位页使用的方法及装置 | |
US20130246710A1 (en) | Storage system and data management method | |
CN102929761A (zh) | 一种应对崩溃性错误的系统及方法 | |
JP6442996B2 (ja) | トランザクション処理装置、トラザクション処理方法、及びプログラム | |
JP6337607B2 (ja) | 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム | |
KR100713769B1 (ko) | 디스크 관리 장치 및 디스크 관리 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 | |
WO2015170702A1 (ja) | ストレージ装置と情報処理システム及びストレージ制御方法とプログラム | |
US10534683B2 (en) | Communicating outstanding maintenance tasks to improve disk data integrity | |
US20170357545A1 (en) | Information processing apparatus and information processing method | |
CN101600077A (zh) | 一种基于流媒体文件管理的数字硬盘录像机系统及其实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Nanshan District Xueyuan Road in Shenzhen city of Guangdong province 518000 No. 1001 Nanshan Chi Park B1 building 22 floor Applicant after: STREAMAX TECHNOLOGY CO., LTD. Address before: 518000, Guangdong Shenzhen Nanshan District science and technology two road Shenzhen software park three, five floor Applicant before: Shenzhen Streaming Video Technology Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |