CN110990483A - 分布式缓存中的缓存节点的数据访问和控制方法及系统 - Google Patents

分布式缓存中的缓存节点的数据访问和控制方法及系统 Download PDF

Info

Publication number
CN110990483A
CN110990483A CN201911175838.3A CN201911175838A CN110990483A CN 110990483 A CN110990483 A CN 110990483A CN 201911175838 A CN201911175838 A CN 201911175838A CN 110990483 A CN110990483 A CN 110990483A
Authority
CN
China
Prior art keywords
cache
node
data
accessed
distributed
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
CN201911175838.3A
Other languages
English (en)
Other versions
CN110990483B (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.)
Shanghai Lilith Technology Corp
Original Assignee
Shanghai Lilith 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 Shanghai Lilith Technology Corp filed Critical Shanghai Lilith Technology Corp
Priority to CN201911175838.3A priority Critical patent/CN110990483B/zh
Publication of CN110990483A publication Critical patent/CN110990483A/zh
Application granted granted Critical
Publication of CN110990483B publication Critical patent/CN110990483B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于分布式缓存中的缓存节点的数据访问方法、控制方法、分布式缓存系统、分布式缓存中的业务节点及分布式缓存中的中心控制节点,待访问数据以Erlang数据结构存储于缓存节点,缓存节点对应有虚拟节点,在访问待访问数据时,基于hash函数利用待访问数据的标识查找与待访问数据的标识相映射的虚拟节点,然后远程调用缓存节点并从缓存节点中本地查找以Erlang数据结构存储的待访问数据。如果缓存节点中存在该待访问数据,则从缓存节点中读取待访问数据,避免了直接从数据库中读取待访问数据,避免了对数据库IO造成巨大的压力。

Description

