CN108810041A - 一种分布式缓存系统的数据写入及扩容方法、装置 - Google Patents
一种分布式缓存系统的数据写入及扩容方法、装置 Download PDFInfo
- Publication number
- CN108810041A CN108810041A CN201710289673.7A CN201710289673A CN108810041A CN 108810041 A CN108810041 A CN 108810041A CN 201710289673 A CN201710289673 A CN 201710289673A CN 108810041 A CN108810041 A CN 108810041A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- cryptographic hash
- cache
- cache 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Abstract
本申请公开了一种分布式缓存系统的数据写入及扩容方法、装置,用于解决现有技术存在的系统扩容时间复杂度高的问题。本申请公开的方案,在现有技术的基础上,通过在管理节点中维护缓存数据的数据哈希值以及其存储地址的映射关系,从而查找待迁移的数据时,根据该映射关系查找落在待迁移的数据的数据哈希值范围内的每个数据哈希值对应的存储地址,从而从该存储地址取出数据迁移。
Description
技术领域
本申请涉及信息技术领域,尤其涉及一种分布式缓存系统的数据写入及扩容方法、装置。
背景技术
分布式缓存是将位于局域网内的多台物理机组成集群来提供缓存服务。随着现代信息应用系统(比如社交网站或者电信操作系统等)提供的服务越来越多样化以及面向的用户规模的增大,分布式缓存的容量时常需要扩大。除了容量以及响应时间这两个指标以外,衡量分布式缓存性能的另一个关键指标是缓存命中率。若缓存命中率过低,则导致整个应用系统的性能太低,可能会导致系统崩溃。
很多情况下,在对现有分布式缓存集群进行扩容时,要求应用系统能不间断地为用户提供服务。同时,为了保证服务质量,在对分布式缓存集群进行扩容时,应尽可能地降低对访问缓存的响应时间以及缓存命中率的影响。
现有,大多采用一致性哈希算法构建分布式缓存集群,并对集群中所有缓存节点进行数据分片,也就是说,利用各缓存节点的标识,根据某种一致性哈希算法计算其哈希值,并将其标记在一个足够大的数值空间逻辑环上,称为哈希环。哈希环上的数值按顺时针方向增大。当发生数据访问或者写入时,采用同一个一致性哈希算法计算数据键值的哈希值,在哈希环上按顺时针方向找到第一个对应的缓存节点,即为该数据存储的位置。
比如,图1所示,将分布式缓存集群中的n个缓存节点配置到0~232的哈希环上。图1中所示哈希环中的数值按照顺时针方向逐渐增大。针对待存储的数据,求出该待存储数据对应的哈希值,确定该待存储的数据的哈希值在哈希环中的位置,比如,位于缓存节点2以及缓存节点3之间,则将待存储的数据存储在缓存节点3中。当通过一致性哈希算法确定扩容(即新增)的第K个缓存节点需要插入到哈希环中的第i个缓存节点前时,原先映射到第i个缓存节点上的部分数据应该被重新映射到新增的第K个缓存节点。按照一致性哈希算法对数据的分片规则,需要迁移到第K个缓存节点的这部分数据的哈希值范围是:在哈希环上,从新增第K个节点的哈希值开始逆时针方向到第一个不同于它的第i个节点的哈希值。而在新增K节点前,这部分数据是缓存在第i个缓存节点上的。现有技术的解决办法是:在第i个缓存节点上将这部分数据迁移到第K节点中。而找到这部分需要迁移的哈希值范围对应的缓存数据方法是:直接对第i节点中的所有缓存数据进行遍历并计算哈希值,找到哈希值小于新增节点哈希值的这部分数据。然而,就算不考虑哈希值计算的计算开销,该过程的算法的时间复杂度也会为O(N),O()表示时间复杂度,N为缓存节点上缓存数据的个数,这在实际生产环境中是难以忍受的,因为这样会导致第i个节点的压力过大而无法提供服务,进而降低整个缓存集群的响应时间和可用性。
发明内容
本申请提供一种分布式缓存系统的数据写入及扩容方法、装置,用以解决现有存在的时间复杂度高的问题。
第一方面,本申请实施例提供了一种基于分布式缓存系统的数据写入方法,所述分布式缓存系统中包括的各个缓存节点分别具有对应的节点哈希值,其中每个缓存节点的节点哈希值是基于哈希算法对缓存节点的节点标识计算得到的,所述方法包括:用于管理所述各个缓存节点的管理节点接收到待写入所述分布式缓存系统的数据时,基于所述哈希算法计算所述数据的数据哈希值;所述管理节点根据所述数据哈希值以及各个缓存节点分别对应的节点哈希值,在所述各个缓存节点中确定用于存储所述数据的第一缓存节点;所述管理节点将所述数据存储到所述第一缓存节点中;所述管理节点在设定存储区域存储所述数据哈希值、所述第一缓存节点的节点标识、以及所述数据在所述第一缓存节点中的存储地址的映射关系。
上述方案,在数据写入时建立上述映射关系,该映射关系用于在针对分布式缓存系统进行扩容、查找待迁移的数据时,根据该映射关系查找落在待迁移的数据的数据哈希值范围内的每个数据哈希值对应的存储地址,从而从该存储地址取出数据迁移。相比现有技术,不再需要对待迁移数据的缓存节点中的所有缓存数据进行遍历并计算哈希值,来找到哈希值落在待迁移的数据的数据哈希值范围内的数据,从而在一定程度上降低了查找的时间复杂度,降低了缓存集群的响应时间,提高了可用性。
在一种可能的设计中,所述管理节点在所述各个缓存节点中确定用于存储所述数据的第一缓存节点,包括:所述管理节点在各个缓存节点分别对应的节点哈希值中查找大于所述数据哈希值、且与所述数据哈希值最接近的节点哈希值,将查找到的节点哈希值对应的缓存节点确定为用于存储所述数据的第一缓存节点;或者所述管理节点在各个缓存节点分别对应的节点哈希值中查找小于所述数据哈希值、且与所述数据哈希值最接近的节点哈希值,将查找到的节点哈希值对应的缓存节点确定为用于存储所述数据的第一缓存节点。
通过上述设计,提供了两种最简便的确定用于存储数据的缓存节点的方式。
在一种可能的设计中,所述管理节点将所述数据存储到所述第一缓存节点中后,在设定存储区域存储所述数据哈希值、所述第一缓存节点的节点标识、以及所述数据在所述第一缓存节点中的存储地址的映射关系之前,所述方法还包括:所述管理节点确定在所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点。
通过上述设计,在有新的数据写入缓存节点时,不立即建立该新的数据对应的映射关系,而是采用异步方式,在确定所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点时,再将这些新写入的数据对应的映射关系建立起来,从而节省了资源。
第二方面,本申请实施例提供了一种基于分布式缓存系统的扩容方法,所述分布式缓存系统中已存在的各个缓存节点分别具有对应的节点哈希值,其中每个缓存节点的节点哈希值是基于哈希算法对缓存节点的节点标识计算得到的,所述方法包括:用于管理所述各个缓存节点的管理节点在确定所述分布式缓存系统中新增加一缓存节点时,采用所述哈希算法计算新增加缓存节点的节点哈希值;所述管理节点根据所述新增加缓存节点的节点哈希值以及所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值,确定待迁移到所述新增加缓存节点中的待迁移数据对应的数据哈希值范围;所述管理节点在设定存储区域中查找落在所述数据哈希值范围内的每个数据哈希值分别对应的节点标识和存储地址;其中,所述设定存储区域中存储有不同的映射关系,不同的映射关系对应已存储在所述分布式缓存系统中已存在的各个缓存节点中的不同数据,任一映射关系为数据哈希值、该数据哈希值对应的数据存储在的缓存节点的节点标识、以及该数据哈希值对应的数据在缓存节点中的存储地址的映射关系;
所述管理节点根据查找到的每对节点标识和存储地址,在对应的缓存节点中的对应存储地址中读取数据,作为待迁移数据写入到所述新增加缓存节点中;
其中,所述数据哈希值为针对对应数据通过所述哈希算法计算得到的。
通过上述设计,映射关系主要用于在针对分布式缓存系统进行扩容、查找待迁移的数据时,根据该映射关系查找落在待迁移的数据的数据哈希值范围内的每个数据哈希值对应的存储地址,从而从该存储地址取出数据迁移。相比现有技术,不再需要对待迁移数据的缓存节点中的所有缓存数据进行遍历并计算哈希值,来找到哈希值落在待迁移的数据的数据哈希值范围内的数据,从而在一定程度上降低了查找的时间复杂度,降低了缓存集群的响应时间,提高了可用性。
在一种可能的设计中,所述管理节点确定待迁移数据对应的数据哈希值范围,包括:
所述管理节点在所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值中查找大于所述新增加缓存节点的节点哈希值、且与所述新增加缓存节点的节点哈希值最接近的第一节点哈希值,将大于所述新增加缓存节点的节点哈希值且小于所述第一节点哈希值的哈希值范围作为待迁移数据对应的数据哈希值范围;或者,
所述管理节点在所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值中查找小于所述新增加缓存节点的节点哈希值、且与所述新增加缓存节点的节点哈希值最接近的第二节点哈希值,将小于所述新增加缓存节点的节点哈希值且大于所述第一节点哈希值的哈希值范围作为待迁移数据对应的数据哈希值范围。
上述设计中,提供了两种最简便的确定用于存储数据的缓存节点的方式。
在一种可能的设计中,所述方法还可以包括:
所述管理节点在确定各个缓存节点中的至少一个缓存节点上存储的数据被删除时,基于所述哈希算法计算被删除的数据对应的数据哈希值;并
在所述设定存储区域中删除包含计算得到的数据哈希值的映射关系。
通过上述设计,在确定数据在缓存节点上删除后,删除设定存储区域中的存储的该数据对应的映射关系,保证设定存储区域中存储的映射关系与缓存节点中存储的数据的一致。
在一种可能的设计中,所述管理节点在所述设定存储区域中删除包含计算得到的数据哈希值的映射关系之前,所述方法还包括:
所述管理节点确定在所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点。
通过上述设计,采用异步更新设定存储区域存储的映射关系,由于映射关系在扩容时或者缓存节点删除,需要查找迁移数据时才使用,因此采用异步方式更新设定存储区域存储的映射关系,既能实现了对映射关系的更新,又能保证在扩容时,保证设定存储区域中存储的映射关系与缓存节点中存储的数据的一致。
在一种可能的设计中,所述管理节点将所述待迁移数据写入到所述新增加缓存节点中,包括:
所述管理节点在待迁移数据所在的缓存节点与所述新增加缓存节点之间建立网络连接通道;
所述管理节点将所述待迁移数据,通过所述网络连接通道迁移到所述新增加缓存节点中。
通过上述设计,通过建立网络连接通道来迁移待迁移的数据,提供了一种实现数据迁移的方式。
在一种可能的设计中,所述方法还包括:
所述管理节点确定在预设时长内所述网络连接通道无数据传输时,删除所述网络连接通道。
通过上述射界,建立的网络连接通道时缓存一段时间的,确定在预设时长内所述网络连接通道无数据传输时,才会删除所述网络连接通道,从而避免每迁移一个数据都建立一次连接,在一定程度上避免了多次建立连接引起的时间延迟。
在一种可能的设计中,所述方法还包括:
所述管理节点若确定所述待迁移数据全部成功迁移到所述新增加缓存节点上时,建立与所述新增加缓存节点之间的数据访问连接。
通过上述设计,数据全部成功迁移到新增加的缓存节点后,才建立与所述新增加缓存节点之间的数据访问连接,在一定程度上降低了扩容引起的缓存不命中的概率。
在一种可能的设计中,所述方法还包括:
所述管理节点在将所述待迁移数据写入到所述新增加缓存节点的过程中,禁止访问所述待迁移数据所在的缓存节点中的数据以及禁止向所述新增加缓存节点写入数据。
通过上述设计,在数据迁移过程,禁止访问所述待迁移数据所在的缓存节点中的数据以及禁止向所述新增加缓存节点写入数据,从而在一定程度上降低了扩容引起的缓存不命中的概率。
第三方面,本申请实施例提供了一种基于分布式缓存系统的数据写入装置,所述分布式缓存系统中包括的各个缓存节点分别具有对应的节点哈希值,其中每个缓存节点的节点哈希值是基于哈希算法对缓存节点的节点标识计算得到的,所述装置包括:
客户端访问模块,用于在接收到待写入所述分布式缓存系统的数据时,基于所述哈希算法计算所述数据的数据哈希值;并根据所述数据哈希值以及各个缓存节点分别对应的节点哈希值,在所述各个缓存节点中确定用于存储所述数据的第一缓存节点;并将所述数据存储到所述第一缓存节点中;
映射管理模块,用于在设定存储区域存储所述数据哈希值、所述第一缓存节点的节点标识、以及所述数据在所述第一缓存节点中的存储地址的映射关系。
在一种可能的设计中,所述客户端访问模块,在所述各个缓存节点中确定用于存储所述数据的第一缓存节点时,具体用于:
在各个缓存节点分别对应的节点哈希值中查找大于所述数据哈希值、且与所述数据哈希值最接近的节点哈希值,将查找到的节点哈希值对应的缓存节点确定为用于存储所述数据的第一缓存节点;或者
在各个缓存节点分别对应的节点哈希值中查找小于所述数据哈希值、且与所述数据哈希值最接近的节点哈希值,将查找到的节点哈希值对应的缓存节点确定为用于存储所述数据的第一缓存节点。
在一种可能的设计中,所述映射管理模块,还用于在将所述数据存储到所述第一缓存节点中后,在设定存储区域存储所述数据哈希值、所述第一缓存节点的节点标识、以及所述数据在所述第一缓存节点中的存储地址的映射关系之前,确定在所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点。
第四方面,本申请实施例提供了一种基于分布式缓存系统的扩容装置,所述分布式缓存系统中已存在的各个缓存节点分别具有对应的节点哈希值,其中每个缓存节点的节点哈希值是基于哈希算法对缓存节点的节点标识计算得到的,所述装置包括:
配置模块,用于在确定所述分布式缓存系统中新增加一缓存节点时,采用所述哈希算法计算新增加缓存节点的节点哈希值;并根据所述新增加缓存节点的节点哈希值以及所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值,确定待迁移到所述新增加缓存节点中的待迁移数据对应的数据哈希值范围;
映射管理模块,在设定存储区域中查找落在所述数据哈希值范围内的每个数据哈希值分别对应的节点标识和存储地址;其中,所述设定存储区域中存储有不同的映射关系,不同的映射关系对应已存储在所述分布式缓存系统中已存在的各个缓存节点中的不同数据,任一映射关系为数据哈希值、该数据哈希值对应的数据存储在的缓存节点的节点标识、以及该数据哈希值对应的数据在缓存节点中的存储地址的映射关系;
协调模块,用于根据查找到的每对节点标识和存储地址,将对应的缓存节点中的对应存储地址中的数据,作为待迁移数据迁移到所述新增加缓存节点中;
其中,所述数据哈希值为针对对应数据通过所述哈希算法计算得到的。
在一种可能的设计中,所述配置模块,具体用于:
在所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值中查找大于所述新增加缓存节点的节点哈希值、且与所述新增加缓存节点的节点哈希值最接近的第一节点哈希值,将大于所述新增加缓存节点的节点哈希值且小于所述第一节点哈希值的哈希值范围作为待迁移数据对应的数据哈希值范围;或者,
在所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值中查找小于所述新增加缓存节点的节点哈希值、且与所述新增加缓存节点的节点哈希值最接近的第二节点哈希值,将小于所述新增加缓存节点的节点哈希值且大于所述第一节点哈希值的哈希值范围作为待迁移数据对应的数据哈希值范围。
在一种可能的设计中,所述映射管理模块,还用于:
在确定各个缓存节点中的至少一个缓存节点上存储的数据被删除时,基于所述哈希算法计算被删除的数据对应的数据哈希值;并
在所述设定存储区域中删除包含计算得到的数据哈希值的映射关系。
在一种可能的设计中,所述映射管理模块,还用于在所述设定存储区域中删除包含计算得到的数据哈希值的映射关系之前,确定在所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点。
在一种可能的设计中,所述协调模块,具体用于:
在待迁移数据所在的缓存节点与所述新增加缓存节点之间建立网络连接通道;
将所述待迁移数据,通过所述网络连接通道迁移到所述新增加缓存节点中。
在一种可能的设计中,所述协调模块,还用于:
确定在预设时长内所述网络连接通道无数据传输时,删除所述网络连接通道。
在一种可能的设计中,还包括客户端访问模块;
所述协调模块,还用于在确定所述待迁移数据全部成功迁移到所述新增加缓存节点上时,向所述客户端访问模块发送用于建立与所述新增加缓存节点之间的数据访问连接的指示信息;
所述客户端访问模块,用于在接收到所述指示信息后,建立与所述新增加缓存节点之间的数据访问连接。
在一种可能的设计中,所述装置还包括:
客户端访问模块,用于在将所述待迁移数据迁移到所述新增加缓存节点的过程中,禁止用户访问所述待迁移数据所在的缓存节点中的数据以及禁止用户向所述新增加缓存节点写入数据。
第五方面,本申请实施例提供了一种管理节点,包括:
通信接口、处理器和存储器;
所述存储器用于存储软件程序,所述处理器用于读取所述存储器中存储的软件程序,通过所述通信接口收发数据,并实现第一方面的任一种设计或者第二方面的任一种设计所述的方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储软件程序,所述软件程序在被一个或多个处理器读取并执行时可实现第一方面的任一种设计或者第二方面的任一种设计所述的方法。
附图说明
图1为一致性哈希算法对应的示意图;
图2为本申请实施例提供的分布式缓存系统架构图;
图3为本申请实施例提供的数据写入方法流程图;
图4为本申请实施例提供的哈希环1的示意图;
图5为本申请实施例提供的哈希环2的示意图;
图6为本申请实施例提供的基于分布式缓存系统的扩容方法示意图;
图7为本申请实施例提供的基于哈希环1确定的数据哈希值范围的示意图;
图8为本申请实施例提供的基于哈希环2确定的待迁移数据的示意图;
图9为本申请实施例提供的采用异步更新方式更新映射关系的示意图;
图10为本申请实施例提供的一种管理节点结构示意图;
图11为本申请实施例提供的分布式缓存系统架构图;
图12为本申请实施例提供的基于图11的分布式缓存系统架构的扩容方法示意图;
图13为本申请实施例提供的另一种管理节点结构示意图。
具体实施方式
本申请应用分布式缓存系统中,该系统可以应用于网页页面缓存、数据库缓存等方面,从而来满足用户对网络系统响应速度的要求。参见图2所示,分布式缓存系统中包括处于同一局域网内的n个缓存节点、产品运维系统以及管理节点。产品运维系统是整个分布式缓存系统中的全局管理设备,负责发起扩容请求以及控制分布式缓存系统的运行状态等等。
管理节点可以是分布式缓存系统中一个单独的应用服务器,比如客户端应用服务器。其中缓存节点,用于缓存用户需要访问或者写入的数据。缓存节点可以采用Redis数据库形式或者Memcached数据库形式等。其中缓存节点可以是一个物理节点,还可以是一个虚拟节点。即可以是由一个单独的服务器构成的物理节点,或者一个服务器中的一个虚拟节点。缓存节点还可以是由多个服务器组成的服务器组。在分布式缓存系统中,用户客户端的数据需要通过一致性哈希算法来分布到各个缓存节点上。针对服务器组,包括多个服务器。多个服务器可以分为主缓存实例以及从缓存实例。每个服务器组可以包括一个主缓存实例以及一个从缓存实例,还可以包括一个主缓存实例以及多个从缓存实例,其中主缓存实例主要用于缓存该服务器组中用户写入或者需要访问的数据,从缓存实例主要用于缓存备份数据。
下面针对本申请涉及到的概念进行解释说明。
哈希环:在基于一致性哈希(hash)算法的分布式缓存系统中,所有的缓存节点均根据其分别对应的节点哈希值而分布于一个数值空间逻辑环上,称为哈希环。该哈希环一般由管理节点生成并保存。在所述哈希环上的一段数据范围(如哈希环上1000~20000的hash值范围)称为一个哈希值范围。
哈希环的正方向:一般情况下,在哈希环上可以以顺时针作为正方向,也可以以逆时针作为正方向。一般来说,根据数据的哈希值查找到存储该数据的缓存节点的方向作为正方向。在本申请的实施例中,将顺时针方向定义为正方向来作为示例;也就是说,哈希环上的数据会按照顺时钟方向来选择缓存节点,而客户端在读取数据时也会根据所述数据对应的hash值在哈希环的顺时针方向上寻找最近的缓存节点进行操作。
缓存命中率:用户通过客户端设备访问缓存节点时,如果该缓存节点中缓存了要访问的数据时,则为命中。缓存命中率即为命中次数与访问次数的比值。
节点哈希值:是基于哈希算法针对缓存节点的节点标识计算得到的。其中,节点标识可以是缓存节点的指定名称、或者是缓存节点的唯一标识符、或者是缓存节点的端口号,或者是缓存节点的IP地址等。
数据哈希值:是基于与计算节点哈希值同样的哈希算法针对数据的键计算得到的。数据的键可以是数据的编号,数据的指定名称等等。
本申请提供一种基于分布式缓存系统的数据写入方法、扩容方法及装置,在现有技术的基础上,通过在管理节点中维护缓存数据的数据哈希值以及其存储地址的映射关系,从而查找待迁移的数据时,根据该映射关系查找落在待迁移的数据的数据哈希值范围内的每个数据哈希值对应的存储地址,从而从该存储地址取出数据迁移。相比现有技术,不再需要对待迁移数据的缓存节点中的所有缓存数据进行遍历并计算哈希值,来找到哈希值落在待迁移的数据的数据哈希值范围内的数据,从而在一定程度上降低了查找的时间复杂度,降低了缓存集群的响应时间,提高了可用性。
本申请中方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
下面对本申请的提供的方案进行具体说明,参见图3所示,为本申请实施例提供的数据写入方法流程图。分布式缓存系统中包括的各个缓存节点分别具有对应的节点哈希值,其中每个缓存节点的节点哈希值是基于哈希算法对缓存节点的节点标识计算得到的。
S301,管理节点接收到待写入所述分布式缓存系统的数据时,基于所述哈希算法计算所述数据的数据哈希值。
S302,所述管理节点根据所述数据哈希值以及各个缓存节点分别对应的节点哈希值,在所述各个缓存节点中确定用于存储所述数据的第一缓存节点。
其中,管理节点在所述各个缓存节点中确定用于存储所述数据的第一缓存节点时,具体的可以通过如下方式实现:
第一种可能的实现方式中,按照正方向查找缓存节点:
所述管理节点在各个缓存节点分别对应的节点哈希值中查找大于所述数据哈希值、且与所述数据哈希值最接近的节点哈希值,将查找到的节点哈希值对应的缓存节点确定为用于存储所述数据的第一缓存节点。
第二种可能的实现方式中,按照反方向查找缓存节点:
所述管理节点在各个缓存节点分别对应的节点哈希值中查找小于所述数据哈希值、且与所述数据哈希值最接近的节点哈希值,将查找到的节点哈希值对应的缓存节点确定为用于存储所述数据的第一缓存节点。
参见图4所示,以图2所示的分布式缓存系统为例。将n个缓存节点配置到0~232的哈希环1上,即哈希环1中体现的是缓存节点的标识与缓存节点的节点哈希值之间的第一映射关系。该第一映射关系可以存储在一个缓存管理系统中的一个存储区域中。图4中所示的哈希环的数值在正方向(以顺时针方向为例)上逐渐增大。
例如:假设待写入的数据为A1、A2和A3。通过哈希计算,Hash(A1)=h1,Hash(A2)=h2,Hash(A2)=h3。其中,Hash()表示哈希算法的函数。h1、h2以及h3在哈希环1中的位置,参见图4,h1位于缓存节点1以及缓存节点2之间,h2位于缓存节点2以及缓存节点3之间,h3位于缓存节点i以及缓存节点i+1之间。其中,图4中,哈希环1中的相对较大的圆圈表示缓存节点的节点哈希值在哈希环1中的位置,相对较小的圆圈表示数据哈希值在哈希环1中的位置。本发明实施例中以顺时针为正方向为例,因此,确定数据A1应该存储在缓存节点2中,数据A2应该存储在缓存节点3中,而数据A3应该存储在缓存节点i+1中。
S303,所述管理节点将所述数据存储到所述第一缓存节点中。
S304,所述管理节点在设定存储区域存储所述数据哈希值、所述第一缓存节点的节点标识、以及所述数据在所述第一缓存节点中的存储地址的映射关系。
上述映射关系可以采用二叉搜索树的数据结构存储,比如红黑树等等。这种数据结构的搜索计算最高时间复杂度为O(logN),从而有利于缩短扩容需要的时间。
其中,步骤S303以及步骤S304的执行先后顺序,本申请实施例中不作具体限定。
基于图4所示的例子,在步骤S304中,管理节点将待写入的数据配置到0~232的哈希环2上,参见图5所示,哈希环2中中哈希环的数值变化以及取值范围与步骤S302中采用的哈希环1相同。并且计算数据的数据哈希值的哈希算法与计算缓存节点的节点哈希值的哈希算法相同。其中,图5中,哈希环2中的小圆圈表示数据哈希值在哈希环中的位置。哈希环2中体现的是数据哈希值、以及存储数据的缓存节点中的存储地址之间的映射关系。在数据写入缓存节点后,将在哈希环2中增加该写入的数据的数据哈希值以及存储该写入的数据的缓存节点中的存储地址的映射关系。哈希环2主要用于在针对分布式缓存系统进行扩容、查找待迁移的数据时,根据该映射关系查找落在待迁移的数据的数据哈希值范围内的每个数据哈希值对应的存储地址,从而从该存储地址取出数据迁移。相比现有技术,不再需要对待迁移数据的缓存节点中的所有缓存数据进行遍历并计算哈希值,来找到哈希值落在待迁移的数据的数据哈希值范围内的数据,从而在一定程度上降低了查找的时间复杂度,降低了缓存集群的响应时间,提高了可用性。
一种可能的实现方式中,在分布式缓存系统开始建立时,可以将所有的数据缓存到各个缓存节点中。从而针对所有的数据建立哈希环2。而在维护哈希环2时,采用异步更新方式。也就是有新数据存储到分布式缓存系统时,不立即更新哈希环2,而是在确定所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点时,再针对哈希环2进行更新。还可以周期性的更新哈希环2。
上述在写入数据后,创建哈希环2的基础上,本申请实施例还提供了一种基于分布式缓存系统的扩容方法,参见图6所示。
S601,产品运维管理系统向管理节点发送扩容请求,管理节点接收到扩容请求。所述扩容请求包括新增加的缓存节点的相关信息。
其中,在产品运维管理系统提出扩容请求时,根据需求可以扩容一个缓存节点还可以扩容多个缓存节点,本申请对此不作具体限定。相关信息可以包括新增的缓存节点的数量以及缓存节点的唯一标识符。唯一标识符可以是缓存节点的指定名称、缓存节点的IP地址加端口号等。
S602,所述管理节点在接收到所述扩容请求后,确定所述分布式缓存系统中新增加一缓存节点,所述管理节点采用所述哈希算法计算新增加缓存节点的节点哈希值。
S603,所述管理节点根据所述新增加缓存节点的节点哈希值以及所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值,确定待迁移到所述新增加缓存节点中的待迁移数据对应的数据哈希值范围。
可选地,所述管理节点确定待迁移数据对应的数据哈希值范围时,可以通过如下方式实现:
第一种可能的实现方式中,按照正方向确定数据哈希值范围:
所述管理节点在所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值中查找大于所述新增加缓存节点的节点哈希值、且与所述新增加缓存节点的节点哈希值最接近的第一节点哈希值,将大于所述新增加缓存节点的节点哈希值且小于所述第一节点哈希值的哈希值范围作为待迁移数据对应的数据哈希值范围。
参见图7所示,以图2所示的分布式缓存系统以及图4所示的哈希环1为例,将n个缓存节点配置到0~232的哈希环1上,即哈希环1中体现的是缓存节点的标识与缓存节点的节点哈希值之间的第一映射关系。比如新增的缓存节点为缓存节点K,通过采用同样的哈希算法计算该缓存节点K的节点哈希值,例如缓存节点K的节点哈希值hK大于缓存节点i的节点哈希值,且小于缓存节点i+1的节点哈希值(hi+1)。按照顺时针为正方向,则确定待迁移数据对应的数据哈希值范围为(hK,hi+1)。如果有多个新增加的缓存节点,同样的方式确定数据哈希值范围。
第二种可能的实现方式中,按照反方向确定数据哈希值范围:
所述管理节点在所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值中查找小于所述新增加缓存节点的节点哈希值、且与所述新增加缓存节点的节点哈希值最接近的第二节点哈希值,将小于所述新增加缓存节点的节点哈希值且大于所述第一节点哈希值的哈希值范围作为待迁移数据对应的数据哈希值范围。
S604,所述管理节点在设定存储区域中查找落在所述数据哈希值范围内的每个数据哈希值分别对应的节点标识和存储地址;其中,所述设定存储区域中存储有不同的映射关系,不同的映射关系对应已存储在所述分布式缓存系统中已存在的各个缓存节点中的不同数据,任一映射关系为数据哈希值、该数据哈希值对应的数据存储在的缓存节点的节点标识、以及该数据哈希值对应的数据在缓存节点中的存储地址的映射关系。
以图5所示的哈希环2为例,所述设定存储区域中存储的为哈希环2中对应的映射关系。参见图8所示,在图7所示的示例的基础上,确定待迁移数据对应的数据哈希值范围为(hK,hi+1),则在图8所示的哈希环2中查找数据哈希值范围为(hK,hi+1),从而确定了存储待迁移数据所在的存储地址。
S605,所述管理节点根据查找到的每对节点标识和存储地址,在对应的缓存节点中的对应存储地址中读取数据,作为待迁移数据写入到所述新增加缓存节点中。
在一种可能的设计中,管理节点可以采用实时更新方式更新哈希环2,还可以采用异步更新方式更新哈希环2,即更新数据哈希值与存储所述数据的存储地址的映射关系。
采用实时更新方式时,具体可以通过如下方式更新:
管理节点在确定各个缓存节点中的至少一个缓存节点上存储的数据被删除时,基于所述哈希算法计算被删除的数据对应的数据哈希值;并在所述设定存储区域中删除包含计算得到的数据哈希值的映射关系。管理节点在确定各个缓存节点中的至少一个缓存节点写入新的数据时,将在哈希环2中增加该写入的数据的数据哈希值以及存储该写入的数据的缓存节点中的存储地址的映射关系。
采用异步更新方式时,具体可以通过该如下方式更新:
所述管理节点在确定各个缓存节点中的至少一个缓存节点上存储的数据被删除时,所述管理节点不实时的在所述设定存储区域中删除包含计算得到的数据哈希值的映射关系,而是在确定在所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点时,在所述设定存储区域中删除包含计算得到的数据哈希值的映射关系。同理,写入数据也亦如此。缓存节点还可以周期性的更新哈希环2中的映射关系。
参见图9所示,为管理节点采用异步更新方式更新映射关系:
S901,管理节点对缓存节点发起增删数据请求。所述增删数据请求用于请求删除数据或者写入新的数据。
其中,管理节点对缓存节点发起增删数据请求,可以是由用户通过管理节点请求删除数据产生的,还可以是用户通过管理节点请求写入新的数据产生的,或者是管理节点确定待迁移的数据时,对保存待迁移的数据的缓存节点以及新增加缓存节点发起的。
S902,缓存节点在基于所述增删数据请求确定删除数据或者写入新的数据时,将操作结果记录为日志文件。
具体的,缓存节点对每项增删数据操作,将操作的数据的键key(比如名字name),操作类别(action-type)以及生效时间(valid-time)记录下来。如:{key:name,action-type:删除(delete,)valid-time:当前系统时间(current system time)}。
可选地,缓存节点可以周期性向管理节点上报日志文件,还可以在接收到管理节点的上报请求时,向管理节点上报日志文件。
当管理节点确定更新哈希环2中的映射关系时,步骤S903,管理节点向各个缓存节点发送上报请求。
S904,缓存节点在接收所述上报请求后,将保存的日志文件上报给管理节点。
S905,管理节点根据接收到的各个缓存节点上报的日志文件更新哈希环2中的映射关系,从而保证哈希环2中的映射关系和当前时刻分布式缓存系统中缓存的数据的存储位置信息一致。
在一种可能的实现方式中,步骤S605中,所述管理节点将待迁移数据写入到所述新增加缓存节点中时,可以通过如下方式实现:
所述管理节点在待迁移数据所在的缓存节点与所述新增加缓存节点之间建立网络连接通道;
所述管理节点将所述待迁移数据,通过所述网络连接通道迁移到所述新增加缓存节点中。
其中,网络连接通道可以是socket连接。管理节点为了避免每迁移一个数据都建立一次连接,可以将建立的网络连接通道缓存,避免多次建立连接引起的时间延时。从而所述管理节点确定在预设时长内所述网络连接通道无数据传输时,删除所述网络连接通道。
管理节点在建立网络连接通道后,管理节点可以向待迁移数据所在的缓存节点发出迁移命令,将数据从待迁移数据所在的缓存节点迁移到新增加缓存节点时,可以采用单个数据串行迁移的方式,也可以利用缓存节点的管道特性进行并行迁移。
在一种可能的实现方式中,管理节点监控迁移状态,若确定所述待迁移数据全部成功迁移到所述新增加缓存节点上时,建立与所述新增加缓存节点之间的数据访问连接。通过上述方式,在迁移成功后,才建立与所述新增加缓存节点之间的数据访问连接,从而保证用户在数据迁移过程中,不能访问新增加的缓存节点中的数据,从而提高了访问命中率。
在一种可能的设计中,所述管理节点在将所述待迁移数据写入到所述新增加缓存节点的过程中,禁止访问所述待迁移数据所在的缓存节点中的数据以及禁止向所述新增加缓存节点写入数据。具体的,可以采用读写锁技术禁止访问所述待迁移数据所在的缓存节点的数据以及禁止向所述新增加缓存节点写入数据,直到建立与所述新增加缓存节点之间的数据访问连接后。若确定所述待迁移数据未成功迁移到所述新增加缓存节点上时,所述管理节点记录待迁移的数据的状态,并不会建立与所述新增加缓存节点之间的数据访问连接。
管理节点在建立与所述新增加缓存节点之间的数据访问连接后,可以向产品运维系统发送状态报告,状态报告用于表明成功将所述新增加缓存节点加入到分布式缓存系统中了。
基于与方法实施例同样的发明构思,本申请实施例还提供了一种管理节点,用于执行数据写入方法流程以及扩容方法流程。参见图10所示,所述管理节点包括:客户端访问模块1001,映射管理模块1002,配置模块1003、协调模块1004。基于图10所示的管理节点,分布式缓存系统架构图参见图11所示。图11所示的分布式缓存系统除上述4个模块以外,还包括n个缓存节点、产品运维系统。图10中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请实施例中各功能模块可以集成在一个处理器中。当然图10中的每个功能模块均可以是一个物理设备,也可以两个或两个以上模块集成在一个物理设备中。上述模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
客户端访问模块1001,用于基于一致性哈希算法实现数据均衡。具体的在写入数据时,通过如下方式实现:
在接收到待写入所述分布式缓存系统的数据时,基于所述哈希算法计算所述数据的数据哈希值;并根据所述数据哈希值以及各个缓存节点分别对应的节点哈希值,在所述各个缓存节点中确定用于存储所述数据的第一缓存节点;并将所述数据存储到所述第一缓存节点中。
各个缓存节点用于缓存用户需要访问或者写入的数据。在发生数据新增或者删除时,缓存节点将操作结果写入日志文件,操作结果是指对数据新增或者删除。
映射管理模块1002,用于根据缓存节点的日志文件,更新哈希环2中的映射关系,具体的,在设定存储区域存储所述数据哈希值、所述第一缓存节点的节点标识、以及所述数据在所述第一缓存节点中的存储地址的映射关系。
在分布式缓存系统中需要增加新的缓存节点时,配置模块1003根据一致性哈希算法算法计算分布式缓存系统中待迁移的数据哈希值范围点。获得需要迁移的数据哈希值范围后,根据哈希环2中的映射关系,得到待迁移的数据的原存储位置。
协调模块1004根据确定出的待迁移数据、迁入的缓存节点以及迁出的缓存节点之间的对应关系,在迁出与迁入的缓存节点间建立网络连接通道,进行数据迁移,并监控迁移的状态。如果迁移成功,那么客户端访问模块1001采用读写锁技术锁住对数据的访问与写入请求,直到成功将新增加的缓存节点加入到分布式缓存系统当中。若迁移不成功,协调模块记录相应的状态进行后续处理,且新增加的缓存节点将不会被加入到现有的分布式缓存系统中。
所述映射管理模块1002可以定期更新哈希环2中的映射关系,根据各缓存节点的日志文件中记录的数据新增或者删除的操作结果,更新哈希环2中的映射关系。更新的时间间隔可以自定义。还可以在发生扩容时进行更新。具体的,所述映射管理模块1002,在将所述数据存储到所述第一缓存节点中后,确定在所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点时,在设定存储区域存储所述数据哈希值、所述第一缓存节点的节点标识、以及所述数据在所述第一缓存节点中的存储地址的映射关系。
所述缓存节点对新增或删除数据的操作结果的记录方法为,在缓存节点中建立日志文件,并以追加的方式将操作结果记录。
可选地,所述客户端访问模块1001,在所述各个缓存节点中确定用于存储所述数据的第一缓存节点时,具体用于:
在各个缓存节点分别对应的节点哈希值中查找大于所述数据哈希值、且与所述数据哈希值最接近的节点哈希值,将查找到的节点哈希值对应的缓存节点确定为用于存储所述数据的第一缓存节点;或者,
在各个缓存节点分别对应的节点哈希值中查找小于所述数据哈希值、且与所述数据哈希值最接近的节点哈希值,将查找到的节点哈希值对应的缓存节点确定为用于存储所述数据的第一缓存节点。
基于图11所示的分布式缓存系统的架构,下面针对分布式缓存系统的扩容方法进行具体说明,参见图12所示。
产品运维系统向配置模块发起扩容请求,所述扩容请求包括新增加的缓存节点的相关信息(S1201)。在配置模块1003接收到扩容请求时,确定所述分布式缓存系统中新增加一缓存节点。
配置模块1003计算新增加的缓存节点的数据分片信息(S1202),具体的采用所述哈希算法计算新增加缓存节点的节点哈希值;并根据所述新增加缓存节点的节点哈希值以及所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值,确定待迁移到所述新增加缓存节点中的待迁移数据对应的数据哈希值范围。
所述配置模块,确定待迁移到所述新增加缓存节点中的待迁移数据对应的数据哈希值范围时,具体通过如下方式:在所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值中查找大于所述新增加缓存节点的节点哈希值、且与所述新增加缓存节点的节点哈希值最接近的第一节点哈希值,将大于所述新增加缓存节点的节点哈希值且小于所述第一节点哈希值的哈希值范围作为待迁移数据对应的数据哈希值范围;或者,在所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值中查找小于所述新增加缓存节点的节点哈希值、且与所述新增加缓存节点的节点哈希值最接近的第二节点哈希值,将小于所述新增加缓存节点的节点哈希值且大于所述第一节点哈希值的哈希值范围作为待迁移数据对应的数据哈希值范围。
配置模块1003将确定的待迁移数据对应的数据哈希值范围发送给映射管理模块1002(S1203)。
映射管理模块1002,查找待迁移数据的范围(S1204),待迁移数据的范围包括落在所述数据哈希值范围内的每个数据哈希值分别对应的节点标识和存储地址。具体的,映射管理模块1002在设定存储区域中查找落在所述数据哈希值范围内的每个数据哈希值分别对应的节点标识和存储地址;其中,所述设定存储区域中存储有不同的映射关系,不同的映射关系对应已存储在所述分布式缓存系统中已存在的各个缓存节点中的不同数据,任一映射关系为数据哈希值、该数据哈希值对应的数据存储在的缓存节点的节点标识、以及该数据哈希值对应的数据在缓存节点中的存储地址的映射关系。所述映射管理模块1002将确定的待迁移数据的范围以及新增加的缓存节点信息发送给协调模块1004(S1205)。
协调模块1004,根据查找到的每对节点标识和存储地址,将对应的缓存节点中的对应存储地址中的数据,作为待迁移数据迁移到所述新增加缓存节点中。具体的,所述协调模块1004在待迁移数据的范围对应的缓存节点以及新增加的缓存节点之间建立网络连接通道,并向在待迁移数据的范围对应的缓存节点发出迁移命令进行数据迁移(S1206)。从而所述待迁移数据的范围对应的缓存节点与新增加缓存节点之间通过所述网络连接通道实现待迁移数据的迁移。所述协调模块1004,还用于确定在预设时长内所述网络连接通道无数据传输时,删除所述网络连接通道。
所述协调模块1004,监控所述待迁移数据是否成功迁移(S1207)。监控到所述待迁移数据成功迁移后,向所述客户端访问模块发送用于建立与所述新增加缓存节点之间的数据访问连接的指示信息(S1208);所述客户端访问模块1001,用于在接收到所述指示信息后,建立与所述新增加缓存节点之间的数据访问连接(S1209)。
其中,映射管理模块1002维护的哈希环2中的映射关系可以不与缓存节点中存储的数据的状态一直保持同步,只要在产生扩容请求之前,保证哈希环2中的映射关系与缓存节点中存储的数据的状态同步即可。因此映射管理模块1002在维护哈希环2时,可以采用异步更新方式。缓存节点在执行删除或者新增数据后,可以将操作结果记录为日志文件。具体的,缓存节点对每项增删数据操作,将操作的数据的键key(比如名字name),操作类别(action-type)以及生效时间(valid-time)记录下来。如:{key:name,action-type:删除(delete,)valid-time:当前系统时间(current system time)}。缓存节点可以周期性向管理节点上报日志文件,还可以在接收到映射管理模块1002的上报请求时,向映射管理模块1002上报日志文件。所述映射管理模块1002可以在确定在所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点时,向各个缓存节点发送上报请求。
从而,所述映射管理模块1002接收到至少一个缓存节点上报的日志文件,则确定各个缓存节点中的至少一个缓存节点上存储的数据被删除或者至少一个缓存节点上新增数据时,基于所述哈希算法计算被删除的数据或者新增数据对应的数据哈希值;并在所述设定存储区域中删除包含计算得到的数据哈希值的映射关系或者增加计算得到的数据哈希值的映射关系。
管理节点还可以基于计算机系统的硬件结构来实现。在本申请各个实施例中的各功能模块可以集成在计算机系统的处理器中实现,如图13所示,管理节点可以包括通信接口1310、处理器1320以及存储器1330。上述图10、图11所示的模块对应的实体的硬件可以为处理器1320。处理器1320通过通信接口1310收发数据,并用于实现图3~图9中所述的管理节点所执行的方法。在实现过程中,处理流程的各步骤可以通过处理器1320中的硬件的集成逻辑电路或者软件形式的指令完成。处理器1320可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。处理器1320用于实现上述方法所执行的程序代码可以存储在存储器1330中。存储器1330可以是非易失性存储器,比如硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)等,还可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM)。存储器1330是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
本申请实施例中不限定上述通信接口1310、处理器1320以及存储器1330之间的具体连接介质。本申请实施例在图13中以存储器1330、处理器1320以及通信接口1310之间通过总线1340连接,总线在图13中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例中,通过管理节点管理数据哈希值与数据存储地址的映射关系,降低了查找的时间复杂度,降低了缓存集群的响应时间,提高了可用性。实现了快速、准确的查找到需要迁移的数据。在针对数据进行迁移过程中,禁止访问迁移数据以及禁止向新增的缓存节点写入新的数据,不会降低缓存命中率。另外,扩容时,可以单节点也可以多节点一次扩容。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (24)
1.一种基于分布式缓存系统的数据写入方法,其特征在于,所述分布式缓存系统中包括的各个缓存节点分别具有对应的节点哈希值,其中每个缓存节点的节点哈希值是基于哈希算法对缓存节点的节点标识计算得到的,所述方法包括:
用于管理所述各个缓存节点的管理节点接收到待写入所述分布式缓存系统的数据时,基于所述哈希算法计算所述数据的数据哈希值;
所述管理节点根据所述数据哈希值以及各个缓存节点分别对应的节点哈希值,在所述各个缓存节点中确定用于存储所述数据的第一缓存节点;
所述管理节点将所述数据存储到所述第一缓存节点中;
所述管理节点在设定存储区域存储所述数据哈希值、所述第一缓存节点的节点标识、以及所述数据在所述第一缓存节点中的存储地址的映射关系。
2.如权利要求1所述的方法,其特征在于,所述管理节点在所述各个缓存节点中确定用于存储所述数据的第一缓存节点,包括:
所述管理节点在各个缓存节点分别对应的节点哈希值中查找大于所述数据哈希值、且与所述数据哈希值最接近的节点哈希值,将查找到的节点哈希值对应的缓存节点确定为用于存储所述数据的第一缓存节点;或者
所述管理节点在各个缓存节点分别对应的节点哈希值中查找小于所述数据哈希值、且与所述数据哈希值最接近的节点哈希值,将查找到的节点哈希值对应的缓存节点确定为用于存储所述数据的第一缓存节点。
3.如权利要求1或2所述的方法,其特征在于,所述管理节点将所述数据存储到所述第一缓存节点中后,在设定存储区域存储所述数据哈希值、所述第一缓存节点的节点标识、以及所述数据在所述第一缓存节点中的存储地址的映射关系之前,所述方法还包括:
所述管理节点确定在所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点。
4.一种基于分布式缓存系统的扩容方法,其特征在于,所述分布式缓存系统中已存在的各个缓存节点分别具有对应的节点哈希值,其中每个缓存节点的节点哈希值是基于哈希算法对缓存节点的节点标识计算得到的,所述方法包括:
用于管理所述各个缓存节点的管理节点在确定所述分布式缓存系统中新增加一缓存节点时,采用所述哈希算法计算新增加缓存节点的节点哈希值;
所述管理节点根据所述新增加缓存节点的节点哈希值以及所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值,确定待迁移到所述新增加缓存节点中的待迁移数据对应的数据哈希值范围;
所述管理节点在设定存储区域中查找落在所述数据哈希值范围内的每个数据哈希值分别对应的节点标识和存储地址;其中,所述设定存储区域中存储有不同的映射关系,不同的映射关系对应已存储在所述分布式缓存系统中已存在的各个缓存节点中的不同数据,任一映射关系为数据哈希值、该数据哈希值对应的数据存储在的缓存节点的节点标识、以及该数据哈希值对应的数据在缓存节点中的存储地址的映射关系;
所述管理节点根据查找到的每对节点标识和存储地址,在对应的缓存节点中的对应存储地址中读取数据,作为待迁移数据写入到所述新增加缓存节点中;
其中,所述数据哈希值为针对对应数据通过所述哈希算法计算得到的。
5.如权利要求4所述的方法,其特征在于,所述管理节点确定待迁移数据对应的数据哈希值范围,包括:
所述管理节点在所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值中查找大于所述新增加缓存节点的节点哈希值、且与所述新增加缓存节点的节点哈希值最接近的第一节点哈希值,将大于所述新增加缓存节点的节点哈希值且小于所述第一节点哈希值的哈希值范围作为待迁移数据对应的数据哈希值范围;或者,
所述管理节点在所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值中查找小于所述新增加缓存节点的节点哈希值、且与所述新增加缓存节点的节点哈希值最接近的第二节点哈希值,将小于所述新增加缓存节点的节点哈希值且大于所述第一节点哈希值的哈希值范围作为待迁移数据对应的数据哈希值范围。
6.如权利要求4或5所述的方法,其特征在于,所述方法还包括:
所述管理节点在确定各个缓存节点中的至少一个缓存节点上存储的数据被删除时,基于所述哈希算法计算被删除的数据对应的数据哈希值;并
在所述设定存储区域中删除包含计算得到的数据哈希值的映射关系。
7.如权利要求6所述的方法,其特征在于,所述管理节点在所述设定存储区域中删除包含计算得到的数据哈希值的映射关系之前,所述方法还包括:
所述管理节点确定在所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点。
8.如权利要求4至7任一项所述的方法,其特征在于,所述管理节点将所述待迁移数据写入到所述新增加缓存节点中,包括:
所述管理节点在待迁移数据所在的缓存节点与所述新增加缓存节点之间建立网络连接通道;
所述管理节点将所述待迁移数据,通过所述网络连接通道迁移到所述新增加缓存节点中。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
所述管理节点确定在预设时长内所述网络连接通道无数据传输时,删除所述网络连接通道。
10.如权利要求4至9任一项所述的方法,其特征在于,所述方法还包括:
所述管理节点若确定所述待迁移数据全部成功迁移到所述新增加缓存节点上时,建立与所述新增加缓存节点之间的数据访问连接。
11.如权利要求4至10任一项所述的方法,其特征在于,所述方法还包括:
所述管理节点在将所述待迁移数据写入到所述新增加缓存节点的过程中,禁止访问所述待迁移数据所在的缓存节点中的数据以及禁止向所述新增加缓存节点写入数据。
12.一种基于分布式缓存系统的数据写入装置,其特征在于,所述分布式缓存系统中包括的各个缓存节点分别具有对应的节点哈希值,其中每个缓存节点的节点哈希值是基于哈希算法对缓存节点的节点标识计算得到的,所述装置包括:
客户端访问模块,用于在接收到待写入所述分布式缓存系统的数据时,基于所述哈希算法计算所述数据的数据哈希值;并根据所述数据哈希值以及各个缓存节点分别对应的节点哈希值,在所述各个缓存节点中确定用于存储所述数据的第一缓存节点;并将所述数据存储到所述第一缓存节点中;
映射管理模块,用于在设定存储区域存储所述数据哈希值、所述第一缓存节点的节点标识、以及所述数据在所述第一缓存节点中的存储地址的映射关系。
13.如权利要求12所述的装置,其特征在于,所述客户端访问模块,在所述各个缓存节点中确定用于存储所述数据的第一缓存节点时,具体用于:
在各个缓存节点分别对应的节点哈希值中查找大于所述数据哈希值、且与所述数据哈希值最接近的节点哈希值,将查找到的节点哈希值对应的缓存节点确定为用于存储所述数据的第一缓存节点;或者
在各个缓存节点分别对应的节点哈希值中查找小于所述数据哈希值、且与所述数据哈希值最接近的节点哈希值,将查找到的节点哈希值对应的缓存节点确定为用于存储所述数据的第一缓存节点。
14.如权利要求12或13所述的装置,其特征在于,所述映射管理模块,还用于在将所述数据存储到所述第一缓存节点中后,在设定存储区域存储所述数据哈希值、所述第一缓存节点的节点标识、以及所述数据在所述第一缓存节点中的存储地址的映射关系之前,确定在所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点。
15.一种基于分布式缓存系统的扩容装置,其特征在于,所述分布式缓存系统中已存在的各个缓存节点分别具有对应的节点哈希值,其中每个缓存节点的节点哈希值是基于哈希算法对缓存节点的节点标识计算得到的,所述装置包括:
配置模块,用于在确定所述分布式缓存系统中新增加一缓存节点时,采用所述哈希算法计算新增加缓存节点的节点哈希值;并根据所述新增加缓存节点的节点哈希值以及所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值,确定待迁移到所述新增加缓存节点中的待迁移数据对应的数据哈希值范围;
映射管理模块,在设定存储区域中查找落在所述数据哈希值范围内的每个数据哈希值分别对应的节点标识和存储地址;其中,所述设定存储区域中存储有不同的映射关系,不同的映射关系对应已存储在所述分布式缓存系统中已存在的各个缓存节点中的不同数据,任一映射关系为数据哈希值、该数据哈希值对应的数据存储在的缓存节点的节点标识、以及该数据哈希值对应的数据在缓存节点中的存储地址的映射关系;
协调模块,用于根据查找到的每对节点标识和存储地址,将对应的缓存节点中的对应存储地址中的数据,作为待迁移数据迁移到所述新增加缓存节点中;
其中,所述数据哈希值为针对对应数据通过所述哈希算法计算得到的。
16.如权利要求15所述的装置,其特征在于,所述配置模块,具体用于:
在所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值中查找大于所述新增加缓存节点的节点哈希值、且与所述新增加缓存节点的节点哈希值最接近的第一节点哈希值,将大于所述新增加缓存节点的节点哈希值且小于所述第一节点哈希值的哈希值范围作为待迁移数据对应的数据哈希值范围;或者,
在所述分布式缓存系统中已存在的各个缓存节点分别对应的节点哈希值中查找小于所述新增加缓存节点的节点哈希值、且与所述新增加缓存节点的节点哈希值最接近的第二节点哈希值,将小于所述新增加缓存节点的节点哈希值且大于所述第一节点哈希值的哈希值范围作为待迁移数据对应的数据哈希值范围。
17.如权利要求15或16所述的装置,其特征在于,所述映射管理模块,还用于:
在确定各个缓存节点中的至少一个缓存节点上存储的数据被删除时,基于所述哈希算法计算被删除的数据对应的数据哈希值;并
在所述设定存储区域中删除包含计算得到的数据哈希值的映射关系。
18.如权利要求17所述的装置,其特征在于,所述映射管理模块,还用于在所述设定存储区域中删除包含计算得到的数据哈希值的映射关系之前,确定在所述分布式缓存系统中需增加新的缓存节点或者需删除已存在的缓存节点。
19.如权利要求15至18任一项所述的装置,其特征在于,所述协调模块,具体用于:
在待迁移数据所在的缓存节点与所述新增加缓存节点之间建立网络连接通道;
将所述待迁移数据,通过所述网络连接通道迁移到所述新增加缓存节点中。
20.如权利要求19所述的装置,其特征在于,所述协调模块,还用于:
确定在预设时长内所述网络连接通道无数据传输时,删除所述网络连接通道。
21.如权利要求15至20任一项所述的装置,其特征在于,还包括客户端访问模块;
所述协调模块,还用于在确定所述待迁移数据全部成功迁移到所述新增加缓存节点上时,向所述客户端访问模块发送用于建立与所述新增加缓存节点之间的数据访问连接的指示信息;
所述客户端访问模块,用于在接收到所述指示信息后,建立与所述新增加缓存节点之间的数据访问连接。
22.如权利要求15至21任一项所述的装置,其特征在于,所述装置还包括:
客户端访问模块,用于在将所述待迁移数据迁移到所述新增加缓存节点的过程中,禁止用户访问所述待迁移数据所在的缓存节点中的数据以及禁止用户向所述新增加缓存节点写入数据。
23.一种管理节点,其特征在于,包括:
通信接口、处理器和存储器;
所述存储器用于存储软件程序,所述处理器用于读取所述存储器中存储的软件程序,通过所述通信接口收发数据,并实现权利要求1至11任一项所述的方法。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储软件程序,所述软件程序在被一个或多个处理器读取并执行时可实现权利要求1至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710289673.7A CN108810041B (zh) | 2017-04-27 | 2017-04-27 | 一种分布式缓存系统的数据写入及扩容方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710289673.7A CN108810041B (zh) | 2017-04-27 | 2017-04-27 | 一种分布式缓存系统的数据写入及扩容方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108810041A true CN108810041A (zh) | 2018-11-13 |
CN108810041B CN108810041B (zh) | 2021-03-05 |
Family
ID=64069471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710289673.7A Active CN108810041B (zh) | 2017-04-27 | 2017-04-27 | 一种分布式缓存系统的数据写入及扩容方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108810041B (zh) |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388351A (zh) * | 2018-12-18 | 2019-02-26 | 平安科技(深圳)有限公司 | 一种分布式数据存储的方法及相关装置 |
CN109783564A (zh) * | 2019-01-28 | 2019-05-21 | 上海雷腾软件股份有限公司 | 支持多节点的分布式缓存方法及设备 |
CN109800236A (zh) * | 2019-01-28 | 2019-05-24 | 上海雷腾软件股份有限公司 | 支持多节点的分布式缓存方法及设备 |
CN109828971A (zh) * | 2019-01-28 | 2019-05-31 | 上海雷腾软件股份有限公司 | 支持多节点的分布式缓存方法及设备 |
CN110049091A (zh) * | 2019-01-10 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 数据存储方法及装置、电子设备、存储介质 |
CN110083312A (zh) * | 2019-04-28 | 2019-08-02 | 联想(北京)有限公司 | 磁盘扩容方法、装置及计算机设备 |
CN110083313A (zh) * | 2019-05-06 | 2019-08-02 | 北京奇艺世纪科技有限公司 | 一种数据缓存方法及装置 |
CN110336891A (zh) * | 2019-07-24 | 2019-10-15 | 中南民族大学 | 缓存数据分布方法、设备、存储介质及装置 |
CN110413236A (zh) * | 2019-08-01 | 2019-11-05 | 北京阿尔山金融科技有限公司 | 数据的管理方法、装置以及电子设备 |
CN110413845A (zh) * | 2019-07-29 | 2019-11-05 | 青岛海尔科技有限公司 | 基于物联网操作系统的资源存储方法及装置 |
CN110471629A (zh) * | 2019-08-22 | 2019-11-19 | 中国工商银行股份有限公司 | 一种动态扩容的方法、装置、存储介质、设备及系统 |
CN110968265A (zh) * | 2019-11-05 | 2020-04-07 | 北京字节跳动网络技术有限公司 | 分片扩容方法、装置及电子设备 |
CN110990483A (zh) * | 2019-11-26 | 2020-04-10 | 上海莉莉丝科技股份有限公司 | 分布式缓存中的缓存节点的数据访问和控制方法及系统 |
CN111144455A (zh) * | 2019-12-12 | 2020-05-12 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、设备及可读存储介质 |
CN111177154A (zh) * | 2019-12-27 | 2020-05-19 | 掌迅亿通(北京)信息科技有限公司 | 分布式数据库缓存方法及其哈希环优化 |
CN111274310A (zh) * | 2018-12-05 | 2020-06-12 | 中国移动通信集团山东有限公司 | 一种分布式数据缓存方法及系统 |
CN111723148A (zh) * | 2020-04-10 | 2020-09-29 | 浙江大华技术股份有限公司 | 数据存储方法及装置、存储介质、电子装置 |
CN111930716A (zh) * | 2020-07-31 | 2020-11-13 | 中国工商银行股份有限公司 | 一种数据库扩容方法、装置及系统 |
CN112083914A (zh) * | 2020-08-31 | 2020-12-15 | 深圳航天科技创新研究院 | 实现对象模型嵌入式操作系统软总线的方法及系统 |
CN112100273A (zh) * | 2020-08-12 | 2020-12-18 | 福建天泉教育科技有限公司 | 集群数据扩容的方法、存储介质 |
CN112506606A (zh) * | 2020-11-23 | 2021-03-16 | 北京达佳互联信息技术有限公司 | 集群中容器的迁移方法、装置、设备和介质 |
CN112558869A (zh) * | 2020-12-11 | 2021-03-26 | 北京航天世景信息技术有限公司 | 基于大数据遥感影像缓存方法 |
CN113672524A (zh) * | 2021-08-20 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 基于多级缓存的数据处理方法及系统 |
CN113778692A (zh) * | 2021-11-10 | 2021-12-10 | 腾讯科技(深圳)有限公司 | 一种数据处理的方法及装置、计算机设备和存储介质 |
US11520702B2 (en) | 2019-10-01 | 2022-12-06 | Wipro Limited | System and method for managing cache memory |
CN115442439A (zh) * | 2022-08-31 | 2022-12-06 | 云知声智能科技股份有限公司 | 分布式缓存集群管理方法、系统、终端及存储介质 |
CN115878513A (zh) * | 2023-02-21 | 2023-03-31 | 中移动信息技术有限公司 | 数据存储和数据查询方法、装置、设备及存储介质 |
CN115994122A (zh) * | 2023-03-24 | 2023-04-21 | 北京江民新科技术有限公司 | 快速缓存信息的方法、系统、设备及储存介质 |
CN116361299A (zh) * | 2023-05-31 | 2023-06-30 | 天翼云科技有限公司 | 一种在系统扩容时无数据迁移的哈希分布方法及系统 |
CN117130793A (zh) * | 2023-10-27 | 2023-11-28 | 乾健科技有限公司 | 一种大数据分析处理方法以及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626563A (zh) * | 2008-07-08 | 2010-01-13 | 中国移动通信集团公司 | 一种通信网络中的数据存储系统及信息处理方法 |
CN102117309A (zh) * | 2010-01-06 | 2011-07-06 | 卓望数码技术(深圳)有限公司 | 一种数据缓存系统和数据查询方法 |
CN102624916A (zh) * | 2012-03-26 | 2012-08-01 | 华为技术有限公司 | 云计算系统中均衡负载的方法、节点管理器及系统 |
CN104008111A (zh) * | 2013-02-27 | 2014-08-27 | 深圳市腾讯计算机系统有限公司 | 一种数据的存储管理方法及装置 |
CN104932986A (zh) * | 2014-03-19 | 2015-09-23 | 中国移动通信集团公司 | 一种数据重分布方法及装置 |
US20160094448A1 (en) * | 2014-09-29 | 2016-03-31 | Vivint, Inc. | Systems and methods for centrally-assisted distributed hash table |
CN106572153A (zh) * | 2016-10-21 | 2017-04-19 | 乐视控股(北京)有限公司 | 集群的数据存储方法及装置 |
-
2017
- 2017-04-27 CN CN201710289673.7A patent/CN108810041B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626563A (zh) * | 2008-07-08 | 2010-01-13 | 中国移动通信集团公司 | 一种通信网络中的数据存储系统及信息处理方法 |
CN102117309A (zh) * | 2010-01-06 | 2011-07-06 | 卓望数码技术(深圳)有限公司 | 一种数据缓存系统和数据查询方法 |
CN102624916A (zh) * | 2012-03-26 | 2012-08-01 | 华为技术有限公司 | 云计算系统中均衡负载的方法、节点管理器及系统 |
CN104008111A (zh) * | 2013-02-27 | 2014-08-27 | 深圳市腾讯计算机系统有限公司 | 一种数据的存储管理方法及装置 |
CN104932986A (zh) * | 2014-03-19 | 2015-09-23 | 中国移动通信集团公司 | 一种数据重分布方法及装置 |
US20160094448A1 (en) * | 2014-09-29 | 2016-03-31 | Vivint, Inc. | Systems and methods for centrally-assisted distributed hash table |
CN106572153A (zh) * | 2016-10-21 | 2017-04-19 | 乐视控股(北京)有限公司 | 集群的数据存储方法及装置 |
Cited By (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111274310A (zh) * | 2018-12-05 | 2020-06-12 | 中国移动通信集团山东有限公司 | 一种分布式数据缓存方法及系统 |
CN109388351A (zh) * | 2018-12-18 | 2019-02-26 | 平安科技(深圳)有限公司 | 一种分布式数据存储的方法及相关装置 |
CN110049091A (zh) * | 2019-01-10 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 数据存储方法及装置、电子设备、存储介质 |
CN109783564A (zh) * | 2019-01-28 | 2019-05-21 | 上海雷腾软件股份有限公司 | 支持多节点的分布式缓存方法及设备 |
CN109800236A (zh) * | 2019-01-28 | 2019-05-24 | 上海雷腾软件股份有限公司 | 支持多节点的分布式缓存方法及设备 |
CN109828971A (zh) * | 2019-01-28 | 2019-05-31 | 上海雷腾软件股份有限公司 | 支持多节点的分布式缓存方法及设备 |
CN110083312A (zh) * | 2019-04-28 | 2019-08-02 | 联想(北京)有限公司 | 磁盘扩容方法、装置及计算机设备 |
CN110083312B (zh) * | 2019-04-28 | 2021-01-15 | 联想(北京)有限公司 | 磁盘扩容方法、装置及计算机设备 |
CN110083313A (zh) * | 2019-05-06 | 2019-08-02 | 北京奇艺世纪科技有限公司 | 一种数据缓存方法及装置 |
CN110336891A (zh) * | 2019-07-24 | 2019-10-15 | 中南民族大学 | 缓存数据分布方法、设备、存储介质及装置 |
CN110413845B (zh) * | 2019-07-29 | 2022-04-26 | 青岛海尔科技有限公司 | 基于物联网操作系统的资源存储方法及装置 |
CN110413845A (zh) * | 2019-07-29 | 2019-11-05 | 青岛海尔科技有限公司 | 基于物联网操作系统的资源存储方法及装置 |
CN110413236A (zh) * | 2019-08-01 | 2019-11-05 | 北京阿尔山金融科技有限公司 | 数据的管理方法、装置以及电子设备 |
CN110471629A (zh) * | 2019-08-22 | 2019-11-19 | 中国工商银行股份有限公司 | 一种动态扩容的方法、装置、存储介质、设备及系统 |
US11520702B2 (en) | 2019-10-01 | 2022-12-06 | Wipro Limited | System and method for managing cache memory |
CN110968265B (zh) * | 2019-11-05 | 2023-08-08 | 北京字节跳动网络技术有限公司 | 分片扩容方法、装置及电子设备 |
CN110968265A (zh) * | 2019-11-05 | 2020-04-07 | 北京字节跳动网络技术有限公司 | 分片扩容方法、装置及电子设备 |
CN110990483A (zh) * | 2019-11-26 | 2020-04-10 | 上海莉莉丝科技股份有限公司 | 分布式缓存中的缓存节点的数据访问和控制方法及系统 |
CN111144455A (zh) * | 2019-12-12 | 2020-05-12 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、设备及可读存储介质 |
CN111144455B (zh) * | 2019-12-12 | 2023-07-25 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、设备及可读存储介质 |
CN111177154A (zh) * | 2019-12-27 | 2020-05-19 | 掌迅亿通(北京)信息科技有限公司 | 分布式数据库缓存方法及其哈希环优化 |
CN111177154B (zh) * | 2019-12-27 | 2023-07-25 | 掌迅亿通(北京)信息科技有限公司 | 分布式数据库缓存方法及其哈希环优化 |
CN111723148B (zh) * | 2020-04-10 | 2024-01-26 | 浙江大华技术股份有限公司 | 数据存储方法及装置、存储介质、电子装置 |
CN111723148A (zh) * | 2020-04-10 | 2020-09-29 | 浙江大华技术股份有限公司 | 数据存储方法及装置、存储介质、电子装置 |
CN111930716A (zh) * | 2020-07-31 | 2020-11-13 | 中国工商银行股份有限公司 | 一种数据库扩容方法、装置及系统 |
CN112100273A (zh) * | 2020-08-12 | 2020-12-18 | 福建天泉教育科技有限公司 | 集群数据扩容的方法、存储介质 |
CN112083914A (zh) * | 2020-08-31 | 2020-12-15 | 深圳航天科技创新研究院 | 实现对象模型嵌入式操作系统软总线的方法及系统 |
CN112083914B (zh) * | 2020-08-31 | 2023-09-12 | 深圳航天科技创新研究院 | 实现对象模型嵌入式操作系统软总线的方法及系统 |
CN112506606A (zh) * | 2020-11-23 | 2021-03-16 | 北京达佳互联信息技术有限公司 | 集群中容器的迁移方法、装置、设备和介质 |
CN112558869A (zh) * | 2020-12-11 | 2021-03-26 | 北京航天世景信息技术有限公司 | 基于大数据遥感影像缓存方法 |
CN113672524A (zh) * | 2021-08-20 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 基于多级缓存的数据处理方法及系统 |
CN113778692A (zh) * | 2021-11-10 | 2021-12-10 | 腾讯科技(深圳)有限公司 | 一种数据处理的方法及装置、计算机设备和存储介质 |
CN115442439A (zh) * | 2022-08-31 | 2022-12-06 | 云知声智能科技股份有限公司 | 分布式缓存集群管理方法、系统、终端及存储介质 |
CN115878513A (zh) * | 2023-02-21 | 2023-03-31 | 中移动信息技术有限公司 | 数据存储和数据查询方法、装置、设备及存储介质 |
CN115878513B (zh) * | 2023-02-21 | 2023-08-15 | 中移动信息技术有限公司 | 数据存储和数据查询方法、装置、设备及存储介质 |
CN115994122A (zh) * | 2023-03-24 | 2023-04-21 | 北京江民新科技术有限公司 | 快速缓存信息的方法、系统、设备及储存介质 |
CN116361299A (zh) * | 2023-05-31 | 2023-06-30 | 天翼云科技有限公司 | 一种在系统扩容时无数据迁移的哈希分布方法及系统 |
CN116361299B (zh) * | 2023-05-31 | 2023-10-10 | 天翼云科技有限公司 | 一种在系统扩容时无数据迁移的哈希分布方法及系统 |
CN117130793A (zh) * | 2023-10-27 | 2023-11-28 | 乾健科技有限公司 | 一种大数据分析处理方法以及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108810041B (zh) | 2021-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810041A (zh) | 一种分布式缓存系统的数据写入及扩容方法、装置 | |
US10275489B1 (en) | Binary encoding-based optimizations at datastore accelerators | |
CN105224255B (zh) | 一种存储文件管理方法及装置 | |
CN105701219B (zh) | 一种分布式缓存的实现方法 | |
CN107179878A (zh) | 基于应用优化的数据存储的方法和装置 | |
US11663237B2 (en) | Method and system for data handling | |
CN107154957A (zh) | 基于虚拟环负载均衡算法的分布式存储控制方法 | |
CN107368608A (zh) | 基于arc替换算法的hdfs小文件缓存管理方法 | |
US11372568B2 (en) | System and method for storing and accessing blockchain data | |
CN106534308A (zh) | 一种分布式存储系统中解决数据块访问热点的方法及装置 | |
CN109446114A (zh) | 一种空间数据缓存方法、装置和存储介质 | |
CN110032543A (zh) | 一种存储文件系统的管理方法 | |
US11741081B2 (en) | Method and system for data handling | |
CN109086462A (zh) | 一种分布式文件系统中元数据的管理方法 | |
CN107798063A (zh) | 快照处理方法和快照处理装置 | |
CN116560562A (zh) | 一种读、写数据方法及装置 | |
CN109597903A (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
US11138231B2 (en) | Method and system for data handling | |
CN112463073A (zh) | 一种对象存储分布式配额方法、系统、设备和存储介质 | |
CN114785662B (zh) | 一种存储管理方法、装置、设备及机器可读存储介质 | |
EP3686751A1 (en) | Method and system for data handling | |
CN113204520B (zh) | 一种基于分布式文件系统的遥感数据快速并发读写方法 | |
CN106649669A (zh) | 一种基于远程字典服务器的数据存储方法及系统 | |
US9298390B2 (en) | Systems and methods for copying data maintained in a dynamic storage volume and verifying the copied data | |
CN111221857A (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 |