基于位图的双控制器的高速缓冲存储器回写方法及装置制造方法及图纸

技术编号:13428284 阅读:115 留言:0更新日期:2016-07-29 18:21
本发明专利技术提供了一种基于位图的双控制器的高速缓冲存储器回写方法及装置,其中方法包括:建立高速缓冲存储器的位图数据结构;根据所述位图数据结构,对所述高速缓冲存储器进行写数据;其中,所述位图数据结构包括脏数据位,本地回写位,对端回写位和写数据位。通过本发明专利技术提供的一种基于位图的双控制器的高速缓冲存储器回写方法及装置,能够大幅度降低IO锁的持有时间,能够将回写的异步IO处理的时间从回写持有IO所的时间中移出,降低与IO处理之间的锁的冲突。

【技术实现步骤摘要】

本专利技术涉及计算机数据处理
,尤其涉及一种基于位图的双控制器的高速缓冲存储器回写方法及装置
技术介绍
磁盘阵列其原理是利用数组方式形成磁盘组,配合数据分散排列的设计,提升数据的安全性。目前,RAID都是由很多便宜、容量较小、稳定性较高的磁盘组成的一个大型磁盘组,实现了利用个别磁盘提供数据所产生的加成效果来提升整个磁盘系统效能。RAID通过在多个磁盘上同时存储数据来大幅提高数据存储的吞吐量,同时,RAID本身也具有缓存刷写功能,其在到达一定条件比如存储容量被占满时,会自动将缓存的数据刷写至硬盘。Cache是指磁盘阵列缓存,缓存位置在内存,缓存对象是磁盘阵列上存储的数据。双控高速缓冲存储器cache的回写(flush)需要双控IO锁的保护,用于确保flush完成之后,在双端将cache页由脏变成非脏时数据的一致性。如果不使用双控IO锁对flush和写cache进行互斥,那么在A端flush完成的时候,去通知B端页不再为脏,而恰好此时B端的Cache被写操作更新了,那么实际上B端就会认为部分脏页是干净的,不会将其flush,此时如果发生控制器失效或者电源失效,就会导致独立冗余磁盘阵列(RAID)数据丢失。IO锁的冲突强度是由两方面决定的:IO锁的锁范围大小、IO锁的持有时间。在flush时,一般的方案是在开始flush时获取IO锁的读锁,在结束并通知两个控制器flush完成之后释放IO锁。由于RAID随机写的性能远远低于顺序写的性能,在RAID大小远远大于cache大小的情况下,处理随机写时cache中的数据几乎都是离散的,flush的延时会变得很大。加上有可能出现正在flush的数据同时又在被写入的情况,等待flush的IO锁的cache层IO会越积越多,这些IO的延迟会不断增大。在并发数目确定的情况下,过大的IO延迟会导致整体性能的下降。由于IO锁的锁范围不能改变,而IO锁的持有时间变得过长而难以接受,因此需要解决长时间持有IO锁的问题。
技术实现思路
针对现有技术中的缺陷,本专利技术提供一种基于位图的双控制器的高速缓冲存储器回写方法及装置,能够大幅度降低IO锁的持有时间,能够将回写的异步IO处理的时间从回写持有IO所的时间中移出,降低与IO处理之间的锁的冲突。第一方面,本专利技术提供一种基于位图的双控制器的高速缓冲存储器回写方法,包括:建立高速缓冲存储器的位图数据结构;根据所述位图数据结构,对所述高速缓冲存储器进行写数据;其中,所述位图数据结构包括脏数据位,本地回写位,对端回写位和写数据位。进一步地,所述方法还包括:在对所述高速缓冲存储器回写启动时,启用所述回写高速缓冲存储器的位图保护;在对所述高速缓冲存储器回写完成时,解除所述回写高速缓冲存储器的位图保护。进一步地,所述根据所述位图数据结构,对所述高速缓冲存储器进行写数据步骤之前,还包括:获取高速缓冲存储器的IO锁。进一步地,所述根据所述位图数据结构,对所述高速缓冲存储器进行写数据,包括:获取第一端的本地回写位,将所述本地回写位存储于高速缓冲存储器,将所述本地回写位发送至第二端;所述第二端接收所述第一端的本地回写位,所述第二端将所述第一端的本地回写位记录在所述第二端的对端回写位,所述第二端创建对端回写组,将所述第二端的对端回写组的句柄发送给所述第一端;所述第一端接收到所述对端回写组的句柄,将所述IO锁释放。进一步地,所述根据所述位图数据结构,对所述高速缓冲存储器进行写数据,还包括:在所述本地回写位或所述对端回写位置为1时,且所述写数据位置为0时,所述第一端在写IO时,将所述写数据位置为1;在所述写数据位由0置为1时,在缓存数据被替换前,所述第一端不释放已有数据,而所述第二端释放已有数据,在所述写数据位已经被置为1时,在缓存数据被替换前释放已有数据,在所述写数据位无位图结构保护时,在缓存数据替换前释放已有数据;在所述回写IO完成时,在所述写数据位为1时,将所述IO引用的高速缓冲存储器中的数据释放;将所述本地回写位置为0,并将所述写数据位置为0,获取本地回写的结果,根据所述本地回写的结果,修改所述本地的脏数据位;将所述本地回写的结果发送给所述第二端,所述第二端清除第二端的脏数据位和所述第二端的对端回写位。第二方面,本专利技术提供了一种基于位图的双控制器的高速缓冲存储器回写装置,包括:创建模块,用于建立高速缓冲存储器的位图数据结构;写数据模块,用于根据所述位图数据结构,对所述高速缓冲存储器进行写数据;其中,所述位图数据结构包括脏数据位,本地回写位,对端回写位和写数据位。进一步地,所述写数据模块还用于在对所述高速缓冲存储器回写启动时,启用所述回写高速缓冲存储器的位图保护;在对所述高速缓冲存储器回写完成时,解除所述回写高速缓冲存储器的位图保护。进一步地,所述装置还包括:获取模块:获取高速缓冲存储器的IO锁。进一步地,所述写数据模块,还用于获取第一端的本地回写位,将所述本地回写位存储于高速缓冲存储器,将所述本地回写位发送至第二端;所述第二端接收所述第一端的本地回写位,所述第二端将所述第一端的本地回写位记录在所述第二端的对端回写位,所述第二端创建对端回写组,将所述第二端的对端回写组的句柄发送给所述第一端;所述第一端接收到所述对端回写组的句柄,将所述IO锁释放。进一步地,所述写数据模块,还用于在所述本地回写位或所述对端回写位置为1时,且所述写数据位置为0时,所述第一端在写IO时,将所述写数据位置为1;在所述写数据位由0置为1时,在缓存数据被替换前,所述第一端不释放已有数据,而所述第二端释放已有数据,在所述写数据位已经被置为1时,在缓存数据被替换前释放已有数据,在所述写数据位无位图结构保护时,在缓存数据替换前释放已有数据;在所述回写IO完成时,在所述写数据位为1时,将所述IO引用的高速缓冲存储器中的数据释放;将所述本地回写位置为0,并将所述写数据位置为0,获取本地回写的结果,根据所述本地回写的结果,修改所述本地的脏数据位;将所述本地回写的结果发送给所述第二端,所述第二端清除第二端的脏数据位和所述第二端的对端回写位。由上述技术方案可知,通过本专利技术提供的基于位图的双控制器的高速缓冲存储器回写方法及装置,其中方法包括:建立高速缓本文档来自技高网
...

