[发明专利]一种基于TCMU虚拟块设备的缓存数据访问方法及系统有效
申请号: | 201710233501.8 | 申请日: | 2017-04-11 |
公开(公告)号: | CN107133183B | 公开(公告)日: | 2020-06-30 |
发明(设计)人: | 文畅 | 申请(专利权)人: | 深圳市联云港科技有限公司 |
主分类号: | G06F12/0875 | 分类号: | G06F12/0875;G06F12/0877 |
代理公司: | 深圳市鼎智专利代理事务所(普通合伙) 44411 | 代理人: | 汤银 |
地址: | 518000 广东省深圳市福田区沙头街道*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 tcmu 虚拟 设备 缓存 数据 访问 方法 系统 | ||
本发明公开了一种基于TCMU虚拟块设备的缓存数据访问方法及系统,所述方法包括:接收应用程序的访问请求;根据所述长度确定其所属的处理池,并在所述处理池对应的缓存哈希表内查找所述位置对应的访问次数;当所述访问请求为写请求且所述访问次数大于等于1时,将所述访问次数加一,并将所述写请求对应的数据保存至缓存哈希表,以及在所述处理池对应的缓存链表中查找所述位置;当未查找到所述位置时,将所述位置及访问次数插入所述缓存链表头部。本发明契合TCMU的IO读写特性,提高读取和写入性能;并采用二次确认的哈希表加按照访问时间淘汰的缓存链表,能有效缓存最近多次访问过的热点数据及过滤突然大量偶发性的数据访问,防止缓存污染。
技术领域
本发明涉及智能终端技术领域,特别涉及一种基于TCMU虚拟块设备的缓存数据访问方法及系统。
背景技术
在大数据蓬勃发展的今天,随着云计算、虚拟化、网络等技术的日渐成熟,作为整个生态基石的存储,也在扮演着越来越重要的角色。在云计算中,存储大多以分布式的形态呈现。而在对生成虚拟块设备的诸多尝试中,Linux内核3.18合入的TCMU给出了一个较为圆满的虚拟块设备生成方式。
TCMU作为Linux操作系统的内核模块,需要及时处理其请求,否则会引起Linux内核的crash。如何为TCMU设计一套高速、有效的缓存系统则成为了性能优化的关键问题。现有的缓存算法普遍采用根据数据的历史访问频率来淘汰方法、根据数据的历史访问记录来淘汰方法或者两者相结合的方法。但是,对于TCMU的IO读写特性则没有涉及,混杂块大小的IO可能会导致TCMU读写性能低下。同时,一次小IO的扫盘或大IO的读写可能导致之前有效的缓存被污染。
因而现有技术还有待改进和提高。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种基于TCMU虚拟块设备的缓存数据访问方法及系统,以解决现有缓存方法导致的TCMU读写性能低的问题。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种基于TCMU虚拟块设备的缓存数据访问方法,其包括:
接收应用程序的访问请求,其中,所述访问请求携带访问数据的长度及访问TCMU虚拟块设备的位置;
根据所述长度确定其所属的处理池,并在所述处理池对应的缓存哈希表内查找所述位置对应的访问次数;
当所述访问请求为写请求且所述访问次数大于等于1时,将所述访问次数加一,并将所述写请求对应的数据保存至缓存哈希表,以及在所述处理池对应的缓存链表中查找所述位置;
当未查找到所述位置时,将所述位置及访问次数插入所述缓存链表头部。
所述基于TCMU虚拟块设备的缓存数据访问方法,其还包括:
当所述访问请求为读请求且所述访问次数大于等于1时,读取所述读请求对应的数据;
将所述访问次数加一,并在所述缓存链表中查找所述位置。
所述基于TCMU虚拟块设备的缓存数据访问方法,其中,所述当所述访问请求为读请求且所述访问次数大于等于1时,读取所述数据具体包括:
当所述访问请求为读请求且所述访问次数大于1时,从缓存哈希表内读取所述读请求对应的数据;
当所述访问请求为读请求且所述访问次数等于1时,从后端存储设备中读取所述读请求对应的数据。
所述基于TCMU虚拟块设备的缓存数据访问方法,其还包括:
当所述访问请求为读请求且所述访问次数小于1时,从后端存储设备中读取所述读请求对应的数据,并以所述位置为键值散列入缓存哈希表,以及将所述位置被访问次数记为1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市联云港科技有限公司,未经深圳市联云港科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710233501.8/2.html,转载请声明来源钻瓜专利网。