首页> 中国专利> 一种分布式缓存系统中的数据写入及读取方法及装置

一种分布式缓存系统中的数据写入及读取方法及装置

摘要

本发明公开了一种分布式缓存系统中的数据写入和读取的方法及装置,在该分布式缓存系统中,在该内存中保存数据的索引信息,而在硬盘中保存数据信息,当在进行数据的写入和读取时,内存中保存的索引信息,对硬盘进行相应的操作。由于在本发明实施例中通过内存和硬盘的结合,实现数据的写入和读取,内存只用于保存索引信息,并在数据的读、写操作时结合内存和硬盘进行,因此可以避免将所有的数据都保存在内存上,可以满足大容量数据缓存的需要,并且在进行数据的写入和读取时,结合内存和硬盘进行,从而可以提高数据读写效率,提升系统的可靠性。

著录项

  • 公开/公告号CN102843396A

    专利类型发明专利

  • 公开/公告日2012-12-26

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201110170053.4

  • 发明设计人 韩银俊;高洪;郭斌;李豪伟;

    申请日2011-06-22

  • 分类号H04L29/08(20060101);G06F3/06(20060101);G06F17/30(20060101);

  • 代理机构11240 北京康信知识产权代理有限责任公司;

  • 代理人余刚;梁丽超

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-12-18 07:51:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-13

    授权

    授权

  • 2014-06-11

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20110622

    实质审查的生效

  • 2012-12-26

    公开

    公开

说明书

技术领域

本发明涉及云计算技术领域,尤其涉及一种分布式缓存系统中的数据写入 及读取的方法及装置。

背景技术

云计算(Cloud Computing)是网格计算(Grid Computing)、分布式计算 (Distributed Computing)、并行计算(Parallel Computing)、效用计算 (Utility Computing)、网络存储(Network Storage Technologies)、虚拟化 (Virtualization)、负载均衡(Load Balance)等传统计算机技术和网络技术发 展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具 有强大计算能力的系统。分布式缓存是云计算范畴中的一个领域,其作用是提 供海量数据的分布式存储服务以及高速读写访问的能力。

分布式缓存系统是由若干服务器节点和客户端互相连接构成的,服务器节 点负责数据的存储,客户端可以对服务器做数据的写入、读取、更新、删除等 操作。分布式缓存系统的特性是并发性高、延迟小。

但是,在现有技术中,硬盘采用机械寻道及磁头数据读取的方法,其随机 访问的并发性能非常低,而且读写的延时较高,因此,为了提升系统的性能, 大多数分布式缓存系统依靠增大内存的使用,来提升系统的性能,但是内存的 容量相比硬盘也要小得多,内存能够存放的数据受容量的影响,满足不了大容 量TB级别的分布式缓存的要求,并且内存的价格相比硬盘是非常昂贵的,这 无疑增加了成本。

发明内容

有鉴于此,本发明提供一种分布式缓存系统中的数据写入及读取的方法及 装置,用以解决现有技术中分布式缓存系统通过内存存取数据,内存的缓存容 量小,无法满足大容量缓存需求的问题。

本发明提供一种分布式缓存系统中的数据写入方法,所述方法包括:

根据接收到的写入操作指令,判断内存中是否保存有待写入数据的索引信 息;

当确定自身内存中保存有该待写入数据的索引信息时,查找自身磁盘中对 应该索引信息的存储区域,将该待写入数据写入该存储区域中,并对内存中该 待写入数据对应的索引信息进行更新;

当确定自身内存中未保存该待写入数据的索引信息时,将该待写入数据写 入到磁盘中的存储区域中,并在内存中保存该待写入数据的索引信息。

本发明提供一种分布式缓存系统中的数据读取方法,所述方法包括:

根据接收到的读取操作指令,判断自身内存中是否缓存有该待读取数据;

当确定内存中缓存有该待读取数据时,从所述内存中读取该待读取数据;

