分布式缓存方法及系统.pdf

上传人:00****42 文档编号:291260 上传时间:2018-02-07 格式:PDF 页数:13 大小:2.03MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410317772.8

申请日:

2014.07.04

公开号:

CN104052824A

公开日:

2014.09.17

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/08申请日:20140704|||公开

IPC分类号:

H04L29/08

主分类号:

H04L29/08

申请人:

哈尔滨工业大学深圳研究生院

发明人:

何震宇; 张高伟; 李鑫; 李义; 陈明明; 刘伟

地址:

518000 广东省深圳市南山区西丽镇深圳大学城哈工大校区

优先权:

专利代理机构:

深圳市科吉华烽知识产权事务所(普通合伙) 44248

代理人:

于标

PDF下载: PDF下载
内容摘要

本发明提供了一种分布式缓存方法及系统,该分布式缓存方法包括HDFS数据获取步骤:通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;共享内存管理步骤:用于连接客户端动态缓存库和服务器端缓存服务单元;交互控制步骤:用于完成同一个主机的交互工作,用于与ZooKeeper服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。本发明的有益效果是本发明的分布式缓存方法及系统通过对HDFS上的文件进行缓存,在进行文件读取的过程,直接读取缓存中的文件,这样就会极大的降低文件读取的时间,从而提高实时云服务的吞吐量和降低云服务的响应时间。

权利要求书

1.  一种分布式缓存方法,其特征在于,该分布式缓存方法包括客户端动态缓存库和多个服务器端缓存服务单元,该分布式缓存方法构建在HDFS之上,在服务器端缓存服务单元中包括执行如下步骤:
HDFS数据获取步骤:通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;
共享内存管理步骤:用于连接客户端动态缓存库和服务器端缓存服务单元;在云服务应用端执行如下步骤:
交互控制步骤:用于完成同一个主机的交互工作,用于与ZooKeeper服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。

2.
  根据权利要求1所述的分布式缓存方法,其特征在于:该分布式缓存方法还包括运行在服务器端缓存服务单元上的序列号快照步骤,在所述序列号快照步骤中,用于周期性把元数据和所有的缓存文件写入本地操作系统的文件系统,形成一系列的快照。

3.
  根据权利要求1所述的分布式缓存方法,其特征在于:在所述共享内存管理步骤中,通过HDFS数据获取步骤中获得的文件内容加载到分布式文件缓存当中,供客户端读取,提供一次写入、多次读取的模型。

4.
  根据权利要求3所述的分布式缓存方法,其特征在于:在云服务应用端还包括执行客户端共享内存获取步骤,在所述客户端共享内存获取步骤中,通过与共享内存管理步骤的交互来读取所需文件内容。

5.
  根据权利要求2所述的分布式缓存方法,其特征在于:在所述共享内存管理步骤中,共享内存被分成了从个固定的页,页是最小的内存分配单位,在每页的最后留下4位来存储同一个文件的下一页,所有的页是以链表的形式组织;当客户端获取一个文件,缓存没有命中的时候,服务器端缓存服务单元将会从其他的服务器端缓存服务单元或者HDFS的本地快照中查找文件;当服务器端缓存服务单元加载文件内容到共享内存的时候,如果共享内存已经没有足够的页来分配,服务器端缓存服务单元会使用LRU算法去移除元数据信息图中最近一段时间没有使用的缓存内容;在处理LRU算法的时候,移除的文件放在本地磁盘中,如果本地磁盘没有足够的空间,LRU算法同样应用于本地磁盘来移除本地磁盘上的最近一段时间没 有使用的文件;每个缓存文件有多个副本。

6.
  一种分布式缓存系统,其特征在于,该分布式缓存系统包括客户端动态缓存库和多个服务器端缓存服务单元,该分布式缓存系统构建在HDFS之上,在服务器端缓存服务单元中包括:
HDFS数据获取模块:通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;
共享内存管理模块:用于连接客户端动态缓存库和服务器端缓存服务单元;客户端动态缓存库中包括:
客户端交互控制模块:用于完成同一个主机的交互工作,用于与ZooKeeper服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。

7.
  根据权利要求6所述的分布式缓存系统,其特征在于:该分布式缓存系统还包括运行在服务器端缓存服务单元上的序列号快照模块,在所述序列号快照模块中,用于周期性把元数据和所有的缓存文件写入本地操作系统的文件系统,形成一系列的快照。

8.
  根据权利要求6所述的分布式缓存系统,其特征在于:在所述共享内存管理模块中,通过HDFS数据获取步骤中获得的文件内容加载到分布式文件缓存当中,供客户端读取,提供一次写入、多次读取的模型。

9.
  根据权利要求8所述的分布式缓存系统,其特征在于:在客户端动态缓存库中还包括执行客户端共享内存获取模块,在所述客户端共享内存获取模块中,通过与共享内存管理模块的交互来读取所需文件内容。

