CN108282522B - 基于动态路由的数据存储访问方法及系统 - Google Patents

基于动态路由的数据存储访问方法及系统 Download PDF

Info

Publication number
CN108282522B
CN108282522B CN201810037104.8A CN201810037104A CN108282522B CN 108282522 B CN108282522 B CN 108282522B CN 201810037104 A CN201810037104 A CN 201810037104A CN 108282522 B CN108282522 B CN 108282522B
Authority
CN
China
Prior art keywords
node
data
cache node
cache
routing
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
CN201810037104.8A
Other languages
English (en)
Other versions
CN108282522A (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.)
Jipusi Information Consulting Shenzhen Co ltd
Original Assignee
Jipusi Information Consulting Shenzhen 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 Jipusi Information Consulting Shenzhen Co ltd filed Critical Jipusi Information Consulting Shenzhen Co ltd
Priority to CN201810037104.8A priority Critical patent/CN108282522B/zh
Publication of CN108282522A publication Critical patent/CN108282522A/zh
Application granted granted Critical
Publication of CN108282522B publication Critical patent/CN108282522B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/563Data redirection of data network streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了基于动态路由的数据存储访问方法及系统,该方法包括:当缓存节点的状态由可用变成不可用时,该缓存节点对应的数据请求直接透传到落地数据库;当缓存节点的状态由不可用变成可用时,获取该缓存节点所管理的分片单位进行数据恢复;当检测到缓存节点数据量超负荷时,对缓存节点进行数据迁移;当接收到缓存节点的扩容请求时,对缓存节点进行数据扩容;当接收到用户请求时,获取用户请求中访问的缓存节点,根据缓存节点的节点类型进行动态路由,并根据路由结果到分片单位读取或写入数据。该方法实时监测缓存节点的状态,根据缓存节点的状态进行数据恢复、数据读写、数据迁移和数据扩容,能够进行动态路由,实现访问端和查询端的快速响应。

Description

