分布式缓存系统中虚拟节点迁移的方法及装置制造方法及图纸

技术编号:18208627 阅读:98 留言:0更新日期:2018-06-13 08:16
本发明专利技术提出一种分布式缓存系统中虚拟节点迁移的方法及装置,所述方法包括:计算分布式缓存系统中各缓存节点上的虚拟节点的分布情况,以确定需要进行迁移的目标虚拟节点;删除源缓存节点上的所述目标虚拟节点;当完成删除所述源缓存节点上的目标虚拟节点的操作时,向待迁移的目标缓存节点分配所述目标虚拟节点。上述技术方案中的一个技术方案具有如下优点或有益效果:当需要迁移缓存节点上的虚拟节点时,首先删除源缓存节点上的目标虚拟节点,删除成功后,再增加目标缓存节点上的虚拟节点,这样在虚拟节点迁移过程中,始终保持集群的可用性,也不会影响系统的读写一致性。

【技术实现步骤摘要】
分布式缓存系统中虚拟节点迁移的方法及装置
本专利技术涉及数据迁移
,尤其涉及一种分布式缓存系统中虚拟节点迁移的方法及装置。
技术介绍
分布式缓存系统,是将数据分散缓存在多台独立的设备上。传统的缓存系统采用集中的缓存服务器存放所有数据,缓存服务器成为系统性能的瓶颈,不能满足互联网业务下大规模应用的需要。而分布式网络缓存系统采用可扩展的系统结构,利用多台缓存服务器分担缓存负荷,利用路由算法定位缓存信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。传统的技术方案中,分布式缓存系统的架构模式是对数据进行分片,并由客户端配置路由规则,然后根据不同的键(key),采用哈希算法,将客户端分配到相应的分片。这种模式下,每个客户端都需要配置路由信息,系统中的虚拟节点数量发生变更时,需要更新所有客户端的路由配置,而路由配置更新期间,集群不可用,否则会因为不同客户端配置的不同,影响系统读写的一致性。
技术实现思路
本专利技术实施例提供一种分布式缓存系统中虚拟节点迁移的方法及装置,以至少解决或缓解
技术介绍
中的以上技术问题,至少提供一种有益的选择磁。第一方面,本专利技术实施例提供了一种分布式缓存系统中虚拟节点迁移的方法,包括:计算分布式缓存系统中各缓存节点上的虚拟节点的分布情况,以确定需要进行迁移的目标虚拟节点;删除源缓存节点上的所述目标虚拟节点;当完成删除所述源缓存节点上的目标虚拟节点的操作时,向待迁移的目标缓存节点分配所述目标虚拟节点。结合第一方面,本专利技术在第一方面的第一种实施方式中,计算分布式缓存系统中各缓存节点上的虚拟节点的分布情况,以确定需要进行迁移的目标虚拟节点,包括:在预设时间周期内接收所述源缓存节点发送的心跳信号,以确定所述源缓存节点的存活情况。结合第一方面的第一种实施方式,在预设时间周期内接收所述源缓存节点发送的心跳信号,以确定所述源缓存节点的存活情况,包括:若在预设时间周期内未接收所述源缓存节点发送的心跳信号,则检测所述源缓存节点与所述主节点的失联时间;若所述失联时间超过第一预设时间,则删除所述源缓存节点中所述目标虚拟节点下的缓存数据;若所述失联时间超过第二预设时间,则将所述源缓存节点下的所述目标虚拟节点迁移至所述目标缓存节点;其中,所述第二预设时间大于所述第一预设时间大于所述预设时间周期。结合第一方面,本专利技术在第一方面的第二实施方式中,向待迁移的目标缓存节点分配目标虚拟节点,包括:向所述目标缓存节点分配所述目标虚拟节点;检测所述目标缓存节点是否增加所述目标虚拟节点,若未增加,则重新向所述目标缓存节点分配所述虚拟节点。结合第一方面,本专利技术在第一方面的第三实施方式中,所述方法还包括:当删除所述源缓存节点上的所述目标虚拟节点时,接收所述源缓存节点发送的心跳,以确定的源缓存节点的存活情况;当增加所述目标缓存节点上的所述目标虚拟节点时,接收所述目标缓存节点发送的心跳,以确定所述目标缓存节点的存活情况。结合第一方面,本专利技术在第一方面的第四实施方式中,所述方法还包括:当所述目标缓存节点增加目标虚拟节点的操作完成后,更新用于映射缓存节点与虚拟节点关系的哈希表,并将更新后的哈希表发送给客户端。第二方面,本专利技术实施例提供了一种分布式缓存系统中虚拟节点迁移的装置,包括:计算模块,配置为计算分布式缓存系统中各缓存节点上的虚拟节点的分布情况,以确定需要进行数据迁移的目标虚拟节点;删除模块,配置为删除源缓存节点上的所述目标虚拟节点;分配模块,配置为当所述源缓存节点中的目标虚拟节点删除成功时,向待迁移的目标缓存节点分配目标虚拟节点。结合第二方面,本专利技术在第二方面的第一实施方式中,所述计算模块包括:接收子模块,配置为在预设时间周期内接收所述源缓存节点发送的心跳信号,以确定所述源缓存节点的存活情况。结合第二方面的第一实施方式,所述接收子模块包括:第一检测子模块,配置为当在预设时间周期内未接收所述源缓存节点发送的心跳信号时,检测所述源缓存节点与所述主节点的失联时间;删除子模块,配置为当所述失联时间超过第一预设时间时,删除所述源缓存节点中所述目标虚拟节点下的缓存数据;迁移子模块,配置为当所述失联时间超过第二预设时间时,将所述源缓存节点下的所述目标虚拟节点迁移至所述目标缓存节点;其中,所述第二预设时间大于所述第一预设时间大于所述预设时间周期。结合第二方面,本专利技术在第二方面的第二实施方式中,所述分配模块包括:分配子模块,配置为向所述目标缓存节点分配所述目标虚拟节点;第二检测子模块,配置为检测所述目标缓存节点是否增加所述目标虚拟节点,且当所述目标缓存节点未增加所述目标虚拟节点时,重新向所述目标缓存节点分配所述虚拟节点。结合第二方面,本专利技术在第二方面的第三实施方式中,所述装置还包括:更新模块,配置为当所述目标缓存节点增加目标虚拟节点的操作完成后,更新用于映射缓存节点与虚拟节点关系的哈希表,并将更新后的哈希表发送给客户端。第三方面,本专利技术实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现如上所述的方法。上述技术方案中的一个技术方案具有如下优点或有益效果:当需要迁移缓存节点上的虚拟节点时,首先删除源缓存节点上的目标虚拟节点,删除成功后,再增加目标缓存节点上的虚拟节点,这样在虚拟节点迁移过程中,始终保持集群的可用性,也不会影响系统的读写一致性。上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本专利技术进一步的方面、实施方式和特征将会是容易明白的。附图说明在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本专利技术公开的一些实施方式,而不应将其视为是对本专利技术范围的限制。图1为本专利技术实施例一的分布式缓存系统中虚拟节点迁移的方法的流程图;图2为本专利技术实施例二的分布式缓存系统中虚拟节点迁移的方法的流程图;图3为本专利技术实施例三的分布式缓存系统中虚拟节点迁移的装置的示意图。具体实施方式在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本专利技术的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。实施例一本专利技术实施例一提供一种分布式缓存系统中虚拟节点迁移的方法。如图1所示,为本专利技术实施例的分布式缓存系统中虚拟节点迁移方法的流程图。本专利技术实施例的分布式缓存系统中虚拟节点迁移方法包括如下步骤:S101,计算分布式缓存系统中各缓存节点上的虚拟节点的分布情况,以确定需要进行迁移的目标虚拟节点。本专利技术实施例的分布式缓存系统主要包括主节点(master)、客户端(client)和缓存节点(cachenode)。当数据到达客户端时,客户端就会根据键(key)查找哈希表(DistributedHashTable,DHT),以选定将数据所保存的缓存节点,然后将数据保存在该缓存节点上,在读取数据时也是一样,客户端根据key查找哈希表,然后选择查找的缓存节点。但是在实际应用时,由于缓存节点映射地址分布的不均匀,从而导致数据库访问倾斜,很多key被映射到同一个缓存节点上,这样会增加个别缓存本文档来自技高网...
分布式缓存系统中虚拟节点迁移的方法及装置