分布式缓存中的缓存节点的数据访问和控制方法及系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于分布式缓存中的缓存节点的数据访问方法、控制方法、分布式缓存系统、分布式缓存中的业务节点及分布式缓存中的中心控制节点。
背景技术
分布式集群通常包括多台通信连接的节点设备,分布式集群的分布式架构将大数据引擎尽可能的靠近存储,分布式集群功能实现了将单个任务进行碎片化,并将碎片任务发送到分布式集群的各个节点上,然后再以单个数据集的形式加载到数据库里。当前游戏服务器采用的是分布式集群架构,玩家每次进行数据访问时都通过访问数据库的形式进行数据访问,当玩家数量比较大且玩家频繁上下线时,每次的数据访问都会通过数据库,如此,会对数据库IO造成巨大的压力。
发明内容
本发明的目的在于解决现有技术中玩家每次的数据访问都通过数据库进行数据访问,对数据库IO造成巨大压力的问题。因此,本发明提供一种用于分布式缓存中的缓存节点的数据访问方法、控制方法、分布式缓存系统、分布式缓存中的业务节点及分布式缓存中的中心控制节点,玩家每次的数据访问并不完全依赖于数据库进行数据访问,避免了对数据库IO造成巨大的压力。
为解决上述问题,本发明的实施方式公开了一种用于分布式缓存中的缓存节点的数据访问方法,所述分布式缓存包括中心控制节点、缓存节点和业务节点,所述访问方法应用于所述业务节点,所述访问方法包括:
基于hash函数利用待访问数据的标识查找与所述待访问数据的标识相映射的虚拟节点对应的缓存节点;
基于所述虚拟节点和缓存节点的映射关系,远程调用所述缓存节点,并从所述缓存节点中本地查找以Erlang数据结构存储的所述待访问数据;
判断所述缓存节点中是否存在所述待访问数据;
若所述缓存节点中存在所述待访问数据,则从所述缓存节点中读取所述待访问数据;
若所述缓存节点中不存在所述待访问数据,则从数据库中读取所述待访问数据。
可选的,在所述从所述缓存节点中读取所述待访问数据之后,还包括:
更新所述缓存节点的访问时间。
可选的,在所述基于hash函数利用待访问数据的标识查找与所述待访问数据的标识相映射的虚拟节点对应的缓存节点之后,所述用于分布式缓存中的缓存节点中数据的访问方法还包括对所述待访问数据进行更新,所述对所述待访问数据进行更新包括:
远程调用所述缓存节点,并对所述待访问数据的标识进行加锁
判断加锁是否成功;
若加锁成功,则查看所述缓存节点的与所述待访问数据的标识对应的版本号;
判断与所述待访问数据的标识对应的版本号与所述待访问数据的标识的当前版本号是否一致;
若与所述待访问数据的标识对应的版本号与所述待访问数据的标识的当前版本号一致,则对与所述当前版本号对应的数据对所述待访问数据和访问时间进行更新并对更新后的所述待访问数据的标识进行解锁后返回;
若与所述待访问数据的标识对应的版本号与所述待访问数据的当前版本号不一致,则获取与所述待访问数据的标识对应的版本号并更新所述当前版本号的字段,并重新进入所述远程调用所述缓存节点,并对所述待访问数据的标识进行加锁的步骤。
本发明的实施方式公开了一种用于分布式缓存中的缓存节点的控制方法,所述分布式缓存包括中心控制节点、缓存节点和业务节点,所述控制方法应用于所述中心控制节点,所述中心控制节点启动并初始化后,所述控制方法包括:
采集目标缓存节点发出的注册请求;
判断所述目标缓存节点是否为首个注册节点;
若是,则初始化所有的虚拟节点并在初始化后选取一个虚拟节点分配至所述目标缓存节点;
若否,则从已经注册的缓存节点对应的虚拟节点中选取一个虚拟节点分配至所述目标缓存节点;
监控所述目标缓存节点,并更新为所述目标缓存节点分配的虚拟节点中的数据;
将所述数据广播至所述业务节点并更新完成所述目标缓存节点的注册并用于存储数据供业务节点访问所述目标缓存节点中的数据。
可选的,所述控制方法还包括:
判断所述目标缓存节点是否故障;
若是,则迁移所述目标缓存节点的数据至另一个空闲的缓存节点。
本发明的实施方式公开了一种分布式缓存系统,包括:中心控制节点、缓存节点和业务节点,所述中心控制节点和所述业务节点分别与所述缓存节点相关联;
所述中心控制节点用于采集所述缓存节点的注册请求,所述中心控制节点具有第一存储部和第一处理部,所述第一存储部存储有控制程序,所述第一处理部执行所述控制程序时实现如以上所述的用于分布式缓存中的缓存节点的控制方法;
所述业务节点具有第二存储部和第二处理部,所述第二存储部存储有访问程序,所述第二处理部执行所述访问程序时实现如以上任意一种所述的用于分布式缓存中的缓存节点中数据的访问方法;
所述缓存节点用于经所述中心控制节点的控制进行注册并存储数据,供所述业务节点访问所述存储数据。
可选的,所述缓存节点还用于定时清除缓存数据;
所述定时清除缓存数据包括:
在触发缓存数据清除时间窗后,计算物理内存的物理空闲率并更新与其对应的Erlang虚拟节点的虚拟内存空闲率;
判断所述虚拟内存空闲率是否小于释放阈值;
若所述虚拟内存空闲率小于所述释放阈值,则释放第一预设值的缓存。
若所述虚拟内存空闲率未小于所述释放阈值,则判断所述虚拟内存空闲率是否大于其运行时的虚拟内存空闲率的第一阈值;
若所述虚拟内存空闲率大于所述第一阈值,则无需释放缓存内存并结束;
若所述虚拟内存未大于所述第一阈值,则判断所述物理空闲率是否小于回收阈值;
若所述物理空闲率未小于所述回收阈值,则无需释放缓存内存并结束;
若所述物理空闲率小于所述回收阈值,则判断所述物理空闲率是否为首次超出所述回收阈值;
若所述物理空闲率为首次超出所述回收阈值,则记录所述物理空闲率并将所述物理空闲率作为最大物理空闲率;
若所述物理空闲率为非首次超出所述回收阈值,则从历史物理空闲率和所述物理空闲率中选取最大物理空闲率并记录与所述最大物理空闲率对应的最大释放缓存数量;
判断其是否为第一次释放缓存内存;
若第一次释放缓存内存,则以所述最大释放缓存数量与第一预设百分比的乘积为释放量进行缓存内存释放;
若非第一次释放缓存,则判断所述分布式缓存系统中的所有的缓存节点的数量是否超过第二预设值;
若超过所述第二预设值,则以所述最大释放缓存数量与第二预设百分比的乘积为释放量进行缓存内存释放;
若未超过所述第二预设值,则判断所述Erlang虚拟节点的当前虚拟内存空闲率相比于上一相邻时间段内的虚拟内存空闲率是否下降;
若下降,则无需释放缓存内存并结束;
若上升,则判断所述分布式缓存系统中的所有的缓存节点的数量是否超过第二预设值的一半;
若超过,则以所述最大释放缓存内存与所述第二预设百分比的乘积为释放量进行缓存内存释放;
若未超过,则无需释放缓存内存并结束。
进一步地,本发明的实施方式公开了一种分布式缓存中的业务节点,包括:
存储器,所述存储器中存储有访问程序;
处理器,所述处理器执行所述访问程序时,使得所述处理器执行如以上所述的用于分布式缓存中的缓存节点的数据访问方法。
进一步地,本发明的实施方式公开了一种分布式缓存中的中心控制节点,包括:
存储器,所述存储器中存储有控制程序;
处理器,所述处理器执行所述控制程序时,使得所述处理器执行如以上任意一种所述的用于分布式缓存中的缓存节点的控制方法。
本发明实施例公开了一种用于分布式缓存中的缓存节点的数据访问方法、控制方法、分布式缓存系统、分布式缓存中的业务节点及分布式缓存中的中心控制节点,,待访问数据以Erlang数据结构存储于缓存节点,缓存节点对应有虚拟节点,在访问待访问数据时,基于hash函数利用待访问数据的标识查找与待访问数据的标识相映射的虚拟节点,然后远程调用缓存节点并从缓存节点中本地查找以Erlang数据结构存储的待访问数据。如果缓存节点中存在该待访问数据,则从缓存节点中读取待访问数据,避免了直接从数据库中读取待访问数据,避免了对数据库IO造成巨大的压力。
本发明其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本发明说明书中的记载变的显而易见。
附图说明
图1为本发明实施例公开的一种分布式缓存系统的结构示意图;
图2(a)为本发明实施例公开的第一种用于分布式缓存中的缓存节点的数据访问方法的流程示意图;
图2(b)为本发明实施例公开的第二种用于分布式缓存中的缓存节点的数据访问方法的流程示意图;
图2(c)为本发明实施例公开的第三种用于分布式缓存中的缓存节点的数据访问方法的流程示意图;
图3为本发明实施例公开的一种用于分布式缓存中的缓存节点的控制方法的流程示意图;
图4为本发明实施例公开的一种分布式缓存中的业务节点的结构示意图;
图5为本发明实施例公开的一种分布式缓存中的中心控制节点的结构示意图;
图6为本发明实施例公开的一种分布式缓存系统中的缓存节点清理缓存的方法流程示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点及功效。虽然本发明的描述将结合较佳实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本发明的权利要求而有可能延伸出的其它选择或改造。为了提供对本发明的深度了解,以下描述中将包含许多具体的细节。本发明也可以不使用这些细节实施。此外,为了避免混乱或模糊本发明的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
分布式集群通常包括多台通信连接的节点设备,分布式集群的分布式架构将大数据引擎尽可能的靠近存储,分布式集群功能实现了将单个任务进行碎片化,并将碎片任务发送到分布式集群的各个节点上,然后再以单个数据集的形式加载到数据库里。当前游戏服务器采用的是分布式集群架构,玩家每次进行数据访问时都通过访问数据库的形式进行数据访问,当玩家数量比较大且玩家频繁上下线时,每次的数据访问都会通过数据库,如此,会对数据库IO造成巨大的压力。
此外,目前的分布式缓存架构是基于C语言实现的,基于C语言实现的分布式缓存架构并不适用于存储游戏内的需要特殊序列化和反序列化的数据结构。
为了解决以上技术问题,本发明实施例公开了一种用于分布式缓存中的缓存节点的数据访问方法、控制方法、分布式缓存系统、分布式缓存中的业务节点及分布式缓存中的中心控制节点,玩家每次的数据访问并不完全依赖于数据库进行数据访问,避免了对数据库IO造成巨大的压力。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
下面结合图1,图2(a)、图2(b)、图2(c)、图3、图4、图5和图6对本发明实施例公开的一种用于分布式缓存中的缓存节点的数据访问方法、控制方法、分布式缓存系统、分布式缓存中的业务节点及分布式缓存中的中心控制节点进行说明,图1为本发明实施例公开的一种分布式缓存系统的结构示意图,图2(a)为本发明实施例公开的第一种用于分布式缓存中的缓存节点的数据访问方法的流程示意图,图2(b)为本发明实施例公开的第二种用于分布式缓存中的缓存节点的数据访问方法的流程示意图,图2(c)为本发明实施例公开的第三种用于分布式缓存中的缓存节点的数据访问方法的流程示意图,图3为本发明实施例公开的一种用于分布式缓存中的缓存节点的控制方法的流程示意图,图4为本发明实施例公开的一种分布式缓存中的业务节点的结构示意图,图5为本发明实施例公开的一种分布式缓存中的中心控制节点的结构示意图,图6为本发明实施例公开的一种分布式缓存系统中的缓存节点清理缓存的方法流程示意图。
首先对于本发明实施例公开的一种分布式缓存系统进行说明,图1为本发明实施例公开的一种分布式缓存系统的结构示意图,分布式缓存系统1包括:中心控制节点10,缓存节点20和业务节点30,中心控制节点10和业务节点30分别与缓存节点20相关联。
中心控制节点10用于采集缓存节点20的注册请求,中心控制节点10具有第一存储部和第一处理部,第一存储部存储有控制程序,第一处理部执行控制程序时实现以下实施例图3所提到的用于分布式缓存中的缓存节点的控制方法。
业务节点30具有第二存储部和第二处理部,第二存储部存储有访问程序,第二处理部执行访问程序时实现如图2(a)、图2(b)和图2(c)所示的用于分布式缓存中的缓存节点的访问方法。
缓存节点20用于经中心控制节点10的控制进行注册并存储数据,供业务节点30访问存储数据。
对于业务节点30而言,如图4所示的,本发明实施例提供的一种分布式缓存中的业务节点包括:存储器300,存储器300中存储有访问程序,处理器301,处理器301执行访问程序时,使得处理器301执行如图2(a)、图2(b)和图2(c)所示的用于分布式缓存中的缓存节点的数据访问方法。
业务节点30包括:电源302、至少一个有线网络接口或无线网络接口303、至少一个数据输入输出接口304。
电源302分别与存储器300和处理器301连接,用于供电。有线网络接口或无线网络接口303和数据输入输出接口304均用于对接外部设备用于进行数据通讯及传输。存储器300可以是短暂存储或持久存储。
对于中心控制节点10而言,如图5所示的,本发明实施例公开的一种分布式缓存中的中心控制节点包括:存储器100,存储器中存储有控制程序,处理器101,处理器101执行控制程序时,使得处理器101执行如图3所示的用于分布式缓存中的缓存节点的控制方法。
中心控制节点10包括:电源102、至少一个有线网络接口或无线网络接口103、至少一个数据输入输出接口104。
电源102分别与存储器100和处理器101连接,用于供电。有线网络接口或无线网络接口103和数据输入输出接口104均用于对接外部设备用于进行数据通讯及传输。存储器100可以是短暂存储或持久存储。
下面结合图2(a)对本发明实施例公开的第一种用于分布式缓存中的缓存节点的数据访问方法进行说明,分布式缓存包括中心控制节点10、缓存节点20和业务节点30,如图2(a)所示的访问方法应用于业务节点30,访问方法包括:
S20:基于hash函数利用待访问数据的标识查找与待访问数据的标识相映射的虚拟节点对应的缓存节点。
具体的,待访问数据的数据结构为key/value结构,对于每一个待访问数据而言,其都具有标识其的ID和索引,本发明实施例中的标识包括数据key(ID和索引)。
S21:基于虚拟节点和缓存节点的映射关系,远程调用缓存节点,并从缓存节点中本地查找以Erlang数据结构存储的待访问数据。
S22:判断缓存节点中是否存在待访问数据,若是,则进入S23,若否,则进入S24。
S23:从缓存节点中读取待访问数据。
S24:从数据库中读取待访问数据。
进一步,在从缓存节点中读取待访问数据后,为了便于对访问缓存节点的访问时间进行统计,如图2(b)所示的,在S23之后,还包括:
S25:更新缓存节点的访问时间。
进一步,对于分布式缓存中的缓存节点的数据访问还包括对数据的更新,为了便于对缓存节点中的数据进行更新,以及保证在更新数据时的数据的安全性,如图2(c)所示的,在S25之后,所述用于分布式缓存中的缓存节点中数据的访问方法还包括:
S26:远程调用缓存节点,并对待访问数据的标识进行加锁。
S27:判断加锁是否成功,若是,则进入S28,若失败,则等待重试。
S28:查看缓存节点的与待访问数据的标识对应的版本号。
具体的,版本号指的是数据版本号。
S29:判断与待访问数据的标识对应的版本号与待访问数据的标识的当前版本号是否一致,若一致,则进入S30,若不一致,则进入S31。
S30:对与当前版本号对应的数据对待访问数据和访问数据进行更新,并对更新后的待访问数据的标识进行解锁后返回。
S31:获取与待访问数据的标识对应的版本号并更新当前版本号的字段,并重新进入S26。
下面结合图3对本发明实施例公开的一种用于分布式缓存中的缓存节点的控制方法进行说明,分布式缓存包括中心控制节点10、缓存节点20和业务节点30,如图3所示的控制方法应用于中心控制节点10,中心控制节点10启动并初始化后,用于分布式缓存中的缓存节点的控制方法包括:
S30:采集目标缓存节点发出的注册请求。
S31:判断目标缓存节点是否为首个注册节点,若是,则进入S32,若否,则进入S33。
S32:初始化所有的虚拟节点并在初始化后选取一个虚拟节点分配至目标缓存节点。
S33:从已注册的缓存节点对应的虚拟节点中选取一个虚拟节点分配至目标缓存节点。
S34:监控目标缓存节点,并更新为目标缓存节点分配的虚拟节点中的数据。
S35:将数据广播至业务节点并更新完成目标缓存节点的注册并用于存储数据供业务节点访问目标缓存节点中的数据。
进一步,为了避免目标缓存节点故障后,导致数据进程中断,用于分布式缓存中的缓存节点的控制方法还包括:
判断目标缓存节点是否故障,若是,则迁移目标缓存节点的数据至另一个空闲的缓存节点。
对于缓存节点20而言,缓存节点20还用于定时清除缓存数据,如图6所示的,缓存节点20还用于定时清除缓存数据,定时清除缓存数据的流程包括:
S60:在触发缓存数据清除时间窗后,计算物理内存的物理空闲率并更新与其对应的Erlang虚拟节点的虚拟内存空闲率。
具体的,物理内存的物理空闲率可以根据物理内存的使用量进行确定。虚拟内存空闲率也可以根据虚拟内存的使用量进行确定。
S61:判断虚拟内存空闲率是否小于释放阈值,若是,则进入S62,若否,则进入S63。
释放阈值可以人为定义,如虚拟内存空闲率小于10%时,则释放缓存。
S62:释放第一预设值的缓存。
第一预设值为释放的缓存的数量,其值可以自定义设置,对于释放的缓存的数量具体为多少本发明实施例在此并不作限定。
S63:判断虚拟内存空闲率是否大于其运行时的虚拟内存空闲率的第一阈值,若是,则无需释放缓存内存并结束,若否,则进入S64。
S64:判断物理空闲率是否小于回收阈值,若是,则进入S65,若否,则无需释放缓存内存并结束。
S65:判断物理空闲率是否为首次超出回收阈值,若是,则进入S66,若否,则进入S67。
S66:记录物理空闲率并将物理空闲率作为最大物理空闲率。
S67:从历史物理空闲率和物理空闲率中选取最大物理空闲率并记录与最大物理空闲率对应的最大缓存数量。
S68:判断是否为第一次释放缓存内存,若是,则进入S69,若否,则进入S70。
S69:以最大释放缓存数量与第一预设百分比的乘积为释放量进行缓存内存释放。
S70:判断分布式缓存系统中的所有的缓存节点的数量是否超过第二预设值,若是,则进入S71,若否,则进入S72。
S71:以最大释放缓存数量与第二预设百分比的乘积为释放量进行缓存内存释放。
S72:判断Erlang虚拟节点的当前虚拟内存空闲率相比于上一相邻时间段内的虚拟内存空闲率是否下降,若下降,则无需释放缓存内存并结束,若上升,则进入S73。
S73:判断分布式缓存系统中的所有的缓存节点的数量是否超过第二预设值,若是,则进入S74,若否,则无需释放缓存内存并结束。
S74:以最大释放缓存内存与第二预设百分比的乘积为释放量进行缓存内存释放。
本发明实施例公开的一种用于分布式缓存中的缓存节点的数据访问方法、控制方法、分布式缓存系统、分布式缓存中的业务节点及分布式缓存中的中心控制节点,具有以下有益效果:
待访问数据以Erlang数据结构存储于缓存节点,缓存节点对应有虚拟节点,在访问待访问数据时,基于hash函数利用待访问数据的标识查找与待访问数据的标识相映射的虚拟节点,然后远程调用缓存节点并从缓存节点中本地查找以Erlang数据结构存储的待访问数据。如果缓存节点中存在该待访问数据,则从缓存节点中读取待访问数据,避免了直接从数据库中读取待访问数据,避免了对数据库IO造成巨大的压力。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (9)