当确定内存中未缓存该待读取数据时,根据内存中保存的该待读取数据的 索引信息,查找磁盘中保存该待读取数据的存储空间,从该存储空间中读取该 待读取数据。

本发明提供一种分布式缓存系统中的数据写入装置,所述装置包括:

判断模块,用于根据接收到的写入操作指令,判断自身内存中是否保存有 待写入数据的索引信息;

第一写入模块,用于当确定自身内存中保存有该待写入数据的索引信息 时,查找自身磁盘中对应该索引信息的存储区域,将该待写入数据写入该存储 区域中,并对内存中该待写入数据对应的索引信息进行更新;

第二写入模块,用于当确定自身内存中未保存该待写入数据的索引信息 时,将该待写入数据写入到磁盘中的存储区域中,并根据该待写入数据在磁盘 中写入的存储区域,在内存中保存该待写入数据的索引信息。

本发明提供一种分布式缓存系统中的数据读取装置,所述读取装置包括:

判断模块,用于根据接收到的读取操作指令,判断自身内存中是否缓存有 该待读取数据;

第一读取模块,用于当确定内存中缓存有该待读取数据时,从所述内存中 读取该待读取数据;

第二读取模块,用于当确定内存中未缓存该待读取数据时,根据内存中保 存的该待读取数据的索引信息,查找磁盘中保存该待读取数据的存储空间,从 该存储空间中读取该待读取数据。

本发明提供一种分布式缓存系统中的数据写入和读取的方法及装置,由于 在本发明实施例中通过内存和硬盘的结合,实现数据的写入和读取,内存只用 于保存索引信息,并在数据的读、写操作时结合内存和硬盘进行,因此可以避 免将所有的数据都保存在内存上,能够满足大容量数据缓存的需要,并且在进 行数据的写入和读取时,结合内存和硬盘进行,从而可以提高数据读写效率。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部 分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不 当限定。在附图中:

图1为本发明实施例提供的一种分布式缓存系统中的数据写入过程;

图2为本发明实施例提供的一种分布式缓存系统中数据写入的详细过程;

图3为本发明实施例提供的一种分布式缓存系统中的数据读取过程;

图4为本发明实施例提供的一种分布式缓存系统中的数据读取的详细过 程;

图5为本发明实施例提供的一种分布式缓存系统中的数据写入装置的结构 示意图;

图6为本发明实施例提供的一种分布式缓存系统中的数据读取装置的结构 示意图。

具体实施方式

本发明为了满足分布式缓存系统中大容量缓存需求,同时提高数据读写效 率、提升系统的可靠性,提供了一种分布式缓存系统中数据的写入和读取的方 法及装置。通过内存和硬盘的结合,实现数据的写入和读取,内存只用于保存 索引信息,并在数据的读、写操作时结合内存和硬盘进行,因此可以避免将所 有的数据都保存在内存上,能够满足大容量数据缓存的需要,并且在进行数据 的写入和读取时,结合内存和硬盘进行,从而可以提高数据读写效率,提升系 统的可靠性。

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明 白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处 所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为本发明实施例提供的一种分布式缓存系统中的数据写入过程,该写 入过程包括以下几个步骤:

S101:接收写入操作指令。

S102:根据接收到的写入操作指令,判断自身内存中是否保存有待写入数 据的索引信息,当判定结果为是时,进行步骤S103,否则,进行步骤S104。

其中,所述索引信息包括:键值的长度信息、键值的内容信息、写入数据 所在磁盘的存储区域信息、偏移量信息、写入数据的长度信息及写入数据的内 容信息。

S103:查找自身磁盘中对应该索引信息的存储区域,将该待写入数据写入 该存储区域中,并对内存中该待写入数据对应的索引信息进行更新。

S104:将该待写入数据写入到磁盘中的存储区域中,并根据该待写入数据 在磁盘中写入的存储区域,在内存中保存该待写入数据的索引信息。