10.
  根据权利要求7所述的分布式缓存系统,其特征在于:在所述共享内存管理模块中,共享内存被分成了从个固定的页,页是最小的内存分配单位,在每页的最后留下4位来存储同一个文件的下一页,所有的页是以链表的形式组织;当客户端获取一个文件,缓存没有命中的时候,服务器端缓存服务单元将会从其他的服务器端缓存服务单元或者HDFS的本地快照中查找文件;当服务器端缓存服务单元加载文件内容到共享内存的时候,如果共享内存已经没有足够的页来分配,服务器端缓存服务单元会使用LRU算法去移除元数据信息图中最近一段时间没有使用的缓存内容;在处理LRU算法的时候,移除的文件放在本地磁盘中,如果本地磁盘没有足够的空间,LRU算法同样应用于本地磁盘来移除本地磁盘上的最近一段时间没 有使用的文件;每个缓存文件有多个副本。

说明书

分布式缓存方法及系统
技术领域
本发明涉及互联网数据缓存领域,尤其涉及分布式缓存方法及系统。
背景技术
互联网的飞速发展,带来了大数据时代,从而出现了各种各样的云计算服务,海量数据的存储和获取成为了一种重要的研究方向。其中,主要的方案就是文件存储在分布式文件系统中,在此过程中,对于需要实时处理的应用中,文件的获取性能就成了一个巨大的挑战。
Apache Hadoop是一个能够对大量数据进行分布式处理的开源软件框架。
Hadoop的开源授权方式是Apache License2.0。
Hadoop技术是分布式系统基础架构,主要包括Map/Reduce和HDFS,其中HDFS是一个高度容错性的系统,适合部署在廉价的机器上,HDFS能提供高吞吐量的数据访问,非常适合大规模数据的应用,常用来保存海量的文件,但是缺乏对实时应用的支持。在HDFS中,读取文件需要很多的节点连接交互的过程,这个过程会极大的增加文件读取的时间。
发明内容
为了解决现有技术中的问题,本发明提供了一种分布式缓存方法。
本发明提供了一种分布式缓存方法,其特征在于,该分布式缓存方法包括客户端动态缓存库和多个服务器端缓存服务单元,该分布式缓存方法构建在HDFS之上,在服务器端缓存服务单元中包括执行如下步骤:
HDFS数据获取步骤:通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;
共享内存管理步骤:用于连接客户端动态缓存库和服务器端缓存服务单元;
在云服务应用端执行如下步骤:
交互控制步骤:用于完成同一个主机的交互工作,用于与ZooKeeper服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。
作为本发明的进一步改进,该分布式缓存方法还包括运行在服务器端缓存服务单元上的序列号快照步骤,在所述序列号快照步骤中,用于周期性把元数据和所有的缓存文件写入本地操作系统的文件系统,形成一系列 的快照。
作为本发明的进一步改进,在所述共享内存管理步骤中,通过HDFS数据获取步骤中获得的文件内容加载到分布式文件缓存当中,供客户端读取,提供一次写入、多次读取的模型。
作为本发明的进一步改进,在云服务应用端还包括执行客户端共享内存获取步骤,在所述客户端共享内存获取步骤中,通过与共享内存管理步骤的交互来读取所需文件内容。
作为本发明的进一步改进,在所述共享内存管理步骤中,共享内存被分成了从个固定的页,页是最小的内存分配单位,在每页的最后留下4位来存储同一个文件的下一页,所有的页是以链表的形式组织;当客户端获取一个文件,缓存没有命中的时候,服务器端缓存服务单元将会从其他的服务器端缓存服务单元或者HDFS的本地快照中查找文件;当服务器端缓存服务单元加载文件内容到共享内存的时候,如果共享内存已经没有足够的页来分配,服务器端缓存服务单元会使用LRU算法去移除元数据信息图中最近一段时间没有使用的缓存内容;在处理LRU算法的时候,移除的文件放在本地磁盘中,如果本地磁盘没有足够的空间,LRU算法同样应用于本地磁盘来移除本地磁盘上的最近一段时间没有使用的文件;每个缓存文件有多个副本。
本发明还提供了一种分布式缓存系统,其特征在于,该分布式缓存系统包括客户端动态缓存库和多个服务器端缓存服务单元,该分布式缓存系统构建在HDFS之上,在服务器端缓存服务单元中包括:
HDFS数据获取模块:通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;
共享内存管理模块:用于连接客户端动态缓存库和服务器端缓存服务单元;
客户端动态缓存库中包括:
客户端交互控制模块:用于完成同一个主机的交互工作,用于与ZooKeeper服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。
作为本发明的进一步改进,该分布式缓存系统还包括运行在服务器端缓存服务单元上的序列号快照模块,在所述序列号快照模块中,用于周期性把元数据和所有的缓存文件写入本地操作系统的文件系统,形成一系列的快照。
作为本发明的进一步改进,在所述共享内存管理模块中,通过HDFS数据获取步骤中获得的文件内容加载到分布式文件缓存当中,供客户端读取,提供一次写入、多次读取的模型。
作为本发明的进一步改进,在客户端动态缓存库中还包括执行客户端共享内存获取模块,在所述客户端共享内存获取模块中,通过与共享内存管理模块的交互来读取所需文件内容。
作为本发明的进一步改进,在所述共享内存管理模块中,共享内存被分成了从个固定的页,页是最小的内存分配单位,在每页的最后留下4位来存储同一个文件的下一页,所有的页是以链表的形式组织;当客户端获取一个文件,缓存没有命中的时候,服务器端缓存服务单元将会从其他的服务器端缓存服务单元或者HDFS的本地快照中查找文件;当服务器端缓存服务单元加载文件内容到共享内存的时候,如果共享内存已经没有足够的页来分配,服务器端缓存服务单元会使用LRU算法去移除元数据信息图中最近一段时间没有使用的缓存内容;在处理LRU算法的时候,移除的文件放在本地磁盘中,如果本地磁盘没有足够的空间,LRU算法同样应用于本地磁盘来移除本地磁盘上的最近一段时间没有使用的文件;每个缓存文件有多个副本。
本发明的有益效果是:本发明的分布式缓存方法及系统通过对HDFS上的文件进行缓存,在进行文件读取的过程,直接读取缓存中的文件,这样就会极大的降低文件读取的时间,从而提高实时云服务的吞吐量和降低云服务的响应时间。
附图说明
图1是本发明的逻辑原理图;
图2是本发明的系统架构图;
图3为本发明的共享内存管理模块示意图;
图4是本发明的加载HDFS上的文件到分布式缓存算法示意图;
图5是本发明的分布式缓存副本节点选择示意图。
具体实施方式
如图1所示,本发明公开了一种分布式缓存方法,该分布式缓存方法包括客户端动态缓存库和多个服务器端缓存服务单元,该分布式缓存方法构建在HDFS之上,在服务器端缓存服务单元中包括执行如下步骤:
HDFS数据获取步骤:通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;
共享内存管理步骤:用于连接客户端动态缓存库和服务器端缓存服务单元;
在云服务应用端执行如下步骤:
交互控制步骤:用于完成同一个主机的交互工作,用于与ZooKeeper服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。
该分布式缓存方法还包括运行在服务器端缓存服务单元上的序列号快照步骤,在所述序列号快照步骤中,用于周期性把元数据和所有的缓存文件写入本地操作系统的文件系统,形成一系列的快照。
在所述共享内存管理步骤中,通过HDFS数据获取步骤中获得的文件内容加载到分布式文件缓存当中,供客户端读取,提供一次写入、多次读取的模型。
在云服务应用端还包括执行客户端共享内存获取步骤,在所述客户端共享内存获取步骤中,通过与共享内存管理步骤的交互来读取所需文件内容。
在所述共享内存管理步骤中,共享内存被分成了从个固定的页,页是最小的内存分配单位,在每页的最后留下4位来存储同一个文件的下一页,所有的页是以链表的形式组织;当客户端获取一个文件,缓存没有命中的时候,服务器端缓存服务单元将会从其他的服务器端缓存服务单元或者HDFS的本地快照中查找文件;当服务器端缓存服务单元加载文件内容到共享内存的时候,如果共享内存已经没有足够的页来分配,服务器端缓存服务单元会使用LRU算法去移除元数据信息图中最近一段时间没有使用的缓存内容;在处理LRU算法的时候,移除的文件放在本地磁盘中,如果本地磁盘没有足够的空间,LRU算法同样应用于本地磁盘来移除本地磁盘上的最近一段时间没有使用的文件;每个缓存文件有多个副本。
如图1所示,本发明还公开了一种分布式缓存系统,构建在HDFS之上,包括一个分布式缓存集群,所用分布式缓存集群采用Hadoop,Zookeeper,Memcached作为基本架构;
该分布式缓存系统为C/S架构,有一个客户端动态缓存库和多个服务器端缓存服务单元。
在应用层之上提供一个客户端动态缓存库,该客户端动态缓存库包括两个主要的部分:交互控制部分和共享内存获取部分。
如图2所示,在服务器端缓存服务单元中包括:
HDFS数据获取模块:通过HDFS的API把HDFS上存储的文件内容 读取出来加载到共享内存当中;
共享内存管理模块:用于连接客户端动态缓存库和服务器端缓存服务单元;在所述共享内存管理模块中,通过HDFS数据获取步骤中获得的文件内容加载到分布式文件缓存当中,此模块存储分布式缓存内容,供客户端读取,提供一次写入、多次读取的模型。
客户端动态缓存库中包括:
客户端交互控制模块:用于完成同一个主机的交互工作,用于与ZooKeeper服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。例如,计算读取问价的哈希值并定位到特殊的缓存中。
该分布式缓存系统还包括运行在服务器端缓存服务单元上的序列号快照模块,在所述序列号快照模块中,用于周期性把元数据和所有的缓存文件写入本地操作系统的文件系统,形成一系列的快照。当一个主机宕机之后,可以通过读取本地文件系统来重建分布式缓存的内容。
在客户端动态缓存库中还包括执行客户端共享内存获取模块,在所述客户端共享内存获取模块中,通过与共享内存管理模块的交互来读取所需文件内容。
HDFS数据获取模块、共享内存管理模块、序列号快照模块为服务器端运行的服务器进程,客户端交互控制模块、客户端共享内存获取模块是部署在云服务应用端的。
本发明假设集群有5台普通PC机,如图3所示,本发明共享内存管理模块示意图,共享内存被分成了很多固定的页(每页大概4KB能够被用户重置)。在本分布式缓存系统中,页是最小的内存分配单位,在每页的最后,留下4位来存储同一个文件的下一页,所有的页是以链表的形式组织的。所有文件的第一页是存储在元数据信息图(Meta info Map)中的FirstP域中,云服务客户端库从缓存服务器上定位文件,然后从共享内存中直接获取文件内容。图3中的内存位图数据结构是内存管理部分用来申请和分配空闲内存页的。
当一个云服务应用打开一个缓存文件的时候,客户端动态缓存库记录此文件的第一页的地址,并且返回一个文件描述符。文件描述符和文件的元数据信息相关,比如读/写指针,客户端通过文件描述符来读或者写文件的内容。由于服务器端缓存服务单元支持多个云服务应用同时运行,所以客户端分别包括多个不同的读/写指针。
当客户端获取一个文件,缓存没有命中的时候,服务器端缓存服务单 元将会从其他的服务器端缓存服务单元或者HDFS的本地快照中查找文件;当服务器端缓存服务单元加载文件内容到共享内存的时候,如果共享内存已经没有足够的页来分配,服务器端缓存服务单元会使用LRU算法去移除元数据信息图中最近一段时间没有使用的缓存内容;在处理LRU算法的时候,移除的文件放在本地磁盘中,如果本地磁盘没有足够的空间,LRU算法同样应用于本地磁盘来移除本地磁盘上的最近一段时间没有使用的文件。
如图4所示,本发明的加载HDFS上文件到分布式缓存算法示意图。HDFS引入了副本来增强系统的健壮性,默认情况下,每个存储在HDFS上的文件都有三个副本,分别存储在不同的机器上,这样能够降低其中一个机器宕机带来的影响。本发明同样采用这种设计,每个缓存文件都有三个副本。
与HDFS单一的主节点设计相比,本发明采用DHT(Distributed Hash Table,分布式哈希表)的方案设计。DHT在P2P系统和云存储系统中广泛用到。图4描述的一种分布式存储调度策略,选用的是Ketama哈希函数,不仅仅是因为Ketama是一个开源的实现,更主要的是它能够平衡计算性能、命中率以及分散性。
图4所述的Cache_File算法是在当缓存服务接收到一个文件获取请求并且不能在分布式缓存系统中找到文件副本的时候被调用的。缓存服务能够计算文件的哈希值,并且找到另外两个主机节点,来存储文件到分布式缓存系统的三个节点中。
如图5演示的是一个一致性哈希均衡的方法,关于分布式缓存副本节点选择的过程。如图5中所示,当节点A缓存了文件1,其中的一个副本存储在节点A的本地缓存服务中,至于其他存储副本的节点选择如下:
1.第二个副本选择节点B,其中B为节点A在顺时针方向上的增值;
2.最后一个副本选择节点X,节点X为节点B的补节点的顺时针上的下一个节点,如果B存在的话。
当一个文件读取的请求到达缓存服务器上的缓存服务时,首先在分布式缓存上进行检索文件;
如果没有命中的话,如果本地磁盘存在,缓存服务将会加载本地磁盘快照,然后进行检索;
如果缓存服务处理程序依旧没有找到需要的文件,缓存服务将会行HDFS上加载文件,并且通知缓存服务来存储加载的文件。
本发明的分布式缓存系统是在HDFS上层的,不是修改HDFS内部的特性,本分布式缓存系统是独立于HDFS的,本分布式缓存系统的任何改变都不会改变下层的HDFS系统。
本发明的分布式缓存方法及系统通过对HDFS上的文件进行缓存,在进行文件读取的过程,直接读取缓存中的文件,这样就会极大的降低文件读取的时间,从而提高实时云服务的吞吐量和降低云服务的响应时间。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