1.一种用于分布式缓存中的缓存节点的数据访问方法,其特征在于,所述分布式缓存包括中心控制节点、缓存节点和业务节点,所述访问方法应用于所述业务节点,所述访问方法包括:
基于hash函数利用待访问数据的标识查找与所述待访问数据的标识相映射的虚拟节点对应的缓存节点;
基于所述虚拟节点和所述缓存节点的映射关系,远程调用所述缓存节点,并从所述缓存节点中本地查找以Erlang数据结构存储的所述待访问数据;
判断所述缓存节点中是否存在所述待访问数据;
若所述缓存节点中存在所述待访问数据,则从所述缓存节点中读取所述待访问数据;
若所述缓存节点中不存在所述待访问数据,则从数据库中读取所述待访问数据。
2.如权利要求1所述的用于分布式缓存中的缓存节点的数据访问方法,其特征在于,在所述从所述缓存节点中读取所述待访问数据之后,还包括:
更新所述缓存节点的访问时间。
3.如权利要求2所述的用于分布式缓存中的缓存节点的数据访问方法,其特征在于,在所述基于hash函数利用待访问数据的标识查找与所述待访问数据的标识相映射的虚拟节点对应的缓存节点之后,所述用于分布式缓存中的缓存节点中数据的访问方法还包括对所述待访问数据进行更新,所述对所述待访问数据进行更新包括:
远程调用所述缓存节点,并对所述待访问数据的标识进行加锁;
判断加锁是否成功;
若加锁成功,则查看所述缓存节点的与所述待访问数据的标识对应的版本号;
判断与所述待访问数据的标识对应的版本号与所述待访问数据的标识的当前版本号是否一致;
若与所述待访问数据的标识对应的版本号与所述待访问数据的标识的当前版本号一致,则对与所述当前版本号对应的数据对所述待访问数据和访问时间进行更新并对更新后的所述待访问数据的标识进行解锁后返回;
若与所述待访问数据的标识对应的版本号与所述待访问数据的当前版本号不一致,则获取与所述待访问数据的标识对应的版本号并更新所述当前版本号的字段,并重新进入所述远程调用所述缓存节点,并对所述待访问数据的标识进行加锁的步骤。
4.一种用于分布式缓存中的缓存节点的控制方法,其特征在于,所述分布式缓存包括中心控制节点、缓存节点和业务节点,所述控制方法应用于所述中心控制节点,所述中心控制节点启动并初始化后,所述控制方法包括:
采集目标缓存节点发出的注册请求;
判断所述目标缓存节点是否为首个注册节点;
若是,则初始化所有的虚拟节点并在初始化后选取一个虚拟节点分配至所述目标缓存节点;
若否,则从已经注册的缓存节点对应的虚拟节点中选取一个虚拟节点分配至所述目标缓存节点;
监控所述目标缓存节点,并更新为所述目标缓存节点分配的虚拟节点中的数据;
将所述数据广播至所述业务节点并更新完成所述目标缓存节点的注册并用于存储数据供业务节点访问所述目标缓存节点中的数据。
5.如权利要求4所述的用于分布式缓存中的缓存节点的控制方法,其特征在于,所述控制方法还包括:
判断所述目标缓存节点是否故障;
若是,则迁移所述目标缓存节点的数据至另一个空闲的缓存节点。
6.一种分布式缓存系统,其特征在于,包括:中心控制节点、缓存节点和业务节点,所述中心控制节点和所述业务节点分别与所述缓存节点相关联;
所述中心控制节点用于采集所述缓存节点的注册请求,所述中心控制节点具有第一存储部和第一处理部,所述第一存储部存储有控制程序,所述第一处理部执行所述控制程序时实现如权利要求4或5所述的用于分布式缓存中的缓存节点的控制方法;
所述业务节点具有第二存储部和第二处理部,所述第二存储部存储有访问程序,所述第二处理部执行所述访问程序时实现如权利要求1-3任意一项所述的用于分布式缓存中的缓存节点中数据的访问方法;
所述缓存节点用于经所述中心控制节点的控制进行注册并存储数据,供所述业务节点访问所述存储数据。
7.如权利要求6所述的分布式缓存系统,其特征在于,所述缓存节点还用于定时清除缓存数据;
所述定时清除缓存数据包括:
在触发缓存数据清除时间窗后,计算物理内存的物理空闲率并更新与其对应的Erlang虚拟节点的虚拟内存空闲率;
判断所述虚拟内存空闲率是否小于释放阈值;
若所述虚拟内存空闲率小于所述释放阈值,则释放第一预设值的缓存;
若所述虚拟内存空闲率未小于所述释放阈值,则判断所述虚拟内存空闲率是否大于其运行时的虚拟内存空闲率的第一阈值;
若所述虚拟内存空闲率大于所述第一阈值,则无需释放缓存内存并结束;
若所述虚拟内存未大于所述第一阈值,则判断所述物理空闲率是否小于回收阈值;
若所述物理空闲率未小于所述回收阈值,则无需释放缓存内存并结束;
若所述物理空闲率小于所述回收阈值,则判断所述物理空闲率是否为首次超出所述回收阈值;
若所述物理空闲率为首次超出所述回收阈值,则记录所述物理空闲率并将所述物理空闲率作为最大物理空闲率;
若所述物理空闲率为非首次超出所述回收阈值,则从历史物理空闲率和所述物理空闲率中选取最大物理空闲率并记录与所述最大物理空闲率对应的最大释放缓存数量;
判断其是否为第一次释放缓存内存;
若第一次释放缓存内存,则以所述最大释放缓存数量与第一预设百分比的乘积为释放量进行缓存内存释放;
若非第一次释放缓存,则判断所述分布式缓存系统中的所有的缓存节点的数量是否超过第二预设值;
若超过所述第二预设值,则以所述最大释放缓存数量与第二预设百分比的乘积为释放量进行缓存内存释放;
若未超过所述第二预设值,则判断所述Erlang虚拟节点的当前虚拟内存空闲率相比于上一相邻时间段内的虚拟内存空闲率是否下降;
若下降,则无需释放缓存内存并结束;
若上升,则判断所述分布式缓存系统中的所有的缓存节点的数量是否超过第二预设值的一半;
若超过,则以所述最大释放缓存内存与所述第二预设百分比的乘积为释放量进行缓存内存释放;
若未超过,则无需释放缓存内存并结束。
8.一种分布式缓存中的业务节点,其特征在于,包括:
存储器,所述存储器中存储有访问程序;
处理器,所述处理器执行所述访问程序时,使得所述处理器执行如权利要求4或5所述的用于分布式缓存中的缓存节点的数据访问方法。
9.一种分布式缓存中的中心控制节点,其特征在于,包括:
存储器,所述存储器中存储有控制程序;
处理器,所述处理器执行所述控制程序时,使得所述处理器执行如权利要求1-3任意一项所述的用于分布式缓存中的缓存节点的控制方法。
CN201911175838.3A 2019-11-26 2019-11-26 分布式缓存中的缓存节点的数据访问和控制方法及系统 Active CN110990483B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911175838.3A CN110990483B (zh) 2019-11-26 2019-11-26 分布式缓存中的缓存节点的数据访问和控制方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911175838.3A CN110990483B (zh) 2019-11-26 2019-11-26 分布式缓存中的缓存节点的数据访问和控制方法及系统