另外,在本发明实施例中当确定自身内存中未保存该待写入数据的索引信 息时,还可以判断自身内存中是否存在可用的存储空间,当确定自身内存中存 在可用的存储空间时,将该待写入数据写入到磁盘中的存储区域中,并根据该 待写入数据在磁盘中写入的存储区域,在内存中保存该待写入数据的索引信 息;当确定自身内存中无可用的存储空间时,则该写入操作失败。

在本发明实施例中为了提高内存中存储空间的利用率,当确定自身内存中 未保存该待写入数据的索引信息时,将该待写入数据写入到磁盘中的存储区域 中,并根据该待写入数据在磁盘中写入的存储区域,在内存中保存该待写入数 据的索引信息之前,判断自身内存中是否含有回收的索引信息存储空间,当内 存中含有回收的索引信息存储空间时,将该待写入数据的索引信息保存到所述 存储空间内,否则,在内存中为该待写入数据的索引信息分配一个未使用过的 存储空间并保存该索引信息。

另外,在本发明实施例中为了进一步提高数据写入效率,减少写入操作的 响应时间,当将该待写入数据写入到磁盘中的存储区域时,根据待写入数据的 容量,将磁盘中的存储区域划分为多个子区域,依次将该待写入数据写入每个 子区域。

具体的,根据待写入数据的容量,将磁盘中的存储区域划分为多个子区 域,保持一个处于活动状态的子区域,将待写入数据依次写入到该处于活动状 态的子区域中,当该子区域中存储数据的容量达到设定的存储阈值时,关闭该 子区域,同时激活另一个子区域,在该激活的另一个子区域中进行数据的写 入。由于该数据的写入过程是依次进行的,即每个存储子区域是顺序被写入 的,因此该数据写入过程不需要磁盘的寻道,使数据的写入速度较快,提高了 数据写入的效率。并且,所有对数据的增、删、改等操作都变成了数据顺序的 写入,大大提升了系统访问的并发量和减少了时延。

在本发明实施例中为了提高分布式缓存系统的可靠性,使系统尽快从故障 中恢复,可以定期将内存中保存的索引信息直接映射到磁盘的存储区域中,当 系统从故障中恢复时,获取映射到磁盘中的索引信息,并将该索引信息写入内 存。

或者,在系统中为了进一步缩短系统从故障中恢复的时间,系统将某一时 刻,内存及硬盘的数据信息生成快照,当系统从故障中恢复时,获取索引信息 及磁盘中数据信息的快照,根据获取的快照,恢复内存中的索引信息,及磁盘 中的数据信息。

具体的,当系统出现故障后恢复时,获取映射到磁盘中的索引信息,并将 该索引信息写入内存,如果系统意外宕机,未能获取映射到磁盘中的索引信息 时,通过获取索引信息及磁盘中数据信息的快照,根据获取的快照,恢复内存 中的索引信息,及磁盘中的数据信息。

另外,在本发明实施例中为了提高当系统出现故障时,对内存中的索引信 息恢复的准确性及效率,在针对磁盘中的数据进行删除操作时,删除磁盘中保 存的该数据,并对该数据在内存对应的索引信息进行删除。

图2为本发明实施例提供的一种分布式缓存系统中数据写入的详细过程, 该过程包括以下步骤:

S201:根据接收到的写入操作指令,判断自身内存中是否保存有待写入数 据的索引信息,当判断结果为是时,进行步骤S202,否则,进行步骤S203。

S202:查找自身磁盘中对应该索引信息的存储区域,将该待写入数据写入 该存储区域中,并对内存中该待写入数据对应的索引信息进行更新。

S203:判断自身内存中是否含有回收的索引信息存储空间,当判断结果为 否时,进行步骤S204,当判断结果为是时,进行步骤S205。

S204:判断自身内存中是否存在可用的存储空间,当判断结果为是时,进 行步骤S205,否则,数据写入过程结束。