基于动态路由的数据存储访问方法及系统
技术领域
本发明属于数据处理技术领域,具体涉及基于动态路由的数据存储访问方法及系统。
背景技术
目前互联网大数据处理过程中,由于数据量大,通常都会采用集群的方式来存储数据。为了加快数据的存储访问速度,通常都会使用缓存数据库+落地数据库的层次结构。集群内部通过一致性hash(一致性哈希)算法或其它路由算法来保证各节点的负载均衡。但是对于同一用户拥有大量用户数据的情况,如果按节点进行路由的话,那么该用户下的所有用户数据都将存储在同一节点上,这样将造成各节点间的数据量不均衡。查询端如果需要查询该用户的用户数据时,需要查询该节点的所有数据,导致查询请求处理时间过长,造成访问堵塞。
发明内容
针对现有技术中的缺陷,本发明提供基于动态路由的数据存储访问方法及系统,能够进行动态路由,实现访问端和查询端的快速响应。
第一方面,一种基于动态路由的数据存储访问方法,包括:
检测缓存节点的状态;
当缓存节点的状态由可用变成不可用时,建立该缓存节点的路由路径为到落地数据库的路径,该缓存节点对应的数据请求直接透传到落地数据库;
当缓存节点的状态由不可用变成可用时,获取该缓存节点所管理的分片单位,路由到分片单位对应的落地数据库进行数据恢复;
当检测到缓存节点数据量超负荷时,对缓存节点进行数据迁移;
当接收到缓存节点的扩容请求时,对缓存节点进行数据扩容;
当接收到用户请求时,获取用户请求中访问的缓存节点,根据缓存节点的节点类型进行动态路由,并根据路由结果到分片单位读取或写入数据。
进一步地,所述获取该缓存节点所管理的分片单位,路由到分片单位对应的落地数据库进行数据恢复具体包括:
获取该缓存节点所管理的分片单位,访问对应的落地数据库;
将该落地数据库中需要恢复的数据写入缓存节点中。
进一步地,所述当检测到缓存节点数据量超负荷时,对缓存节点进行数据迁移具体包括:
当缓存节点的节点类型为节点路由类型,且缓存节点的数据量超过预设的阈值时,判定缓存节点数据量超负荷,修改节点类型为非节点路由类型,获取缓存节点的分片单位;
将该缓存节点的数据按照分片单位进行数据迁移。
进一步地,当节点类型为节点路由类型时,采用根据节点计算的crc32算法计算分片单位,进行路由;当节点类型为非节点路由类型时,采用根据数据量计算的crc32算法计算分片单位,进行路由。
进一步地,所述当接收到缓存节点的扩容请求时,对缓存节点进行数据扩容具体包括:
当接收到缓存节点的扩容请求时,接收新添加的新节点和分片单位,上报扩容状态;
按照分片单位扫描缓存节点,将缓存节点中需要扩容的数据写入新节点的分片单位中。
进一步地,在所述按照分片单位扫描缓存节点,根据节点规则将扫描得到的数据写入对应的节点中之后还包括:
当接收到操作请求时,将操作请求写入缓存节点及新节点的排队队列中;
当缓存节点数据扩容结束后,执行排队队列中的操作请求,上报扩容完成状态。
第二方面,一种基于动态路由的数据存储访问系统,包括:集群管理模块、数据恢复模块、节点管理模块、落地数据库、数据处理模块、缓存数据库集群;
所述集群管理模块用于检测缓存数据库集群中各个缓存节点的状态;当缓存节点的状态由可用变成不可用时,建立该缓存节点的路由路径为到落地数据库的路径,该缓存节点对应的数据请求直接透传到落地数据库;当缓存节点的状态由不可用变成可用时,生成该缓存节点的重启命令,发送给数据恢复迁移模块;
所述数据恢复模块用于在接收到缓存节点的重启命令时,获取该缓存节点所管理的分片单位,路由到分片单位对应的落地数据库进行数据恢复;
所述节点管理模块用于当检测到缓存节点数据量超负荷时,对缓存节点进行数据迁移;
所述数据处理模块用于当接收到用户请求时,获取用户请求中访问的缓存节点,根据缓存节点的节点类型进行动态路由,并根据路由结果到分片单位读取或写入数据。
进一步地,所述获取该缓存节点所管理的分片单位,路由到分片单位对应的落地数据库进行数据恢复具体包括:
获取该缓存节点所管理的分片单位,访问对应的落地数据库;
将该落地数据库中需要恢复的数据写入缓存节点中。
进一步地,所述当检测到缓存节点数据量超负荷时,对缓存节点进行数据迁移具体包括:
当缓存节点的节点类型为节点路由类型,且缓存节点的数据量超过预设的阈值时,判定缓存节点数据量超负荷,修改节点类型为非节点路由类型,获取缓存节点的分片单位;
将该缓存节点的数据按照分片单位进行数据迁移。
进一步地,当节点类型为节点路由类型时,采用根据节点计算的crc32算法计算分片单位,进行路由;当节点类型为非节点路由类型时,采用根据数据量计算的crc32算法计算分片单位,进行路由。
由上述技术方案可知,本发明提供的基于动态路由的数据存储访问方法及系统,实时监测缓存节点的状态,根据缓存节点的状态进行数据恢复、数据读写、数据迁移和数据扩容,能够进行动态路由,实现访问端和查询端的快速响应。
对于单个节点有大量数据量的场景,存储端可以满足不论数量量有多大,通过是使用crc32(value)方式计算出的分片进行路由规则,保证所有存储节点数据量基本均衡,不会出现其中的任一节点比其它节点数据量多的情况,对于访问端,由于对于拥有大量数据的节点按value均匀的分布在不同的节点,所有查询可以并发的到不同的节点查询,提高了查询的速度,避免了由于单个节点需要查询大量数据导致的任务堵塞。提高了存储端和访问端的并发速度,为用户提供良好的用户体验。由于数据时按分片进行路由的,所以系统可以进行水平扩展,当数据量增加时,可以同过扩展集群的节点来平滑,灰度的扩展。能够进行动态路由,实现访问端和查询端的快速响应。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为实施例一提供的方法流程图。
图2为实施例二提供的系统框图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
实施例一:
参见图1,实施例一提供了一种基于动态路由的数据存储访问方法,包括:
S1:检测缓存节点的状态;
具体地,例如:数据保存在缓存节点1(node1),缓存节点2(node2),缓存节点3(node3)SI即检测node1,node2,node3的状态。
S2:当缓存节点的状态由可用变成不可用时,建立该缓存节点的路由路径为到落地数据库的路径,该缓存节点对应的数据请求直接透传到落地数据库;
具体地,缓存节点的状态由可用变成不可用,说明当前缓存节点的数据不可信,此时访问该缓存节点的请求均直接透传到落地数据库,访问该缓存节点对应的落地数据库的数据,读取或写入数据到落地数据库。落地数据库为持久化的数据库。
S3:当缓存节点的状态由不可用变成可用时,获取该缓存节点所管理的分片单位,路由到分片单位对应的落地数据库进行数据恢复;具体包括:
获取该缓存节点所管理的分片单位,访问对应的落地数据库;
将该落地数据库中需要恢复的数据写入缓存节点中。
具体地,缓存节点的状态由不可用变成可用,此时缓存节点可用,但是没有数据的,所以需要从落地数据库恢复数据,将需要恢复的数据写入缓存节点中,这样访问该缓存节点的请求,可以直接读取或写入数据到缓存节点。
数据恢复负责从落地数据库恢复数据到缓存数据库中缓存节点,以及缓存数据库的扩容。由于缓存数据库使用的是内存数据库,当机器挂掉或缓存数据库挂掉时,再次重启缓存数据库是没有数据的,所以需要重相应的数据库节点恢复数据。当接收到数据恢复或扩容请求时,会按slot(分片单位)扫描相应的数据库节点(数据库中数据按字符顺序排列,扫描指定前缀数据),并将数据写入到要恢复的缓存数据库。
S4:当检测到缓存节点数据量超负荷时,对缓存节点进行数据迁移;具体包括:
当缓存节点的节点类型为节点路由类型,且缓存节点的数据量超过预设的阈值时,判定缓存节点数据量超负荷,修改节点类型为非节点路由类型,获取缓存节点的分片单位;
将该缓存节点的数据按照分片单位进行数据迁移。
具体地,定义节点路由类型为非bigkey,非节点路由类型为bigkey。当key(缓存节点)为非bigkey、且数据量大于等于bigkey设置的value数量(数据,即用户设置的值,例如注册用户、名称等)阀值时,说明该缓存节点的的空间不够了,超负荷,需要增加新节点,上报newbigkey,进行bigkey的迁移。
例如:node1原来管理的分片是slot1--slot10,现在空间不够了,所以需要将node1的一部分数据(例如slot6-slot10)迁移到其它存储空间,例如可以另外新加一个节点node4,将slot6-slot10对应的数据迁移到node4中,完成迁移。Slot为分片单位。
S5:当接收到缓存节点的扩容请求时,对缓存节点进行数据扩容;具体包括:
当接收到缓存节点的扩容请求时,接收新添加的新节点和分片单位,上报扩容状态;
按照分片单位扫描缓存节点,将缓存节点中需要扩容的数据写入新节点的分片单位中。
具体地,当缓存数据库已经不能满足数据存储时,需要添加新的节点进行数据存储,此时添加新节点nodeN,上报此节点信息,当检测到是新节点时,会上报slot迁移状态,当接收到slot迁移状态信息时,会自动进行数据迁移(从对应的数据库节点读取数据写入到nodeN)。
S6:当接收到用户请求时,获取用户请求中访问的缓存节点,根据缓存节点的节点类型进行动态路由,并根据路由结果到分片单位读取或写入数据。
具体地,当节点类型为节点路由类型时,采用根据节点计算的crc32算法(crc32(key))计算分片单位,进行路由;当节点类型为非节点路由类型时,采用根据数据量计算的crc32算法(crc32(value))计算分片单位,进行路由。
除此之外,该方法在所述按照分片单位扫描缓存节点,根据节点规则将扫描得到的数据写入对应的节点中之后还包括:
当接收到操作请求时,将操作请求写入缓存节点及新节点的排队队列中;
当缓存节点数据扩容结束后,执行排队队列中的操作请求,上报扩容完成状态。
具体地,例如:数据恢复过程中新来的请求会同时写入到落地数据库和缓存数据库的排队队列中,避免数据丢失。当扩容时(例如slot1由缓存节点A迁移到新的缓存节点B),新来的请求会同时写入缓存节点A和缓存节点B的排队队列,在数据迁移完成后,再执行排队队列中的请求,保证数据不丢失。
实施例二:
参见图2,实施例二提供了一种基于动态路由的数据存储访问系统,包括:集群管理模块、数据恢复模块、节点管理模块、落地数据库、数据处理模块、缓存数据库集群;
所述集群管理模块用于检测缓存数据库集群中各个缓存节点的状态;当缓存节点的状态由可用变成不可用时,建立该缓存节点的路由路径为到落地数据库的路径,该缓存节点对应的数据请求直接透传到落地数据库;当缓存节点的状态由不可用变成可用时,生成该缓存节点的重启命令,发送给数据恢复迁移模块;
具体地,缓存节点的状态还可以为新添加缓存节点,此时将此节点管理的分片数据迁移到此节点,并清除源缓存节点对应的冗余数据。
所述数据恢复模块用于在接收到缓存节点的重启命令时,获取该缓存节点所管理的分片单位,路由到分片单位对应的落地数据库进行数据恢复;
所述节点管理模块用于当检测到缓存节点数据量超负荷时,对缓存节点进行数据迁移;
所述数据处理模块用于当接收到用户请求时,获取用户请求中访问的缓存节点,根据缓存节点的节点类型进行动态路由,并根据路由结果到分片单位读取或写入数据。
具体地,用户请求可以是用户的查询请求,还用于上报查询结果,当缓存节点可用时,将查询结果发给缓存节点查询。数据处理模块将同步数据发送到同步数据的数据中间件等待处理。
进一步地,所述获取该缓存节点所管理的分片单位,路由到分片单位对应的落地数据库进行数据恢复具体包括:
获取该缓存节点所管理的分片单位,访问对应的落地数据库;
将该落地数据库中需要恢复的数据写入缓存节点中。
进一步地,所述当检测到缓存节点数据量超负荷时,对缓存节点进行数据迁移具体包括:
当缓存节点的节点类型为节点路由类型,且缓存节点的数据量超过预设的阈值时,判定缓存节点数据量超负荷,修改节点类型为非节点路由类型,获取缓存节点的分片单位;
将该缓存节点的数据按照分片单位进行数据迁移。
进一步地,当节点类型为节点路由类型时,采用根据节点计算的crc32算法计算分片单位,进行路由;当节点类型为非节点路由类型时,采用根据数据量计算的crc32算法计算分片单位,进行路由。
进一步地,当节点类型为节点路由类型时,采用根据节点计算的crc32算法计算分片单位,进行路由;当节点类型为非节点路由类型时,采用根据数据量计算的crc32算法计算分片单位,进行路由。
进一步地,所述数据处理模块还用于当接收到操作请求时,将操作请求写入缓存节点及新节点的排队队列中;当缓存节点数据扩容结束后,执行排队队列中的操作请求,上报扩容完成状态。
本发明实施例所提供的系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,系统实施例部分未提及之处,可参考前述方法实施例中相应内容。
应注意到:附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元(功能)或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (8)