Publications (2)

Publication Number Publication Date
CN110990483A true CN110990483A (zh) 2020-04-10
CN110990483B CN110990483B (zh) 2023-05-30

Family

ID=70087150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911175838.3A Active CN110990483B (zh) 2019-11-26 2019-11-26 分布式缓存中的缓存节点的数据访问和控制方法及系统

Country Status (1)

Country Link
CN (1) CN110990483B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632029A (zh) * 2020-12-04 2021-04-09 杭州海康威视系统技术有限公司 分布式存储系统的数据管理方法、装置及设备
CN114390069A (zh) * 2022-01-30 2022-04-22 青岛海尔科技有限公司 基于分布式缓存的数据访问方法与系统、设备及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123198A (ja) * 2006-11-10 2008-05-29 Toshiba Corp キャッシュ一貫性保証機能を有するストレージクラスタシステム
US20090144404A1 (en) * 2007-12-04 2009-06-04 Microsoft Corporation Load management in a distributed system
US20120072526A1 (en) * 2009-06-03 2012-03-22 Kling Lars-Oerjan Method and node for distributing electronic content in a content distribution network
CN103034584A (zh) * 2012-12-05 2013-04-10 曙光信息产业(北京)有限公司 测试分布式锁的方法和装置
US20130232303A1 (en) * 2010-11-12 2013-09-05 Alibaba Group Holding Limited Method and Apparatus of Accessing Data of Virtual Machine
US9075809B1 (en) * 2007-09-29 2015-07-07 Symantec Corporation Methods and systems for application cluster virtual nodes
US20170054720A1 (en) * 2015-08-21 2017-02-23 International Business Machines Corporation Managing Data Storage in Distributed Virtual Environment
WO2018059032A1 (zh) * 2016-09-30 2018-04-05 华为技术有限公司 一种虚拟节点的数据迁移方法和虚拟节点
CN108810041A (zh) * 2017-04-27 2018-11-13 华为技术有限公司 一种分布式缓存系统的数据写入及扩容方法、装置
CN109359380A (zh) * 2018-10-16 2019-02-19 上海莉莉丝科技股份有限公司 缩放方法、装置、设备及介质
WO2019072103A1 (zh) * 2017-10-11 2019-04-18 阿里巴巴集团控股有限公司 目标数据的获取方法和装置
US10474545B1 (en) * 2017-10-31 2019-11-12 EMC IP Holding Company LLC Storage system with distributed input-output sequencing

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123198A (ja) * 2006-11-10 2008-05-29 Toshiba Corp キャッシュ一貫性保証機能を有するストレージクラスタシステム
US9075809B1 (en) * 2007-09-29 2015-07-07 Symantec Corporation Methods and systems for application cluster virtual nodes
US20090144404A1 (en) * 2007-12-04 2009-06-04 Microsoft Corporation Load management in a distributed system
US20120072526A1 (en) * 2009-06-03 2012-03-22 Kling Lars-Oerjan Method and node for distributing electronic content in a content distribution network
US20130232303A1 (en) * 2010-11-12 2013-09-05 Alibaba Group Holding Limited Method and Apparatus of Accessing Data of Virtual Machine
CN103034584A (zh) * 2012-12-05 2013-04-10 曙光信息产业(北京)有限公司 测试分布式锁的方法和装置
US20170054720A1 (en) * 2015-08-21 2017-02-23 International Business Machines Corporation Managing Data Storage in Distributed Virtual Environment
WO2018059032A1 (zh) * 2016-09-30 2018-04-05 华为技术有限公司 一种虚拟节点的数据迁移方法和虚拟节点
CN108810041A (zh) * 2017-04-27 2018-11-13 华为技术有限公司 一种分布式缓存系统的数据写入及扩容方法、装置
WO2019072103A1 (zh) * 2017-10-11 2019-04-18 阿里巴巴集团控股有限公司 目标数据的获取方法和装置
US10474545B1 (en) * 2017-10-31 2019-11-12 EMC IP Holding Company LLC Storage system with distributed input-output sequencing
CN109359380A (zh) * 2018-10-16 2019-02-19 上海莉莉丝科技股份有限公司 缩放方法、装置、设备及介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
段春梅;: "云计算分布式缓存技术在海量数据处理平台中的应用" *
黄世能,奚建清: "分布数据缓存体系" *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632029A (zh) * 2020-12-04 2021-04-09 杭州海康威视系统技术有限公司 分布式存储系统的数据管理方法、装置及设备
CN112632029B (zh) * 2020-12-04 2022-08-05 杭州海康威视系统技术有限公司 分布式存储系统的数据管理方法、装置及设备
CN114390069A (zh) * 2022-01-30 2022-04-22 青岛海尔科技有限公司 基于分布式缓存的数据访问方法与系统、设备及存储介质
CN114390069B (zh) * 2022-01-30 2024-03-22 青岛海尔科技有限公司 基于分布式缓存的数据访问方法与系统、设备及存储介质