S205:将该待写入数据写入该存储区域中,并根据该待写入数据在磁盘中 写入的存储区域,在内存中保存该待写入数据的索引信息。

由于在本发明实施例中通过内存和硬盘的结合,实现数据的写入,内存只 用于保存索引信息,并在数据的写操作时结合内存和硬盘进行,因此可以避免 将所有的数据都保存在内存上,可以满足大容量数据缓存的需要,并且在进行 数据的写入和读取时,结合内存和硬盘进行,从而可以提高数据读写效率,提 升系统的可靠性。

图3为本发明实施例提供的一种分布式缓存系统中的数据读取过程,该读 取过程包括以下几个步骤:

S301:接收读取操作指令。

S302:根据接收到的读取操作指令,判断自身内存中是否缓存有该待读取 数据,当判断结果为是时,进行步骤S303,否则,进行步骤S304。

S303:从所述内存中读取该待读取数据。

其中,所述内存中缓存有部分数据,该数据的使用频率比较高,不断的被 不同的客户端,或相同客户端在不同时刻读取,因此可以根据数据被读取的频 率,将被读取的频率比较高的数据缓存在内存中。

S304:根据内存中保存的该待读取数据的索引信息,查找磁盘中保存该待 读取数据的存储空间,从该存储空间中读取该待读取数据。

另外,本发明实施例为了进一步提高数据读取的效率,增加内存的利用 率,在进行数据读取时,可以采用预读的方式,该预读方式包括:

根据查找到的所述存储空间中保存的数据信息,确定该待读取数据的当前 信息及后续信息;

读取该待读取数据的当前信息,并将待读取数据的后续信息保存到内存 中。

在本发明实施例中为了提高磁盘中存储区域的利用率,提升系统的性能, 根据设定的时间间隔,定期对磁盘中的存储区域进行清理及合并,包括:

根据设定的时间间隔,统计针对磁盘中的数据信息保存的访问记录,根据 该访问记录,对磁盘中的数据信息进行清理。

其中,设定的时间可以为任意时间,为了保证分布式缓存系统的可靠性, 提高清理的效率,一般采用操作量较少的空闲时间。

所述方法还包括:

根据磁盘的存储区域中每个子区域中写入的数据信息的容量,对不同子区 域中写入的数据信息进行合并。

具体的针对磁盘的存储区域中每个子区域中写入的数据信息的容量,占自 身最大容量的比例设定一个阈值,当子区域中写入的数据信息的容量占自身最 大容量的比例值小于设定的阈值时,对该子区域进行合并。其中,设定的阈值 可以是任意值,一般设定的阈值可以为80%。

以一个具体实施例进行说明,单独线程在每天空闲时间段进行数据信息的 清理合并,释放磁盘的存储空间。针对磁盘中每个子存储区域中保存的数据信 息,在内存中统计并保存该数据信息的访问记录,当在磁盘中写入或删除数据 信息时、对内存中保存的访问记录进行更新;根据磁盘的存储区域中每个子区 域中写入的数据信息的容量,当子区域中写入的数据信息的容量占自身最大容 量的比例值小于80%时,对该子区域进行合并,合并时,根据子区域中写入的 数据信息的容量占自身最大容量的比例值大小,优先合并比例值较小的。

图4为本发明实施例提供的一种分布式缓存系统中的数据读取的详细过 程,该过程包括以下步骤:

S401:根据接收到的读取操作指令,判断自身内存中是否缓存有该待读取 数据,当判断结果为是时,进行步骤S402,否则,进行步骤S403。

S402:从所述内存中读取该待读取数据。

S403:根据内存中保存的该待读取数据的索引信息,查找磁盘中保存该待 读取数据的存储空间。

S404:根据查找到的所述存储空间中保存的数据信息,确定该待读取数据 的当前信息及后续信息,读取该待读取数据的当前信息,并将待读取数据的后 续信息保存到内存中。