1.一种基于动态路由的数据存储访问方法,其特征在于,包括:
检测缓存节点的状态;
当缓存节点的状态由可用变成不可用时,建立该缓存节点的路由路径为到落地数据库的路径,该缓存节点对应的数据请求直接透传到落地数据库;
当缓存节点的状态由不可用变成可用时,获取该缓存节点所管理的分片单位,路由到分片单位对应的落地数据库进行数据恢复;
当检测到缓存节点数据量超负荷时,对缓存节点进行数据迁移;
当接收到缓存节点的扩容请求时,对缓存节点进行数据扩容;
当接收到用户请求时,获取用户请求中访问的缓存节点,根据缓存节点的节点类型进行动态路由,并根据路由结果到分片单位读取或写入数据;
所述根据缓存节点的节点类型进行动态路由,并根据路由结果到分片单位读取或写入数据具体包括:
当节点类型为节点路由类型时,采用根据节点计算的crc32算法计算分片单位,进行路由;当节点类型为非节点路由类型时,采用根据数据量计算的crc32算法计算分片单位,进行路由。
2.根据权利要求1所述基于动态路由的数据存储访问方法,其特征在于,
所述获取该缓存节点所管理的分片单位,路由到分片单位对应的落地数据库进行数据恢复具体包括:
获取该缓存节点所管理的分片单位,访问对应的落地数据库;
将该落地数据库中需要恢复的数据写入缓存节点中。
3.根据权利要求1所述基于动态路由的数据存储访问方法,其特征在于,
所述当检测到缓存节点数据量超负荷时,对缓存节点进行数据迁移具体包括:
当缓存节点的节点类型为节点路由类型,且缓存节点的数据量超过预设的阈值时,判定缓存节点数据量超负荷,修改节点类型为非节点路由类型,获取缓存节点的分片单位;
将该缓存节点的数据按照分片单位进行数据迁移。
4.根据权利要求3所述基于动态路由的数据存储访问方法,其特征在于,
所述当接收到缓存节点的扩容请求时,对缓存节点进行数据扩容具体包括:
当接收到缓存节点的扩容请求时,接收新添加的新节点和分片单位,上报扩容状态;
按照分片单位扫描缓存节点,将缓存节点中需要扩容的数据写入新节点的分片单位中。
5.根据权利要求4所述基于动态路由的数据存储访问方法,其特征在于,
在所述按照分片单位扫描缓存节点,根据节点规则将扫描得到的数据写入对应的节点中之后还包括:
当接收到操作请求时,将操作请求写入缓存节点及新节点的排队队列中;
当缓存节点数据扩容结束后,执行排队队列中的操作请求,上报扩容完成状态。
6.一种基于动态路由的数据存储访问系统,其特征在于,包括:集群管理模块、数据恢复模块、节点管理模块、落地数据库、数据处理模块、缓存数据库集群;
所述集群管理模块用于检测缓存数据库集群中各个缓存节点的状态;当缓存节点的状态由可用变成不可用时,建立该缓存节点的路由路径为到落地数据库的路径,该缓存节点对应的数据请求直接透传到落地数据库;当缓存节点的状态由不可用变成可用时,生成该缓存节点的重启命令,发送给数据恢复迁移模块;
所述数据恢复模块用于在接收到缓存节点的重启命令时,获取该缓存节点所管理的分片单位,路由到分片单位对应的落地数据库进行数据恢复;
所述节点管理模块用于当检测到缓存节点数据量超负荷时,对缓存节点进行数据迁移;
所述数据处理模块用于当接收到用户请求时,获取用户请求中访问的缓存节点,根据缓存节点的节点类型进行动态路由,并根据路由结果到分片单位读取或写入数据;
所述根据缓存节点的节点类型进行动态路由,并根据路由结果到分片单位读取或写入数据具体包括:
当节点类型为节点路由类型时,采用根据节点计算的crc32算法计算分片单位,进行路由;当节点类型为非节点路由类型时,采用根据数据量计算的crc32算法计算分片单位,进行路由。
7.根据权利要求6所述基于动态路由的数据存储访问系统,其特征在于,
所述获取该缓存节点所管理的分片单位,路由到分片单位对应的落地数据库进行数据恢复具体包括:
获取该缓存节点所管理的分片单位,访问对应的落地数据库;
将该落地数据库中需要恢复的数据写入缓存节点中。
8.根据权利要求6所述基于动态路由的数据存储访问系统,其特征在于,
所述当检测到缓存节点数据量超负荷时,对缓存节点进行数据迁移具体包括:
当缓存节点的节点类型为节点路由类型,且缓存节点的数据量超过预设的阈值时,判定缓存节点数据量超负荷,修改节点类型为非节点路由类型,获取缓存节点的分片单位;
将该缓存节点的数据按照分片单位进行数据迁移。
CN201810037104.8A 2018-01-15 2018-01-15 基于动态路由的数据存储访问方法及系统 Active CN108282522B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810037104.8A CN108282522B (zh) 2018-01-15 2018-01-15 基于动态路由的数据存储访问方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810037104.8A CN108282522B (zh) 2018-01-15 2018-01-15 基于动态路由的数据存储访问方法及系统

Publications (2)

Publication Number Publication Date
CN108282522A CN108282522A (zh) 2018-07-13
CN108282522B true CN108282522B (zh) 2021-01-08

Family

ID=62803644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810037104.8A Active CN108282522B (zh) 2018-01-15 2018-01-15 基于动态路由的数据存储访问方法及系统

Country Status (1)

Country Link
CN (1) CN108282522B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109325016B (zh) * 2018-09-12 2021-04-20 杭州朗和科技有限公司 数据迁移方法、装置、介质及电子设备
CN109274665A (zh) * 2018-09-13 2019-01-25 北京奇安信科技有限公司 Dns威胁情报处理方法及装置
CN109828960B (zh) * 2018-12-14 2024-05-28 平安科技(深圳)有限公司 日志库扩容方法、系统、计算机装置及可读存储介质
CN110275793B (zh) * 2019-06-27 2023-04-07 咪咕文化科技有限公司 一种用于MongoDB数据分片集群的检测方法及设备
CN110399272B (zh) * 2019-07-29 2022-02-18 中国工商银行股份有限公司 日志处理设备、方法、电子设备及计算机可读存储介质
CN110399271B (zh) * 2019-07-29 2022-03-18 中国工商银行股份有限公司 日志处理设备、方法、电子设备及计算机可读存储介质
CN111061768A (zh) * 2019-12-23 2020-04-24 珠海格力电器股份有限公司 数据处理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102930062A (zh) * 2012-11-30 2013-02-13 南京富士通南大软件技术有限公司 一种数据库快速水平扩展的方法
CN105631028A (zh) * 2015-12-30 2016-06-01 中国农业银行股份有限公司 一种数据库集群功能实现方法和系统
CN106446268A (zh) * 2016-10-19 2017-02-22 中国工商银行股份有限公司 一种数据库横向扩展系统及方法
CN106506704A (zh) * 2016-12-29 2017-03-15 北京奇艺世纪科技有限公司 一种缓存更新方法及装置
CN106844510A (zh) * 2016-12-28 2017-06-13 北京五八信息技术有限公司 一种分布式数据库集群的数据迁移方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102930062A (zh) * 2012-11-30 2013-02-13 南京富士通南大软件技术有限公司 一种数据库快速水平扩展的方法
CN105631028A (zh) * 2015-12-30 2016-06-01 中国农业银行股份有限公司 一种数据库集群功能实现方法和系统
CN106446268A (zh) * 2016-10-19 2017-02-22 中国工商银行股份有限公司 一种数据库横向扩展系统及方法
CN106844510A (zh) * 2016-12-28 2017-06-13 北京五八信息技术有限公司 一种分布式数据库集群的数据迁移方法和装置
CN106506704A (zh) * 2016-12-29 2017-03-15 北京奇艺世纪科技有限公司 一种缓存更新方法及装置

