一种基于TCMU虚拟块设备的缓存数据访问方法及系统技术方案

技术编号:16152842 阅读:61 留言:0更新日期:2017-09-06 18:16
本发明专利技术公开了一种基于TCMU虚拟块设备的缓存数据访问方法及系统,所述方法包括:接收应用程序的访问请求;根据所述长度确定其所属的处理池,并在所述处理池对应的缓存哈希表内查找所述位置对应的访问次数;当所述访问请求为写请求且所述访问次数大于等于1时,将所述访问次数加一,并将所述写请求对应的数据保存至缓存哈希表,以及在所述处理池对应的缓存链表中查找所述位置;当未查找到所述位置时,将所述位置及访问次数插入所述缓存链表头部。本发明专利技术契合TCMU的IO读写特性,提高读取和写入性能;并采用二次确认的哈希表加按照访问时间淘汰的缓存链表,能有效缓存最近多次访问过的热点数据及过滤突然大量偶发性的数据访问,防止缓存污染。

【技术实现步骤摘要】
一种基于TCMU虚拟块设备的缓存数据访问方法及系统
本专利技术涉及智能终端
,特别涉及一种基于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。所述基于TCMU虚拟块设备的缓存数据访问方法,其还包括:当所述访问请求为写请求且所述访问次数小于1时,以所述位置为键值散列入缓存哈希表,并将所述位置被访问次数记为1,以及将所述写请求对应的数据发送至后端存储设备。所述基于TCMU虚拟块设备的缓存数据访问方法,其中,所述若未查找到所述位置,则将所述位置及访问次数插入所述缓存链表头部具体包括:若未查找到所述位置,则判断所述缓存链表是否存满;当所述缓存链表存满时,将所述缓存链表尾部的访问记录删除,并将所述访问记录对应的位置从缓存哈希表内删除;当所述缓存链表未存满或删除访问记录时,将所述位置及访问次数插入所述缓存链表头部。所述基于TCMU虚拟块设备的缓存数据访问方法,其还包括:若查找到所述位置,则更新缓存链表中所述位置对应的访问时间及访问次数,并根据所述访问时间重新排列所述缓存链表。所述基于TCMU虚拟块设备的缓存数据访问方法,其中,所述接收应用程序的访问请求,其中,所述访问请求携带访问数据的长度及访问TCMU虚拟块设备的位置之前还包括:根据TCMU的IO访问特性预先创建若干处理池,并为每个数据处理池建立相应的缓存哈希表及缓存链表。一种基于TCMU虚拟块设备的缓存数据访问系统,其包括:接收模块,用于接收应用程序的访问请求,其中,所述访问请求携带访问数据的长度及访问TCMU虚拟块设备的位置;查找模块,用于根据所述长度确定其所属的处理池,并在所述处理池对应的缓存哈希表内查找所述位置对应的访问次数;写入模块,用于当所述访问请求为写请求且所述访问次数大于等于1时,将所述访问次数加一,并将所述写请求对应的数据保存至缓存哈希表,以及在所述处理池对应的缓存链表中查找所述位置;插入模块,用于当未查找到所述位置时,将所述位置及访问次数插入所述缓存链表头部。所述基于TCMU虚拟块设备的缓存数据访问系统,其还包括:读取模块,用于当所述访问请求为读请求且所述访问次数大于等于1时,读取所述读请求对应的数据,并将所述访问次数加一,以及在所述缓存链表中查找所述位置。有益效果:与现有技术相比,本专利技术提供了一种基于TCMU虚拟块设备的缓存数据访问方法及系统,所述方法包括:接收应用程序的访问请求;根据所述长度确定其所属的处理池,并在所述处理池对应的缓存哈希表内查找所述位置对应的访问次数;当所述访问请求为写请求且所述访问次数大于等于1时,将所述访问次数加一,并将所述写请求对应的数据保存至缓存哈希表,以及在所述处理池对应的缓存链表中查找所述位置;当未查找到所述位置时,将所述位置及访问次数插入所述缓存链表头部。本专利技术契合TCMU的IO读写特性,提高读取和写入性能;并采用二次确认的哈希表加按照访问时间淘汰的缓存链表,能有效缓存最近多次访问过的热点数据及过滤突然大量偶发性的数据访问,防止缓存污染。附图说明图1为本专利技术提供的基于TCMU虚拟块设备的缓存数据访问方法较佳实施的流程图。图2为本专利技术应用的分布式块存储系统的架构图。图3为本专利技术中TCMU虚拟块设备读写方式的示意图。图4为本专利技术中提供基于TCMU虚拟块设备的缓存数据访问方法的处理流程图。图5为本专利技术中提供基于TCMU虚拟块设备的缓存数据访问方法实施例一的流程图。图6为本专利技术中提供基于TCMU虚拟块设备的缓存数据访问方法实施例二的流程图。图7为本专利技术提供的基于TCMU虚拟块设备的缓存数据访问系统的结构原理图。图8为本专利技术提供的基于TCMU虚拟块设备的缓存数据访问系统的一个实施例的结构原理图。具体实施方式本专利技术提供一种基于TCMU虚拟块设备的缓存数据访问方法及系统,为使本专利技术的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。本专利技术中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本专利技术的说明,其本身并没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。终端设备可以以各种形式来实施。例如,本专利技术中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本专利技术的实施方式的构造也能够应用于固定类型的终端。下面结合附图,通过对实施例的描述,对
技术实现思路
作进一步说明。请参照图1和本文档来自技高网
...
一种基于TCMU虚拟块设备的缓存数据访问方法及系统