Also Published As

Publication number Publication date
CN110990483B (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
CN111464355B (zh) Kubernetes容器集群的伸缩容控制方法、装置和网络设备
CN103716343B (zh) 基于数据缓存同步的分布式业务请求处理方法及系统
CN101090401B (zh) 一种群集环境下的数据缓存方法及系统
CN105068758B (zh) 面向并行数据采集的分布式文件系统数据i/o优化方法
CN108197181A (zh) 一种时序数据的压缩存储方法、电子设备及存储介质
CN110990483A (zh) 分布式缓存中的缓存节点的数据访问和控制方法及系统
CN103995755A (zh) 基于移动终端的服务器优化方法及服务器系统
CN102929224B (zh) 变电设备状态接入控制器及系统控制方法
CN106021468A (zh) 分布式缓存和本地缓存的更新方法和系统
CN103870393B (zh) 缓存管理方法及系统
CN107179878A (zh) 基于应用优化的数据存储的方法和装置
CN111400334B (zh) 数据处理方法、装置、存储介质及电子装置
CN105159845A (zh) 存储器读取方法
CN100530069C (zh) 一种非同质存储设备的虚拟化系统及方法
CN112711612A (zh) 数据处理方法、装置和存储介质及电子装置
US11615068B2 (en) Methods and systems of managing deletes in a database node of a NoSQL database
CN102236707A (zh) 获取数据库更新数据的方法、装置及系统
CN111930305A (zh) 数据的存储方法和装置、存储介质、电子装置
CN101344882B (zh) 数据查询方法、插入方法及删除方法
CN108763517A (zh) 一种删除元数据的方法以及相关设备
CN104158857B (zh) 一种提供网络化操作系统服务的装置和方法
WO2021258360A1 (zh) 一种车载数据存储方法及系统
CN106549983B (zh) 一种数据库的访问方法及终端、服务器
CN102780780B (zh) 云计算模式下的数据处理方法、设备和系统
CN111913977A (zh) 数据的处理方法、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant