CN112749004B - 基于节点访问热度的数据存储方法及装置 - Google Patents

基于节点访问热度的数据存储方法及装置 Download PDF

Info

Publication number
CN112749004B
CN112749004B CN201911047811.6A CN201911047811A CN112749004B CN 112749004 B CN112749004 B CN 112749004B CN 201911047811 A CN201911047811 A CN 201911047811A CN 112749004 B CN112749004 B CN 112749004B
Authority
CN
China
Prior art keywords
node
database
data
database node
access heat
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
CN201911047811.6A
Other languages
English (en)
Other versions
CN112749004A (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.)
China Mobile Communications Group Co Ltd
China Mobile Group Anhui Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Anhui Co Ltd
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 China Mobile Communications Group Co Ltd, China Mobile Group Anhui Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201911047811.6A priority Critical patent/CN112749004B/zh
Publication of CN112749004A publication Critical patent/CN112749004A/zh
Application granted granted Critical
Publication of CN112749004B publication Critical patent/CN112749004B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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
    • 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

Abstract

本发明公开了一种基于节点访问热度的数据存储方法及装置。方法包括:接收客户端发送的数据存储请求;针对分布式数据库集群中的任一数据库节点,实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息;针对任一数据库节点,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度;基于节点访问热度将待存储数据存储至对应的数据库节点。本发明提供的方案,将采集到操作系统负载信息及数据库节点负载信息作为计算数据库节点的节点访问热度的关键因子,能够准确地评估数据库节点的节点访问热度,从而为数据存储提供了存储依据,实现了分布式数据库集群中数据库节点负载均衡的效果,提升了资源利用率。

Description

