CN104156326A - 一种实现数据一致性的方法 - Google Patents
一种实现数据一致性的方法 Download PDFInfo
- Publication number
- CN104156326A CN104156326A CN201410380029.7A CN201410380029A CN104156326A CN 104156326 A CN104156326 A CN 104156326A CN 201410380029 A CN201410380029 A CN 201410380029A CN 104156326 A CN104156326 A CN 104156326A
- Authority
- CN
- China
- Prior art keywords
- data
- submission
- piece
- data block
- disk
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种实现数据一致性的方法,应用于磁盘,磁盘包括一个或一个以上用于存储元数据或数据的数据块,和一个或一个以上用于存储磁盘中存储的所有数据对应的元数据的关键信息的提交块;该方法包括:当需要对其中一数据块中的数据进行修改时,对新的提交块设置其时序号,在新的提交块中创建新的副本,该新的副本包括修改后磁盘中存储的所有数据对应的元数据的关键信息;其中,新的提交块为未存储数据的提交块中的任意一个;对该其中一数据块进行修改。本发明通过在新的提交块中创建新的副本,当磁盘中最新的一次修改不完整时,可以从获取上一次修改完整的数据,从而提高了数据存储的可靠性。
Description
技术领域
本发明涉及计算机存储技术,尤指一种实现数据一致性的方法。
背景技术
数据持久化存储是在计算机存储领域必须研究的基础内容,其关注点是数据读写的性能(包括每秒进行读写操作的次数(IOPS,Input/OutputOperations Per Second)、数据传输速率(MBPS))、数据存储介质的有效性、数据容错能力、数据一致性及数据安全性保证等。以上对于数据持久化存储的关注点是循序渐进形成的。在最初阶段,只关注数据存储的性能、容量等指标;但随着数据存储的规模越来越大,存储的数据时间越来越长,越来越需要关注数据存储介质的有效性;随着对于存储介质有效性追求逐渐达到瓶颈,又从另一个思路来关注数据的可靠性,即通过增加一定的数据冗余来提高数据的容错能力(如raid机制);当最坏的情况下,数据发生损坏或是丢失时,应提供一种实现数据一致性的方法,以找回部分或是全部数据;而在保证数据存储可靠性、一致性的基础上,进一步关注数据的安全性,即数据是否会被窃取等问题。
现有的实现数据一致性的方法是多副本技术,即磁盘包括一个用于存储元数据的关键信息的超级块和多个用于存储数据和元数据的分数据块,其中,元数据的关键信息是指对元数据的描述信息,根据元数据的关键信息就能够查找到其所描述的元数据;元数据是用于描述数据的信息,根据元数据就能够查找到其所描述的数据。当用户对磁盘中存储的数据进行修改时,为新的数据创建一个新的副本,将新的数据及其对应的元数据写入到新的副本中,然后将新的数据对应的元数据的关键信息保存到超级块中覆盖原来的元数据的关键信息。
现有的实现数据一致性的方法中,每次进行数据修改时都将超级块中原来的数据覆盖,如果在修改过程中发生意外导致没有将超级块中的数据更新完成,则会导致新的数据的丢失,从而无法保证数据修改过程中数据存储的一致性。
发明内容
为了解决上述问题,本发明提出了一种实现数据一致性的方法,能够保证数据修改过程中数据存储的一致性。
为了达到上述目的,本发明提出了一种实现数据一致性的方法,应用于磁盘,磁盘包括一个或一个以上用于存储元数据或数据的数据块,和一个或一个以上用于存储磁盘中存储的所有数据对应的元数据的关键信息的提交块;
该方法包括:
当需要对其中一数据块中的数据进行修改时,对新的提交块设置其时序号,在新的提交块中创建新的副本,该新的副本包括修改后磁盘中存储的所有数据对应的元数据的关键信息;其中,新的提交块为未存储数据的提交块中的任意一个;
对该其中一数据块进行修改。
优选地,所述多个提交块位于所述磁盘中连续的存储空间,或者离散的存储空间,或者周期性分布的存储空间。
优选地,所述对该其中一数据块进行修改包括:
判断出修改的数据的大小小于所述其中一数据块的50%时,采用写时复制的方法对所述其中一数据块进行修改;判断出所述修改的数据的大小大于或等于所述其中一数据块的50%时,采用写时重定向的方法对所述其中一数据块进行修改。
优选地,所述采用写时复制的方法对其中一数据块进行修改包括:
将所述其中一数据块中的数据复制到未写入数据的数据块中,并相应修改原提交块中的元数据的关键信息,将待写入的数据写入到所述其中一数据块中。
优选地,所述采用写时重定向的方法对其中一数据块进行修改包括:
将待写入的数据直接写入未写入数据的数据块。
优选地,当需要对所述磁盘中的数据进行访问时,该方法还包括:
获取所述磁盘中的所有提交块,对所有提交块按照其时序号进行排序;
对最新的提交块进行完整性验证,若最新的提交块是完整的,则使用最新的提交块中的元数据的关键信息获取待访问的数据;
若最新的提交块不是完整的,则根据前一个提交块中的元数据的关键信息获取所述待访问的数据。
与现有技术相比,本发明包括:当需要对其中一数据块中的数据进行修改时,对新的提交块设置其时序号,在新的提交块中创建新的副本,该新的副本包括修改后磁盘中存储的所有数据对应的元数据的关键信息;其中,新的提交块为未存储数据的提交块中的任意一个;对该其中一数据块进行修改。通过本发明的方案,在新的提交块中创建新的副本,当磁盘中最新的一次修改不完整时,可以从磁盘中获取上一次修改完整的数据,从而保证数据修改过程中数据存储的一致性。
附图说明
下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
图1为本发明的实现数据一致性的方法流程图。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。
参见图1,本发明提出了一种实现数据一致性的方法,应用于磁盘,磁盘包括一个或一个以上用于存储元数据或数据的数据块,和一个或一个以上用于存储磁盘中存储的所有数据对应的元数据的关键信息的提交块。
其中,元数据的关键信息是指对元数据的描述信息,根据元数据的关键信息就能够查找到其所描述的元数据。
其中,提交块在磁盘中的位置是预先确定好的,从而方便提交块的查找,而不需要全盘搜索磁盘;一个或一个以上提交块可以位于磁盘中连续的存储空间,或者离散的存储空间,或者周期性分布的存储空间。
一个或一个以上提交块位于磁盘中离散的存储空间,或者周期性分布的存储空间能够保证在磁盘部分损坏时,能够从磁盘未损坏部分的提交块中获取对应的数据。
其中,当提交块中保存有数据时,提交块中还保存有时序号,该时序号用于标识副本。
该方法包括:
步骤100、当需要对其中一数据块中的数据进行修改时,对新的提交块设置其时序号,在新的提交块中创建新的副本,该新的副本包括修改后磁盘中存储的所有数据对应的元数据的关键信息。
本步骤中,新的提交块是指未存储数据的提交块中的任意一个。
本步骤中,设置新的提交块的时序号时,可以按照升序的方式进行设置。
步骤101、对该其中一数据块进行修改。
本步骤中,可以采用写时复制(COW)或者写时重定向(ROW)的方法对该其中一数据块进行修改。
具体地,对其中一数据块进行修改包括:
判断出修改的数据的大小小于其中一数据块的50%时,采用写时复制的方法对其中一数据块进行修改;判断出修改的数据的大小大于或等于其中一数据块的50%时,采用写时重定向的方法对其中一数据块进行修改。
其中,采用写时复制的方法对其中一数据块进行修改包括:
将其中一数据块中的数据复制到未写入数据的数据块中,并相应修改原提交块中的元数据的关键信息,将待写入的数据写入到其中一数据块中。
其中,采用写时重定向的方法对其中一数据块进行修改包括:
将待写入的数据直接写入未写入数据的数据块。
当数据的修改量较小时,采用写时复制代价较小;当数据出现大量修改时,写时重定向代价较小。
本发明的方法中,当需要对磁盘中的数据进行访问时,该方法还包括:
获取磁盘中的所有提交块,对所有提交块按照其时序号进行排序;对最新的提交块(如果提交块是以升序进行排序的,则最新的提交块就是序号最大的提交块)进行完整性验证,若最新的提交块是完整的,则使用最新的提交块中的元数据的关键信息获取待访问的数据;若最新的提交块不是完整的,则根据前一个提交块(如果提交块是以升序进行排序的,则前一个提交块就是除最新的提交块外,序号最大的提交块)中的元数据的关键信息获取待访问的数据。
需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。
Claims (6)
1.一种实现数据一致性的方法,其特征在于,应用于磁盘,磁盘包括一个或一个以上用于存储元数据或数据的数据块,和一个或一个以上用于存储磁盘中存储的所有数据对应的元数据的关键信息的提交块;
该方法包括:
当需要对其中一数据块中的数据进行修改时,对新的提交块设置其时序号,在新的提交块中创建新的副本,该新的副本包括修改后磁盘中存储的所有数据对应的元数据的关键信息;其中,新的提交块为未存储数据的提交块中的任意一个;
对该其中一数据块进行修改。
2.根据权利要求1所述的方法,其特征在于,所述多个提交块位于所述磁盘中连续的存储空间,或者离散的存储空间,或者周期性分布的存储空间。
3.根据权利要求1所述的方法,其特征在于,所述对该其中一数据块进行修改包括:
判断出修改的数据的大小小于所述其中一数据块的50%时,采用写时复制的方法对所述其中一数据块进行修改;判断出所述修改的数据的大小大于或等于所述其中一数据块的50%时,采用写时重定向的方法对所述其中一数据块进行修改。
4.根据权利要求3所述的方法,其特征在于,所述采用写时复制的方法对其中一数据块进行修改包括:
将所述其中一数据块中的数据复制到未写入数据的数据块中,并相应修改原提交块中的元数据的关键信息,将待写入的数据写入到所述其中一数据块中。
5.根据权利要求3所述的方法,其特征在于,所述采用写时重定向的方法对其中一数据块进行修改包括:
将待写入的数据直接写入未写入数据的数据块。
6.根据权利要求1所述的方法,其特征在于,当需要对所述磁盘中的数据进行访问时,该方法还包括:
获取所述磁盘中的所有提交块,对所有提交块按照其时序号进行排序;
对最新的提交块进行完整性验证,若最新的提交块是完整的,则使用最新的提交块中的元数据的关键信息获取待访问的数据;
若最新的提交块不是完整的,则根据前一个提交块中的元数据的关键信息获取所述待访问的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410380029.7A CN104156326A (zh) | 2014-08-04 | 2014-08-04 | 一种实现数据一致性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410380029.7A CN104156326A (zh) | 2014-08-04 | 2014-08-04 | 一种实现数据一致性的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104156326A true CN104156326A (zh) | 2014-11-19 |
Family
ID=51881831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410380029.7A Pending CN104156326A (zh) | 2014-08-04 | 2014-08-04 | 一种实现数据一致性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104156326A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183383A (zh) * | 2007-12-17 | 2008-05-21 | 中国科学院计算技术研究所 | 一种快照系统及其使用方法 |
CN101542962A (zh) * | 2006-11-21 | 2009-09-23 | 朗讯科技公司 | 容许消息数据非顺序到达的情况下消息完整性的处理方法 |
CN102016852A (zh) * | 2008-03-05 | 2011-04-13 | 美国日本电气实验室公司 | 内容可寻址存储系统和方法 |
CN103049539A (zh) * | 2012-12-25 | 2013-04-17 | 华为技术有限公司 | 一种文件系统中文件数据的存储方法及其装置 |
-
2014
- 2014-08-04 CN CN201410380029.7A patent/CN104156326A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542962A (zh) * | 2006-11-21 | 2009-09-23 | 朗讯科技公司 | 容许消息数据非顺序到达的情况下消息完整性的处理方法 |
CN101183383A (zh) * | 2007-12-17 | 2008-05-21 | 中国科学院计算技术研究所 | 一种快照系统及其使用方法 |
CN102016852A (zh) * | 2008-03-05 | 2011-04-13 | 美国日本电气实验室公司 | 内容可寻址存储系统和方法 |
CN103049539A (zh) * | 2012-12-25 | 2013-04-17 | 华为技术有限公司 | 一种文件系统中文件数据的存储方法及其装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105843551B (zh) | 高性能和大容量储存重复删除中的数据完整性和损耗电阻 | |
US10540106B2 (en) | System and method for copy on write on an SSD | |
US20140351526A1 (en) | Data storage controller with multiple pipelines | |
US9690655B2 (en) | Method and system for improving flash storage utilization by predicting bad m-pages | |
US20190155737A1 (en) | Solid-state hard disk and data access method for use with solid-state hard disk | |
EP3316150B1 (en) | Method and apparatus for file compaction in key-value storage system | |
US9164704B2 (en) | Semiconductor storage device for handling write to nonvolatile memories with data smaller than a threshold | |
CN104360914B (zh) | 增量快照方法和装置 | |
CN105302665B (zh) | 一种改进的写时拷贝快照方法及系统 | |
CN103049539A (zh) | 一种文件系统中文件数据的存储方法及其装置 | |
CN102033793A (zh) | 快照方法和固态硬盘 | |
US10789003B1 (en) | Selective deduplication based on data storage device controller status and media characteristics | |
CN103617097A (zh) | 文件恢复方法及装置 | |
CN105183378A (zh) | 自适应混合读/写缓存的方法 | |
US20160300069A1 (en) | Data sanitization | |
US10169168B2 (en) | Metadata recovery for de-duplicated data | |
CN105302488A (zh) | 一种存储系统的数据写入方法及系统 | |
WO2015116141A1 (en) | Identifying memory regions that contain remapped memory locations | |
CN104408126B (zh) | 一种数据库的持久化写入方法、装置和系统 | |
CN102495838B (zh) | 数据处理方法及装置 | |
CN105095352B (zh) | 应用于分布式系统的数据处理方法及装置 | |
CN104156326A (zh) | 一种实现数据一致性的方法 | |
US20210373887A1 (en) | Command delay | |
JP2016122485A (ja) | 情報記録プログラム、情報記録方法、および情報記録装置 | |
CN103177085A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141119 |