由于在本发明实施例中通过内存和硬盘的结合,实现数据的读取,内存只 用于保存索引信息,并在数据的读操作时结合内存和硬盘进行,因此可以避免 将所有的数据都保存在内存上,可以满足大容量数据缓存的需要,并且在进行 数据的读取时,结合内存和硬盘进行,从而可以提高数据读取效率,提升系统 的可靠性。

图5为本发明实施例提供的一种分布式缓存系统中的数据写入装置的结构 示意图,所述写入装置包括:

判断模块51,用于根据接收到的写入操作指令,判断自身内存中是否保存 有待写入数据的索引信息;

第一写入模块52,用于当确定自身内存中保存有该待写入数据的索引信息 时,查找自身磁盘中对应该索引信息的存储区域,将该待写入数据写入该存储 区域中,并对内存中该待写入数据对应的索引信息进行更新;

第二写入模块53,用于当确定自身内存中未保存该待写入数据的索引信息 时,将该待写入数据写入到磁盘中的存储区域中,并根据该待写入数据在磁盘 中写入的存储区域,在内存中保存该待写入数据的索引信息。

所述第二写入模块53,具体用于判断自身内存中是否含有回收的索引信息 存储空间;当内存中含有回收的索引信息存储空间时,将该待写入数据的索引 信息保存到所述存储空间内,否则,在内存中为该待写入数据的索引信息分配 一个未使用过的存储空间并保存该索引信息。

所述第一写入模块51,具体用于根据待写入数据的容量,将磁盘中的存储 区域划分为多个子区域,依次将该待写入数据写入每个子区域。

由于在本发明实施例中通过内存和硬盘的结合,实现数据的写入,内存只 用于保存索引信息,并在数据的写操作时结合内存和硬盘进行,因此可以避免 将所有的数据都保存在内存上,能够满足大容量数据缓存的需要,并且在进行 数据的写入时,结合内存和硬盘进行,从而可以提高数据写操作的效率。

所述写入装置还包括:

恢复模块54,用于当系统出现故障后恢复时,获取映射到磁盘中的索引信 息,并将该索引信息写入内存。

所述写入装置还包括:

恢复模块54,用于当系统出现故障后恢复时,获取索引信息及磁盘中数据 信息的快照;根据获取的快照,恢复内存中的索引信息,及磁盘中的数据信 息。

图6为本发明实施例提供的一种分布式缓存系统中的数据读取装置的结构 示意图,所述读取装置包括:

判断模块61,用于根据接收到的读取操作指令,判断自身内存中是否缓存 有该待读取数据;

第一读取模块62,用于当确定内存中缓存有该待读取数据时,从所述内存 中读取该待读取数据;

第二读取模块63,用于当确定内存中未缓存该待读取数据时,根据内存中 保存的该待读取数据的索引信息,查找磁盘中保存该待读取数据的存储空间, 从该存储空间中读取该待读取数据。

所述第二读取模块63,具体用于根据查找到的所述存储空间中保存的数据 信息,确定该待读取数据的当前信息及后续信息;读取该待读取数据的当前信 息,并将待读取数据的后续信息保存到内存中。

由于在本发明实施例中通过内存和硬盘的结合,实现数据的读取,内存只 用于保存索引信息,并在数据的读操作时结合内存和硬盘进行,因此可以避免 将所有的数据都保存在内存上,能够满足大容量数据缓存的需要,并且在进行 数据的读取时,结合内存和硬盘进行,从而可以提高数据读取效率。

所述读取装置还包括:

清理模块64,用于根据设定的时间间隔,统计针对磁盘中的数据信息保存 的访问记录;根据该访问记录,对磁盘中的数据信息进行清理。

所述读取装置还包括:

合并模块65,用于根据磁盘的存储区域中每个子区域中写入的数据信息的 容量,对不同子区域中写入的数据信息进行合并。

上述说明示出并描述了本发明的优选实施例,但如前所述,应当理解本发 明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于 各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教 导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱 离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号