基于节点访问热度的数据存储方法及装置
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于节点访问热度的数据存储方法及装置。
背景技术
随着运营商IT技术的不断演进和用户规模的日趋扩大,传统的集中式数据库存储已难以适应用户对系统响应速度的需求。为适应业务发展,分布式数据存储方案的应用越来越广泛。为充分利用分布式数据库集群所有数据库节点的处理能力,避免因少量数据库节点计算资源过度消耗导致的集群负载不均,现有技术提出了一些在数据存储时实现负载均衡方案,然而,现有技术方案没有很好的解决如何根据分布式数据库集群节点实时运行状态实现负载均衡的问题。原因如下:数据库节点的实时处理能力不仅受操作系统级性能指标的影响,还直接受制于数据库节点的性能状态,并且两级指标并不一定具备直接的相关性,现有技术方案中评估节点处理能力时仅选用其中一项指标,难以准确反映节点实时负载状态;或判断节点负载时选取的判断因子具有不确定性,导致评估准确度低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于节点访问热度的数据存储方法及装置。
根据本发明的一个方面,提供了一种基于节点访问热度的数据存储方法,包括:
接收客户端发送的数据存储请求;
针对分布式数据库集群中的任一数据库节点,实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息;
针对任一数据库节点,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度;
基于节点访问热度将待存储数据存储至对应的数据库节点。
根据本发明的另一方面,提供了一种基于节点访问热度的数据存储装置,包括:
接收模块,适于接收客户端发送的数据存储请求;
采集模块,适于针对分布式数据库集群中的任一数据库节点,实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息;
计算模块,适于针对任一数据库节点,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度;
存储模块,适于基于节点访问热度将待存储数据存储至对应的数据库节点。
根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行上述基于节点访问热度的数据存储方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述基于节点访问热度的数据存储方法对应的操作。
根据本发明提供的方案,接收客户端发送的数据存储请求;针对分布式数据库集群中的任一数据库节点,实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息;针对任一数据库节点,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度;基于节点访问热度将待存储数据存储至对应的数据库节点。本发明提供的方案,将采集到的数据库节点所在的操作系统负载信息及数据库节点负载信息作为计算数据库节点的节点访问热度的关键因子,能够准确地评估数据库节点的节点访问热度,从而为数据存储提供了存储依据,实现了分布式数据库集群中数据库节点负载均衡的效果,提升了资源利用率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的基于节点访问热度的数据存储方法的流程示意图;
图2A示出了根据本发明另一个实施例的基于节点访问热度的数据存储方法的流程示意图;
图2B为预先构建的位置圆环的示意图;
图3示出了根据本发明一个实施例的基于节点访问热度的数据存储装置的结构示意图;
图4示出了根据本发明一个实施例的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的基于节点访问热度的数据存储方法的流程示意图。如图1所示,该方法包括以下步骤:
步骤S101,接收客户端发送的数据存储请求。
具体地,客户端存在数据存储需求时发送数据存储请求,其中,数据存储请求中携带有待存储数据,接收客户端发送的数据存储请求。
步骤S102,针对分布式数据库集群中的任一数据库节点,实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息。
分布式数据库集群中存在多个数据库节点,针对分布式数据库集群中的任一数据库节点,需要监控数据库节点的当前运行状态,例如,以预设频率采集数据库节点所在的操作系统负载信息及数据库节点负载信息,其中,数据库节点所在的操作系统负载信息包含:CPU使用率(cpu_usage)、内存使用率(mem_usage)、磁盘使用率(disk_usage)等;数据库节点负载信息包含:连接数使用率(DBlink_usage,当前连接数/节点配置的最大连接数)等,这里仅是举例说明,不具有任何限定作用。本步骤通过实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息,能够保证在存在数据存储需求时,能够及时的将待存储数据存储至数据库节点,避免了在接收到数据存储请求后,再采集数据库节点所在的操作系统负载信息及数据库节点负载信息而导致数据不能及时存储的问题。
步骤S103,针对任一数据库节点,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度。
针对任一数据库节点,在采集到数据库节点所在的操作系统负载信息及数据库节点负载信息之后,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度,例如,可以按照如下公式1计算节点访问热度:
其中,c1,c2,c3,c4为权重,可根据分布式数据库集群实际情况设定,例如,可以设定c1=0.5,c2=1.0,c3=0.5,c4=1.0,这里仅是举例说明,不具有任何限定作用。在计算得到各数据库节点的节点访问热度后,将计算结果存储在表1所示的节点访问热度表中。其中,节点访问热度将作为后续存储数据的依据。
表1:
node_id access_freq
数据库节点ID 节点访问热度
步骤S104,基于节点访问热度将待存储数据存储至对应的数据库节点。
在本步骤中,在计算得到各数据库节点的节点访问热度后,可以基于节点访问热度将待存储数据存储至对应的数据库节点,例如,可以依据节点访问热度对数据库节点进行排序,将待存储数据存储至节点访问热度最小的数据库节点中,或者,筛选节点访问热度小于预设访问热度阈值的数据库节点,将待存储数据存储至所筛选出的任一数据库节点中,这里仅是举例说明,不具有任何限定作用。
根据本发明上述实施例提供的方法,接收客户端发送的数据存储请求;针对分布式数据库集群中的任一数据库节点,实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息;针对任一数据库节点,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度;基于节点访问热度将待存储数据存储至对应的数据库节点。本发明提供的方案,将采集到的数据库节点所在的操作系统负载信息及数据库节点负载信息作为计算数据库节点的节点访问热度的关键因子,能够准确地评估数据库节点的节点访问热度,从而为数据存储提供了存储依据,实现了分布式数据库集群中数据库节点负载均衡的效果,提升了资源利用率。
图2A示出了根据本发明另一个实施例的基于节点访问热度的数据存储方法的流程示意图。如图2A所示,该方法包括以下步骤:
步骤S201,接收客户端发送的数据存储请求。
具体地,客户端存在数据存储需求时发送数据存储请求,其中,数据存储请求中携带有待存储数据,接收客户端发送的数据存储请求。
步骤S202,针对分布式数据库集群中的任一数据库节点,实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息。
分布式数据库集群中存在多个数据库节点,针对分布式数据库集群中的任一数据库节点,需要监控数据库节点的当前运行状态,例如,以预设频率采集数据库节点所在的操作系统负载信息及数据库节点负载信息,其中,数据库节点所在的操作系统负载信息包含:CPU使用率(cpu_usage)、内存使用率(mem_usage)、磁盘使用率(disk_usage)等;数据库节点负载信息包含:连接数使用率(DBlink_usage,当前连接数/节点配置的最大连接数)等,这里仅是举例说明,不具有任何限定作用。本步骤通过实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息,能够保证在存在数据存储需求时,能够及时的将待存储数据存储至数据库节点,避免了在接收到数据存储请求后,再采集数据库节点所在的操作系统负载信息及数据库节点负载信息而导致数据不能及时存储的问题。
步骤S203,针对任一数据库节点,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度。
针对任一数据库节点,在采集到数据库节点所在的操作系统负载信息及数据库节点负载信息之后,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度,例如,可以按照如下公式1计算节点访问热度:
其中,c1,c2,c3,c4为权重,可根据分布式数据库集群实际情况设定,例如,可以设定c1=0.5,c2=1.0,c3=0.5,c4=1.0,这里仅是举例说明,不具有任何限定作用。在计算得到各数据库节点的节点访问热度后,将计算结果存储在表1所示的节点访问热度表中。其中,节点访问热度将作为后续存储数据的依据。
表1:
node_id access_freq
数据库节点ID 节点访问热度
步骤S204,根据数据库节点信息计算数据库节点位置并将数据库节点位置映射到预先构建的位置圆环上。
在本实施例中预先构建位置圆环,例如,构建如图2B所示的首尾相连的位置圆环,该位置圆环共包括210个位置(210远大于集群中数据节点的数量),位置编号依次为0~(210-1)。
在构建完成位置圆环后,就需要计算数据库节点在位置圆环中的位置,具体地,可以根据数据库节点信息计算数据库节点位置,例如,以数据库节点端口号及数据库节点对应服务器IP地址两个属性构成的连接串为因子,按照公式2计算数据库节点位置:
数据节点位置=hash(服务器IP地址+数据节点端口号)%210 公式2
在计算得到数据库节点位置后,将数据库节点位置映射到预先构建的位置圆环上,本实施例基于位置圆环来定义数据库节点的位置,在集群扩容或节点宕机场景中,只会出现少量相邻节点的数据迁移,避免了全集群数据重分布,提升了业务连续性。
步骤S205,根据待存储数据的数据主键计算待存储数据在位置圆环的初始位置。
针对待存储数据,以待存储数据的数据主键(key值)为因子,按照公式3计算该待存储数据在位置圆环的初始位置Linial,其中,数据主键唯一标识待存储数据:
Linial=hash(key值)%210 公式3
其中,步骤S205与步骤S204采用了一致性哈希算法,从而能够通过计算待存储数据在位置圆环中的初始位置,来确定要将待存储数据存储至哪个数据库节点。
在本实施中是利用步骤S206-步骤S211中的方法来确定将待存储数据存储至哪个数据库节点的:
步骤S206,根据初始位置,以预设查找方向在位置圆环中查找与初始位置相邻的数据库节点位置,并将查找到的数据库节点位置作为待存储数据的预占节点位置。
在本实施例中待存储数据要存储到数据库节点中,位置圆环的一部分位置对应是数据库节点位置,另一部分位置则没有对应数据库节点位置,因此,在这里需要查找数据库节点位置,具体地,以初始位置Linial为起点,以预设查找方向在位置圆环中查找与初始位置相邻的数据库节点位置,例如,在位置圆环中顺时针扫描,获取首个数据库节点位置,即该待存储数据的预占节点位置。其中,预占节点位置指初步确定的待存储数据被存储的数据库节点的位置。
步骤S207,判断预占节点位置对应的数据库节点的节点访问热度是否小于预设访问热度阈值,若是,则执行步骤S208;若否,则执行步骤S209。
虽然在步骤S206中确定了预占节点位置,但是待存储数据是否被存储至预占节点位置对应的数据库节点,还需要参考该数据库节点的节点访问热度,具体地,查询节点访问热度表(表1)确定该数据库节点的节点访问热度,判断预占节点位置对应的数据库节点的节点访问热度是否小于预设访问热度阈值,其中,预设访问热度阈值是根据实际需要而设定的,若预占节点位置对应的数据库节点的节点访问热度小于预设访问热度阈值,表明预占节点位置对应的数据库节点的负载还未达到极限,该数据库节点可以用来存储待存储数据;若预占节点位置对应的数据库节点的节点访问热度大于或等于预设访问热度阈值,表明预占节点位置对应的数据库节点的负载已达到极限,该数据库节点是否用来存储待存储数据还需要做后续进一步的判断。
步骤S208,将待存储数据存储至预占节点位置对应的数据库节点。
若预占节点位置对应的数据库节点的节点访问热度小于预设访问热度阈值,则可以确定该预占节点位置即为该待存储数据的实际节点位置,其中,实际节点位置表示实际存储待存储数据的数据库节点位置,将待存储数据存储至预占节点位置(实际节点位置)对应的数据库节点。
步骤S209,判断位于以预占节点位置为起点且初始位置为终点的位置圆环中的数据库节点位置所对应的数据库节点中是否存在至少一个数据库节点的节点访问热度小于预设访问热度阈值;若是,则执行步骤S210;若否,则执行步骤S211。
若预占节点位置对应的数据库节点的节点访问热度大于或等于预设访问热度阈值,表明预占节点位置对应的数据库节点的负载已达到极限,为了实现负载均衡,避免进一步增加该数据库节点的负载负担,需要判断位于以预占节点位置为起点且初始位置为终点的位置圆环中的数据库节点位置所对应的数据库节点中是否存在至少一个数据库节点的节点访问热度小于预设访问热度阈值,具体地,确定位于以预占节点位置为起点且初始位置为终点的位置圆环中的数据库节点位置所对应的数据库节点,查询节点访问热度表(表1)确定各数据库节点的节点访问热度,将各数据库节点的节点访问热度与预设访问热度阈值进行比较,从而确定是否存在至少一个数据库节点的节点访问热度小于预设访问热度阈值。
步骤S210,将以预设查找方向在位置圆环中查找到的首个节点访问热度小于预设访问热度阈值的数据库节点对应的数据库节点位置作为待存储数据的实际节点位置,将待存储数据存储至实际节点位置对应的数据库节点,并更新错位表。
若存在至少一个数据库节点的节点访问热度小于预设访问热度阈值,则以预设查找方向(例如,顺时针方向)在位置圆环中查找首个节点访问热度小于预设访问热度阈值的数据库节点对应的数据库节点位置,将该数据库节点的位置作为待存储数据的实际节点位置,将待存储数据存储至实际节点位置对应的数据库节点,并更新错位表,如表2所示。
表2:
key real_pos pre_pos offset
数据的key值 实际节点位置 预占节点位置 与预占节点位置的偏移量
步骤S211,将待存储数据存储至预占节点位置对应的数据库节点,并发送扩容提醒信息。
若位于以预占节点位置为起点且初始位置为终点的位置圆环中的数据库节点位置所对应的数据库节点的节点访问热度均大于预设访问热度阈值,表示分布式数据库集群中的数据库节点处理能力已达极限,则仍将将待存储数据存储至预占节点位置对应的数据库节点,此时不再更新错位表,记录日志并调用短信端口向管理端发送扩容提醒信息。
步骤S212,对节点访问热度大于或等于预设访问热度阈值的数据库节点进行监测。
在本实施例中,节点访问热度会随着数据库节点的数据库节点所在的操作系统负载信息及数据库节点负载信息的变化而变化,为了能够实现负载均衡,并限制集群错位数据总量和错位表规模,控制数据库操作复杂度,保证集群效率,需要对节点访问热度大于或等于预设访问热度阈值的数据库节点进行监测,主要是监测这些数据库节点的节点访问热度。
步骤S213,若至少一个数据库节点的节点访问热度下降,且节点访问热度小于预设访问热度阈值,则将错位表中记录的错位数据由实际节点位置对应的数据库节点回迁至节点访问热度小于预设访问热度阈值的预占节点位置对应的数据库节点,并更新错位表。
若至少一个数据库节点的节点访问热度下降,且节点访问热度小于预设访问热度阈值,表明至少一个数据库节点的负载降低,可以发起数据迁移指令,例如,将错位表中预占节点位置为对应负载降低的数据库节点的错位数据由实际节点位置回迁至预占节点位置,并在数据回迁成功后更新错位表,例如,删除对应的记录。
上述数据迁移操作仅是预占节点位置对应的数据库节点空闲(无客户端访问)时实施。如在数据迁移指令超时时间内数据库节点一直处于忙碌状态,则终止迁移操作,调用短信接口向管理端发送回迁失败信息,由管理端根据回迁失败信息选择停机窗口手动回迁。
步骤S214,接收客户端发送的携带有数据主键的数据查询请求,根据数据主键查询错位表。
当客户端存在数据查询需求时,可以发送携带有数据主键的数据查询请求,接收客户端发送的携带有数据主键的数据查询请求,根据数据主键查询错位表。
步骤S215,若在错位表中查询到与数据主键对应的实际节点位置,则将实际节点位置对应的数据库节点信息反馈给客户端,以供客户端根据数据库节点信息到相应的数据库节点查询数据。
若在错位表中查询到与数据主键对应的实际节点位置,则直接将错位表中实际节点位置对应的数据库节点信息反馈给客户端,以供客户端根据数据库节点信息到相应的数据库节点查询数据。
步骤S216,若在错位表中未查询到与数据主键对应的实际节点位置,则根据数据主键计算待查询数据在位置圆环的初始位置;根据初始位置,以预设查找方向在位置圆环中查找与初始位置相邻的数据库节点位置,并将查找到的数据库节点位置作为待查询数据的预占节点位置;将预占节点位置对应的数据库节点信息反馈给客户端,以供客户端根据数据库节点信息到相应的数据库节点查询数据。
若在错位表中未查询到与数据主键对应的实际节点位置,则说明该待查询数据的存储位置未错位,则根据数据主键计算待查询数据在位置圆环的初始位置;根据初始位置,以预设查找方向在位置圆环中查找与初始位置相邻的数据库节点位置,并将查找到的数据库节点位置作为待查询数据的预占节点位置;将预占节点位置对应的数据库节点信息反馈给客户端,以供客户端根据数据库节点信息到相应的数据库节点查询数据。上述实现过程与步骤S205及步骤S206实现类似,这里不再赘述。
在本发明一种可选实施方式中,客户端可以对已存储的数据进行更新,具体地,接收客户端发送的携带有数据主键的数据更新请求,根据数据主键查询错位表;若在错位表中查询到与数据主键对应的实际节点位置,则将实际节点位置对应的数据库节点信息反馈给客户端,以供客户端根据数据库节点信息更新相应的数据库节点中的数据;若在错位表中未查询到与数据主键对应的实际节点位置,则根据数据主键计算待更新数据在位置圆环的初始位置;根据初始位置,以预设查找方向在位置圆环中查找与初始位置相邻的数据库节点位置,并将查找到的数据库节点位置作为待更新数据的预占节点位置;将预占节点位置对应的数据库节点信息反馈给客户端,以供客户端根据数据库节点信息更新相应的数据库节点中的数据。其中,数据更新过程与数据查询过程类似,这里不再赘述。
根据本发明上述实施例提供的方法,将采集到的数据库节点所在的操作系统负载信息及数据库节点负载信息作为计算数据库节点的节点访问热度的关键因子,能够准确地评估数据库节点的节点访问热度,从而为数据存储提供了存储依据,实现了分布式数据库集群中数据库节点负载均衡的效果,提升了资源利用率;基于位置圆环来定义数据库节点的位置,在集群扩容或节点宕机场景中,只会出现少量相邻节点的数据迁移,避免了全集群数据重分布,提升了业务连续性;通过数据回迁处理,不仅能够实现负载均衡,而且还限制集群错位数据总量和错位表规模,控制数据库操作复杂度,保证了集群效率。
图3示出了根据本发明一个实施例的基于节点访问热度的数据存储装置的结构示意图。如图3所示,该装置包括:接收模块301、采集模块302、计算模块303、存储模块304。
接收模块301,适于接收客户端发送的数据存储请求;
采集模块302,适于针对分布式数据库集群中的任一数据库节点,实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息;
计算模块303,适于针对任一数据库节点,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度;
存储模块304,适于基于节点访问热度将待存储数据存储至对应的数据库节点。
可选地,存储模块进一步适于:根据数据库节点信息计算数据库节点位置并将数据库节点位置映射到预先构建的位置圆环上;
根据待存储数据的数据主键计算待存储数据在位置圆环的初始位置;
根据初始位置,以预设查找方向在位置圆环中查找与初始位置相邻的数据库节点位置,并将查找到的数据库节点位置作为待存储数据的预占节点位置;
判断预占节点位置对应的数据库节点的节点访问热度是否小于预设访问热度阈值;
若是,则将待存储数据存储至预占节点位置对应的数据库节点。
可选地,存储模块进一步适于:若预占节点位置对应的数据库节点的节点访问热度大于或等于预设访问热度阈值,则根据预占节点位置,以预设查找方向在位置圆环中查找首个节点访问热度小于预设访问热度阈值的数据库节点对应的数据库节点位置,并将查找到的数据库节点位置作为待存储数据的实际节点位置;
将待存储数据存储至实际节点位置对应的数据库节点,并更新错位表。
可选地,存储模块进一步适于:若所有数据库节点的节点访问热度均大于或等于预设访问热度阈值,则将待存储数据存储至预占节点位置对应的数据库节点,并发送扩容提醒信息。
可选地,装置还包括:监测模块,适于对节点访问热度大于或等于预设访问热度阈值的数据库节点进行监测;
错位数据回迁模块,适于若至少一个数据库节点的节点访问热度下降,且节点访问热度小于预设访问热度阈值,则将错位表中记录的错位数据由实际节点位置对应的数据库节点回迁至节点访问热度小于预设访问热度阈值的预占节点位置对应的数据库节点,并更新错位表。
可选地,装置还包括:第一查询模块,适于接收客户端发送的携带有数据主键的数据查询请求,根据数据主键查询错位表;
第一反馈模块,适于若在错位表中查询到与数据主键对应的实际节点位置,则将实际节点位置对应的数据库节点信息反馈给客户端,以供客户端根据数据库节点信息到相应的数据库节点查询数据;以及
若在错位表中未查询到与数据主键对应的实际节点位置,则根据数据主键计算待查询数据在位置圆环的初始位置;根据初始位置,以预设查找方向在位置圆环中查找与初始位置相邻的数据库节点位置,并将查找到的数据库节点位置作为待查询数据的预占节点位置;将预占节点位置对应的数据库节点信息反馈给客户端,以供客户端根据数据库节点信息到相应的数据库节点查询数据。
可选地,装置还包括:第二查询模块,适于接收客户端发送的携带有数据主键的数据更新请求,根据数据主键查询错位表;
第二反馈模块,适于若在错位表中查询到与数据主键对应的实际节点位置,则将实际节点位置对应的数据库节点信息反馈给客户端,以供客户端根据数据库节点信息更新相应的数据库节点中的数据;以及
若在错位表中未查询到与数据主键对应的实际节点位置,则根据数据主键计算待更新数据在位置圆环的初始位置;根据初始位置,以预设查找方向在位置圆环中查找与初始位置相邻的数据库节点位置,并将查找到的数据库节点位置作为待更新数据的预占节点位置;将预占节点位置对应的数据库节点信息反馈给客户端,以供客户端根据数据库节点信息更新相应的数据库节点中的数据。
根据本发明上述实施例提供的装置,接收客户端发送的数据存储请求;针对分布式数据库集群中的任一数据库节点,实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息;针对任一数据库节点,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度;基于节点访问热度将待存储数据存储至对应的数据库节点。本发明提供的方案,将采集到的数据库节点所在的操作系统负载信息及数据库节点负载信息作为计算数据库节点的节点访问热度的关键因子,能够准确地评估数据库节点的节点访问热度,从而为数据存储提供了存储依据,实现了分布式数据库集群中数据库节点负载均衡的效果,提升了资源利用率。
本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于节点访问热度的数据存储方法。
图4示出了根据本发明一个实施例的计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图4所示,该计算设备可以包括:处理器(processor)、通信接口(Communications Interface)、存储器(memory)、以及通信总线。
其中:处理器、通信接口、以及存储器通过通信总线完成相互间的通信。
通信接,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器,用于执行程序,具体可以执行上述基于节点访问热度的数据存储方法实施例中的相关步骤。
具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。
处理器可能是中央处理器CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器,用于存放程序。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序具体可以用于使得处理器执行上述任意方法实施例中的基于节点访问热度的数据存储方法。程序中各步骤的具体实现可以参见上述基于节点访问热度的数据存储实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于节点访问热度的数据存储设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (7)

1.一种基于节点访问热度的数据存储方法,包括:
接收客户端发送的数据存储请求;
针对分布式数据库集群中的任一数据库节点,实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息;
针对任一数据库节点,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度,其中,按照如下公式1计算节点访问热度:
其中,c1,c2,c3,c4为权重,cpu_usage为CPU使用率,mem_usage为内存使用率,disk_usage为磁盘使用率,DBlink_usage为连接数使用率;
基于节点访问热度将待存储数据存储至对应的数据库节点;
其中,所述基于节点访问热度将待存储数据存储至对应的数据库节点进一步包括:
根据数据库节点信息计算数据库节点位置并将所述数据库节点位置映射到预先构建的位置圆环上;
根据所述待存储数据的数据主键计算待存储数据在所述位置圆环的初始位置;
根据所述初始位置,以预设查找方向在所述位置圆环中查找与所述初始位置相邻的数据库节点位置,并将查找到的数据库节点位置作为所述待存储数据的预占节点位置;
判断所述预占节点位置对应的数据库节点的节点访问热度是否小于预设访问热度阈值;
若是,则将待存储数据存储至所述预占节点位置对应的数据库节点;
若预占节点位置对应的数据库节点的节点访问热度大于或等于预设访问热度阈值,则根据所述预占节点位置,以预设查找方向在所述位置圆环中查找首个节点访问热度小于预设访问热度阈值的数据库节点对应的数据库节点位置,并将查找到的数据库节点位置作为所述待存储数据的实际节点位置;
将待存储数据存储至所述实际节点位置对应的数据库节点,并更新错位表,其中,错位表包含:数据的key值、实际节点位置、预占节点位置、与预占节点位置的偏移量;
若所有数据库节点的节点访问热度均大于或等于预设访问热度阈值,则将待存储数据存储至所述预占节点位置对应的数据库节点,并发送扩容提醒信息。
2.根据权利要求1所述的方法,其中,所述方法还包括:
对节点访问热度大于或等于预设访问热度阈值的数据库节点进行监测;
若至少一个数据库节点的节点访问热度下降,且节点访问热度小于预设访问热度阈值,则将错位表中记录的错位数据由实际节点位置对应的数据库节点回迁至节点访问热度小于预设访问热度阈值的预占节点位置对应的数据库节点,并更新错位表。
3.根据权利要求1所述的方法,其中,所述方法还包括:接收客户端发送的携带有数据主键的数据查询请求,根据所述数据主键查询错位表;
若在错位表中查询到与数据主键对应的实际节点位置,则将实际节点位置对应的数据库节点信息反馈给客户端,以供客户端根据所述数据库节点信息到相应的数据库节点查询数据;
若在错位表中未查询到与数据主键对应的实际节点位置,则根据所述数据主键计算待查询数据在所述位置圆环的初始位置;根据所述初始位置,以预设查找方向在所述位置圆环中查找与所述初始位置相邻的数据库节点位置,并将查找到的数据库节点位置作为所述待查询数据的预占节点位置;将预占节点位置对应的数据库节点信息反馈给客户端,以供客户端根据所述数据库节点信息到相应的数据库节点查询数据。
4.根据权利要求1所述的方法,其中,所述方法还包括:接收客户端发送的携带有数据主键的数据更新请求,根据所述数据主键查询错位表;
若在错位表中查询到与数据主键对应的实际节点位置,则将实际节点位置对应的数据库节点信息反馈给客户端,以供客户端根据所述数据库节点信息更新相应的数据库节点中的数据;
若在错位表中未查询到与数据主键对应的实际节点位置,则根据所述数据主键计算待更新数据在所述位置圆环的初始位置;根据所述初始位置,以预设查找方向在所述位置圆环中查找与所述初始位置相邻的数据库节点位置,并将查找到的数据库节点位置作为所述待更新数据的预占节点位置;将预占节点位置对应的数据库节点信息反馈给客户端,以供客户端根据所述数据库节点信息更新相应的数据库节点中的数据。
5.一种基于节点访问热度的数据存储装置,包括:
接收模块,适于接收客户端发送的数据存储请求;
采集模块,适于针对分布式数据库集群中的任一数据库节点,实时采集数据库节点所在的操作系统负载信息及数据库节点负载信息;
计算模块,适于针对任一数据库节点,根据数据库节点所在的操作系统负载信息及数据库节点负载信息计算数据库节点的节点访问热度,其中,按照如下公式1计算节点访问热度:
其中,c1,c2,c3,c4为权重,cpu_usage为CPU使用率,mem_usage为内存使用率,disk_usage为磁盘使用率,DBlink_usage为连接数使用率;
存储模块,适于基于节点访问热度将待存储数据存储至对应的数据库节点;
存储模块进一步适于:根据数据库节点信息计算数据库节点位置并将数据库节点位置映射到预先构建的位置圆环上;
根据待存储数据的数据主键计算待存储数据在位置圆环的初始位置;
根据初始位置,以预设查找方向在位置圆环中查找与初始位置相邻的数据库节点位置,并将查找到的数据库节点位置作为待存储数据的预占节点位置;
判断预占节点位置对应的数据库节点的节点访问热度是否小于预设访问热度阈值;
若是,则将待存储数据存储至预占节点位置对应的数据库节点;
若预占节点位置对应的数据库节点的节点访问热度大于或等于预设访问热度阈值,则根据预占节点位置,以预设查找方向在位置圆环中查找首个节点访问热度小于预设访问热度阈值的数据库节点对应的数据库节点位置,并将查找到的数据库节点位置作为待存储数据的实际节点位置,将待存储数据存储至实际节点位置对应的数据库节点,并更新错位表,其中,错位表包含:数据的key值、实际节点位置、预占节点位置、与预占节点位置的偏移量;
若所有数据库节点的节点访问热度均大于或等于预设访问热度阈值,则将待存储数据存储至预占节点位置对应的数据库节点,并发送扩容提醒信息。
6.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-4中任一项所述的基于节点访问热度的数据存储方法对应的操作。
7.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-4中任一项所述的基于节点访问热度的数据存储方法对应的操作。
CN201911047811.6A 2019-10-30 2019-10-30 基于节点访问热度的数据存储方法及装置 Active CN112749004B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911047811.6A CN112749004B (zh) 2019-10-30 2019-10-30 基于节点访问热度的数据存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911047811.6A CN112749004B (zh) 2019-10-30 2019-10-30 基于节点访问热度的数据存储方法及装置

Publications (2)

Publication Number Publication Date
CN112749004A CN112749004A (zh) 2021-05-04
CN112749004B true CN112749004B (zh) 2023-09-05

Family

ID=75640907

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911047811.6A Active CN112749004B (zh) 2019-10-30 2019-10-30 基于节点访问热度的数据存储方法及装置

Country Status (1)

Country Link
CN (1) CN112749004B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141669A (ja) * 2003-11-10 2005-06-02 Nippon Telegr & Teleph Corp <Ntt> グリッドコンピューティング及びグリッドコンピューティングにおける負荷分散方法
CN101599994A (zh) * 2009-06-01 2009-12-09 中兴通讯股份有限公司 分布式文件系统、接入节点及节点间传输文件数据的方法
CN101697526A (zh) * 2009-10-10 2010-04-21 中国科学技术大学 分布式文件系统中元数据管理的负载均衡方法及其系统
CN103178989A (zh) * 2013-02-18 2013-06-26 中兴通讯股份有限公司 访问热度统计方法及装置
CN104202434A (zh) * 2014-09-28 2014-12-10 北京奇虎科技有限公司 节点访问方法和装置
CN104408163A (zh) * 2014-12-05 2015-03-11 浪潮(北京)电子信息产业有限公司 一种数据分级存储方法和装置
CN106161610A (zh) * 2016-06-29 2016-11-23 华为技术有限公司 一种分布式存储的方法和系统
CN107770259A (zh) * 2017-09-30 2018-03-06 武汉理工大学 基于文件热度和节点负载的副本数量动态调整方法
CN107832401A (zh) * 2017-11-01 2018-03-23 郑州云海信息技术有限公司 数据库数据访问方法、系统、装置及计算机可读存储介质
CN110008199A (zh) * 2019-03-25 2019-07-12 华南理工大学 一种基于访问热度的数据迁移部署方法
CN110019468A (zh) * 2017-12-05 2019-07-16 华为技术有限公司 一种数据库系统及数据库访问方法
CN110019528A (zh) * 2017-12-26 2019-07-16 中国移动通信集团湖北有限公司 数据库操作负载均衡方法、装置、设备及介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10339564B2 (en) * 2016-02-16 2019-07-02 Oracle International Corporation System and method for providing an adaptively ordered presentation of objects

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141669A (ja) * 2003-11-10 2005-06-02 Nippon Telegr & Teleph Corp <Ntt> グリッドコンピューティング及びグリッドコンピューティングにおける負荷分散方法
CN101599994A (zh) * 2009-06-01 2009-12-09 中兴通讯股份有限公司 分布式文件系统、接入节点及节点间传输文件数据的方法
CN101697526A (zh) * 2009-10-10 2010-04-21 中国科学技术大学 分布式文件系统中元数据管理的负载均衡方法及其系统
CN103178989A (zh) * 2013-02-18 2013-06-26 中兴通讯股份有限公司 访问热度统计方法及装置
CN104202434A (zh) * 2014-09-28 2014-12-10 北京奇虎科技有限公司 节点访问方法和装置
CN104408163A (zh) * 2014-12-05 2015-03-11 浪潮(北京)电子信息产业有限公司 一种数据分级存储方法和装置
CN106161610A (zh) * 2016-06-29 2016-11-23 华为技术有限公司 一种分布式存储的方法和系统
CN107770259A (zh) * 2017-09-30 2018-03-06 武汉理工大学 基于文件热度和节点负载的副本数量动态调整方法
CN107832401A (zh) * 2017-11-01 2018-03-23 郑州云海信息技术有限公司 数据库数据访问方法、系统、装置及计算机可读存储介质
CN110019468A (zh) * 2017-12-05 2019-07-16 华为技术有限公司 一种数据库系统及数据库访问方法
CN110019528A (zh) * 2017-12-26 2019-07-16 中国移动通信集团湖北有限公司 数据库操作负载均衡方法、装置、设备及介质
CN110008199A (zh) * 2019-03-25 2019-07-12 华南理工大学 一种基于访问热度的数据迁移部署方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
数据库高负载下的数据均衡策略研究与仿真;王爱新 等;《计算机仿真》;第327-330页 *

