CN102724314A - 一种基于元数据管理的分布式缓存客户端 - Google Patents

一种基于元数据管理的分布式缓存客户端 Download PDF

Info

Publication number
CN102724314A
CN102724314A CN2012102052641A CN201210205264A CN102724314A CN 102724314 A CN102724314 A CN 102724314A CN 2012102052641 A CN2012102052641 A CN 2012102052641A CN 201210205264 A CN201210205264 A CN 201210205264A CN 102724314 A CN102724314 A CN 102724314A
Authority
CN
China
Prior art keywords
metadata
module
cache
cache node
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012102052641A
Other languages
English (en)
Other versions
CN102724314B (zh
Inventor
高正
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen travel Polytron Technologies Inc
Original Assignee
SHENZHEN VISPRACTICE TECHNOLOGY Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENZHEN VISPRACTICE TECHNOLOGY Corp filed Critical SHENZHEN VISPRACTICE TECHNOLOGY Corp
Priority to CN201210205264.1A priority Critical patent/CN102724314B/zh
Publication of CN102724314A publication Critical patent/CN102724314A/zh
Application granted granted Critical
Publication of CN102724314B publication Critical patent/CN102724314B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种基于元数据管理的分布式缓存客户端,包括:元数据管理模块、心跳服务模块、负载均衡模块,所述元数据管理模块,用于提供元数据支持,并对元数据进行管理;所述心跳服务模块,用于向缓存节点发送心跳消息,并记录存储其响应时间到元数据中;所述负载均衡模块,根据元数据中存储的缓存节点存储情况以及心跳服务模块提供的缓存节点响应时间,确定最优缓存节点,再从该最优缓存节点下载缓存数据。通过本发明提供一种基于元数据管理的分布式缓存实现方法及系统,可以解决在分布式缓存的环境中,当缓存节点数目有变化,或者某些缓存节点失效的情况下所引起的缓存重组、命中率大幅度降低,以及客户端不支持副本功能的问题。

Description

一种基于元数据管理的分布式缓存客户端
技术领域
本发明涉及一种计算机领域,特别是涉及一种基于元数据管理的分布式缓存客户端。
背景技术
分布式,是指在核心系统外部,通过一个集群方式实现的某项功能。Memcached是目前使用范围最广泛的一个分布式缓存实现。Memcached尽管是“分布式”的缓存服务器,但服务器端并没有分布式功能。各个Memcached节点间不会互相通信以共享信息,对分布式的支持完全取决于客户端的实现。
目前的Memcache客户端,一般通过资源池的方式实现分布式,资源调度算法主要有“余数计算法”和“一致哈希计算法”,采用“余数计算法”的客户端,在缓存服务器数目有变化时,会引发大面积的缓存重组,严重影响缓存命中率。而“一致哈希计算法”的复杂度高于“余数计算法”,在缓存服务器数目变化时,影响面积小于“余数计算法”,但也同样会产生缓存重组,降低缓存命中率。另外,目前的Memcache客户端实现均不支持副本功能。
所以,有必要提出一种新的技术,以解决在分布式缓存的环境中,当缓存节点(服务器)数目有变化,或者某些缓存节点失效的情况下,所引起的缓存重组、命中率大幅度降低,以及客户端实现均不支持副本功能的问题。
发明内容
本发明的目的在于提供一种基于元数据管理的分布式缓存客户端,采用元数据存储的方式实现Memcached客户端,可以解决在分布式缓存的环境中,当缓存节点数目有变化,或者某些缓存节点失效的情况下所引起的缓存重组、命中率大幅度降低,以及客户端不支持副本功能的问题。
为了解决以下技术问题,本发明提供一种基于元数据管理的分布式缓存客户端,包括:元数据管理模块、心跳服务模块、负载均衡模块,
所述元数据管理模块,用于提供元数据支持,并对元数据进行管理;
所述心跳服务模块,用于向缓存节点发送心跳消息,并记录存储其响应时间到元数据中;
所述负载均衡模块,根据元数据中存储的缓存节点存储情况以及心跳服务模块提供的缓存节点响应时间,确定最优缓存节点,再从该最优缓存节点下载缓存数据。
进一步地,所述心跳服务模块向缓存节点发送心跳消息,如果该缓存节点在多次心跳后均无响应,则认为该缓存节点失效,从缓存节点元数据中移除该缓存节点。
进一步地,所述缓存客户端还进一步包括:副本管理模块,用于在某个缓存节点存在大并发用户访问时,对其缓存数据建立副本。
进一步地,所述副本管理模块建立副本过程如下:将缓存数据从主节点,按照负载均衡算法计算出一系列副本节点,以异步形式将缓存数据从主节点复制到多个副本节点上,同时将副本的位置信息记录到元数据中。
进一步地,所述负载均衡模块包括:放置缓存子模块与下载缓存子模块,所述放置缓存子模块,用于从存储的元数据中确定出最优缓存节点;所述下载缓存子模块,用于从最优缓存节点的存储位置下载缓存数据。
进一步地,所述放置缓存子模块确定出最优缓存节点的方法是:当缓存数据没有副本时,根据元数据中存储的缓存节点存储情况以及响应时间,确定最优缓存节点;当缓存数据有副本时,用户的请求在缓存主体创建完成后即返回,再排除掉主体所在缓存节点,根据元数据中存储的缓存节点存储情况以及响应时间,逐一确定副本所在的最优缓存节点,副本数据的创建是以异步方式进行。
进一步地,所述缓存客户端还进一步包括:失效管理模块,用于在缓存数据失效时清理客户端的元数据。
进一步地,所述失效管理模块采用优先队列来记录所有缓存数据的失效时间信息,在失效时间到后,自动清理掉缓存数据。
与现有技术相比,本发明提供一种基于元数据管理的分布式缓存客户端,采用元数据存储的方式实现Memcached客户端,提供细粒度的调度算法,精确控制缓存数据的分布,并可对缓存服务器的状态进行监控。支持通过缓存服务器响应时间、剩余空间等多个参数计算缓存分布。此外,本发明采用缓存副本,副本在第一个缓存数据创建后,通过异步方式在多个节点间复制,多副本缓存可在用户并发访问时提供更高的性能,在缓存服务器数目有变化时,不会产生缓存重组现象,在缓存服务器集群中某些节点宕机时,用户可从副本节点获取缓存,不影响缓存命中率;在有用户并发访问的情况下,客户可将请求中转到多个副本服务器,减低单点并发所产生的IO瓶颈。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明提供一种基于元数据管理的分布式缓存实现系统的结构示意图。
图2是本发明提供一种基于元数据管理的分布式缓存客户端的结构示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明提供一种基于元数据管理的分布式缓存实现系统,包括:用户10、缓存客户端20、至少包含一个缓存节点30,其中,
缓存客户端20,位于用户10与缓存节点30之间,用于接收和中转用户10请求,并管理多个缓存节点30的元数据信息,实现分布式功能。
缓存节点30,用于存取数据,以Memcached来实现。
当用户10访问缓存节点30时,首先通过缓存客户端20获取实际缓存节点30的元数据信息,再根据元数据信息直接访问缓存节点30存取数据,实现控制流与数据流分离。
如图2所示,本发明提供一种基于元数据管理的分布式缓存客户端,所述缓存客户端位于用户与缓存节点之间,用于接收和中转用户请求,并管理多个缓存节点的元数据信息,实现分布式功能,包括:元数据管理模块21、心跳服务模块22、副本管理模块23、失效管理模块24、负载均衡模块25。
元数据管理模块21:用于提供元数据支持,对缓存元数据、副本元数据、缓存节点元数据进行管理。其中,
缓存元数据:包含缓存数据的key、大小、位置等信息。
副本元数据:包含缓存副本的主数据位置、副本分布位置等信息。
缓存节点元数据:包含缓存服务器的IP、存储空间、响应时间等信息。
心跳服务模块22:用于向缓存节点发送心跳消息,并记录存储其响应时间到缓存节点元数据中。如果某个缓存节点在多次心跳后均无响应,则认为此缓存节点失效,从缓存节点元数据中移除此缓存节点。
副本管理模块23:用于在某个缓存节点存在大并发用户访问时,对其缓存数据建立副本,平衡用户的并发请求。建立过程是:当缓存节点需要副本支持时,将缓存数据从主节点,按照负载均衡算法计算出一系列副本节点,并以异步形式将缓存数据从主节点复制到多个副本节点上,同时将副本的位置信息记录到缓存节点元数据中。这样,当某个缓存可能存在大并发的用户访问时,对其建立副本后,多个副本可平衡用户的并发请求,提高IO效率。
失效管理模块24:用于在缓存数据失效时同步清理客户端的元数据。缓存的一个特性就是“临时性”,用户在存放缓存数据时,需要确定其有效时间,有效时间过后,此缓存数据会被系统自动清理掉。失效管理模块采用一个优先队列来记录所有缓存数据的失效时间信息,并循环以下步骤来检测数据失效并清理:
1、根据缓存数据的失效时间,将其插入到优先队列的适当位置。可以按失效时间的升序或降序来排列。
2、检测队列头的元素的有效时间是否超时。
3、如果超时,则弹出队列头。
4、获取队列头的元素的有效时间与当前时间的差值,按此差值休眠检测线程。
负载均衡模块25:根据缓存节点元数据中存储的各个缓存节点的存储情况以及心跳服务模块提供的缓存节点响应时间,确定出一个最优缓存节点,再从该最优缓存节点下载缓存数据。此负载均衡模块包括:放置缓存子模块与下载缓存子模块。
放置缓存子模块:从存储的缓存节点元数据中确定出一个最优缓存节点;确定的具体方法是:当缓存数据没有副本时,根据缓存节点元数据中存储的各个缓存节点的存储情况以及响应时间,确定出一个最优缓存节点;当缓存数据有副本时,用户的请求在缓存主体创建完成后即返回,再排除掉主体所在缓存节点,根据元数据中存储的缓存节点存储情况以及响应时间,逐一确定副本所在的最优缓存节点,副本数据的创建是以异步方式进行。
下载缓存子模块:从确定的最优缓存节点的存储位置下载缓存数据。
本发明提供一种基于元数据管理的分布式缓存客户端,采用元数据存储的方式实现Memcached客户端,提供细粒度的调度算法,精确控制缓存数据的分布,并可对缓存服务器的状态进行监控。支持通过缓存服务器响应时间、剩余空间等多个参数计算缓存分布。此外,本发明采用缓存副本,副本在第一个缓存数据创建后,通过异步方式在多个节点间复制,多副本缓存可在用户并发访问时提供更高的性能,在缓存服务器数目有变化时,不会产生缓存重组现象,在缓存服务器集群中某些节点宕机时,用户可从副本节点获取缓存,不影响缓存命中率;在有用户并发访问的情况下,客户可将请求中转到多个副本服务器,减低单点并发所产生的IO瓶颈。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (8)

1.一种基于元数据管理的分布式缓存客户端,其特征在于,包括:元数据管理模块、心跳服务模块、负载均衡模块,
所述元数据管理模块,用于提供元数据支持,并对元数据进行管理;
所述心跳服务模块,用于向缓存节点发送心跳消息,并记录存储其响应时间到元数据中;
所述负载均衡模块,根据元数据中存储的缓存节点存储情况以及心跳服务模块提供的缓存节点响应时间,确定最优缓存节点,再从该最优缓存节点下载缓存数据。
2.如权利要求1所述的客户端,其特征在于,所述心跳服务模块向缓存节点发送心跳消息,如果该缓存节点在多次心跳后均无响应,则认为该缓存节点失效,从缓存节点元数据中移除该缓存节点。
3.如权利要求1所述的客户端,其特征在于,所述缓存客户端还进一步包括:副本管理模块,用于在某个缓存节点存在大并发用户访问时,对其缓存数据建立副本。
4.如权利要求3所述的客户端,其特征在于,所述副本管理模块建立副本过程如下:将缓存数据从主节点,按照负载均衡算法计算出一系列副本节点,以异步形式将缓存数据从主节点复制到多个副本节点上,同时将副本的位置信息记录到元数据中。
5.如权利要求1所述的客户端,其特征在于,所述负载均衡模块包括:放置缓存子模块与下载缓存子模块,
所述放置缓存子模块,用于从存储的元数据中确定出最优缓存节点;
所述下载缓存子模块,用于从最优缓存节点的存储位置下载缓存数据。
6.如权利要求5所述的客户端,其特征在于,所述放置缓存子模块确定出最优缓存节点的方法是:当缓存数据没有副本时,根据元数据中存储的缓存节点存储情况以及响应时间,确定最优缓存节点;当缓存数据有副本时,用户的请求在缓存主体创建完成后即返回,再排除掉主体所在缓存节点,根据元数据中存储的缓存节点存储情况以及响应时间,逐一确定副本所在的最优缓存节点。
7.如权利要求1所述的客户端,其特征在于,所述缓存客户端还进一步包括:失效管理模块,用于在缓存数据失效时清理客户端的元数据。
8.如权利要求7所述的客户端,其特征在于,所述失效管理模块采用优先队列来记录所有缓存数据的失效时间信息,在失效时间到后,自动清理掉缓存数据。 
CN201210205264.1A 2012-06-20 2012-06-20 一种基于元数据管理的分布式缓存客户端 Active CN102724314B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210205264.1A CN102724314B (zh) 2012-06-20 2012-06-20 一种基于元数据管理的分布式缓存客户端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210205264.1A CN102724314B (zh) 2012-06-20 2012-06-20 一种基于元数据管理的分布式缓存客户端

Publications (2)

Publication Number Publication Date
CN102724314A true CN102724314A (zh) 2012-10-10
CN102724314B CN102724314B (zh) 2015-08-05

Family

ID=46949974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210205264.1A Active CN102724314B (zh) 2012-06-20 2012-06-20 一种基于元数据管理的分布式缓存客户端

Country Status (1)

Country Link
CN (1) CN102724314B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243581A (zh) * 2014-09-15 2014-12-24 成都北纬航信网络科技有限责任公司 实现高内聚与低耦合的多级缓存方法及其系统
CN104239572A (zh) * 2014-09-30 2014-12-24 普元信息技术股份有限公司 基于分布式缓存实现元数据分析的系统及方法
CN105760556A (zh) * 2016-04-19 2016-07-13 江苏物联网研究发展中心 低延时高吞吐量的多副本文件读写优化方法
CN106095957A (zh) * 2016-06-16 2016-11-09 北京航空航天大学 分布式文件系统的跨域多副本文件同步方法及装置
CN106156176A (zh) * 2015-04-17 2016-11-23 腾讯科技(深圳)有限公司 一种数据清理方法及装置
CN107197012A (zh) * 2017-05-19 2017-09-22 焦点科技股份有限公司 一种基于元数据管理系统的服务发布及监管系统及方法
CN107562385A (zh) * 2017-09-13 2018-01-09 郑州云海信息技术有限公司 分布式存储客户端读取数据的方法、装置和设备
CN108810832A (zh) * 2018-04-20 2018-11-13 广州市玄武无线科技股份有限公司 短信下发方法、装置与计算机可读存储介质
CN112286950A (zh) * 2020-11-20 2021-01-29 四川长虹电器股份有限公司 一种分布式缓存中保持有效数据一致性的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562543A (zh) * 2009-05-25 2009-10-21 阿里巴巴集团控股有限公司 一种缓存数据的处理方法、处理系统和装置
CN102143215A (zh) * 2011-01-20 2011-08-03 中国人民解放军理工大学 一种基于网络的pb级云存储系统及其处理方法
CN102164309A (zh) * 2011-03-21 2011-08-24 华为技术有限公司 节目的处理方法和系统以及装置
WO2012027387A1 (en) * 2010-08-26 2012-03-01 Alibaba Group Holding Limited Method, system and server of removing a distributed caching object

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562543A (zh) * 2009-05-25 2009-10-21 阿里巴巴集团控股有限公司 一种缓存数据的处理方法、处理系统和装置
WO2012027387A1 (en) * 2010-08-26 2012-03-01 Alibaba Group Holding Limited Method, system and server of removing a distributed caching object
CN102143215A (zh) * 2011-01-20 2011-08-03 中国人民解放军理工大学 一种基于网络的pb级云存储系统及其处理方法
CN102164309A (zh) * 2011-03-21 2011-08-24 华为技术有限公司 节目的处理方法和系统以及装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243581A (zh) * 2014-09-15 2014-12-24 成都北纬航信网络科技有限责任公司 实现高内聚与低耦合的多级缓存方法及其系统
CN104243581B (zh) * 2014-09-15 2017-11-24 成都北纬航信网络科技有限责任公司 实现高内聚与低耦合的多级缓存方法及其系统
CN104239572A (zh) * 2014-09-30 2014-12-24 普元信息技术股份有限公司 基于分布式缓存实现元数据分析的系统及方法
CN106156176A (zh) * 2015-04-17 2016-11-23 腾讯科技(深圳)有限公司 一种数据清理方法及装置
CN105760556B (zh) * 2016-04-19 2019-05-24 江苏物联网研究发展中心 低延时高吞吐量的多副本文件读写优化方法
CN105760556A (zh) * 2016-04-19 2016-07-13 江苏物联网研究发展中心 低延时高吞吐量的多副本文件读写优化方法
CN106095957A (zh) * 2016-06-16 2016-11-09 北京航空航天大学 分布式文件系统的跨域多副本文件同步方法及装置
CN106095957B (zh) * 2016-06-16 2019-10-18 北京航空航天大学 分布式文件系统的跨域多副本文件同步方法及装置
CN107197012A (zh) * 2017-05-19 2017-09-22 焦点科技股份有限公司 一种基于元数据管理系统的服务发布及监管系统及方法
CN107562385A (zh) * 2017-09-13 2018-01-09 郑州云海信息技术有限公司 分布式存储客户端读取数据的方法、装置和设备
CN107562385B (zh) * 2017-09-13 2020-08-04 郑州云海信息技术有限公司 分布式存储客户端读取数据的方法、装置和设备
CN108810832A (zh) * 2018-04-20 2018-11-13 广州市玄武无线科技股份有限公司 短信下发方法、装置与计算机可读存储介质
CN108810832B (zh) * 2018-04-20 2020-08-18 广州市玄武无线科技股份有限公司 短信下发方法、装置与计算机可读存储介质
CN112286950A (zh) * 2020-11-20 2021-01-29 四川长虹电器股份有限公司 一种分布式缓存中保持有效数据一致性的方法

Also Published As

Publication number Publication date
CN102724314B (zh) 2015-08-05

Similar Documents

Publication Publication Date Title
CN102724314A (zh) 一种基于元数据管理的分布式缓存客户端
CN102710790A (zh) 一种基于元数据管理的分布式缓存实现方法及系统
CN105357296A (zh) 一种Docker云平台下弹性缓存系统
US20150127766A1 (en) Method and node entity for enhancing content delivery network
CN102833352A (zh) 分布式缓存管理系统和实现分布式缓存管理的方法
CN103095806B (zh) 一种面向大电网的实时数据库系统的负载均衡管理系统
CN104092719B (zh) 文件传输方法、装置及分布式集群文件系统
CN102137139A (zh) 缓存替换策略的选择方法、装置、代理服务器和系统
CN104469391B (zh) 一种基于云平台的数字电视内容分发系统及方法
US9832277B2 (en) Systems and methods for adaptive partitioning in distributed cache memories
CN103207841A (zh) 基于键值对缓存的数据读写方法及装置
CN101984632A (zh) 一种分布式缓存系统中负荷分配方法、装置及服务器
CN106790324A (zh) 内容分发方法、虚拟服务器管理方法、云平台和系统
CN102523256A (zh) 内容的管理方法的方法、装置和系统
CN105025053A (zh) 基于云存储技术的分布式文件的上传方法及其系统
CN101710902B (zh) 一种无结构p2p网络及其数据查询方法和索引更新方法
CN104050250A (zh) 一种分布式键-值查询方法和查询引擎系统
CN102591970A (zh) 一种分布式键-值查询方法和查询引擎系统
CN104050249A (zh) 分布式查询引擎系统和方法及元数据服务器
CN105554121A (zh) 实现分布式缓存系统负载均衡的方法及系统
CN105472002A (zh) 基于集群节点间即时拷贝的会话同步方法
WO2021004385A1 (zh) 服务单元切换方法、系统及设备
CN107135274A (zh) 一种分布式集群系统的存储管理方法及装置
CN102982182A (zh) 一种数据存储规划方法及装置
CN105207947A (zh) 一种过滤抖动的渐进式流量调度方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 518057 Guangdong city of Shenzhen province Nanshan District South Road seven No. 002 Shenzhen Digital Technology Park B1 building 6 floor A District No. 1

Applicant after: Shenzhen Vispractice Technology Corporation

Address before: 518057, Guangdong Province, Nanshan District hi tech Zone, North Road, Lang Lang, No. 13 Thunis building, C,, C302

Applicant before: Shenzhen Vispractice Technology Corporation

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 518057 Guangdong city of Shenzhen province Nanshan District South Road seven No. 002 Shenzhen Digital Technology Park B1 building 6 floor A District No. 1

Patentee after: Shenzhen travel Polytron Technologies Inc

Address before: 518057 Guangdong city of Shenzhen province Nanshan District South Road seven No. 002 Shenzhen Digital Technology Park B1 building 6 floor A District No. 1

Patentee before: Shenzhen Vispractice Technology Corporation