【技术保护点】
一种基于TCMU虚拟块设备的缓存数据访问方法,其特征在于,其包括:接收应用程序的访问请求,其中,所述访问请求携带访问数据的长度及访问TCMU虚拟块设备的位置;根据所述长度确定其所属的处理池,并在所述处理池对应的缓存哈希表内查找所述位置对应的访问次数;当所述访问请求为写请求且所述访问次数大于等于1时,将所述访问次数加一,并将所述写请求对应的数据保存至缓存哈希表,以及在所述处理池对应的缓存链表中查找所述位置;当未查找到所述位置时,将所述位置及访问次数插入所述缓存链表头部。

【技术特征摘要】
1.一种基于TCMU虚拟块设备的缓存数据访问方法,其特征在于,其包括:接收应用程序的访问请求,其中,所述访问请求携带访问数据的长度及访问TCMU虚拟块设备的位置;根据所述长度确定其所属的处理池,并在所述处理池对应的缓存哈希表内查找所述位置对应的访问次数;当所述访问请求为写请求且所述访问次数大于等于1时,将所述访问次数加一,并将所述写请求对应的数据保存至缓存哈希表,以及在所述处理池对应的缓存链表中查找所述位置;当未查找到所述位置时,将所述位置及访问次数插入所述缓存链表头部。2.根据权利要求1所述基于TCMU虚拟块设备的缓存数据访问方法,其特征在于,其还包括:当所述访问请求为读请求且所述访问次数大于等于1时,读取所述读请求对应的数据;将所述访问次数加一,并在所述缓存链表中查找所述位置。3.根据权利要求2所述基于TCMU虚拟块设备的缓存数据访问方法,其特征在于,所述当所述访问请求为读请求且所述访问次数大于等于1时,读取所述数据具体包括:当所述访问请求为读请求且所述访问次数大于1时,从缓存哈希表内读取所述读请求对应的数据;当所述访问请求为读请求且所述访问次数等于1时,从后端存储设备中读取所述读请求对应的数据。4.根据权利要求2所述基于TCMU虚拟块设备的缓存数据访问方法,其特征在于,其还包括:当所述访问请求为读请求且所述访问次数小于1时,从后端存储设备中读取所述读请求对应的数据,并以所述位置为键值散列入缓存哈希表,以及将所述位置被访问次数记为1。5.根据权利要求1所述基于TCMU虚拟块设备的缓存数据访问方法,其特征在于,其还包括:当所述访问请求为写请求且所述访问次数小于1时,以所述位置为键值散列入缓存哈希表,并将所述位置被访问次数记为1,以及将所述写请求对应的数据发送至后端存储设备。6.根据权利要求1-2...

【专利技术属性】
技术研发人员:文畅
申请(专利权)人:深圳市云舒网络技术有限公司
类型:发明
国别省市:广东,44

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

1