【技术保护点】
一种基于位图的双控制器的高速缓冲存储器回写方法,其特征在于,包括:建立高速缓冲存储器的位图数据结构;根据所述位图数据结构,对所述高速缓冲存储器进行写数据;其中,所述位图数据结构包括脏数据位,本地回写位,对端回写位和写数据位。

【技术特征摘要】
1.一种基于位图的双控制器的高速缓冲存储器回写方法,其特征
在于,包括:
建立高速缓冲存储器的位图数据结构;
根据所述位图数据结构,对所述高速缓冲存储器进行写数据;
其中,所述位图数据结构包括脏数据位,本地回写位,对端回写
位和写数据位。
2.根据权利要求1所述的基于位图的双控制器的高速缓冲存储器
回写方法,其特征在于,所述方法还包括:
在对所述高速缓冲存储器回写启动时,启用所述回写高速缓冲存
储器的位图保护;
在对所述高速缓冲存储器回写完成时,解除所述回写高速缓冲存
储器的位图保护。
3.根据权利要求1所述的基于位图的双控制器的高速缓冲存储器
回写方法,其特征在于,所述根据所述位图数据结构,对所述高速缓
冲存储器进行写数据步骤之前,还包括:
获取高速缓冲存储器的IO锁。
4.根据权利要求1所述的基于位图的双控制器的高速缓冲存储器
回写方法,其特征在于,所述根据所述位图数据结构,对所述高速缓
冲存储器进行写数据,包括:
获取第一端的本地回写位,将所述本地回写位存储于高速缓冲存
储器,将所述本地回写位发送至第二端;
所述第二端接收所述第一端的本地回写位,所述第二端将所述第
一端的本地回写位记录在所述第二端的对端回写位,所述第二端创建
对端回写组,将所述第二端的对端回写组的句柄发送给所述第一端;
所述第一端接收到所述对端回写组的句柄,将所述IO锁释放。
5.根据权利要求1所述的基于位图的双控制器的高速缓冲存储器

\t回写方法,其特征在于,所述根据所述位图数据结构,对所述高速缓
冲存储器进行写数据,还包括:
在所述本地回写位或所述对端回写位置为1时,且所述写数据位
置为0时,所述第一端在写IO时,将所述写数据位置为1;
在所述写数据位由0置为1时,在缓存数据被替换前,所述第一
端不释放已有数据,而所述第二端释放已有数据,在所述写数据位已
经被置为1时,在缓存数据被替换前释放已有数据,在所述写数据位
无位图结构保护时,在缓存数据替换前释放已有数据;
在所述回写IO完成时,在所述写数据位为1时,将所述IO引用
的高速缓冲存储器中的数据释放;
将所述本地回写位置为0,并将所述写数据位置为0,获取本地回
写的结果,根据所述本地回写的结果,修改所述本地的脏数据位;
将所述本地回写的结果发送给所述第二端,所述...

【专利技术属性】
技术研发人员:李浩然
申请(专利权)人:北京神州云科数据技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1