CN103150267B - 一种多控制器间的缓存同步方法 - Google Patents
一种多控制器间的缓存同步方法 Download PDFInfo
- Publication number
- CN103150267B CN103150267B CN201310055329.3A CN201310055329A CN103150267B CN 103150267 B CN103150267 B CN 103150267B CN 201310055329 A CN201310055329 A CN 201310055329A CN 103150267 B CN103150267 B CN 103150267B
- Authority
- CN
- China
- Prior art keywords
- data
- page
- wrcount
- versions
- mirror image
- 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
- 238000000034 method Methods 0.000 title claims abstract description 16
- 239000000872 buffer Substances 0.000 claims description 20
- 238000005516 engineering process Methods 0.000 claims description 11
- 239000000976 ink Substances 0.000 claims description 8
- 241000414967 Colophon Species 0.000 claims description 7
- 238000007599 discharging Methods 0.000 claims description 6
- 241001269238 Data Species 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000002372 labelling Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Abstract
本发明提供一种多控制器间的缓存同步方法,系统结构包括:缓存数据版本记录模块(1)、缓存数据版本更新模块(2),缓存数据版本记录模块(1)对多控制器系统中的每个缓存页均定义一个原子计数器wrcount记录连续写的次数,用于表示该缓存单元(页)的数据版本。缓存数据版本更新模块(2)在数据镜像时负责向主控申请计数器值并更新其他镜像保存的wrcount。在主控刷写完数据后通知其他镜像端释放备份数据时,需同时向镜像端传递当前数据版本,只有所传递的计数值大于等于镜像端的值才予以释放。在多控器间的同步方法支持的多控制器的存储系统中,多个缓存数据副本与原本之间的数据一致性,防止多个副本与原本之间由于镜像先后顺序等原因导致的缓存数据丢失问题。
Description
技术领域
本发明涉及计算机技术领域,具体地说是一种多控制器间的缓存同步方法。
背景技术
存储磁盘阵列系统是随着计算机技术发展起来的,随着云计算和物联网等新一代信息技术的风起云涌,客户数据规模和应用规模快速扩大并积累。磁盘阵列技术进入一个高速发展时期。提升存储的应用水平,已经成为数据所蕴藏的信息价值能否顺利转化为信息化主题发展动力的关键。多控制器存储系统相对于单控双控来说,有着更好的性能、可用性、可扩展性及可靠性,越来越多的在各应用领域中得到部署。
为了提高多控制器处理数据的性能,磁盘阵列通常采用缓存技术实现数据写回功能。但缓存数据往往存放在易失性存储器中,一般通过缓存镜像技术在多个控制器上对缓存备份从而保证某些控制器节点故障缓存数据不丢失。本发明是一种多控制器间的缓存同步技术,用于保证多个镜像数据与原数据之间的一致性,防止镜像过程中出现原本与副本数据不一致的问题。
发明内容
本发明的目的是提供一种多控制器间的缓存同步方法,提出一种保证多个控制器间的多个缓存资源副本与原本之间的同步方案,解决了多控制器间数据高速缓存的一致性问题。
本发明的目的是按以下方式实现的,该系统结构包括:缓存数据版本记录模块(1)、缓存数据版本更新模块(2),其中:
缓存数据版本记录模块(1)对多控制器系统中的每个缓存页均定义一个原子计数器wrcount记录连续写的次数,用于表示该缓存单元的数据版本,提供的功能是:每个缓存页定义一个计数器记录连续写的次数,用于表示该缓存单元的数据版本,在通知其他控制器镜像端释放备份数据时需同时传递相关页的计数值,只有所传递的计数值大于等于所有镜像端的值才予以释放;
缓存数据版本更新模块(2)在数据镜像时负责向主控申请计数器值并更新其他镜像保存的原子计数器wrcount,在主控刷写完数据后通知其他镜像端释放备份数据时,需同时向镜像端传递当前数据版本,只有所传递的计数值大于等于镜像端的值才予以释放,该模块维护一套更新每个控制器缓存页数据版本的规则,用于保证此计数值能够表示所有控制器的缓存单元数据版本的有效性;
原子计数器wrcount使用规则为以下四点:
一、备份数据作镜像端写操作时,镜像端按以下规则更新计数器值并将更新后的计数器反馈到其他控制器镜像端:
在新页申请时向主控制器申请数据版本,初始值为0,之后每连续写,即写的时候页仍呈“脏”dirty状态时,都向主控制器申请此页的数据版本,主控计数申请一次就加1,并通知其他镜像数据更新此数据版本及内容,如果某次写时页已不为“脏”dirty,即已刷写到磁盘,则主控将所有控制器此页的镜像数据计数都重新置1;
二、主控端写数据时,每个涉及的缓存页要设置“脏”标记,并且增加原子计数器wrcount计数,并通知其他镜像端更新原子计数器wrcount;
更新原子计数器wrcount操作必须在设置“脏”标记操作之后而不是之前进行;释放备份数据前,新备份数据已经覆盖了旧备份数据,释放时根据数据原子计数器wrcount版本判断当前原子计数器wrcount是否大于释放的原子计数器wrcount,如果当前原子计数器wrcount小于等于释放的原子计数器wrcount,则释放备份数据,否则备份数据为新数据不需要释放;
如果某一个页面在刷新缓存之前连续写时,不管是近端写还是远端写,都能保证缓存数据的数据版本是最新的,避免误释放较新的缓存数据导致缓存原本与副本数据不一致问题。
该系统核心在于引入了缓存单元数据版本技术,标识每个缓存单元及缓存副本的数据版本信息,删除数据时需要比较缓存单元数据版本,只删除低版本的缓存数据。
缓存数据版本记录模块(1)体系结构中,所有控制器的每个缓存页与缓存页副本都包含1个字段记录该缓存单元(页)的数据版本,在释放页时,需要对比原本与所有副本的数据版本,只有传递的大于等于所有镜像端的值才予以释放。
缓存数据版本更新模块(2),体系结构中,提供按一定规则更新缓存单元数据版本标识的功能。
本发明的有益效果是:一种多控器间的同步方法支持在多控制器的存储系统中,多个缓存数据副本与原本之间的数据一致性,防止多个副本与原本之间由于镜像先后顺序等原因导致的缓存数据丢失问题。
附图说明
图1是缓存页“连续写”计数值在镜像端的变化状态图;
图2是近端写时释放备份数据流程图。
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
正如发明内容中所描述的,本发明的系统结构主要包括:缓存数据版本记录模块(1)、缓存数据版本更新模块(2)。
在一个典型的配置环境里,缓存数据版本记录模块(1)对多控制器系统中的每个缓存页均定义一个原子计数器wrcount记录连续写的次数,用于表示该缓存单元(页)的数据版本。缓存数据版本更新模块(2)在数据镜像时负责向主控申请计数器值并更新其他镜像保存的wrcount。在主控刷写完数据后通知其他镜像端释放备份数据时,需同时向镜像端传递当前数据版本,只有所传递的计数值大于等于镜像端的值才予以释放。
该计数器使用规则为以下四点:
一、备份数据(镜像端写操作)时镜像端按以下规则更新计数器值并将更新后的计数器反馈到其他控制器镜像端:
在新页申请时向主控制器申请数据版本,初始值为0。之后每连续写(即写的时候页仍呈dirty状态)都向主控制器申请此页的数据版本,主控计数申请一次就加1,并通知其他镜像数据更新此数据版本及内容。如果某次写时页已不为“脏”,即已刷写到磁盘,则主控将所有控制器此页的镜像数据计数都重新置1。
如图1所示,其中T5转变是指新的写(备份)缓存操作发起时页已经刷写或者正在刷写到磁盘上则计数值重新变为1。
二、主控端写数据时,每个涉及的缓存页要设置“脏”标记,并且增加wrcount计数,并通知其他镜像端更新wrcount。
其他镜像端按下列规则判断是否需要更新wrcount;
更新“wrcount计数器”操作必须在设置“脏”标记操作之后而不是之前进行。如图2所示,在第7步释放备份数据前,新备份数据已经覆盖了旧备份数据,释放时根据数据wrcount版本判断当前wrcount是否大于释放的wrcount,如果当前wrcount小于等于释放的wrcount,则释放备份数据,否则备份数据为新数据不需要释放。
至此,已经完整实现了一种多控器间的缓存同步方法,这种技术能够保证如果某一个页面在刷新缓存之前连续写时,不管是近端写还是远端写,都能保证缓存数据的数据版本是最新的,避免误释放较新的缓存数据导致缓存原本与副本数据不一致问题。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (4)
1.一种多控制器间的缓存同步方法, 其特征在于该方法中使用的系统结构包括:缓存数据版本记录模块(1)、缓存数据版本更新模块(2),其中:
缓存数据版本记录模块(1)对多控制器系统中的每个缓存页均定义一个原子计数器wrcount记录连续写的次数,用于表示系统中缓存单元的数据版本,其提供的功能是:每个缓存页定义一个计数器记录连续写的次数,用于表示该缓存单元的数据版本,在通知其他控制器镜像端释放备份数据时需同时传递相关页的计数值,只有所传递的计数值大于等于所有镜像端的值才予以释放;
缓存数据版本更新模块(2)在数据镜像时负责向主控申请计数器值并更新其他镜像保存的原子计数器wrcount,在主控刷写完数据后通知其他镜像端释放备份数据时,需同时向镜像端传递当前数据版本,只有所传递的计数值大于等于镜像端的值才予以释放,该模块维护一套更新每个控制器缓存页数据版本的规则,用于保证此计数值能够表示所有控制器的缓存单元数据版本的有效性;
原子计数器wrcount使用规则为以下四点:
一、备份数据作镜像端写操作时,镜像端按以下规则更新计数器值并将更新后的计数器反馈到其他控制器镜像端:
在新页申请时向主控制器申请数据版本,初始值为0,之后每连续写,即写的时候页仍呈“脏”dirty状态时,都向主控制器申请此页的数据版本,主控计数申请一次就加1,并通知其他镜像数据更新此数据版本及内容,如果某次写时页已不为“脏”dirty,即已刷写到磁盘,则主控将所有控制器此页的镜像数据计数都重新置1;
二、主控端写数据时,每个涉及的缓存页要设置“脏”标记,并且增加原子计数器wrcount计数,并通知其他镜像端更新原子计数器wrcount;
更新原子计数器wrcount操作必须在设置“脏”标记操作之后而不是之前进行;释放备份数据前,新备份数据已经覆盖了旧备份数据,释放时根据数据原子计数器wrcount版本判断当前原子计数器wrcount是否大于释放的原子计数器wrcount,如果当前原子计数器wrcount小于等于释放的原子计数器wrcount,则释放备份数据,否则备份数据为新数据不需要释放;
如果某一个页面在刷新缓存之前连续写时,不管是近端写还是远端写,都能保证缓存数据的数据版本是最新的,避免误释放较新的缓存数据导致缓存原本与副本数据不一致问题。
2.根据权利要求1所述的一种多控制器间的缓存同步方法,特征在于该方法中使用的系统核心在于引入了缓存单元数据版本技术,标识系统中每个缓存单元及缓存副本的数据版本信息,删除数据时需要比较系统中缓存单元数据版本,只删除低版本的缓存数据。
3.根据权利要求1所述的方法,其特征在于缓存数据版本记录模块(1)体系结构中,所有控制器的每个缓存页与缓存页副本都包含1个字段记录缓存单元/缓存页的数据版本,在释放页时,需要对比原本与所有副本的数据版本,只有传递的大于等于所有镜像端的值才予以释放。
4.根据权利要求1所述的方法,其特征在于缓存数据版本更新模块(2)体系结构中,提供按一定规则更新缓存单元数据版本标识的功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310055329.3A CN103150267B (zh) | 2013-02-21 | 2013-02-21 | 一种多控制器间的缓存同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310055329.3A CN103150267B (zh) | 2013-02-21 | 2013-02-21 | 一种多控制器间的缓存同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103150267A CN103150267A (zh) | 2013-06-12 |
CN103150267B true CN103150267B (zh) | 2017-02-08 |
Family
ID=48548360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310055329.3A Active CN103150267B (zh) | 2013-02-21 | 2013-02-21 | 一种多控制器间的缓存同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103150267B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391802A (zh) * | 2014-11-24 | 2015-03-04 | 浪潮电子信息产业股份有限公司 | 一种精简池元数据节点刷新一致性保护方法 |
CN106527959B (zh) * | 2015-09-10 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 刷新磁盘输入输出请求的处理方法及设备 |
CN106569751A (zh) * | 2016-11-10 | 2017-04-19 | 郑州云海信息技术有限公司 | 一种多控制器缓存镜像方法及系统 |
CN108228678B (zh) | 2016-12-22 | 2020-10-16 | 华为技术有限公司 | 一种多副本数据恢复方法及装置 |
CN107301051A (zh) * | 2017-06-27 | 2017-10-27 | 深圳市金立通信设备有限公司 | 终端动态数据的缓存与交互方法、终端、系统及计算机可读存储介质 |
CN109407998B (zh) * | 2018-11-09 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种缓存中io流同步的方法、系统及相关组件 |
CN111984552A (zh) * | 2020-08-21 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种缓存管理方法、装置及电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101776983A (zh) * | 2009-01-13 | 2010-07-14 | 中兴通讯股份有限公司 | 磁盘阵列中双控制器信息的同步方法、及磁盘阵列系统 |
US8131935B2 (en) * | 2009-04-07 | 2012-03-06 | International Business Machines Corporation | Virtual barrier synchronization cache |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4474570B2 (ja) * | 2008-01-28 | 2010-06-09 | エヌイーシーコンピュータテクノ株式会社 | キャッシュコヒーレンシ制御方法 |
-
2013
- 2013-02-21 CN CN201310055329.3A patent/CN103150267B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101776983A (zh) * | 2009-01-13 | 2010-07-14 | 中兴通讯股份有限公司 | 磁盘阵列中双控制器信息的同步方法、及磁盘阵列系统 |
US8131935B2 (en) * | 2009-04-07 | 2012-03-06 | International Business Machines Corporation | Virtual barrier synchronization cache |
Also Published As
Publication number | Publication date |
---|---|
CN103150267A (zh) | 2013-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103150267B (zh) | 一种多控制器间的缓存同步方法 | |
US11907200B2 (en) | Persistent memory management | |
CN105612503B (zh) | 持久性数据结构 | |
US7587564B2 (en) | System, method and computer program product for managing data versions | |
KR101827239B1 (ko) | 분산 데이터 시스템들을 위한 전 시스템에 미치는 체크포인트 회피 | |
KR101914019B1 (ko) | 분산 데이터베이스 시스템들을 위한 고속 장애 복구 | |
US8209498B2 (en) | Method and system for transferring duplicate files in hierarchical storage management system | |
US8244999B1 (en) | Maintaining data consistency in mirrored cluster storage systems with write-back cache | |
US8977826B1 (en) | Extent commands in replication | |
US9069682B1 (en) | Accelerating file system recovery by storing file system metadata on fast persistent storage during file system recovery | |
US9047221B2 (en) | Virtual machines failover | |
US20170052723A1 (en) | Replicating data using remote direct memory access (rdma) | |
CN109725840A (zh) | 利用异步冲刷对写入进行节流 | |
CN103885895A (zh) | 容错集群存储系统中的写入性能 | |
KR101090633B1 (ko) | 정센터의 가상 테이프 장치, 부센터의 가상 테이프 장치, 가상 라이브러리 시스템 및 가상 테이프 제어 방법 | |
US8200627B2 (en) | Journaling database changes using a bit map for zones defined in each page | |
CN106951376A (zh) | 面向闪存的细粒度非易失缓存系统以及缓存管理方法 | |
CN106445409A (zh) | 一种分布式块存储的数据写入方法及装置 | |
CN110196818A (zh) | 缓存数据的方法、缓存设备和存储系统 | |
US7650476B2 (en) | System, method and computer program product for generating a consistent point in time copy of data | |
CN106959907A (zh) | 一种云平台碎片化数据备份还原系统 | |
US9292213B2 (en) | Maintaining at least one journal and/or at least one data structure by circuitry | |
CN107402848A (zh) | 一种快照数据一致性的实现方法 | |
WO2020057479A1 (zh) | 地址映射表项页管理 | |
US11010091B2 (en) | Multi-tier storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20161222 Address after: 450000 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant after: Zhengzhou Yunhai Information Technology Co. Ltd. Address before: 250014 Shandong Province, Ji'nan City hi tech Development Zone, Nga Road No. 1036 Applicant before: Langchao Electronic Information Industry Co., Ltd. |
|
TA01 | Transfer of patent application right | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |