CN103514112B - 一种数据存储方法及系统 - Google Patents
一种数据存储方法及系统 Download PDFInfo
- Publication number
- CN103514112B CN103514112B CN201210223346.9A CN201210223346A CN103514112B CN 103514112 B CN103514112 B CN 103514112B CN 201210223346 A CN201210223346 A CN 201210223346A CN 103514112 B CN103514112 B CN 103514112B
- Authority
- CN
- China
- Prior art keywords
- cache
- file system
- data
- event
- storing
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000013500 data storage Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 abstract description 4
- 230000004044 response Effects 0.000 abstract description 4
- 230000001143 conditioned effect Effects 0.000 abstract 1
- 238000012986 modification Methods 0.000 description 28
- 230000004048 modification Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 206010033799 Paralysis Diseases 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据存储方法及系统,用以提高文件操作的响应速度,所述方法包括以下步骤:将文件系统数据存储到第一缓存中,并创建用于描述该操作的事件,将该事件发送到存储文件系统数据的线程的队列;所述线程从所述队列中获取一个事件并执行该事件,将事件的执行结果存储到第二缓存中;当满足预设条件时,将第二缓存中存储的文件系统数据存储到磁盘中。本发明采用的方法明显的提高了文件操作的响应速度,保证在异常断电时文件系统数据的完整性,最大限度的减少异常断电文件的丢失。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种数据存储方法及系统。
背景技术
文件系统的性能瓶颈在于与存储介质的数据交互,频繁的访问存储介质严重影响文件系统性能,为减少访问存储介质的次数,提高文件系统的性能,通常都会开辟一块内存空间,让大部分的数据交互都发生在内存中。
在嵌入式存储设备中,由于内存空间有限,文件系统的一些关键数据无法做到在内存中完成一次性写入存储介质,只能分批次从缓存中写到存储介质上。尚若关键数据还没写完,设备就异常断电了,这种情况下存储介质上的文件系统的关键数据就不是完整的,下次挂载的时候就可能很多文件丢失掉,更严重者文件系统直接瘫痪。
而现有的另一种技术方案是在存储文件系统的关键数据时,不通过缓存直接写到存储介质上。这种方案一方面可以有效避免因关键数据丢失文件系统不可用或大批文件丢失的情况,但是另一方面由于在存储时没有缓存的情况下是相当耗时的,因此又会严重影响文件系统的操作性能。
发明内容
针对上述技术中存在的问题,本发明实施例提供一种数据存储方法及系统,用以提高文件操作的响应速度。
为实现上述技术方案,本发明实施例一方面提供一种数据存储方法,包括以下步骤:
将文件系统数据存储到第一缓存中,并创建用于描述该操作的事件,将该事件发送到存储文件系统数据的线程的队列;
所述线程从所述队列中获取一个事件并执行该事件,将事件的执行结果存储到第二缓存中;
当满足预设条件时,将第二缓存中存储的文件系统数据存储到磁盘中。
优选的,所述预设条件包括:
第二缓存中存储的数据量达到预设的数据量阈值;或者,
第二缓存中存储的事件的执行结果的个数达到预设的个数阈值;或者,
存储文件系统数据的线程的处理时间超过预设的时间阈值。
优选的,所述第一缓存包括内存和/或磁盘。
优选的,所述第二缓存包括内存和/或磁盘。
优选的,在将文件系统数据存储到第一缓存中之前,该方法还包括:
根据用户操作确定当前需要存储的文件系统数据。
本发明实施例另一方面还提供一种数据存储系统,该系统包括:包括第一缓存、第二缓存和磁盘,以及:
第一控制单元,用于将文件系统数据存储到第一缓存中,并创建用于描述该操作的事件,将该事件发送到存储文件系统数据的线程的队列;
第二控制单元,用于控制所述线程从所述队列中获取一个事件并执行该事件,将事件的执行结果存储到第二缓存中;
第三控制单元,用于当满足预设条件时,将第二缓存中存储的文件系统数据存储到磁盘中。
优选的,所述预设条件包括:
第二缓存中存储的数据量达到预设的数据量阈值;或者,
第二缓存中存储的事件的执行结果的个数达到预设的个数阈值;或者,
存储文件系统数据的线程的处理时间超过预设的时间阈值。
优选的,所述第一缓存包括内存和/或磁盘。
优选的,所述第二缓存包括内存和/或磁盘。
优选的,该系统还包括:
预处理单元,用于在所述第一控制单元将文件系统数据存储到第一缓存中之前,根据用户操作确定当前需要存储的文件系统数据,将该文件系统数据发送给所述第一控制单元。
本发明实施例采用的技术方案与现有技术相比,具有以下优点:
本发明实施例通过采用内存缓存、硬盘存储相结合的方式来保证缓存数据的完整性,同时采用事件的模式来保证关键数据区与缓存同步。
在存储介质上设定两块空间分别为第一缓存以及第二缓存作为关键数据的缓存区域,存储关键数据的修改记录,并建立所述修改记录与修改信息的对应关系;将关键数据存储到第一缓存,并记录第一缓存上关键数据的修改状况,获取关键数据并将所述关键数据存储到第一缓存,以及将所述第一缓存的状态修改为已存储;将存储的数据中的关键数据的修改记录保存到事件列队中,根据存储的所述修改记录,获取所述关键数据对应的修改信息,并将所述修改信息存储到第二缓存;判断所述第二缓存存储的所述关键数据的修改信息量与设定值的关系;当达到所述设定值时,将所述第二缓存的所述关键数据块存储到硬盘存储器中。
本发明采用的方法可以避免文件系统在短时间内大量操作关键数据区,如短时间内大量删除文件导致的关键数据频繁改写,从而由于操作耗时太长影响文件系统的性能;由于文件操作直接操作内存在缓存区,无需等待文件系统关键数据写入成功,因此不影响文件操作性能,而且当达到设定值时,一次将第二缓存的关键数据存储到硬盘的存储关键数据区上,因此每次从缓存同步到关键数据区的数据都是完整的,可以保证关键数据的完整性,避免了因异常断电所引起的文件系统崩溃。
附图说明
图1为本发明实施例提供的数据存储方法的流程流程图;
图2为本发明实施例提供的数据存储方法的原理示意图;
图3为本发明实施例提供的数据存储系统的结构示意图。
具体实施方式
本发明实施例提供一种数据存储方法及系统,用以提高文件操作的响应速度。
下面结合具体实施方式及附图对本发明提供的一种方法及系统进行描述。
如图1所示,为本发明实施例一提供的一种数据存储方法流程图,包括以下步骤:
步骤101:将文件系统数据存储到第一缓存中,并创建用于描述该操作的事件,将该事件发送到存储文件系统数据的线程的队列;
步骤102:所述线程从所述队列中获取一个事件并执行该事件,将事件的执行结果存储到第二缓存中;
其中,所述事件的执行结果,即执行该事件所得到的文件系统数据,该文件系统数据原来存储在第一缓存中。
步骤103:当满足预设条件时,将第二缓存中存储的文件系统数据存储到磁盘中。
较佳地,所述预设条件包括:
第二缓存中存储的数据量达到预设的数据量阈值,数据量阈值例如4K,如果内存比较大,且断电时可以容忍的文件丢失数目比较大,可以增加个数,否则减少个数;或者,
第二缓存中存储的事件的执行结果的个数达到预设的个数阈值,个数阈值例如10个如果内存比较大,且断电时可以容忍的文件丢失数目比较大,可以增加个数,否则减少个数;或者,
存储文件系统数据的线程的处理时间超过预设的时间阈值,时间阈值例如1秒钟一次,视具体需求,如果文件系统数据修改频繁可以减少时间,否则加大时间。
较佳地,所述第一缓存包括内存和/或磁盘。
较佳地,所述第二缓存包括内存和/或磁盘。
本发明实施例提供的数据存储方法,较佳地,针对对于系统来说重要的数据(特指文件系统数据,而不是录像数据),并非针对全部数据,上述数据的不完整有可能造成系统瘫痪等风险。
因此,较佳地,在将文件系统数据存储到第一缓存中之前,该方法还包括:
根据用户操作确定当前需要存储的文件系统数据(以下简称关键数据),例如,例如创建一个文件时,需要修改文件系统的索引,下次打开的时候就需要通过这个索引值去找到文件。
也就是说,在存储关键数据的修改记录(所谓修改记录,即用于描述将关键数据存储到第一缓存中这一操作的事件)之前,还包括:获取关键数据,并将所述关键数据存储到第一缓存;将存储的数据中的关键数据的修改记录保存到事件列队中,所述修改记录中至少包括:所述关键数据的地址信息,并建立对应所述地址信息与所述关键数据的修改记录的映射关系;根据所述关键数据的地址信息,获取所述事件列队中对应所述地址的关键数据修改记录信息;将所述关键数据修改记录存储到内存的第二缓存。
较佳地,步骤103具体包括:判断所述第二缓存存储的所述关键数据的修改信息量与设定值的关系,具体包括:实时或周期性的监测所述第二缓存存储的所述关键数据的修改信息的数量;当判断出监测到的所述第二缓存存储的所述关键数据的修改信息的数量达到设定值时,将所述关键数据块存储到硬盘存储器中。
或者,由于监测关键数据以及其修改信息是否已经完全拷贝到第二缓存,可以有多种方式,除上述提到的监测数量之外,还可以监测关键数据发生变化的时间,如果超过了设定时长范围,则确定出对应存储文件的关键数据已完全存储到了第二缓存,因此可以将第二缓存的关键数据一次存储到硬盘的关键数据块区。
或者,步骤103具体包括:实时监测所述第二缓存存储的所述关键数据数量发生变化的时间;当判断出监测出的所述关键数据数量发生变化的时间达到设定值时,将所述关键数据块存储到硬盘存储器中。
参见图2,为本发明实施例提供的数据存储方法的原理示意图。
在根据存储的所述修改记录,获取所述关键数据对应的修改信息(包括文件系统索引等文件系统数据),并将所述修改信息存储到第二缓存同时,还可以获取关键数据,并将所述关键数据存储到第一缓存。也就是说,可以在第一缓存接收数据的同时,还可以将关键数据的修改内容存储到第二缓存,通过至少两个线程来实现。
另外,将所述关键数据修改记录存储到第二缓存之后,还包括:清空第二缓存上存储的关键数据,并将所述第二缓存的状态标记为已清空。
在接收到关键数据之后将第一缓存的状态修改为已使用或者已存储,表示出当前的第一缓存是在使用接收数据的状态;在将关键数据存储到第二缓存之后,也将第二缓存的状态标识修改为已存储。
将所述关键数据修改记录存储到第二缓存之后,还包括:清空第二缓存上存储的关键数据,并将所述第二缓存的状态标记为已清空。
本发明实施例另一方面还提供一种数据存储系统,如图3所示,该系统包括:第一缓存11、第二缓存12和磁盘13,以及:
第一控制单元14,用于将文件系统数据存储到第一缓存11中,并创建用于描述该操作的事件,将该事件发送到存储文件系统数据的线程的队列;
第二控制单元15,用于控制所述线程从所述队列中获取一个事件并执行该事件,将事件的执行结果存储到第二缓存12中;
第三控制单元16,用于当满足预设条件时,将第二缓存12中存储的文件系统数据存储到磁盘13中。
较佳的,所述预设条件包括:
第二缓存12中存储的数据量达到预设的数据量阈值;或者,
第二缓存12中存储的事件的执行结果的个数达到预设的个数阈值;或者,
存储文件系统数据的线程的处理时间超过预设的时间阈值。
较佳的,所述第一缓存11包括内存和/或磁盘。
较佳的,所述第二缓存12包括内存和/或磁盘。
较佳的,该系统还包括:
预处理单元10,用于在所述第一控制单元14将文件系统数据存储到第一缓存11中之前,根据用户操作确定当前需要存储的文件系统数据,将该文件系统数据发送给所述第一控制单元14。
综上所述,本发明实施例具有以下优点:
采用本发明实施例通过采用内存缓存、硬盘存储相结合的方式来保证缓存数据的完整性,同时采用事件的模式来保证关键数据区与缓存同步的方法,有效地避免了因异常断电所引起的文件系统崩溃,并且还不会因为短时间内对大量文件进行操作导致关键数据频繁改写,从而影响文件系统的稳定性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种数据存储方法,其特征在于,包括以下步骤:
将文件系统数据存储到第一缓存中,并创建用于描述将文件系统数据存储到第一缓存中这一操作的事件,将该事件发送到存储文件系统数据的线程的队列;
所述线程从所述队列中获取一个事件并执行该事件,将事件的执行结果存储到第二缓存中;
当满足预设条件时,将第二缓存中存储的文件系统数据存储到磁盘中。
2.根据权利要求1所述的方法,其特征在于,所述预设条件包括:
第二缓存中存储的数据量达到预设的数据量阈值;或者,
第二缓存中存储的事件的执行结果的个数达到预设的个数阈值;或者,
存储文件系统数据的线程的处理时间超过预设的时间阈值。
3.根据权利要求1所述的方法,其特征在于,所述第一缓存包括内存和/或磁盘。
4.根据权利要求1所述的方法,其特征在于,所述第二缓存包括内存和/或磁盘。
5.根据权利要求1所述的方法,其特征在于,在将文件系统数据存储到第一缓存中之前,该方法还包括:
根据用户操作确定当前需要存储的文件系统数据。
6.一种数据存储系统,其特征在于,该系统包括第一缓存、第二缓存和磁盘,以及:
第一控制单元,用于将文件系统数据存储到第一缓存中,并创建用于描述将文件系统数据存储到第一缓存中这一操作的事件,将该事件发送到存储文件系统数据的线程的队列;
第二控制单元,用于控制所述线程从所述队列中获取一个事件并执行该事件,将事件的执行结果存储到第二缓存中;
第三控制单元,用于当满足预设条件时,将第二缓存中存储的文件系统数据存储到磁盘中。
7.根据权利要求6所述的系统,其特征在于,所述预设条件包括:
第二缓存中存储的数据量达到预设的数据量阈值;或者,
第二缓存中存储的事件的执行结果的个数达到预设的个数阈值;或者,
存储文件系统数据的线程的处理时间超过预设的时间阈值。
8.根据权利要求6所述的系统,其特征在于,所述第一缓存包括内存和/或磁盘。
9.根据权利要求6所述的系统,其特征在于,所述第二缓存包括内存和/或磁盘。
10.根据权利要求6所述的系统,其特征在于,该系统还包括:
预处理单元,用于在所述第一控制单元将文件系统数据存储到第一缓存中之前,根据用户操作确定当前需要存储的文件系统数据,将该文件系统数据发送给所述第一控制单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210223346.9A CN103514112B (zh) | 2012-06-29 | 2012-06-29 | 一种数据存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210223346.9A CN103514112B (zh) | 2012-06-29 | 2012-06-29 | 一种数据存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103514112A CN103514112A (zh) | 2014-01-15 |
CN103514112B true CN103514112B (zh) | 2016-11-02 |
Family
ID=49896862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210223346.9A Expired - Fee Related CN103514112B (zh) | 2012-06-29 | 2012-06-29 | 一种数据存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103514112B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512232B (zh) * | 2015-11-30 | 2020-02-28 | 北京金山安全软件有限公司 | 数据存储方法及装置 |
CN109118609B (zh) * | 2017-06-26 | 2020-11-13 | 深圳市道通智能航空技术有限公司 | 无人机飞行日志记录方法、装置、存储介质和计算机设备 |
CN109189654A (zh) * | 2018-08-02 | 2019-01-11 | 山东浪潮通软信息科技有限公司 | 一种移动端用户行为轨迹记录方法 |
CN110221987A (zh) * | 2019-05-05 | 2019-09-10 | 福建天泉教育科技有限公司 | 系统应急情况下的数据存储方法、存储介质 |
CN111597364B (zh) * | 2020-03-27 | 2024-01-30 | 广联达科技股份有限公司 | 工程量计算中间层生成方法、装置、存储介质、电子设备 |
CN111428260A (zh) * | 2020-06-15 | 2020-07-17 | 广东电网有限责任公司佛山供电局 | 基于芯片化保护装置的文件安全访问控制方法和系统 |
CN112052110B (zh) * | 2020-09-02 | 2024-04-05 | 广州市百果园信息技术有限公司 | 一种存储方法及装置 |
CN114116634B (zh) * | 2022-01-26 | 2022-04-22 | 苏州浪潮智能科技有限公司 | 一种缓存方法、装置及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517917A (zh) * | 2003-01-27 | 2004-08-04 | ������������ʽ���� | 在多线程环境中管理和持久结构相关联的事务处理的方法 |
US6865650B1 (en) * | 2000-09-29 | 2005-03-08 | Emc Corporation | System and method for hierarchical data storage |
CN1749975A (zh) * | 2004-01-17 | 2006-03-22 | 崔允太 | 准系统硬盘 |
CN101102281A (zh) * | 2007-08-16 | 2008-01-09 | 中兴通讯股份有限公司 | 移动通信系统中大量数据上报时的数据处理方法 |
CN201993755U (zh) * | 2011-01-30 | 2011-09-28 | 上海振华重工(集团)股份有限公司 | 实时数据库的数据过滤压缩存储系统 |
-
2012
- 2012-06-29 CN CN201210223346.9A patent/CN103514112B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6865650B1 (en) * | 2000-09-29 | 2005-03-08 | Emc Corporation | System and method for hierarchical data storage |
CN1517917A (zh) * | 2003-01-27 | 2004-08-04 | ������������ʽ���� | 在多线程环境中管理和持久结构相关联的事务处理的方法 |
CN1749975A (zh) * | 2004-01-17 | 2006-03-22 | 崔允太 | 准系统硬盘 |
CN101102281A (zh) * | 2007-08-16 | 2008-01-09 | 中兴通讯股份有限公司 | 移动通信系统中大量数据上报时的数据处理方法 |
CN201993755U (zh) * | 2011-01-30 | 2011-09-28 | 上海振华重工(集团)股份有限公司 | 实时数据库的数据过滤压缩存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103514112A (zh) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103514112B (zh) | 一种数据存储方法及系统 | |
US20140006687A1 (en) | Data Cache Apparatus, Data Storage System and Method | |
EP3229142B1 (en) | Read cache management method and device based on solid state drive | |
US9946467B2 (en) | Data storage method and electronic device | |
US7174438B2 (en) | Disk array apparatus | |
US9355112B1 (en) | Optimizing compression based on data activity | |
US20030212865A1 (en) | Method and apparatus for flushing write cache data | |
US10402114B2 (en) | Information processing system, storage control apparatus, storage control method, and storage control program | |
US8909883B2 (en) | Storage system and storage control method | |
US20150331624A1 (en) | Host-controlled flash translation layer snapshot | |
US8578089B2 (en) | Storage device cache | |
JP5445463B2 (ja) | 計算機システム、データ保存方法およびプログラム | |
US20060095688A1 (en) | Storage system and method of controlling the same | |
TW201619971A (zh) | 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法 | |
EP2454668B1 (en) | Feedback reporting from non-volatile block storage device to processing device | |
US10592148B2 (en) | Information processing system, storage control apparatus, storage control method, and storage control program for evaluating access performance to a storage medium | |
US8478934B2 (en) | Managing extended RAID caches using counting bloom filters | |
KR20170042593A (ko) | 파일 시스템에서의 플러싱 기법 | |
CN103678149A (zh) | 数据处理的方法及设备 | |
US20120047387A1 (en) | Cache control device and cache control method | |
CN102510390B (zh) | 利用硬盘温度自检测指导数据迁移的方法和装置 | |
CN105404468B (zh) | 绿能与非固态硬盘应用及其驱动器 | |
US20120047330A1 (en) | I/o efficiency of persistent caches in a storage system | |
JP4641443B2 (ja) | ログ情報管理装置、ログ情報管理方法およびログ情報管理プログラム | |
CN100426246C (zh) | 存储系统的高速缓存的数据的保护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161102 |