Also Published As

Publication number Publication date
CN108282522A (zh) 2018-07-13

Similar Documents

Publication Publication Date Title
CN108282522B (zh) 基于动态路由的数据存储访问方法及系统
US10909110B1 (en) Data retrieval from a distributed data storage system
CN108810041B (zh) 一种分布式缓存系统的数据写入及扩容方法、装置
CN108509153B (zh) Osd选择方法、数据写入和读取方法、监控器和服务器集群
WO2018001110A1 (zh) 一种基于纠删码的存储数据重构方法和装置、存储节点
EP2435916B1 (en) Cache data processing using cache cluster with configurable modes
CN109302498B (zh) 一种网络资源访问方法及装置
CN110489059B (zh) 数据集群存储的方法、装置及计算机设备
US20160112516A1 (en) Distributed storage system, cluster node and range management method thereof
CN108683668B (zh) 内容分发网络中的资源校验方法、装置、存储介质及设备
CN109144972B (zh) 一种数据迁移的方法以及数据节点
CN109582213B (zh) 数据重构方法及装置、数据存储系统
US7840655B2 (en) Address resolution protocol change enabling load-balancing for TCP-DCR implementations
CN103942252A (zh) 一种恢复数据的方法及系统
CN109726037B (zh) 用于备份数据的方法、设备和计算机程序产品
US20170235501A1 (en) Data processing method and apparatus
CN105183399A (zh) 一种基于弹性块存储的数据写、读方法及装置
CN108540510B (zh) 一种云主机创建方法、装置及云服务系统
EP3495939B1 (en) Method and device for storing data in distributed block storage system, and computer readable storage medium
JP6432407B2 (ja) ノード、情報処理システム、方法、および、プログラム
WO2017054643A1 (zh) 一种数据抢救方法及文件服务器
US9852031B2 (en) Computer system and method of identifying a failure
JP2018511131A (ja) オンライン媒体のための階層的なコストベースのキャッシング
CN112131201B (zh) 一种网络附加存储高可用性的方法、系统、设备及介质
JP2015153280A (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