分布式缓存方法及系统.pdf_第1页
第1页 / 共13页
分布式缓存方法及系统.pdf_第2页
第2页 / 共13页
分布式缓存方法及系统.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《分布式缓存方法及系统.pdf》由会员分享,可在线阅读,更多相关《分布式缓存方法及系统.pdf(13页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104052824A43申请公布日20140917CN104052824A21申请号201410317772822申请日20140704H04L29/0820060171申请人哈尔滨工业大学深圳研究生院地址518000广东省深圳市南山区西丽镇深圳大学城哈工大校区72发明人何震宇张高伟李鑫李义陈明明刘伟74专利代理机构深圳市科吉华烽知识产权事务所普通合伙44248代理人于标54发明名称分布式缓存方法及系统57摘要本发明提供了一种分布式缓存方法及系统,该分布式缓存方法包括HDFS数据获取步骤通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;共享内存管理步骤。

2、用于连接客户端动态缓存库和服务器端缓存服务单元;交互控制步骤用于完成同一个主机的交互工作,用于与ZOOKEEPER服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。本发明的有益效果是本发明的分布式缓存方法及系统通过对HDFS上的文件进行缓存,在进行文件读取的过程,直接读取缓存中的文件,这样就会极大的降低文件读取的时间,从而提高实时云服务的吞吐量和降低云服务的响应时间。51INTCL权利要求书2页说明书5页附图5页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书5页附图5页10申请公布号CN104052824ACN104052824A1/2页21一种分布式缓存方法,其。

3、特征在于,该分布式缓存方法包括客户端动态缓存库和多个服务器端缓存服务单元,该分布式缓存方法构建在HDFS之上,在服务器端缓存服务单元中包括执行如下步骤HDFS数据获取步骤通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;共享内存管理步骤用于连接客户端动态缓存库和服务器端缓存服务单元;在云服务应用端执行如下步骤交互控制步骤用于完成同一个主机的交互工作,用于与ZOOKEEPER服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。2根据权利要求1所述的分布式缓存方法,其特征在于该分布式缓存方法还包括运行在服务器端缓存服务单元上的序列号快照步骤,在所述序列号快照步骤中,用。

4、于周期性把元数据和所有的缓存文件写入本地操作系统的文件系统,形成一系列的快照。3根据权利要求1所述的分布式缓存方法,其特征在于在所述共享内存管理步骤中,通过HDFS数据获取步骤中获得的文件内容加载到分布式文件缓存当中,供客户端读取,提供一次写入、多次读取的模型。4根据权利要求3所述的分布式缓存方法,其特征在于在云服务应用端还包括执行客户端共享内存获取步骤,在所述客户端共享内存获取步骤中,通过与共享内存管理步骤的交互来读取所需文件内容。5根据权利要求2所述的分布式缓存方法,其特征在于在所述共享内存管理步骤中,共享内存被分成了从个固定的页,页是最小的内存分配单位,在每页的最后留下4位来存储同一个文。

5、件的下一页,所有的页是以链表的形式组织;当客户端获取一个文件,缓存没有命中的时候,服务器端缓存服务单元将会从其他的服务器端缓存服务单元或者HDFS的本地快照中查找文件;当服务器端缓存服务单元加载文件内容到共享内存的时候,如果共享内存已经没有足够的页来分配,服务器端缓存服务单元会使用LRU算法去移除元数据信息图中最近一段时间没有使用的缓存内容;在处理LRU算法的时候,移除的文件放在本地磁盘中,如果本地磁盘没有足够的空间,LRU算法同样应用于本地磁盘来移除本地磁盘上的最近一段时间没有使用的文件;每个缓存文件有多个副本。6一种分布式缓存系统,其特征在于,该分布式缓存系统包括客户端动态缓存库和多个服务。

6、器端缓存服务单元,该分布式缓存系统构建在HDFS之上,在服务器端缓存服务单元中包括HDFS数据获取模块通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;共享内存管理模块用于连接客户端动态缓存库和服务器端缓存服务单元;客户端动态缓存库中包括客户端交互控制模块用于完成同一个主机的交互工作,用于与ZOOKEEPER服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。7根据权利要求6所述的分布式缓存系统,其特征在于该分布式缓存系统还包括运行在服务器端缓存服务单元上的序列号快照模块,在所述序列号快照模块中,用于周期性把元数据和所有的缓存文件写入本地操作系统的文件系统,形成一。

7、系列的快照。权利要求书CN104052824A2/2页38根据权利要求6所述的分布式缓存系统,其特征在于在所述共享内存管理模块中,通过HDFS数据获取步骤中获得的文件内容加载到分布式文件缓存当中,供客户端读取,提供一次写入、多次读取的模型。9根据权利要求8所述的分布式缓存系统,其特征在于在客户端动态缓存库中还包括执行客户端共享内存获取模块,在所述客户端共享内存获取模块中,通过与共享内存管理模块的交互来读取所需文件内容。10根据权利要求7所述的分布式缓存系统,其特征在于在所述共享内存管理模块中,共享内存被分成了从个固定的页,页是最小的内存分配单位,在每页的最后留下4位来存储同一个文件的下一页,所。

8、有的页是以链表的形式组织;当客户端获取一个文件,缓存没有命中的时候,服务器端缓存服务单元将会从其他的服务器端缓存服务单元或者HDFS的本地快照中查找文件;当服务器端缓存服务单元加载文件内容到共享内存的时候,如果共享内存已经没有足够的页来分配,服务器端缓存服务单元会使用LRU算法去移除元数据信息图中最近一段时间没有使用的缓存内容;在处理LRU算法的时候,移除的文件放在本地磁盘中,如果本地磁盘没有足够的空间,LRU算法同样应用于本地磁盘来移除本地磁盘上的最近一段时间没有使用的文件;每个缓存文件有多个副本。权利要求书CN104052824A1/5页4分布式缓存方法及系统技术领域0001本发明涉及互联。

9、网数据缓存领域,尤其涉及分布式缓存方法及系统。背景技术0002互联网的飞速发展,带来了大数据时代,从而出现了各种各样的云计算服务,海量数据的存储和获取成为了一种重要的研究方向。其中,主要的方案就是文件存储在分布式文件系统中,在此过程中,对于需要实时处理的应用中,文件的获取性能就成了一个巨大的挑战。0003APACHEHADOOP是一个能够对大量数据进行分布式处理的开源软件框架。0004HADOOP的开源授权方式是APACHELICENSE20。0005HADOOP技术是分布式系统基础架构,主要包括MAP/REDUCE和HDFS,其中HDFS是一个高度容错性的系统,适合部署在廉价的机器上,HDF。

10、S能提供高吞吐量的数据访问,非常适合大规模数据的应用,常用来保存海量的文件,但是缺乏对实时应用的支持。在HDFS中,读取文件需要很多的节点连接交互的过程,这个过程会极大的增加文件读取的时间。发明内容0006为了解决现有技术中的问题,本发明提供了一种分布式缓存方法。0007本发明提供了一种分布式缓存方法,其特征在于,该分布式缓存方法包括客户端动态缓存库和多个服务器端缓存服务单元,该分布式缓存方法构建在HDFS之上,在服务器端缓存服务单元中包括执行如下步骤0008HDFS数据获取步骤通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;0009共享内存管理步骤用于连接客户端动态。

11、缓存库和服务器端缓存服务单元;0010在云服务应用端执行如下步骤0011交互控制步骤用于完成同一个主机的交互工作,用于与ZOOKEEPER服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。0012作为本发明的进一步改进,该分布式缓存方法还包括运行在服务器端缓存服务单元上的序列号快照步骤,在所述序列号快照步骤中,用于周期性把元数据和所有的缓存文件写入本地操作系统的文件系统,形成一系列的快照。0013作为本发明的进一步改进,在所述共享内存管理步骤中,通过HDFS数据获取步骤中获得的文件内容加载到分布式文件缓存当中,供客户端读取,提供一次写入、多次读取的模型。0014作为本发明的进一步改进,。

12、在云服务应用端还包括执行客户端共享内存获取步骤,在所述客户端共享内存获取步骤中,通过与共享内存管理步骤的交互来读取所需文件内容。0015作为本发明的进一步改进,在所述共享内存管理步骤中,共享内存被分成了从个说明书CN104052824A2/5页5固定的页,页是最小的内存分配单位,在每页的最后留下4位来存储同一个文件的下一页,所有的页是以链表的形式组织;当客户端获取一个文件,缓存没有命中的时候,服务器端缓存服务单元将会从其他的服务器端缓存服务单元或者HDFS的本地快照中查找文件;当服务器端缓存服务单元加载文件内容到共享内存的时候,如果共享内存已经没有足够的页来分配,服务器端缓存服务单元会使用LR。

13、U算法去移除元数据信息图中最近一段时间没有使用的缓存内容;在处理LRU算法的时候,移除的文件放在本地磁盘中,如果本地磁盘没有足够的空间,LRU算法同样应用于本地磁盘来移除本地磁盘上的最近一段时间没有使用的文件;每个缓存文件有多个副本。0016本发明还提供了一种分布式缓存系统,其特征在于,该分布式缓存系统包括客户端动态缓存库和多个服务器端缓存服务单元,该分布式缓存系统构建在HDFS之上,在服务器端缓存服务单元中包括0017HDFS数据获取模块通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;0018共享内存管理模块用于连接客户端动态缓存库和服务器端缓存服务单元;0019客。

14、户端动态缓存库中包括0020客户端交互控制模块用于完成同一个主机的交互工作,用于与ZOOKEEPER服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。0021作为本发明的进一步改进,该分布式缓存系统还包括运行在服务器端缓存服务单元上的序列号快照模块,在所述序列号快照模块中,用于周期性把元数据和所有的缓存文件写入本地操作系统的文件系统,形成一系列的快照。0022作为本发明的进一步改进,在所述共享内存管理模块中,通过HDFS数据获取步骤中获得的文件内容加载到分布式文件缓存当中,供客户端读取,提供一次写入、多次读取的模型。0023作为本发明的进一步改进,在客户端动态缓存库中还包括执行客户端共。

15、享内存获取模块,在所述客户端共享内存获取模块中,通过与共享内存管理模块的交互来读取所需文件内容。0024作为本发明的进一步改进,在所述共享内存管理模块中,共享内存被分成了从个固定的页,页是最小的内存分配单位,在每页的最后留下4位来存储同一个文件的下一页,所有的页是以链表的形式组织;当客户端获取一个文件,缓存没有命中的时候,服务器端缓存服务单元将会从其他的服务器端缓存服务单元或者HDFS的本地快照中查找文件;当服务器端缓存服务单元加载文件内容到共享内存的时候,如果共享内存已经没有足够的页来分配,服务器端缓存服务单元会使用LRU算法去移除元数据信息图中最近一段时间没有使用的缓存内容;在处理LRU算。

16、法的时候,移除的文件放在本地磁盘中,如果本地磁盘没有足够的空间,LRU算法同样应用于本地磁盘来移除本地磁盘上的最近一段时间没有使用的文件;每个缓存文件有多个副本。0025本发明的有益效果是本发明的分布式缓存方法及系统通过对HDFS上的文件进行缓存,在进行文件读取的过程,直接读取缓存中的文件,这样就会极大的降低文件读取的时间,从而提高实时云服务的吞吐量和降低云服务的响应时间。说明书CN104052824A3/5页6附图说明0026图1是本发明的逻辑原理图;0027图2是本发明的系统架构图;0028图3为本发明的共享内存管理模块示意图;0029图4是本发明的加载HDFS上的文件到分布式缓存算法示意。

17、图;0030图5是本发明的分布式缓存副本节点选择示意图。具体实施方式0031如图1所示,本发明公开了一种分布式缓存方法,该分布式缓存方法包括客户端动态缓存库和多个服务器端缓存服务单元,该分布式缓存方法构建在HDFS之上,在服务器端缓存服务单元中包括执行如下步骤0032HDFS数据获取步骤通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;0033共享内存管理步骤用于连接客户端动态缓存库和服务器端缓存服务单元;0034在云服务应用端执行如下步骤0035交互控制步骤用于完成同一个主机的交互工作,用于与ZOOKEEPER服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。。

18、0036该分布式缓存方法还包括运行在服务器端缓存服务单元上的序列号快照步骤,在所述序列号快照步骤中,用于周期性把元数据和所有的缓存文件写入本地操作系统的文件系统,形成一系列的快照。0037在所述共享内存管理步骤中,通过HDFS数据获取步骤中获得的文件内容加载到分布式文件缓存当中,供客户端读取,提供一次写入、多次读取的模型。0038在云服务应用端还包括执行客户端共享内存获取步骤,在所述客户端共享内存获取步骤中,通过与共享内存管理步骤的交互来读取所需文件内容。0039在所述共享内存管理步骤中,共享内存被分成了从个固定的页,页是最小的内存分配单位,在每页的最后留下4位来存储同一个文件的下一页,所有的。

19、页是以链表的形式组织;当客户端获取一个文件,缓存没有命中的时候,服务器端缓存服务单元将会从其他的服务器端缓存服务单元或者HDFS的本地快照中查找文件;当服务器端缓存服务单元加载文件内容到共享内存的时候,如果共享内存已经没有足够的页来分配,服务器端缓存服务单元会使用LRU算法去移除元数据信息图中最近一段时间没有使用的缓存内容;在处理LRU算法的时候,移除的文件放在本地磁盘中,如果本地磁盘没有足够的空间,LRU算法同样应用于本地磁盘来移除本地磁盘上的最近一段时间没有使用的文件;每个缓存文件有多个副本。0040如图1所示,本发明还公开了一种分布式缓存系统,构建在HDFS之上,包括一个分布式缓存集群,。

20、所用分布式缓存集群采用HADOOP,ZOOKEEPER,MEMCACHED作为基本架构;0041该分布式缓存系统为C/S架构,有一个客户端动态缓存库和多个服务器端缓存服务单元。0042在应用层之上提供一个客户端动态缓存库,该客户端动态缓存库包括两个主要的部分交互控制部分和共享内存获取部分。说明书CN104052824A4/5页70043如图2所示,在服务器端缓存服务单元中包括0044HDFS数据获取模块通过HDFS的API把HDFS上存储的文件内容读取出来加载到共享内存当中;0045共享内存管理模块用于连接客户端动态缓存库和服务器端缓存服务单元;在所述共享内存管理模块中,通过HDFS数据获取步。

21、骤中获得的文件内容加载到分布式文件缓存当中,此模块存储分布式缓存内容,供客户端读取,提供一次写入、多次读取的模型。0046客户端动态缓存库中包括0047客户端交互控制模块用于完成同一个主机的交互工作,用于与ZOOKEEPER服务器完成远程交互,用于计算想要获得的文件并且定位到缓存。例如,计算读取问价的哈希值并定位到特殊的缓存中。0048该分布式缓存系统还包括运行在服务器端缓存服务单元上的序列号快照模块,在所述序列号快照模块中,用于周期性把元数据和所有的缓存文件写入本地操作系统的文件系统,形成一系列的快照。当一个主机宕机之后,可以通过读取本地文件系统来重建分布式缓存的内容。0049在客户端动态缓。

22、存库中还包括执行客户端共享内存获取模块,在所述客户端共享内存获取模块中,通过与共享内存管理模块的交互来读取所需文件内容。0050HDFS数据获取模块、共享内存管理模块、序列号快照模块为服务器端运行的服务器进程,客户端交互控制模块、客户端共享内存获取模块是部署在云服务应用端的。0051本发明假设集群有5台普通PC机,如图3所示,本发明共享内存管理模块示意图,共享内存被分成了很多固定的页每页大概4KB能够被用户重置。在本分布式缓存系统中,页是最小的内存分配单位,在每页的最后,留下4位来存储同一个文件的下一页,所有的页是以链表的形式组织的。所有文件的第一页是存储在元数据信息图METAINFOMAP中。

23、的FIRSTP域中,云服务客户端库从缓存服务器上定位文件,然后从共享内存中直接获取文件内容。图3中的内存位图数据结构是内存管理部分用来申请和分配空闲内存页的。0052当一个云服务应用打开一个缓存文件的时候,客户端动态缓存库记录此文件的第一页的地址,并且返回一个文件描述符。文件描述符和文件的元数据信息相关,比如读/写指针,客户端通过文件描述符来读或者写文件的内容。由于服务器端缓存服务单元支持多个云服务应用同时运行,所以客户端分别包括多个不同的读/写指针。0053当客户端获取一个文件,缓存没有命中的时候,服务器端缓存服务单元将会从其他的服务器端缓存服务单元或者HDFS的本地快照中查找文件;当服务器。

24、端缓存服务单元加载文件内容到共享内存的时候,如果共享内存已经没有足够的页来分配,服务器端缓存服务单元会使用LRU算法去移除元数据信息图中最近一段时间没有使用的缓存内容;在处理LRU算法的时候,移除的文件放在本地磁盘中,如果本地磁盘没有足够的空间,LRU算法同样应用于本地磁盘来移除本地磁盘上的最近一段时间没有使用的文件。0054如图4所示,本发明的加载HDFS上文件到分布式缓存算法示意图。HDFS引入了副本来增强系统的健壮性,默认情况下,每个存储在HDFS上的文件都有三个副本,分别存储在不同的机器上,这样能够降低其中一个机器宕机带来的影响。本发明同样采用这种设计,每个缓存文件都有三个副本。005。

25、5与HDFS单一的主节点设计相比,本发明采用DHTDISTRIBUTEDHASHTABLE,分布说明书CN104052824A5/5页8式哈希表的方案设计。DHT在P2P系统和云存储系统中广泛用到。图4描述的一种分布式存储调度策略,选用的是KETAMA哈希函数,不仅仅是因为KETAMA是一个开源的实现,更主要的是它能够平衡计算性能、命中率以及分散性。0056图4所述的CACHE_FILE算法是在当缓存服务接收到一个文件获取请求并且不能在分布式缓存系统中找到文件副本的时候被调用的。缓存服务能够计算文件的哈希值,并且找到另外两个主机节点,来存储文件到分布式缓存系统的三个节点中。0057如图5演示的。

26、是一个一致性哈希均衡的方法,关于分布式缓存副本节点选择的过程。如图5中所示,当节点A缓存了文件1,其中的一个副本存储在节点A的本地缓存服务中,至于其他存储副本的节点选择如下00581第二个副本选择节点B,其中B为节点A在顺时针方向上的增值;00592最后一个副本选择节点X,节点X为节点B的补节点的顺时针上的下一个节点,如果B存在的话。0060当一个文件读取的请求到达缓存服务器上的缓存服务时,首先在分布式缓存上进行检索文件;0061如果没有命中的话,如果本地磁盘存在,缓存服务将会加载本地磁盘快照,然后进行检索;0062如果缓存服务处理程序依旧没有找到需要的文件,缓存服务将会行HDFS上加载文件,。

27、并且通知缓存服务来存储加载的文件。0063本发明的分布式缓存系统是在HDFS上层的,不是修改HDFS内部的特性,本分布式缓存系统是独立于HDFS的,本分布式缓存系统的任何改变都不会改变下层的HDFS系统。0064本发明的分布式缓存方法及系统通过对HDFS上的文件进行缓存,在进行文件读取的过程,直接读取缓存中的文件,这样就会极大的降低文件读取的时间,从而提高实时云服务的吞吐量和降低云服务的响应时间。0065以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。说明书CN104052824A1/5页9图1说明书附图CN104052824A2/5页10图2说明书附图CN104052824A103/5页11图3说明书附图CN104052824A114/5页12图4说明书附图CN104052824A125/5页13图5说明书附图CN104052824A13。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1