[发明专利]一种分布式缓存池化、分片及故障转移的方法及系统有效

专利信息
申请号: 201210168554.3 申请日: 2012-05-29
公开(公告)号: CN102710763A 公开(公告)日: 2012-10-03
发明(设计)人: 徐高省 申请(专利权)人: 新华网股份有限公司
主分类号: H04L29/08 分类号: H04L29/08
代理公司: 暂无信息 代理人: 暂无信息
地址: 100162 北京市大*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 分布式 缓存 分片 故障 转移 方法 系统
【说明书】:

技术领域:

发明涉及一种分布式缓存池化、分片及故障转移的方法及系统,属于软件技术领域。 

背景技术:

随着互联网Web2.0网站的兴起。传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0动态网站已经显得力不从心,暴露了很多难以克服的问题。Web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒几万次读写请求。关系数据库应付每秒上万次SQL查询还勉强能够应付,但是应付每秒上万次SQL写数据请求,硬盘I/O就无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求,例如一些网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因而许多的公司采用了分布式缓存系统来解决这些问题。这些分布式缓存系统给公司带来了新的解决方案,同时也带来了新的挑战。 

很多缓存系统没有原生的可扩展机制,不具有自身可扩展能力,要依赖客户端来实现分布式读写。现实中绝大多数的客户端是通过一致性哈希算法来实现分布式读写的。一致性哈希算法(Consistent Hashing)最早在论文《Consistent Hashing and Random Trees:Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web》中被提出。简单来说,一致性哈希将整个哈希值空间组织成一个虚拟的圆环,如假设某哈希函数H的值空间为0-2^32-1(即哈希值是一个32位无符号整形),整个空间按顺时针方向组织。0和2^32-1在零点中方向重合。将各个服务器使用H进行一个哈希,具体可以选择服务器的ip或主机名作为关键字进行哈希,这样每台机器就能确定其在哈希环上的位置,当数据访问服务器时,将数据key使用相同的函数H计算出哈希值h,通根据h确定此数据在环上的位置,从此位置沿环顺时针“行走”,第一台遇到的服务器就是其应该定位到的服务器。但一致性哈希具有天生的缺陷。虽然比较传统的哈希取模的方式,一致性哈希已经将不命中的数据降到了最低,但是在一致性哈希算法中,如果增加一台服务器或者宕机重启时,在新服务器到其环空间中前一台服务器(即顺着逆时针方向行走遇到的第一台服务器)之间数据,还是会受到影响。缓存命不中的情况依然不可避免。 

在大型软件设计中,存在着一些宝贵的资源,如线程、数据库连接、网络连接等。这些 资源的使用在时间或空间上极大地影响着软件的使用效率,使得资源的可用性与客户端应用程序的性能和用户的满意程度直接相关。 

池化资源技术的基本思路是事先建立一定数量的对象并保存在内存中,当调用者申请对象时从池中取出一个空闲对象,使用后立即归还,供其它调用者重复使用,这样可以减少频繁创建、销毁对象所造成的开销。因为客户端应用程序不需要重复地建立和销毁对象,因而使用池化资源技术会显著提高连接性能。特别是对于占用资源比较严重的对象,如数据库连接或网络连接等。池化资源机制可以有效减少建立对象所需的时间。除了可以提高连接性能以外,使用池化资源技术还可以更有效地管理资源,池管理器可以根据需要动态调整池中的对象数量,使系统资源得到充分利用。通过对有限资源进行进一步的控制和管理,对象池可以使系统更容易扩展,当用户数量增加时只需要简单地增加池中的可用对象数量。为了提高分布式缓存网络连接的效率,现在一些实现池化的软件只是对通过一致性哈希实现分布式的共享对象进行池化,这种实现过于简单。因为共享对象包含所有的机器,当其中的一台机器宕机的时候,池中所有的共享对象的该机器都无法访问。池的销毁只是销毁共享对象,而不是从共享对象中移除该机器。所以当有一台机器无法访问时,造成了整个共享对象池无效。 

故障转移指当服务器或外部设备发生故障时,利用备份设备切换后继续进行处理的过程。多用于由多个服务器并行操作构成的集群型服务器中。现在的网络应用中,对于应用服务器,数据库等实现故障转移的方法及系统比较多。但是对于分布式缓存越来越高度依赖的今天,对于分布式缓存的故障转移的方法及系统却少有。一般的做法是,当一台机器宕机的时候,缓存中查不到,然后转到关系数据库中查询。然后在将查询的结果存入缓存中,当这台机器重启后,该机器的数据也都丢失了,在宕机时,本该存入该机器中的数据,存入了环中的下一台机器,所以重启后命中这台机器的数据还是访问不到,还需要从数据库中取值。这样不仅影响了命中率,还大大影响了应用程序的性能和用户使用的满意度。 

发明内容:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华网股份有限公司,未经新华网股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210168554.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top