【技术保护点】
一种分布式缓存系统中虚拟节点迁移的方法,其特征在于,所述方法包括:计算分布式缓存系统中各缓存节点上的虚拟节点的分布情况,以确定需要进行迁移的目标虚拟节点;删除源缓存节点上的所述目标虚拟节点;当完成删除所述源缓存节点上的目标虚拟节点的操作时,向待迁移的目标缓存节点分配所述目标虚拟节点。

【技术特征摘要】
1.一种分布式缓存系统中虚拟节点迁移的方法,其特征在于,所述方法包括:计算分布式缓存系统中各缓存节点上的虚拟节点的分布情况,以确定需要进行迁移的目标虚拟节点;删除源缓存节点上的所述目标虚拟节点;当完成删除所述源缓存节点上的目标虚拟节点的操作时,向待迁移的目标缓存节点分配所述目标虚拟节点。2.根据权利要求1所述的方法,其特征在于,计算分布式缓存系统中各缓存节点上的虚拟节点的分布情况,以确定需要进行迁移的目标虚拟节点,包括:在预设时间周期内接收所述源缓存节点发送的心跳信号,以确定所述源缓存节点的存活情况。3.根据权利要求2所述的方法,其特征在于,在预设时间周期内接收所述源缓存节点发送的心跳信号,以确定所述源缓存节点的存活情况,包括:若在预设时间周期内未接收所述源缓存节点发送的心跳信号,则检测所述源缓存节点与所述主节点的失联时间;若所述失联时间超过第一预设时间,则删除所述源缓存节点中所述目标虚拟节点下的缓存数据;若所述失联时间超过第二预设时间,则将所述源缓存节点下的所述目标虚拟节点迁移至所述目标缓存节点;其中,所述第二预设时间大于所述第一预设时间大于所述预设时间周期。4.根据权利要求1所述的方法,其特征在于,向待迁移的目标缓存节点分配目标虚拟节点,包括:向所述目标缓存节点分配所述目标虚拟节点;检测所述目标缓存节点是否增加所述目标虚拟节点,若未增加,则重新向所述目标缓存节点分配所述虚拟节点。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述目标缓存节点增加目标虚拟节点的操作完成后,更新用于映射缓存节点与虚拟节点关系的哈希表,并将更新后的哈希表发送给客户端。6.一种分布式缓存系统中虚拟节点迁移的装置,其特征在于,所述装置包括:计算模块,配置为计算分布式缓存系统中各...

【专利技术属性】
技术研发人员:杨瑞
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1