Also Published As

Publication number Publication date
CN112749004A (zh) 2021-05-04

Similar Documents

Publication Publication Date Title
JP6643760B2 (ja) ショートリンクの処理方法、デバイス、及びサーバ
AU2014212780B2 (en) Data stream splitting for low-latency data access
US20200242167A1 (en) Graph database super vertex partitioning
US20140222873A1 (en) Information system, management apparatus, method for processing data, data structure, program, and recording medium
CN109710406B (zh) 数据分配及其模型训练方法、装置、及计算集群
US9210219B2 (en) Systems and methods for consistent hashing using multiple hash rings
CN106951179B (zh) 一种数据迁移方法及装置
CN110413845B (zh) 基于物联网操作系统的资源存储方法及装置
CN113596094B (zh) 一种基于云集群的负载均衡方法及装置
US20120317275A1 (en) Methods and devices for node distribution
CN108563697B (zh) 一种数据处理方法、装置和存储介质
CN108154024B (zh) 一种数据检索方法、装置及电子设备
US10698955B1 (en) Weighted abstract path graph database partitioning
CN112732756B (zh) 数据查询方法、装置、设备及存储介质
CN113900810A (zh) 分布式图处理方法、系统及存储介质
CN112749004B (zh) 基于节点访问热度的数据存储方法及装置
CN112699134A (zh) 基于图剖分的分布式图数据库的存储与查询方法
CN111460237B (zh) 一种数据查询的方法、装置、可读存储介质和电子设备
EP2765517A2 (en) Data stream splitting for low-latency data access
CN109960695B (zh) 云计算系统中数据库的管理方法和装置
CN105989078B (zh) 一种结构化对等网络构建索引的方法、检索方法、装置及系统
JP6155861B2 (ja) データ管理方法、データ管理プログラム、データ管理システム及びデータ管理装置
KR20220078180A (ko) 분산 네트워크 환경에서의 쿼리 배치 장치 및 그 방법
CN112468546A (zh) 账号位置确定方法、装置、服务器和存储介质
JP6709689B2 (ja) 計算機システム及び計算機システムの制御方法

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