本发明主要涉及到存储技术领域,尤其涉及一种可以有效提升ssdcache读性能的方法。
背景技术:
随着客户业务水平和数据量的增长,对系统的反应速度要求越来越高,即我们需要系统的性能也随之增加。为了满足客户的需求,存储系统一般会使用ssd磁盘作为二级缓存,将客户业务需要经常访问的数据块存储在ssdcache中,以提升数据块命中率。但传统的ssdcache一般遵循先进先出的原则,该种方法设置简单、效率好并且适用于大多数应用场景,但对一些高命中率需求的场景并不能满足。
技术实现要素:
为了解决上述问题,本发明提供了一种提升ssdcache读性能的方法,采用基于数据块访问热度的ssdcache更新策略,用于提升ssdcache的性能,该方法主要对ssdcache中每个数据块的访问热度进行实时跟踪,根据访问热度对数据块进行“热数据锁定”和“冷数据驱除”,从而保证系统访问数据的高命中率,以提升系统性能。
本发明采用以下技术方案:
一种提升ssdcache读性能的方法,用于提高系统访问数据的命中率,其特征在于,所述的方法包括以下步骤:
步骤1:写入数据;
步骤2:数据读取;
步骤3:存储系统对ssdcache中存储数据的访问热度进行实时跟踪,并按照访问次数由高到低的顺序在系统内生成数据块热度表;
步骤4:结合数据块热度表对ssdcache中存储的数据进行替换。
进一步的,步骤1的具体实现过程为:系统执行数据写入操作,系统会将数据的元数据存储ssdcache中。
进一步的,步骤1还包括以下操作:用户或技术人员将数据预先存储到ssdcache中。
进一步的,步骤1还包括以下操作:系统执行数据更新策略,并将更新后的数据存储到ssdcache中。
进一步的,步骤2的具体实现过程为:当进行数据读取时,系统会对ssdcache中的元数据进行检测,根据元数据将需要读取的数据从hdd中读取到ssdcache中。
优选的,在步骤2中,系统在读取所需数据时,将所需数据的关联数据同时读取并存放在ssdcache中。
进一步的,所述的数据块热度表至少包括数据名称和该数据的访问次数。
进一步的,步骤4的具体实现过程为:系统重新执行步骤1-2,在数据读取到ssdcache过程中,若ssdcache存储空间已满,系统按照数据块热度表中从低到高的顺序依次替换ssdcache中的数据。
本发明的有益效果是:
1、对ssdcache中每个数据块的访问热度进行实时跟踪,根据访问热度对数据块进行“热数据锁定”和“冷数据驱除”,从而保证系统访问数据的高命中率,以提升系统性能。
2、运行高效,在ssdcache中记录元数据,可以迅速定位数据块位置。
3、对cache数据管理更加精细,多种方法保证数据块的热度,能够保证数据块被100%命中。
附图说明
图1是本发明方法流程图。
具体实施方式
本文提出的利用“数据块热度表”提升系统性能的方法主要包含以下两个方面:①ssdcache数据的来源;②ssdcache数据块热度跟踪。ssdcache数据主要来源于如下三种方式:①数据块元数据;②主动预存数据;③后续策略更新;利用“数据块热度表”提升系统性能的方法具体阐述如下。
如图1所示提升ssdcache读性能的方法,用于提高系统访问数据的命中率,所述的方法包括以下步骤:
步骤1:写入数据,具体内容包含至少三种类型:
1)系统执行数据写入操作,系统会将数据的元数据存储ssdcache中;
2)用户或技术人员将数据预先存储到ssdcache中;
3)系统执行数据更新策略,并将更新后的数据存储到ssdcache中。
步骤2:数据读取,具体过程为:当进行数据读取时,系统会对ssdcache中的元数据进行检测,根据元数据将需要读取的数据从hdd中读取到ssdcache中。而且,系统在读取所需数据时,将所需数据的关联数据同时读取并存放在ssdcache中。
步骤3:热点排序,具体实现过程为:存储系统对ssdcache中存储数据的访问热度进行实时跟踪,并按照访问次数由高到低的顺序在系统内生成数据块热度表。其中,所述的数据块热度表至少包括数据名称和该数据的访问次数。
步骤4:数据替换,具体实现过程为:系统重新执行步骤1-2,在数据读取到ssdcache过程中,若ssdcache存储空间已满,系统按照数据块热度表中从低到高的顺序依次替换ssdcache中的数据。
应当指出,以上所述具体实施方式可以使本领域的技术人员更全面地理解本发明的具体结构,但不以任何方式限制本发明创造。因此,尽管说明书及附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明创造的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。