【技术实现步骤摘要】
本专利技术涉及计算机技术,尤其涉及一种写缓存的方法和装置以及磁盘缓存区的同步方法和装置。
技术介绍
目前,很多新型存储介质具有更好的访问性能,使用这些新型存储介质作为写缓存,可以提升写入速度,合并小IO聚合成大的IO操作,来提升hdd磁盘(HardDiskDrive硬盘驱动器)的每秒小IO的的操作个数。但是,由于新型存储介质的成本昂贵,所以使用新型存储介质作为写缓存时,缓存容量都很小,在应付吞吐率较高的应用环境时,写缓存被迅速写满,写入性能会急速下降。如何提高写缓存应付长时间持续压力的写入,是设计写缓存时面对的主要问题。非易失性随机存取存储器nvram(nonvolatilerandomaccessmemory)和nvdimm技术(一种集成了动态随机存取存储器DRAM+非易失性内存芯片的内存条规格)的发展和商用,使得访问非易失性存储器的性能达到和主存储器的性能相当。而hdd磁盘在顺序写入的粒度达到1MB时,可以达到120MBps以上,以4KB的IO来进行计算,则单个hdd磁盘的IOPS(Input/OutputOperationsPerSecond,即每秒进行读写)可以达到30K。现有的写缓存实现中,都是将缓存放在更快速的存储介质上,但是越快速的存储介质,其成本越高,容量越小。
技术实现思路
本专利技术的实施例提供了一种写缓存的方法和装置以及磁盘缓存区的同步方法和装置,能够减少大吞吐量应用对缓 ...
【技术保护点】
一种写缓存的方法,其特征在于,包括:获取系统的待写入数据;判断所述待写入数据的大小:当所述待写入数据的大小大于第一阈值时,将所述待写入数据写入磁盘的数据区;当所述待写入数据的大小小于或者等于所述第一阈值时,将所述待写入数据和对应的元数据信息写入非易失性内存存储器的缓存区中;所述元数据信息包括:待写入数据的磁盘地址、数据大小和版本号,所述版本号用于表示系统更新待写入数据的序号;当所述非易失性内存存储器的缓存区中的数据大小大于第二阈值时,将所述非易失性内存存储器的缓存区中的数据和对应的元数据信息写入磁盘的缓存区中;并移除所述非易失性内存存储器的缓存区中的数据和对应的元数据信息;当所述磁盘的缓存区中的数据大小大于第三阈值时,将所述磁盘的缓存区中的数据写入到磁盘的数据区中;并移除所述磁盘的缓存区中的数据和对应的元数据信息。
【技术特征摘要】
1.一种写缓存的方法,其特征在于,包括:
获取系统的待写入数据;
判断所述待写入数据的大小:
当所述待写入数据的大小大于第一阈值时,将所述待写入数据写入磁盘的
数据区;
当所述待写入数据的大小小于或者等于所述第一阈值时,将所述待写入数
据和对应的元数据信息写入非易失性内存存储器的缓存区中;所述元数据信息
包括:待写入数据的磁盘地址、数据大小和版本号,所述版本号用于表示系统
更新待写入数据的序号;
当所述非易失性内存存储器的缓存区中的数据大小大于第二阈值时,将所
述非易失性内存存储器的缓存区中的数据和对应的元数据信息写入磁盘的缓存
区中;并移除所述非易失性内存存储器的缓存区中的数据和对应的元数据信
息;
当所述磁盘的缓存区中的数据大小大于第三阈值时,将所述磁盘的缓存区
中的数据写入到磁盘的数据区中;并移除所述磁盘的缓存区中的数据和对应的
元数据信息。
2.根据权利要求1所述的方法,其特征在于,所述当所述磁盘的缓存区中
的数据大小大于第三阈值时,将所述磁盘的缓存区中的数据写入到磁盘的数据
区中的步骤包括:
对所述磁盘的缓存区中的数据进行合并,合并成一个数据块;
判断所述数据块的大小是否大于第四阈值;
当所述数据块的大小大于第四阈值时,将所述数据块写入磁盘的数据区
中;并将所述数据块和对应的元数据信息从所述磁盘的缓存区中移除;
当所述数据块小于或者等于所述第四阈值时,判断所述数据块中的第一个
数据页被合并的时长是否大于或等于设定时长,所述数据页包括预订比特的数
据;
如果被合并的时长大于或等于设定时长,将所述数据块的第一个数据页写
入所述磁盘的数据区,并将所述第一个数据页和对应的元数据信息从所述磁盘
的缓存区中移除。
3.根据权利要求1所述的方法,其特征在于,所述将所述待写入数据写入
磁盘的数据区的步骤具体为:
判断所述非易失性内存存储器的缓冲区中是否存储有与所述待写入数据的
磁盘地址相同的第一数据;
如果有,则将所述第一数据设置为无效,使得所述第一数据在后续处理中
不被同步到所述磁盘的数据区中。
4.根据权利要求1所述的方法,其特征在于,还包括:
在系统异常退出并重新启动之后,判断是否满足以下两个条件:
所述非易失性内存存储器的缓存区中保存有所述磁盘的缓冲区中的数据;
所述非易失性内存存储器的掉电保护区中保存有所述磁盘缓冲区中的数
据;
当上述两个条件都不满足时,则将所述磁盘缓冲区中的数据写入到磁盘的
数据区,且从所述磁盘的缓冲区中移除;或者
在系统异常退出并重新启动之后,判断是否满足以下三个条件:
所述非易失性内存存储器的掉电保护区保存有第二数据;
所述非易失性内存存储器的缓存区中保存有第三数据;
所述非易失性内存存储器的掉电保护区内的第二数据的版本号大于所述非
易失性内存存储器的缓存区中的第三数据的版本号;
当同时满足上述三个条件时,将所述非易失性内存存储器的掉电保护区的
第二数据写入到磁盘的数据区,且从所述非易失性内存存储器的掉电保护区中
移除;或者
在系统异常退出并重新启动之后,判断是否满足以下三个条件:
所述非易失性内存存储器的缓冲区中保存有第四数据;
所述非易失性内存存储器的掉电保护区中保存有第五数据;
所述非易失性内存存储器的缓冲区中的第四数据的版本号大于所述非易失
性内存存储器的掉电保护区的第五数据的版本号;
当同时满足上述三个条件时,将所述非易失性内存存储器的缓冲区的第四
数据写入到磁盘的缓冲区,且从所述非易失性内存存储器的缓冲区中移除。
5.根据权利要求1所述的方法,其特征在于,所述将所述待写入数据写入
磁盘的数据区的步骤具体为:
将所述待写入数据写入非易失性内存存储器的掉电保护区;
将所述待写入数据的元数据信息写入非易失性内存存储器的缓存区;
将所述待写入数据写入磁盘的数据区;
将所述待写入数据的元数据信息从所述非易失性内存存储器的缓存区中移
除;
将所述待写入数据从所述非易失性内存存储器的掉电保护区中移除。
6.一种磁盘缓存区的同步方法,其特征在于,包括:
判断磁盘的缓存区中的数据大小是否大于第三阈值;
当所述磁盘的缓存区中的数据大小大于第三阈值时,将所述磁盘的缓存区
中的数据写入到磁盘的数据区中;并移除所述磁盘的缓存区中的数据和对应的
元数据信息。
7.根据权利要求6所述的方法,其特征在于,
所述判断磁盘的缓存区中的数据大小是否大于第三阈值的步骤包括:
对所述磁盘的缓存区中的数据进行合并,合并成一个数据块;判断所述数
据块的大小是否大于第四阈值;
所述当所述磁...
【专利技术属性】
技术研发人员:阳立堂,杨苑,游成毅,
申请(专利权)人:北京达沃时代科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。