CN102710790B - 一种基于元数据管理的分布式缓存实现方法及系统 - Google Patents

一种基于元数据管理的分布式缓存实现方法及系统 Download PDF

Info

Publication number
CN102710790B
CN102710790B CN201210205262.2A CN201210205262A CN102710790B CN 102710790 B CN102710790 B CN 102710790B CN 201210205262 A CN201210205262 A CN 201210205262A CN 102710790 B CN102710790 B CN 102710790B
Authority
CN
China
Prior art keywords
cache
cache node
metadata
user
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.)
Active
Application number
CN201210205262.2A
Other languages
English (en)
Other versions
CN102710790A (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 CN201210205262.2A priority Critical patent/CN102710790B/zh
Publication of CN102710790A publication Critical patent/CN102710790A/zh
Application granted granted Critical
Publication of CN102710790B publication Critical patent/CN102710790B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种基于元数据管理的分布式缓存实现方法,包括:步骤1、用户通过缓存客户端获取实际缓存节点元数据信息;步骤2、用户根据缓存客户端返回的元数据信息直接访问缓存节点存取数据。本发明还提供一种基于元数据管理的分布式缓存实现系统。通过本发明提供一种基于元数据管理的分布式缓存实现方法及系统,可以解决在分布式缓存的环境中,当缓存节点数目有变化,或者某些缓存节点失效的情况下所引起的缓存重组、命中率大幅度降低的问题。

Description

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

Claims (4)

1.一种基于元数据管理的分布式缓存实现方法,其特征在于,包括:
步骤1、用户通过缓存客户端获取实际缓存节点元数据信息;具体包括:
步骤1.1、缓存客户端接收用户请求;
步骤1.2、缓存客户端根据用户请求,获取实际缓存节点元数据信息;具体包括:缓存客户端根据用户请求,从存储的元数据中确定出最优缓存节点作为用户的实际缓存节点;所述确定最优缓存节点的具体方法如下:
当缓存数据没有副本时,根据元数据中存储的缓存节点存储情况以及响应时间,确定最优缓存节点;
当缓存数据有副本时,用户的请求在缓存主体创建完成后即返回,再排除掉主体所在缓存节点,根据元数据中存储的缓存节点存储情况以及响应时间,逐一确定副本所在的最优缓存节点;
步骤1.3、缓存客户端将获取的缓存节点元数据信息返回给用户;
步骤2、用户根据缓存客户端返回的元数据信息直接访问缓存节点存取数据。
2.一种基于元数据管理的分布式缓存实现系统,其特征在于,包括:用户、缓存客户端、还至少包含一个缓存节点,
所述缓存客户端,位于用户与缓存节点之间,用于接收用户请求,以及管理缓存节点的元数据信息;所述缓存客户端包括:元数据管理模块、心跳服务模块、副本管理模块、负载均衡模块,所述元数据管理模块,用于提供元数据支持,并对元数据进行管理;所述心跳服务模块,用于向缓存节点发送心跳消息,并记录存储其响应时间到元数据中;所述缓存客户端还进一步包括:副本管理模块,用于在某个缓存节点存在大并发用户访问时,对其缓存数据建立副本;所述负载均衡模块,根据元数据中存储的缓存节点存储情况以及心跳服务模块提供的缓存节点响应时间,确定最优缓存节点,再从该最优缓存节点下载缓存数据,其中,所述负载均衡模块确定出最优缓存节点的方法是:当缓存数据没有副本时,根据元数据中存储的缓存节点存储情况以及响应时间,确定最优缓存节点;当缓存数据有副本时,用户的请求在缓存主体创建完成后即返 回,再排除掉主体所在缓存节点,根据元数据中存储的缓存节点存储情况以及响应时间,逐一确定副本所在的最优缓存节点;
所述缓存节点,用于存取数据;
用户访问缓存节点时,用户通过所述缓存客户端获取实际缓存节点元数据信息,根据元数据信息直接访问缓存节点存取数据。
3.如权利要求2所述的系统,其特征在于,所述副本管理模块建立副本过程如下:将缓存数据从主节点,按照负载均衡算法计算出一系列副本节点,以异步形式将缓存数据从主节点复制到多个副本节点上,同时将副本的位置信息记录到元数据中。
4.如权利要求2所述的系统,其特征在于,所述缓存客户端还进一步包括:失效管理模块,用于在缓存数据失效时清理客户端的元数据。
CN201210205262.2A 2012-06-20 2012-06-20 一种基于元数据管理的分布式缓存实现方法及系统 Active CN102710790B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210205262.2A CN102710790B (zh) 2012-06-20 2012-06-20 一种基于元数据管理的分布式缓存实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210205262.2A CN102710790B (zh) 2012-06-20 2012-06-20 一种基于元数据管理的分布式缓存实现方法及系统

Publications (2)

Publication Number Publication Date
CN102710790A CN102710790A (zh) 2012-10-03
CN102710790B true CN102710790B (zh) 2015-06-10

Family

ID=46903336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210205262.2A Active CN102710790B (zh) 2012-06-20 2012-06-20 一种基于元数据管理的分布式缓存实现方法及系统

Country Status (1)

Country Link
CN (1) CN102710790B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140047230A (ko) * 2012-10-10 2014-04-22 (주)티베로 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템
CN104683374B (zh) * 2013-11-28 2019-03-08 北京华云网际科技有限公司 一种分布式存储的缓存更新方法
CN104239572A (zh) * 2014-09-30 2014-12-24 普元信息技术股份有限公司 基于分布式缓存实现元数据分析的系统及方法
CN105389368A (zh) * 2015-11-16 2016-03-09 天津南大通用数据技术股份有限公司 一种mpp架构数据库集群元数据管理方法
CN108243203A (zh) * 2016-12-23 2018-07-03 航天星图科技(北京)有限公司 一种云系统中的数据共享方法
CN111796772B (zh) * 2020-07-07 2024-05-07 西北工业大学 缓存的管理方法、缓存节点及分布式存储系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117309A (zh) * 2010-01-06 2011-07-06 卓望数码技术(深圳)有限公司 一种数据缓存系统和数据查询方法
CN102143215A (zh) * 2011-01-20 2011-08-03 中国人民解放军理工大学 一种基于网络的pb级云存储系统及其处理方法
CN102164309A (zh) * 2011-03-21 2011-08-24 华为技术有限公司 节目的处理方法和系统以及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700842B2 (en) * 2010-04-12 2014-04-15 Sandisk Enterprise Ip Llc Minimizing write operations to a flash memory-based object store

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117309A (zh) * 2010-01-06 2011-07-06 卓望数码技术(深圳)有限公司 一种数据缓存系统和数据查询方法
CN102143215A (zh) * 2011-01-20 2011-08-03 中国人民解放军理工大学 一种基于网络的pb级云存储系统及其处理方法
CN102164309A (zh) * 2011-03-21 2011-08-24 华为技术有限公司 节目的处理方法和系统以及装置

Also Published As

Publication number Publication date
CN102710790A (zh) 2012-10-03

Similar Documents

Publication Publication Date Title
CN102724314B (zh) 一种基于元数据管理的分布式缓存客户端
CN102710790B (zh) 一种基于元数据管理的分布式缓存实现方法及系统
CN104935648B (zh) 一种高性价比的cdn系统及文件预推、分片缓存的方法
CN102523256B (zh) 内容的管理方法的方法、装置和系统
CN104092719B (zh) 文件传输方法、装置及分布式集群文件系统
CN103207841A (zh) 基于键值对缓存的数据读写方法及装置
CN103095806B (zh) 一种面向大电网的实时数据库系统的负载均衡管理系统
CN102833352A (zh) 分布式缓存管理系统和实现分布式缓存管理的方法
CN103905537A (zh) 分布式环境下管理工业实时数据存储的系统
CN104284201A (zh) 一种视频内容的处理方法和装置
CN103209223A (zh) 分布式应用会话信息共享方法、系统和应用服务器
CN105554121A (zh) 实现分布式缓存系统负载均衡的方法及系统
CN103378919B (zh) 一种fi消息的传输方法及装置
CN102137139A (zh) 缓存替换策略的选择方法、装置、代理服务器和系统
CN104050250A (zh) 一种分布式键-值查询方法和查询引擎系统
CN104679594B (zh) 一种中间件分布式计算方法
CN103227826A (zh) 一种文件传输方法及装置
CN103227754A (zh) 一种高可用集群系统负载动态均衡方法及节点设备
CN106713378B (zh) 实现多个应用服务器提供服务的方法和系统
CN102790784A (zh) 分布式缓存方法及系统、缓存解析方法及解析系统
CN103684645A (zh) 一种时隙碰撞的处理方法及装置
CN102946429A (zh) 一种基于云存储的高效资源动态调度方法
CN104539982A (zh) 一种视频点对点资源共享调度方法、系统及节点终端
CN107707662A (zh) 一种基于node的分布式缓存方法、装置及存储介质
CN109756573A (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 for 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

PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Memcached implementation method and system based on metadata management

Effective date of registration: 20170609

Granted publication date: 20150610

Pledgee: Shenzhen high tech investment and financing Company limited by guarantee

Pledgor: Shenzhen travel Polytron Technologies Inc

Registration number: 2017990000479

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20180702

Granted publication date: 20150610

Pledgee: Shenzhen high tech investment and financing Company limited by guarantee

Pledgor: Shenzhen travel Polytron Technologies Inc

Registration number: 2017990000479

PC01 Cancellation of the registration of the contract for pledge of patent right