CN102970350A - 在存储系统中维护副本一致性的方法 - Google Patents
在存储系统中维护副本一致性的方法 Download PDFInfo
- Publication number
- CN102970350A CN102970350A CN2012104366446A CN201210436644A CN102970350A CN 102970350 A CN102970350 A CN 102970350A CN 2012104366446 A CN2012104366446 A CN 2012104366446A CN 201210436644 A CN201210436644 A CN 201210436644A CN 102970350 A CN102970350 A CN 102970350A
- Authority
- CN
- China
- Prior art keywords
- copy
- triplicate
- consistency
- storage system
- authentic
- 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
- Storage Device Security (AREA)
Abstract
本发明提供了一种在存储系统中维护副本一致性的方法,包括:客户端在内存中修改第一副本;第一副本在内存中对第二副本进行相同的修改;当在内存中对第二副本修改完成之后,第一副本进行磁盘同步;以及第二副本进行磁盘同步。根据本发明所描述的在存储系统中维护副本一致性的方法,能够更准确地维护副本一致性,更好地保证了系统的稳定运行。
Description
技术领域
本发明基本上涉及服务器领域,更具体地来说,涉及一种在存储系统中维护副本一致性的方法。
背景技术
随着信息化的发展,信息资源爆炸式地增长,存储技术在各个方面即遇到了前所未有的挑战,也产生了巨大的发展。随着存储容量的不断增长,存储性能成为了恒量计算机性能的重要因素。
副本指的是分布式系统中为数据或服务提供的冗余。对于数据副本指在不同的节点上持久化同一份数据,当出现某一个节点的存储的数据丢失时,可以从副本上督导数据。数据副本是分布式系统解决数据丢失异常的唯一手段。
分布式系统通过副本控制协议,使得系统外部读取系统内部各个副本的数据在一定的约束条件下相同,称之为副本一致性。副本异质性是针对分布式系统而言的,而不是针对某一副本而言的。
在基于对象的分布式存储系统中,维护多个副本之间的一致性,是一项必须的工作。维护时要兼顾性能。严格的一致性校验,同步的回写磁盘,降低了磁盘I/O,影响到了系统的可用性。
发明内容
为了克服上述缺陷,本发明提出了一种在存储系统中维护副本一致性的方法,解决了如何在分布式系统中更好地维护副本一致性的技术问题。
本发明提供了一种在存储系统中维护副本一致性的方法,包括:步骤S1:客户端在内存中修改第一副本;步骤S2:所述第一副本在内存中对第二副本进行相同的修改;步骤S3:当在内存中对所述第二副本修改完成之后,所述第一副本进行磁盘同步;以及步骤S4:所述第二副本进行磁盘同步。
优选地,所述步骤S2包括:所述第一副本在内存中对第二副本进行相同的修改,并且将所述第二副本的日志标识为已经完成内存修改;并且所述步骤S3包括:当感测到所述第二副本的日志中标识了已经完成内存修改之后,所述第一副本进行磁盘同步。
优选地,所述第一副本进行磁盘同步包括:先对所述第一副本的数据执行多次写回,再对所述第一副本的数据执行磁盘同步,并且所述第二副本进行磁盘同步包括:先对所述第二副本的数据执行多次写回,再对所述第二副本的数据执行磁盘同步。
优选地,所述多次写回包括预定次数的写回。
优选地,所述多次写回包括预定时间的写回。
优选地,所述步骤S3还包括:将所述第一副本的日志标识为已经完成磁盘同步,所述步骤S4还包括:将所述第二副本的日志标识为已经完成磁盘同步,并且所述方法还包括:如果所述第一副本的日志和所述第二副本的日志均标识为已经完成了磁盘同步,则完成了一致性校验。
优选地,所述方法还包括:当完成了一致性校验之后,所述第一副本通知所述客户端一致性校验已经完成。
优选地,所述步骤S1包括:客户端在内存中多次修改第一副本,并且在所述步骤S2中,所述第一副本对第二副本在内存中进行的修改与所述第一副本的多次修改中的最后一次修改相同。
优选地,所述方法还包括:如果在预定时间内未查找到所述第二副本的日志或者所述第二副本的日志中标识为操作失败,则重建第二副本。
优选地,如果所述第二副本在预定时间内未收到任何来自所述第一副本的指示,则所述第二副本与所述客户端相通信。
根据本发明所描述的在存储系统中维护副本一致性的方法,能够更准确地维护副本一致性,更好地保证了系统的稳定运行。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据本发明的在存储系统中维护副本一致性的方法的总体流程图;
图2是根据本发明的在存储系统中维护副本一致性的方法的一个实施例的总体流程图;
图3是根据本发明的在存储系统中维护副本一致性的方法的另一个实施例的总体流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1是根据本发明的在存储系统中维护副本一致性的方法的总体流程图。在图1中:
步骤S100:客户端在内存部分中修改第一副本。其中,该第一副本为主副本,该第一副本与客户端进行通信,因此,该客户端可以直接在内存部分修改第一副本。
步骤S102:第一副本在内存部分中对第二副本进行相同的修改。该第二副本为从副本,该第二副本与第一副本相通信,而不与客户端直接相通信。由于客户端不与第二副本直接相通信,因此,第一副本在内存部分对第二副本进行修改。第一副本和第二副本所进行的修改相同。
步骤S104:当在内存部分中对第二副本修改完成之后,将第一副本进行磁盘同步。优选地,可以在内存部分对第二副本进行修改之后,由第二副本向第一副本进行应答,第一副本作为响应进行应答。
步骤S106:将第二副本进行磁盘同步。
也就是说,主副本必须等到从副本应答之后,才可以进行磁盘的同步操作,从副本则可以主动进行。因为主副本做为操作的控制端,是唯一记录从副本状态的节点。在状态未记录完成时修改磁盘,则不能保证从副本是否也收到了修改操作。一旦宕机,修改了磁盘的主副本与未收到的操作的从副本会出现副本数据的不一致。
通过本发明所描述的在存储系统中维护副本一致性的方法,能够更准确地维护副本一致性,更好地保证了系统的稳定运行。
此外,在一个优选实施例中,在步骤S100中,客户端可以在内存中多次修改第一副本,而在步骤S102中,第一副本对第二副本在内存中进行的修改与第一副本的多次修改中的最后一次修改相同。也就是说,第二副本只以第一副本的最后一次修改为标准进行修改。
在本优选实施例中,还提高了系统运行效率。
在另一个优选实施例中,如果在预定时间内未查找到第二副本的日志或者第二副本的日志中标识为操作失败,则重建第二副本。也就是说,主副本未发现从副本的日志,或者从副本日志中记录了操作失败,就认为从副本发了故障,主从副本已经不一致了。这时主副本就可以重建从副本。
在本优选实施例中,还保证了系统的稳定运行。
在又一个优选实施例中,如果第二副本在预定时间内未收到任何来自第一副本的指示,则第二副本与客户端相通信。也就是说,如果从副本持有日志,且长时间未收到来自主副本的任何信息,则认为主副本发生了故障(比如宕机),此时从副本可以将自身变为主副本,与客户端直接通信。
在本优选实施例中,还保证了系统的稳定运行。
图2是根据本发明的在存储系统中维护副本一致性的方法的一个实施例的总体流程图。在图2中:
步骤S200:客户端在内存中修改第一副本。
步骤S202:第一副本在内存中对第二副本进行相同的修改,并且将第二副本的日志标识为已经完成内存修改。
步骤S204:当感测到第二副本的日志中标识了已经完成内存修改之后,先对第一副本的数据执行多次写回,再对第一副本的数据执行磁盘同步。
步骤S206:先对第二副本的数据执行多次写回,再对第二副本的数据执行磁盘同步。
在本实施例中,在进行磁盘的写回时,并不马上进行磁盘的同步。因为每一次同步都会带来额外的性能损耗。根据文件系统的特性,“写回”操作,是将数据写入到文件系统的缓存中,并不写入磁盘;“同步”操作,是将数据写入磁盘的数据块中。因为“写回”所消耗的时间是大大短于“同步”所消耗的时间,因此,减少“写回操作”,一定能够显著的提高性能。
其中,多次写回包括预定次数的写回或者预定时间的写回。也就是说,可以在经过预定次数的写回之后进行同步,或者在经过预定时间的写回之后进行同步。
通过本实施例所描述的在存储系统中维护副本一致性的方法,不仅能够更准确地维护副本一致性,更好地保证了系统的稳定运行,还能够提高系统性能,节省系统资源。
图3是根据本发明的在存储系统中维护副本一致性的方法的另一个实施例的总体流程图。在图3中:
步骤S300:客户端在内存中修改第一副本。
步骤S302:第一副本在内存中对第二副本进行相同的修改。
步骤S304:当在内存中对第二副本修改完成之后,第一副本进行磁盘同步,将第一副本的日志标识为已经完成磁盘同步。
步骤S306:第二副本进行磁盘同步将第二副本的日志标识为已经完成磁盘同步。
步骤S308:如果第一副本的日志和第二副本的日志均标识为已经完成了磁盘同步,则完成了一致性校验。
通过本实施例所描述的在存储系统中维护副本一致性的方法,不仅能够更准确地维护副本一致性,更好地保证了系统的稳定运行,还能够通过标识来示出一致性校验的完成。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种在存储系统中维护副本一致性的方法,其特征在于,所述方法包括:
步骤S1:客户端在内存中修改第一副本;
步骤S2:所述第一副本在内存中对第二副本进行相同的修改;
步骤S3:当在内存中对所述第二副本修改完成之后,所述第一副本进行磁盘同步;以及
步骤S4:所述第二副本进行磁盘同步。
2.根据权利要求1所述的在存储系统中维护副本一致性的方法,其特征在于,
所述步骤S2包括:所述第一副本在内存中对第二副本进行相同的修改,并且将所述第二副本的日志标识为已经完成内存修改;并且
所述步骤S3包括:当感测到所述第二副本的日志中标识了已经完成内存修改之后,所述第一副本进行磁盘同步。
3.根据权利要求2所述的在存储系统中维护副本一致性的方法,其特征在于,
所述第一副本进行磁盘同步包括:先对所述第一副本的数据执行多次写回,再对所述第一副本的数据执行磁盘同步,并且
所述第二副本进行磁盘同步包括:先对所述第二副本的数据执行多次写回,再对所述第二副本的数据执行磁盘同步。
4.根据权利要求3所述的在存储系统中维护副本一致性的方法,其特征在于,所述多次写回包括预定次数的写回。
5.根据权利要求3所述的在存储系统中维护副本一致性的方法,其特征在于,所述多次写回包括预定时间的写回。
6.根据权利要求1所述的在存储系统中维护副本一致性的方法,其特征在于,
所述步骤S3还包括:将所述第一副本的日志标识为已经完成磁盘同步,
所述步骤S4还包括:将所述第二副本的日志标识为已经完成磁盘同步,并且
所述方法还包括:如果所述第一副本的日志和所述第二副本的日志均标识为已经完成了磁盘同步,则完成了一致性校验。
7.根据权利要求6所述的在存储系统中维护副本一致性的方法,其特征在于,所述方法还包括:当完成了一致性校验之后,所述第一副本通知所述客户端一致性校验已经完成。
8.根据权利要求1所述的在存储系统中维护副本一致性的方法,其特征在于,
所述步骤S1包括:客户端在内存中多次修改第一副本,并且
在所述步骤S2中,所述第一副本对第二副本在内存中进行的修改与所述第一副本的多次修改中的最后一次修改相同。
9.根据权利要求1所述的在存储系统中维护副本一致性的方法,其特征在于,所述方法还包括:如果在预定时间内未查找到所述第二副本的日志或者所述第二副本的日志中标识为操作失败,则重建第二副本。
10.根据权利要求1所述的在存储系统中维护副本一致性的方法,其特征在于,如果所述第二副本在预定时间内未收到任何来自所述第一副本的指示,则所述第二副本与所述客户端相通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104366446A CN102970350A (zh) | 2012-11-05 | 2012-11-05 | 在存储系统中维护副本一致性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104366446A CN102970350A (zh) | 2012-11-05 | 2012-11-05 | 在存储系统中维护副本一致性的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102970350A true CN102970350A (zh) | 2013-03-13 |
Family
ID=47800229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104366446A Pending CN102970350A (zh) | 2012-11-05 | 2012-11-05 | 在存储系统中维护副本一致性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102970350A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203167A (zh) * | 2016-07-08 | 2016-12-07 | 北京小米移动软件有限公司 | 应用权限管理方法及装置 |
CN110196680A (zh) * | 2018-03-27 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143406A1 (en) * | 2004-12-27 | 2006-06-29 | Chrysos George Z | Predictive early write-back of owned cache blocks in a shared memory computer system |
CN102033786A (zh) * | 2010-11-04 | 2011-04-27 | 天津曙光计算机产业有限公司 | 一种对象存储系统中修复副本一致性的方法 |
CN102368267A (zh) * | 2011-10-25 | 2012-03-07 | 曙光信息产业(北京)有限公司 | 一种维护分布式系统中副本一致性的方法 |
CN102385537A (zh) * | 2011-10-25 | 2012-03-21 | 曙光信息产业(北京)有限公司 | 一种多副本存储系统的磁盘故障处理方法 |
CN102541693A (zh) * | 2011-12-31 | 2012-07-04 | 曙光信息产业股份有限公司 | 数据的多副本存储管理方法和系统 |
-
2012
- 2012-11-05 CN CN2012104366446A patent/CN102970350A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143406A1 (en) * | 2004-12-27 | 2006-06-29 | Chrysos George Z | Predictive early write-back of owned cache blocks in a shared memory computer system |
CN102033786A (zh) * | 2010-11-04 | 2011-04-27 | 天津曙光计算机产业有限公司 | 一种对象存储系统中修复副本一致性的方法 |
CN102368267A (zh) * | 2011-10-25 | 2012-03-07 | 曙光信息产业(北京)有限公司 | 一种维护分布式系统中副本一致性的方法 |
CN102385537A (zh) * | 2011-10-25 | 2012-03-21 | 曙光信息产业(北京)有限公司 | 一种多副本存储系统的磁盘故障处理方法 |
CN102541693A (zh) * | 2011-12-31 | 2012-07-04 | 曙光信息产业股份有限公司 | 数据的多副本存储管理方法和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203167A (zh) * | 2016-07-08 | 2016-12-07 | 北京小米移动软件有限公司 | 应用权限管理方法及装置 |
CN106203167B (zh) * | 2016-07-08 | 2019-05-07 | 北京小米移动软件有限公司 | 应用权限管理方法及装置 |
CN110196680A (zh) * | 2018-03-27 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及存储介质 |
CN110196680B (zh) * | 2018-03-27 | 2021-10-26 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6044539B2 (ja) | 分散ストレージシステムおよび方法 | |
US6950915B2 (en) | Data storage subsystem | |
CN107391758B (zh) | 数据库切换方法、装置及设备 | |
US9852204B2 (en) | Read-only operations processing in a paxos replication system | |
EP2474919B1 (en) | System and method for data replication between heterogeneous databases | |
CN103780638B (zh) | 数据同步方法及系统 | |
CN109376197B (zh) | 一种数据同步方法、服务器及计算机存储介质 | |
JP4940730B2 (ja) | データベースシステム運用方法,データベースシステム,データベース装置及びバックアッププログラム | |
CN101887388B (zh) | 基于内存数据库的数据备份系统和方法 | |
KR102119258B1 (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
EP4213038A1 (en) | Data processing method and apparatus based on distributed storage, device, and medium | |
EP3480705B1 (en) | Database data modification request processing method and apparatus | |
CN102306115A (zh) | 异步远程复制方法、系统及设备 | |
CN105740248B (zh) | 一种数据同步方法、装置及系统 | |
CN104346373A (zh) | 分区日志队列同步管理方法及设备 | |
CN102411639A (zh) | 元数据的多副本存储管理方法和系统 | |
CN105426427A (zh) | 基于raid 0 存储的mpp 数据库集群副本实现方法 | |
CN105760519A (zh) | 一种集群文件系统及其文件锁分配方法 | |
CN110968554A (zh) | 一种基于文件链分块的区块链存储方法、存储系统及存储介质 | |
CN106897345B (zh) | 一种数据存储的方法及装置 | |
CN102937964A (zh) | 基于分布式系统的智能数据服务方法 | |
CN106873902B (zh) | 一种文件存储系统、数据调度方法及数据节点 | |
US8850074B2 (en) | Data synchronization method | |
CN106027638A (zh) | 一种基于混合编码的hadoop数据分发方法 | |
CN102541693A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130313 |