CN113778692B - 一种数据处理的方法及装置、计算机设备和存储介质 - Google Patents
一种数据处理的方法及装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113778692B CN113778692B CN202111323666.7A CN202111323666A CN113778692B CN 113778692 B CN113778692 B CN 113778692B CN 202111323666 A CN202111323666 A CN 202111323666A CN 113778692 B CN113778692 B CN 113778692B
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- interval
- range
- data identifier
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理的方法及装置、计算机设备和存储介质,本申请可应用于云技术等场景,包括:获取第一数据;基于第一数据标识,将第一数据分配至第一缓存层中的第一缓存区间进行缓存;当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围;将第一数据分配至第二缓存区间进行缓存。通过上述方法,通过将一个缓存层分割为不同的缓存区间,在管理某缓存区间的缓存节点的数据热度较高时将管理该缓存区间的缓存节点上的数据分配至其他缓存节点上,从而降低处于高负载状态的缓存节点的数据承载量,以达到负载均衡的效果,从而提升数据处理效率。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据处理的方法及装置、计算机设备和存储介质。
背景技术
随着互联网服务的发展,越来越多的应用程序需要通过互联网提供服务,随着服务的不断增长,服务类型和服务之间的依赖关系也随之变得复杂。因此,分布式缓存系统中每个缓存节点都可能失效,需要保证当系统的缓存节点数目发生变化时仍然能够对外提供良好的服务,所以良好的分布式缓存系统应该满足平衡性,使得所有的服务器都得到利用,防止出现个别服务器负载过大,具体可以采用集群方案,部署多个缓存节点,共同承载一个类型服务的请求量,大量请求涌进缓存节点时,能够将请求路由至不同的缓存节点,避免大量请求冲击同一个缓存节点,这样既能够保护机器不宕机,有能够提高服务响应速度。
目前,由于考虑到分散请求无法彻底解决大量的请求压力,因此能够在机器集群上加上一个缓存层,通过缓存层临时存储数据,避免请求直接穿透至后端的数据库,缓存节点也采用集群方案部署,根据数据标识不同,将数据分配至不同缓存节点上。然而,各个缓存节点负责存储不同数据,而不同数据有不同热度,可能某台缓存节点的数据热度极高,导致该缓存节点无法承载压力,从而降低数据处理的效率。因此,如何提升数据处理的效率成为亟需解决的问题。
发明内容
本申请实施例提供了一种数据处理的方法及装置、计算机设备和存储介质,通过将一个缓存层分割为不同的缓存区间,且不同的缓存区间被对应的缓存节点所管理,且缓存区间用于缓存不同数据标识所指示的数据,因此在同一缓存层中存在一个缓存区间出现高负载的情况,即管理该缓存区间的缓存节点的数据热度较高时,缩减该数据标识集合的范围并增加属于同一缓存层的其他缓存区间中数据标识集合的范围,从而将管理该缓存区间的缓存节点上的数据分配至其他缓存节点上,从而降低处于高负载状态的缓存节点的数据承载量,以达到负载均衡的效果,从而提升数据处理效率。
有鉴于此,本申请第一方面提供了一种数据处理的方法,包括:
获取第一数据,其中,第一数据携带第一数据标识,第一数据标识指示第一数据;
基于第一数据标识,将第一数据分配至第一缓存层中的第一缓存区间进行缓存,其中,第一缓存区间被第一缓存节点所管理,第一缓存区间用于缓存第一数据标识集合内数据标识所指示的数据,第一数据标识集合包括第一数据标识;
当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,其中,范围增加后的第二数据标识集合包括第一数据标识,第二数据标识集合内数据标识所指示的数据在第二缓存区间进行缓存,第二缓存区间被第二缓存节点所管理;
将第一数据分配至第二缓存区间进行缓存。
本申请第二方面提供了一种数据处理装置,包括:
获取模块,用于获取第一数据,其中,第一数据携带第一数据标识,第一数据标识指示第一数据;
分配模块,用于基于第一数据标识,将第一数据分配至第一缓存层中的第一缓存区间进行缓存,其中,第一缓存区间被第一缓存节点所管理,第一缓存区间用于缓存第一数据标识集合内数据标识所指示的数据,第一数据标识集合包括第一数据标识;
处理模块,用于当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,其中,范围增加后的第二数据标识集合包括第一数据标识,第二数据标识集合内数据标识所指示的数据在第二缓存区间进行缓存,第二缓存区间被第二缓存节点所管理;
分配模块,还用于将第一数据分配至第二缓存区间进行缓存。
在一个可能的实施方式中,分配模块,还用于基于第一数据标识,将第一数据分配至第二缓存层中的第三缓存区间进行缓存,其中,第三缓存区间被第三缓存节点所管理,第三缓存区间用于缓存第三数据标识集合内数据标识所指示的数据,第三数据标识集合包括第一数据标识,且第三数据标识集合的范围与第一数据标识集合的范围不相同但存在交集。
在一个可能的实施方式中,处理模块,还用于当范围缩减后的第一缓存区间的内存占用率小或等于第一缓存区间对应的正常负载预设阈值时,则停止缩减第一数据标识集合的范围,且停止增加第二数据标识集合的范围;
或,
处理模块,还用于当范围增加后的第二缓存区间的内存占用率大于第二缓存区间对应的正常负载预设阈值时,则停止增加第二数据标识集合的范围。
在一个可能的实施方式中,第一缓存层还包括第四缓存区间,第四缓存区间被第四缓存节点所管理,第四缓存区间用于缓存第四数据标识集合内数据标识所指示的数据,且第四数据标识集合的范围与第一数据标识集合的范围不重合,以及第四数据标识集合的范围与第二数据标识集合的范围不重合;
处理模块,具体用于当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则获取第二缓存区间的内存占用率以及第四缓存区间的内存占用率;
当第二缓存区间的内存占用率小于第四缓存区间的内存占用率时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围。
在一个可能的实施方式中,处理模块,还用于当第二缓存区间的内存占用率大于第四缓存区间的内存占用率时,则缩减第一数据标识集合的范围,且增加第四数据标识集合的范围,其中,范围增加后的第四数据标识集合包括第一数据标识;
分配模块,还用于将第一数据分配至第四缓存区间进行缓存。
在一个可能的实施方式中,处理模块,还用于在获取模块缩减第一数据标识集合的范围,且增加第二数据标识集合的范围之后当范围增加后的第二缓存区间的内存占用率大于第二缓存区间对应的正常负载预设阈值,且第四缓存区间的内存占用率小于第四缓存区间对应的正常负载预设阈值时,则停止增加第二数据标识集合的范围,并增加第四数据标识集合的范围。
在一个可能的实施方式中,第一缓存层还包括第四缓存区间,第四缓存区间被第四缓存节点所管理,第四缓存区间用于缓存第四数据标识集合内数据标识所指示的数据,且第四数据标识集合的范围与第一数据标识集合的范围不重合,以及第四数据标识集合的范围与第二数据标识集合的范围不重合;
处理模块,具体用于当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,以及增加第四数据标识集合的范围。
在一个可能的实施方式中,获取模块,还用于获取第一预设周期内第一缓存区间的内存占用率;
处理模块,具体用于当第一预设周期内的第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则以第一预设比例缩减第一数据标识集合的范围,且增加第二数据标识集合的范围。
在一个可能的实施方式中,获取模块,还用于获取第二预设周期内范围缩减后的第一缓存区间的内存占用率,其中,第二预设周期是与第一预设周期相邻的下一预设周期;
处理模块,还用于当第二预设周期内的第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则以第二预设比例缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,其中,第二预设比例大于第一预设比例。
在一个可能的实施方式中,数据处理装置还包括读取模块;
获取模块,还用于分配模块将第一数据分配至第二缓存区间进行缓存之后,获取数据调用请求,其中,数据调用请求携带第一数据标识;
处理模块,还用于基于第一数据标识确定第一数据缓存于第二缓存区间以及第三缓存区间;
获取模块,还用于获取第二缓存区间的内存占用率以及第三缓存区间的内存占用率;
处理模块,还用于当第二缓存区间的内存占用率小于第三缓存区间的内存占用率时,则确定第一缓存层对第一数据的数据读取优先级高于第二缓存层对第一数据的数据读取优先级,其中,数据读取优先级指示数据读取的先后顺序;
读取模块,用于从第二缓存区间的缓存中读取第一数据。
在一个可能的实施方式中,处理模块,还用于当第二缓存区间的内存占用率大于第三缓存区间的内存占用率时,则确定第一缓存层对第一数据的数据读取优先级低于第二缓存层对第一数据的数据读取优先级;
读取模块,还用于从第三缓存区间的缓存中读取第一数据。
在一个可能的实施方式中,第三缓存层中的第五缓存区间包括第一数据标识,第五缓存区间被第五缓存节点所管理,第五缓存区间用于缓存第五数据标识集合内数据标识所指示的数据,且第五数据标识集合的范围与第一数据标识集合的范围不相同但存在交集;
获取模块,还用于获取数据调用请求,其中,数据调用请求携带第一数据标识;
处理模块,还用于基于第一数据标识确定第一数据缓存于第二缓存区间、第三缓存区间以及第五缓存区间;
获取模块,还用于获取第二缓存区间的内存占用率、第三缓存区间的内存占用率以及第五缓存区间的内存占用率;
处理模块,还用于当第二缓存区间的内存占用率大于第三缓存区间的内存占用率,且第三缓存区间的内存占用率大于第五缓存区间的内存占用率时,则确定第三缓存层对第一数据的数据读取优先级高于第二缓存层对第一数据的数据读取优先级,且第二缓存层对第一数据的数据读取优先级高于第一缓存层对第一数据的数据读取优先级,其中,数据读取优先级指示数据读取的先后顺序;
读取模块,还用于当第三缓存层处于宕机状态时,则从第二缓存层的第三缓存区间的缓存中读取第一数据。
本申请的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请的第四方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法的步骤。
本申请的第五方面提供了一种计算机设备,其特征在于,包括:存储器、收发器、处理器以及总线系统;其中,所述存储器用于存储程序;所述处理器用于执行所述存储器中的程序,以实现上述各方面所述的方法;所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,提供了一种数据处理的方法,先获取第一数据,并且第一数据携带第一数据标识,该第一数据标识指示第一数据,由此基于第一数据标识,将第一数据分配至第一缓存层中的第一缓存区间进行缓存,该第一缓存区间被第一缓存节点所管理,第一缓存区间用于缓存第一数据标识集合内数据标识所指示的数据,第一数据标识集合包括第一数据标识。基于此,当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,范围增加后的第二数据标识集合包括第一数据标识,第二数据标识集合内数据标识所指示的数据在第二缓存区间进行缓存,第二缓存区间被第二缓存节点所管理,最后将第一数据分配至第二缓存区间进行缓存。通过上述方法,通过将一个缓存层分割为不同的缓存区间,且不同的缓存区间被对应的缓存节点所管理,且缓存区间用于缓存不同数据标识所指示的数据,因此在同一缓存层中存在一个缓存区间出现高负载的情况,即管理该缓存区间的缓存节点的数据热度较高时,缩减该数据标识集合的范围并增加属于同一缓存层的其他缓存区间中数据标识集合的范围,从而将管理该缓存区间的缓存节点上的数据分配至其他缓存节点上,从而降低处于高负载状态的缓存节点的数据承载量,以达到负载均衡的效果,从而提升数据处理效率。
附图说明
图1为本申请实施例提供的一种数据处理的方法的系统示意图;
图2为本申请实施例提供的一种数据处理的方法的流程示意图;
图3为本申请实施例提供的第一缓存层的一种实施例示意图;
图4为本申请实施例提供的缓存区间对应的预设阈值的一种实施例示意图;
图5为本申请实施例提供的调整同一缓存层中缓存区间范围的一种实施例示意图;
图6为本申请实施例提供的第一缓存层以及第二缓存层的一种实施例示意图;
图7为本申请实施例提供的第一缓存层的另一实施例示意图;
图8为本申请实施例提供的调整同一缓存层中缓存区间范围的另一实施例示意图;
图9为本申请实施例提供的调整同一缓存层中缓存区间范围的另一实施例示意图;
图10为本申请实施例提供的基于数据标识确定缓存区间的一个实施例示意图;
图11为本申请实施例提供的第一缓存层、第二缓存层以及第三缓存层的一种实施例示意图;
图12为本申请实施例提供的一种数据处理装置的结构示意图;
图13为本申请实施例中服务器一个实施例示意图。
具体实施方式
本申请实施例提供了一种数据处理的方法及装置、计算机设备和存储介质,通过将一个缓存层分割为不同的缓存区间,且不同的缓存区间被对应的缓存节点所管理,且缓存区间用于缓存不同数据标识所指示的数据,因此在同一缓存层中存在一个缓存区间出现高负载的情况,即管理该缓存区间的缓存节点的数据热度较高时,缩减该数据标识集合的范围并增加属于同一缓存层的其他缓存区间中数据标识集合的范围,从而将管理该缓存区间的缓存节点上的数据分配至其他缓存节点上,从而降低处于高负载状态的缓存节点的数据承载量,以达到负载均衡的效果,从而提升数据处理效率。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
随着互联网服务的发展,越来越多的应用程序需要通过互联网提供服务,随着服务的不断增长,服务类型和服务之间的依赖关系也随之变得复杂。因此,分布式缓存系统中每个缓存节点都可能失效,需要保证当系统的缓存节点数目发生变化时仍然能够对外提供良好的服务,所以良好的分布式缓存系统应该满足平衡性,使得所有的服务器都得到利用,防止出现个别服务器负载过大,具体可以采用集群方案,部署多个缓存节点,共同承载一个类型服务的请求量,大量请求涌进缓存节点时,能够将请求路由至不同的缓存节点,避免大量请求冲击同一个缓存节点,这样既能够保护机器不宕机,有能够提高服务响应速度。例如,以大型多人在线角色扮演游戏(massive multiplayer online role playing game,MMORPG)场景为例,由于MMORPG中玩法种类繁多且玩家数量也较多,在热门玩法开启期间,可能存在大量玩家登陆游戏体验、请求游戏服务的各种内容和资源,此时游戏数据库面临极大的请求压力,由此降低对请求的响应速度,也就是降低数据处理的效率,若采用现有技术,为了缓解数据库压力,服务器通常引入缓存机制,将热点数据缓存在内存中,如果玩家请求的数据命中缓存,服务器可迅速将缓存数据下发至玩家,避免请求穿透至数据库,从而提高服务器的吞吐量。即现有技术采用集群方案,部署多个机器,共同承载一个游戏服务(比如排行榜服务)的请求量,大量请求涌进服务器时,将请求路由至不同的机器,以避免大量请求冲击同一个机器度。
目前,由于考虑到分散请求无法彻底解决大量的请求压力,因此能够在机器集群上加上一个缓存层,通过缓存层临时存储数据,避免请求直接穿透至后端的数据库,缓存节点也采用集群方案部署,根据数据标识不同,将数据分配至不同缓存节点上。例如,数据标识为101至110的数据,假设缓存节点编号0-2共3台,采用取余哈希算法,ID除以3得到余数即为缓存节点编号。即数据101存储在机器1,数据102在机器2,数据103在机器0,数据104在机器1,数据105在机器2,数据106在机器0上,以此类推。在实际应用中,服务器刚启动时,缓存中没有数据,随着用户持续请求数据,服务器将数据库中读取到的数据,也在缓存中存储一份,下次用户再次请求该数据,便可以直接从缓存中读取并回复用户,无需访问数据库,提高响应速度。
然而,增加缓存层能够降低后端数据库的压力,但各个缓存节点负责存储不同数据,机器之间数据无交集,每个缓存节点都是单点,机器宕机之后对应的数据请求将全部穿透至后端数据库。其次,不同数据有不同热度,可能某个缓存节点的数据热度极高,导致该缓存节点无法承载压力,降低对数据请求的响应速度,从而降低数据处理的效率。因此,如何提升数据处理的效率成为亟需解决的问题。基于此,本申请实施例提供了一种数据处理的方法,通过将一个缓存层分割为不同的缓存区间,在管理某缓存区间的缓存节点的数据热度较高时将管理该缓存区间的缓存节点上的数据分配至其他缓存节点上,从而降低处于高负载状态的缓存节点的数据承载量,以达到负载均衡的效果,从而提升数据处理效率。
为了便于理解,先对本申请实施例涉及到的一些术语或概念进行解释。
一、缓存
为了提高数据读写性能,在内存中分配空间用于存储临时数据,例如每次读取磁盘或读取数据库耗时长,为了提高性能,可将读取的数据缓存于内存,下次读取内存即可。
二、分布式缓存
分布式缓存一般被定义为一个数据集合,它将数据分散于任意数目的缓存节点上。集群中的一个缓存节点负责缓存中的一部分数据,整体对外提供统一的访问接口。
三、缓存节点
缓存节点为分布式云存储系统中的存储设备,本方案中缓存节点具体为用于进行数据缓存的服务器。
基于此,下面对本申请实施例中的系统进行介绍。请参阅图1,图1为本申请实施例提供的一种数据处理的方法的系统示意图,如图1所示,该数据处理系统中包括服务器和终端设备。首先,不同类型的服务都通过集群进行方案部署,每个服务器集群内部均部署了多台服务节点,每个集群上层都会部署缓存节点,避免用户请求直接穿透至数据库,因此不同终端设备可以发起不同的请求,此时路由服务器会将不同终端设备发起的请求分配到不同的缓存节点,以使得缓存节点共同分摊用户们的请求压力。具体地,本方案中采用了多层缓存部署方式,也就是分割成多个缓存层,每个缓存层之间进行不同的缓存区间的拆解,例如,缓存层1被分割成缓存区间1以及缓存区间2,二缓存节点1管理缓存区间1中的数据,缓存节点2管理缓存区间2中的数据。同理,缓存层2至缓存层N也能够通过同样的方式,使得一个缓存节点负责管理一个缓存区间内的数据。因此,同一数据在不同的缓存层中将被分配到不同的缓存节点上,使得这些缓存节点共同分摊用户们的请求压力,因此若出现热点数据,能够使得原本集中在一个缓存层的热点数据,在其他缓存层中将被打散,解决热点数据集中在某个缓存节点的问题。并且在管理某缓存区间的缓存节点的数据热度较高时将管理该缓存区间的缓存节点上的数据分配至其他缓存节点上,从而降低处于高负载状态的缓存节点的数据承载量,以达到负载均衡的效果,从而提升数据处理效率。
需要说明的是,图1中的服务器可以是一台服务器或多台服务器组成的服务器集群或云计算中心等,具体此处均不限定。客户端具体部署与终端设备,终端设备可以为图1中示出的平板电脑、笔记本电脑、掌上电脑、手机、个人电脑(personal computer,PC)及只能语音交互设备,且终端设备还可以包括但不限于智能家电以及车载终端等。且终端设备和服务器之间可以通过无线网络、有线网络或可移动存储介质进行通信。其中,上述的无线网络使用标准通信技术和/或协议。无线网络通常为因特网、但也可以是任何网络,包括但不限于蓝牙、局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,可以使用定制或专用数据通信技术取代或者补充上述数据通信技术。可移动存储介质可以为通用串行总线(Universal Serial Bus,USB)闪存盘、移动硬盘或其他可移动存储介质等。
应理解,本申请实施例中,服务器集群可以位于某个地区的机房内,为了防止机房断电、自然灾害等因素导致整个服务器集群瘫痪,本方案还可以在其他多个地区也分别部署服务器集群,因此在应用于游戏场景或者其他服务场景时,包括多种类型数据的服务是由多个地区的机房组成的多个服务器集群共同承载的。其次,虽然图1中仅示出了五个终端设备和一个服务器,但应当理解,图1中的示例仅用于理解本方案,具体终端设备和服务器的数量均应当结合实际情况灵活确定。
其次,本发明实施例可应用于各种场景,包括但不限于云技术(Cloudtechnology)、人工智能、智慧交通、辅助驾驶等。云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。 云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
而云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing )、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
而所谓人工智能云服务,一般也被称作是AIaaS(AI as a Service,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。
进一步地,云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统 (以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
进一步地,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
结合上述介绍,下面具体对本申请中数据处理的方法进行介绍,请参阅图2,图2为本申请实施例提供的一种数据处理的方法的流程示意图,如图2所示,数据处理的方法包括:
101、获取第一数据。
本实施例中,服务器获取需要进行缓存的第一数据,该第一数据携带第一数据标识,且该第一数据标识指示第一数据。例如,第一数据携带第一数据标识“1”,那么“1”即可指示第一数据。应理解,前述示例仅用于理解本方案,具体第一数据标识还可以为其他形态,例如字母,或者字母与数据的结合,本方案不做限定。
102、基于第一数据标识,将第一数据分配至第一缓存层中的第一缓存区间进行缓存。
本实施例中,所得到每个缓存层进行了缓存区间的拆解。为了后续理解,先介绍将缓存层拆解为多个缓存区间的具体实施方式,请参阅图3,图3为本申请实施例提供的第一缓存层的一种实施例示意图,如图3所示,A1指的是第一缓存层,A11指的是第一缓存区间,A12指的是第二缓存区间,A2指的是第一缓存节点,A3指的是第二缓存节点,A4指的是第一数据标识集合,A5指的是第二数据标识集合。基于此,第一缓存层A1中包括第一缓存区间A11以及第二缓存区间A12,第一缓存区间A11中的数据被第一缓存节点A2所管理,第二缓存区间A12中的数据被第二缓存节点A3所管理。并且第一缓存区间A11用于缓存第一数据标识集合A4内数据标识所指示的数据,而第二缓存区间A12用于缓存第二数据标识集合A5内数据标识所指示的数据,且同一缓存层中每个缓存区间所缓存的数据不重合,即第一缓存区间A11与第二缓存区间A12可以缓存的数据不重合,由此使得不同的缓存节点负责管理不同缓存区间内的数据。
进一步地,以图3作为示例进行后续实施例的解释。服务器通过步骤101所获取的第一数据中携带第一数据标识,首先服务器需要确定在第一缓存层中哪个缓存区间能够管理第一数据。若第一数据标识集合包括第一数据标识,而第一缓存区间用于缓存第一数据标识集合内数据标识所指示的数据,因此服务器可以确定第一缓存层中第一缓存区间用于缓存第一数据,此时服务器可以将第一数据分配至第一缓存层中的第一缓存区间进行缓存。例如,以图3作为示例,第一数据标识集合包括1至100的数据标识,以及第二数据集合包括101至200的数据标识作为示例,若第一数据标识为“1”,即第一数据标识属于第一数据标识集合,并且第一缓存区间用于缓存第一数据标识集合内数据标识所指示的数据,因此服务器将第一数据分配至第一缓存层中的第一缓存区间进行缓存。其次,在实际应用中,还可能存在第一数据标识为“150”的情况,即第一数据标识属于第二数据标识集合,并且第二缓存区间用于缓存第二数据标识集合内数据标识所指示的数据,因此服务器将第一数据分配至第一缓存层中的第二缓存区间进行缓存。
应理解,前述示例仅用于理解本方案,同一缓存层中缓存区间的分割需要根据数据量决定,数据量越大基于成本以及处理效率折中考虑的所需要的缓存节点也越多,那么对应分割得到的缓存区间也越多,且由于每个缓存节点的数据处理效率和配置的不同,还可以存在不同的缓存节点所管理的数据量不同,例如,第一缓存节点管理1至80的数据标识指示的数据,而第二缓存节点管理81至200的数据标识指示的数据,但是同一缓存层中每个缓存区间对应的数据标识集合的并集即为全量数据对应的数据标识,且同一缓存层中每个缓存区间没有交集即可。因此前述示例不应理解为本申请的限定,具体的数据标识集合,以及每个缓存层中缓存区间的数量均需要根据实际情况以及需求灵活确定。
103、当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则服务器缩减第一数据标识集合的范围,且增加第二数据标识集合的范围。
本实施例中,服务器将监控每个缓存层中不同缓存区间的内存占用率的情况,例如,将本方案应用于游戏场景,那么在游戏场景下由于福利活动或新开服等活动可能导致数据请求较多,从而导致热点数据的出现,此时负责热点区间的缓存节点可能也将处于高负载状态。那么本实施例基于每个缓存区间的内存占用率判断是否处于高负载情况,该内存占用率可以为管理该缓存区间的缓存节点的中央处理器(central processing unit,CPU)占用率。
基于此,当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,说明第一缓存区间出现高负载的情况,即管理第一缓存区间的第一缓存节点所管理的数据热度较高,因此避免第一缓存节点出现无法承载数据请求压力的情况产生,服务器将缩减第一数据标识集合的范围,并且增加第二数据标识集合的范围,并且第二数据标识集合内数据标识所指示的数据在第二缓存区间进行缓存,第二缓存区间被第二缓存节点所管理,该第二缓存区间属于第一缓存层,且第二数据标识集合的范围与第一数据标识集合的范围不重合。且限定步骤101所获取的第一数据所携带的第一数据标识,在完成缓存区间的范围调整后,范围增加后的第二数据标识集合包括第一数据标识。
具体地,以第一数据标识集合的范围未缩减前包括1至100的数据标识,以及第二数据集合的范围未增加前包括101至200的数据标识为例,若第一数据标识集合的范围缩减后可以包括1至90的数据标识,而第二数据集合的范围增加后包括91至200的数据标识。其次,为了便于理解本实施例中所描述的预设阈值,请参阅图4,图4为本申请实施例提供的缓存区间对应的预设阈值的一种实施例示意图,如图4所示,D1指的是该缓存区间的内存占用率处于全负载状态,且本实施例中全负载阈值为100%,即缓存区间的内存占用率为100%时,确定该缓存区间处于全负载状态。其次,D2指的是该缓存区间的内存占用率处于高负载状态,且本实施例中高负载阈值为90%,即缓存区间的内存占用率大于90%,且小于100%时,确定该缓存区间处于高负载状态。同理可知,D3指的是该缓存区间的内存占用率处于较高负载状态,且本实施例中较高负载阈值为80%,即缓存区间的内存占用率大于80%,且小于900%时,确定该缓存区间处于较高负载状态。D4指的是该缓存区间的内存占用率处于正常负载状态,且本实施例中次高负载阈值为60%,即缓存区间的内存占用率低于60%时,确定该缓存区间处于正常负载状态。应理解,第一缓存区间对应的高负载预设阈值还可以为88%,85%或83%,且还可以根据实际需求确定每个缓存区间对应的次高预设阈值等多个更为细分的预设阈值,每个缓存区间对应的高负载预设阈值需要根据实际需求以及实际情况灵活调整,此处不做限定。
进一步地,通过前述实施例可知,由于第一缓存区间用于缓存第一数据标识集合内数据标识所指示的数据,而第一缓存节点管理第一缓存区间内的数据,因此缩减第一数据标识集合的范围既可以减小第一缓存节点所管理的数据量,从而减少第一缓存节点的负载。且由于第二缓存区间用于缓存第二数据标识集合内数据标识所指示的数据,而第二缓存节点管理第二缓存区间内的数据,并且第二缓存区间与第一缓存区间均属于一个缓存层,即属于缓存节点集群,因此增加第二数据标识集合的范围既可以增加第二缓存节点所管理的数据量,也就是将第一缓存节点所管理的部分数据迁移至第二缓存节点,在同一缓存节点集群中进行缓存数据的分配迁移,能够提升数据处理的效率从而进一步地高效地保证负载均衡。
为了便于理解,基于图3的示例进行进一步地说明,请参阅图5,图5为本申请实施例提供的调整同一缓存层中缓存区间范围的一种实施例示意图,如图5所示,B1指的是第一缓存层,B11指的是第一缓存区间,B12指的是第二缓存区间,B2指的是第一缓存节点,B3指的是第二缓存节点,B4指的是第一数据标识集合,B5指的是第二数据标识集合,以及B6指的是范围缩减后的第一数据标识集合,B7指的是范围增加后的第二数据标识集合。基于此,在图5的(A)图中,第一缓存区间B11中的数据被第一缓存层B1中的第一缓存节点B2所管理,第二缓存区间B12中的数据被第一缓存层B1中的第二缓存节点B3所管理,并且第一缓存区间B11用于缓存第一数据标识集合B4内数据标识所指示的数据,而第二缓存区间B12用于缓存第二数据标识集合B5内数据标识所指示的数据,第一缓存区间B11与第二缓存区间B12可以缓存的数据不重合。
进一步地,当第一缓存区间B11的内存占用率大于第一缓存区间B11对应的高负载预设阈值时,缩减第一数据标识集合B4的范围,并且增加第二数据标识集合B5的范围,从而得到图5的(B)图,在图5的(B)图中,此时第一缓存层B1中的第一缓存节点B2还是用于管理第一缓存区间B11中的数据,以及第一缓存层B1中的第二缓存节点B3也还是用于管理第二缓存区间B12中的数据。但是,此时第一缓存区间B11用于缓存范围缩减后的第一数据标识集合B6内数据标识所指示的数据,而第二缓存区间B12此时用于缓存范围增加后的第二数据标识集合B7内数据标识所指示的数据,此时第一缓存区间B11与第二缓存区间B12可以缓存的数据依旧不重合。应理解,图5的示例仅用于理解本方案,而不理解为本申请的限定。
104、将第一数据分配至第二缓存区间进行缓存。
本实施例中,通过步骤103可知,在完成缓存区间的范围调整后,范围增加后的第二数据标识集合包括第一数据标识,即此时第一数据标识属于范围增加后的第二数据标识集合,而范围增加后的第二数据标识集合内数据标识所指示的数据还是被第二缓存区间缓存,因此服务器需要将第一数据分配至第二缓存区间进行缓存,由此完成在同一缓存节点集群中进行缓存数据的分配迁移,能以提升数据处理的效率,从而进一步地高效地保证负载均衡。
示例性地,以第一数据标识集合的范围未缩减前包括1至100的数据标识,以及第二数据集合的范围未增加前包括101至200的数据标识,且第一数据标识为“95”为例,若第一数据标识集合的范围缩减后可以包括1至90的数据标识,而第二数据集合的范围增加后包括91至200的数据标识,此时第一数据标识“95”属于范围增加后的第二数据集合的范围(即91至200),因此第一数据标识“95”指示的第一数据将被重新分配至第二缓存区间进行缓存。应理解,前述示例仅用于理解本方案,而不理解为本申请的限定。
本申请实施例中,提供了一种数据处理的方法,采用上述方式,通过将一个缓存层分割为不同的缓存区间,且不同的缓存区间被对应的缓存节点所管理,且缓存区间用于缓存不同数据标识所指示的数据,因此在同一缓存层中存在一个缓存区间出现高负载的情况,即管理该缓存区间的缓存节点的数据热度较高时,缩减该数据标识集合的范围并增加属于同一缓存层的其他缓存区间中数据标识集合的范围,从而将管理该缓存区间的缓存节点上的数据分配至其他缓存节点上,从而降低处于高负载状态的缓存节点的数据承载量,以达到负载均衡的效果,从而提升数据处理效率。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的数据处理的方法一个可选实施例中,数据处理的方法还包括:
基于第一数据标识,将第一数据分配至第二缓存层中的第四缓存区间进行缓存,其中,第四缓存区间被第三缓存节点所管理,第四缓存区间用于缓存第三数据标识集合内数据标识所指示的数据,第三数据标识集合包括第一数据标识,且第三数据标识集合的范围与第一数据标识集合的范围不相同但存在交集。
本实施例中,具体采用的是多层缓存部署方式,前述实施例介绍的是对将缓存层拆解为多个缓存区间,而为了更好将提升数据处理效率,服务器还可以分割多个缓存层,且每个缓存层之间进行不同的缓存区间的拆解,并且每层缓存的区间拆解通过区间偏移的方式,使不同的缓存层之间缓存区间可以缓存的数据存在交错,使得同一数据在不同缓存层中将会存储在不同缓存节点上。
为了便于理解,请参阅图6,图6为本申请实施例提供的第一缓存层以及第二缓存层的一种实施例示意图,如图6所示,C1指的是第一缓存层,C11指的是第一缓存区间,C12指的是第二缓存区间,C2指的是第一缓存节点,C3指的是第二缓存节点,C4指的是第二缓存层,C41指的是第三缓存区间,C42指的是第六缓存区间,C5指的是第三缓存节点,C6指的是第六缓存节点。其次,C7指的是第一数据标识集合,C8指的是第二数据标识集合,C9指的是第三数据标识集合以及C10指的是第六数据标识集合。基于此,第一缓存层C1中包括第一缓存区间C11以及第二缓存区间C12,第一缓存区间C11中的数据被第一缓存节点C2所管理,第二缓存区间C12中的数据被第二缓存节点C3所管理。并且第一缓存区间C11用于缓存第一数据标识集合C7内数据标识所指示的数据,而第二缓存区间C12用于缓存第二数据标识集合C8内数据标识所指示的数据,且第一缓存区间C11与第二缓存区间C12可以缓存的数据不重合,由此使得不同的缓存节点负责管理不同缓存区间内的数据。
其次,在第二缓存层部署另外2个缓存节点,但是改变区间划分规则,引入区间偏移量,引入区间偏移量的目的是使不同缓存层的数据区间交错,同一个数据在不同缓存层中将会落在不同的缓存节点上。基于此,由图6可知,第二缓存层C4中包括第三缓存区间C41以及第六缓存区间C42,第三缓存区间C41中的数据被第三缓存节点C5所管理,第六缓存区间C42中的数据被第六缓存节点C6所管理。并且第三缓存区间C41用于缓存第三数据标识集合C9内数据标识所指示的数据,而第六缓存区间C42用于缓存第六数据标识集合C10内数据标识所指示的数据,且第三缓存区间C41与四缓存区间C42可以缓存的数据不重合,由此使得不同的缓存节点负责管理不同缓存区间内的数据。
示例性地,假设区间偏移量为30,且第一数据标识C7集合包括1至100的数据标识,以及第二数据集合C8包括101至200的数据标识,那么数据标识1至100指示的数据将分配至第一缓存区间C11进行缓存,而数据标识101至200指示的数据将分配至第二缓存区间C12进行缓存。基于区间偏移量“30”,此时将划分第三数据标识C9集合包括31至130的数据标识,而第六数据标识集合C10包括131至200的数据标识以及1至30的数据标识,因此数据标识31至130指示的数据将分配至第三缓存区间C41进行缓存,而数据标识131至200指示的数据将分配至第六缓存区间C42进行缓存,以及数据标识1至30指示的数据将分配至第六缓存区间C42进行缓存,此时第三数据标识集合C41的范围与第一数据标识集合C11的范围不相同但存在交集,以及第六数据标识集合C42的范围与第二数据标识集合C12的范围不相同但存在交集。由此使得每个缓存节点负责管理不同区间的数据,从图6中可以看出,不同缓存层之间存在区间重叠,区间重叠表示缓存节点存放的数据存在交集。
基于此,服务器通过前述实施例所获取的第一数据中携带第一数据标识,首先服务器需要确定在第二缓存层中哪个缓存区间能够管理第一数据。若第三数据标识集合包括第一数据标识,而第三缓存区间用于缓存第三数据标识集合内数据标识所指示的数据,因此服务器可以确定第二缓存层中第三缓存区间用于缓存第一数据,此时服务器可以将第一数据分配至第二缓存层中的第三缓存区间进行缓存。其次,若第六数据标识集合包括第一数据标识,而第六缓存区间用于缓存第六数据标识集合内数据标识所指示的数据,因此服务器可以确定第二缓存层中第六缓存区间用于缓存第一数据,此时服务器可以将第一数据分配至第二缓存层中的第六缓存区间进行缓存。
例如,以图6作为示例,第一数据标识集合包括1至100的数据标识,以及第二数据集合包括101至200的数据标识,而第三数据标识集合包括31至130的数据标识,第六数据标识集合包括131至200的数据标识以及1至30的数据标识作为示例,若第一数据标识为“50”,即第一数据标识属于第一数据标识集合,且属于第三数据标识集合,因此服务器将第一数据分配至第一缓存层中的第一缓存区间进行缓存,且将第一数据分配至第二缓存层中的第三缓存区间进行缓存。同理可知,若第一数据标识为“10”,即第一数据标识属于第一数据标识集合,且属于第六数据标识集合,因此服务器将第一数据分配至第一缓存层中的第一缓存区间进行缓存,且将第一数据分配至第二缓存层中的第六缓存区间进行缓存。
进一步地,在数据分配的过程中,本实施例还可以基于图6示出的多个缓存层示意图,采用内存占用率择优规则,对于一个数据而言可以选择内存占用率最低的缓存节点对该数据进行数据缓存,例如,第一数据标识属于第一数据标识集合,且属于第三数据标识集合,而第一缓存区间的内存占用率此时大于第三缓存区间的内存占用率,因此可以先将第一数据分配至第二缓存层中的第三缓存区间进行缓存。因此,第一数据在的具体缓存位置,需要根据每个缓存层中每个缓存区间所分配的数据标识集合以及第一数据标识确定,并且在具体应用中还可以根据每个缓存区间的内存占用率确定,因此本方案不对此进行限定。
可以理解的是,前述示例仅用于理解本方案,同一缓存层中缓存区间的分割需要根据数据量决定,数据量越大基于成本以及处理效率折中考虑的所需要的缓存节点也越多,那么对应分割得到的缓存区间也越多,且由于每个缓存节点的数据处理效率和配置的不同,还可以存在不同的缓存节点所管理的数据量不同。其次,不同的缓存层之间的进行缓存区间的分割也不同。例如,第一缓存层中第一缓存节点管理1至80的数据标识指示的数据,第一缓存层中第二缓存节点管理81至200的数据标识指示的数据,第二缓存层中第三缓存节点管理31至110的数据标识指示的数据,第二缓存层中第六缓存节点管理111至200的数据标识指示的数据,并且可能存在第二缓存层中还包括另一缓存节点A,该缓存节点A管理1至30的数据标识指示的数据。
并且本实施例中仅描述了两个缓存层,在实际应用中,还可以根据需求划分得到第三缓存层,第四缓存层以及其他多个缓存层,然而只要满足同一缓存层中每个缓存区间对应的数据标识集合的并集即为全量数据对应的数据标识,不同缓存层中中每个缓存区间对应的数据标识集合的并集也应相同,且同一缓存层中每个缓存区间没有交集即可。因此前述示例不应理解为本申请的限定,具体的数据标识集合,以及每个缓存层中缓存区间的数量均需要根据实际情况以及需求灵活确定。
本申请实施例中,提供了另一种数据处理的方法,采用上述方式,通过分割多个缓存层,且每个缓存层之间进行不同的缓存区间的拆解,并且每层缓存的区间拆解通过区间偏移的方式,使不同的缓存层之间缓存区间可以缓存的数据存在交错,使得同一数据在不同缓存层中将会存储在不同缓存节点上,因此当多个数据标识指示的数据被频繁请求使得某个缓存层的缓存区间出现热点数据,通过区间偏移的区间交错分配方式,可以使得多个数据标识指示的热点数据在其他缓存层可能被分配至不通的数据标识集合中,即被不同的缓存节点所管理,降低其他缓存层出现热点的概率,由此基于多个缓存的交错结构对热点数据进行了负载均衡,因此进一步地提升了数据处理效率。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的数据处理的方法一个可选实施例中,数据处理的方法还包括:
当范围缩减后的第一缓存区间的内存占用率小或等于第一缓存区间对应的正常负载预设阈值时,则停止缩减第一数据标识集合的范围,且停止增加第二数据标识集合的范围;
或,
当范围增加后的第二缓存区间的内存占用率大于第二缓存区间对应的正常负载预设阈值时,则停止增加第二数据标识集合的范围。
本实施例中,在服务器缩减第一数据标识集合的范围,且增加第二数据标识集合的范围的过程中,当范围缩减后的第一缓存区间的内存占用率小或等于第一缓存区间对应的正常负载预设阈值时,说明此时缩减第一数据标识集合的范围,所对应的管理第一缓存区间内数据的第一缓存节点已经处于正常负载状态,由此服务器将停止缩减第一数据标识集合的范围,且停止增加第二数据标识集合的范围,此时第一缓存区间为第一数据标识集合的范围缩减后对应的缓存区间。
示例性地,以第一缓存区间对应的高负载预设阈值为90%,第一缓存区间对应的正常负载预设阈值为60%作为示例进行说明,当第一缓存区间的内存占用率为95%时,基于前述实施例所介绍的方法,服务器能够缩减第一数据标识集合的范围,且增加与第一缓存区间属于同一缓存层中第二缓存区间对应的第二数据标识集合的范围,从而降低处于高负载状态的第一缓存节点的数据承载量,以达到负载均衡的效果。基于此,在第一数据标识集合的范围缩减的过程中,服务器将实时监控以获取第一缓存区间的内存占用率,当第一缓存区间的内存占用率为58%时,即第一缓存区间的内存占用率小或等于第一缓存区间对应的正常负载预设阈值,说明管理第一缓存区间内数据的第一缓存节点已经处于正常负载状态,此时将停止缩减第一数据标识集合的范围,且停止增加第二数据标识集合的范围,以降低数据处理的资源消耗。
或者,在服务器缩减第一数据标识集合的范围,且增加第二数据标识集合的范围的过程中,当范围增加后的第二缓存区间的内存占用率大于第二缓存区间对应的正常负载预设阈值时,此时服务器将停止增加第二数据标识集合的范围,此时第二缓存区间为第二数据标识集合的范围增加后对应的缓存区间。
示例性地,以第二缓存区间对应的正常负载预设阈值为60%作为示例进行说明,在第一数据标识集合的范围缩减的过程中,服务器还能够将实时监控以获取第二缓存区间的内存占用率,当第二缓存区间的内存占用率为65%时,即第二缓存区间的内存占用率大于第二缓存区间对应的正常负载预设阈值,说明管理第二缓存区间内数据的第二缓存节点已不处于正常负载状态,为了避免第二缓存节点由于所承载数据量过多,而导致处于高负载状态的可能性,此时将停止增加第二数据标识集合的范围。
本申请实施例中,提供了另一种数据处理的方法,采用上述方式,处于高负载状态的缓存节点,在缩减对应缓存区间的数据标识集合的范围的过程中,若缓存节点已经处于正常负载状态,将停止数据标识集合的范围的缩减以及增加,从而降低数据处理的资源消耗。其次,在前述过程中若数据标识集合的范围增加缓存节点已不处于正常负载状态,为了避免该缓存节点由于所承载数据量过多,而导致处于高负载状态的可能性,此时将停止增加第二数据标识集合的范围,以保证该节点数据处理的正常运行,从而提升本方案的可靠性。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的数据处理的方法一个可选实施例中,第一缓存层还包括第四缓存区间,第四缓存区间被第四缓存节点所管理,第四缓存区间用于缓存第四数据标识集合内数据标识所指示的数据,且第四数据标识集合的范围与第一数据标识集合的范围不重合,以及第四数据标识集合的范围与第二数据标识集合的范围不重合;
当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,具体包括:
当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则获取第二缓存区间的内存占用率以及第四缓存区间的内存占用率;
当第二缓存区间的内存占用率小于第四缓存区间的内存占用率时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围。
本实施例中,第一缓存层还包括第四缓存区间,第四缓存区间被第四缓存节点所管理,第四缓存区间用于缓存第四数据标识集合内数据标识所指示的数据,且第四数据标识集合的范围与第一数据标识集合的范围不重合,以及第四数据标识集合的范围与第二数据标识集合的范围不重合。为便于理解,请参阅图7,图7为本申请实施例提供的第一缓存层的另一实施例示意图,如图7所示,E1指的是第一缓存层,E11指的是第一缓存区间,E12指的是第二缓存区间,E13指的是第四缓存区间,E2指的是第一缓存节点,E3指的是第二缓存节点,E4指的是第四缓存节点,E5指的是第一数据标识集合,E6指的是第二数据标识集合,以及E7指的是第四数据标识集合。
基于此,第一缓存层E1中包括第一缓存区间E11、第二缓存区间E12以及第四缓存区间E13,第一缓存区间E11中的数据被第一缓存节点E2所管理,第二缓存区间E12中的数据被第二缓存节点E3所管理,以及第四缓存区间E13被第四缓存节点E4所管理。并且第一缓存区间E11用于缓存第一数据标识集合E5内数据标识所指示的数据,而第二缓存区间E12用于缓存第二数据标识集合E6内数据标识所指示的数据,以及第四缓存区间E13用于缓存第四数据标识集合E7内数据标识所指示的数据。且同一缓存层中每个缓存区间所缓存的数据不重合,即第一缓存区间E11与第二缓存区间E12可以缓存的数据不重合,第一缓存区间E11与第四缓存区间E13可以缓存的数据不重合,以及第二缓存区间E12第四缓存区间E13可以缓存的数据不重合,由此使得不同的缓存节点负责管理不同缓存区间内的数据。
基于此,当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,服务器先获取第二缓存区间的内存占用率以及第四缓存区间的内存占用率,然后再判断第二缓存区间的内存占用率以及第四缓存区间的内存占用率之间的大小。在第二缓存区间的内存占用率小于第四缓存区间的内存占用率时,说明第二缓存区间对应的第二缓存节点的内存占用率较低,能够承载的数据量相较于第四缓存区间对应的第三缓存节点较多,因此此时再执行前述实施例所描述的缩减第一数据标识集合的范围,且增加第二数据标识集合的范围的步骤,具体步骤此处不再赘述。下一实施例将详细介绍第二缓存区间的内存占用率大于第四缓存区间的内存占用率的情况。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的数据处理的方法一个可选实施例中,数据处理的方法还包括:
当第二缓存区间的内存占用率大于第四缓存区间的内存占用率时,则缩减第一数据标识集合的范围,且增加第四数据标识集合的范围,其中,范围增加后的第四数据标识集合包括第一数据标识;
将第一数据分配至第四缓存区间进行缓存。
本实施例中,基于前述实施例可知,当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,服务器先获取第二缓存区间的内存占用率以及第四缓存区间的内存占用率,然后再判断第二缓存区间的内存占用率以及第四缓存区间的内存占用率之间的大小。基于此,在第二缓存区间的内存占用率大于第四缓存区间的内存占用率时,服务器将缩减第一数据标识集合的范围,且增加第四数据标识集合的范围,此时范围增加后的第四数据标识集合包括第一数据标识,因此服务器会将第一数据分配至第四缓存区间进行缓存。
为了便于理解,请参阅图8,图8为本申请实施例提供的调整同一缓存层中缓存区间范围的另一实施例示意图,如图8所示,F1指的是第一缓存层,F11指的是第一缓存区间,F12指的是第二缓存区间,F13指的是第四缓存区间,F2指的是第一缓存节点,F3指的是第二缓存节点,F4指的是第四缓存节点,F5指的是第一数据标识集合,F6指的是第二数据标识集合,F7指的是第四数据标识集合,以及F8指的是范围缩减后的第一数据标识集合,F9指的是范围增加后的第四数据标识集合。
基于此,在图8的(A)图中,第一缓存层F1中包括第一缓存区间F11、第二缓存区间F12以及第四缓存区间F13,第一缓存区间F11中的数据被第一缓存节点F2所管理,第二缓存区间F12中的数据被第二缓存节点F3所管理,以及第四缓存区间F13被第四缓存节点F4所管理。并且第一缓存区间F11用于缓存第一数据标识集合F5内数据标识所指示的数据,而第二缓存区间F12用于缓存第二数据标识集合F6内数据标识所指示的数据,以及第四缓存区间F13用于缓存第四数据标识集合F7内数据标识所指示的数据。且同一缓存层中每个缓存区间所缓存的数据不重合,即第一缓存区间F11与第二缓存区间F12可以缓存的数据不重合,第一缓存区间F11与第四缓存区间F13可以缓存的数据不重合,以及第二缓存区间F12第四缓存区间F13可以缓存的数据不重合,由此使得不同的缓存节点负责管理不同缓存区间内的数据。
基于此,当第一缓存区间F11的内存占用率大于第一缓存区间F11对应的高负载预设阈值时,先获取第二缓存区间F12的内存占用率以及第四缓存区间F13的内存占用率,并且在第二缓存区间F12的内存占用率大于第四缓存区间F13的内存占用率时,服务器缩减第一数据标识集合F5的范围,并且增加第四数据标识集合F7的范围,从而得到图8的(B)图,在图8的(B)图中,此时第一缓存层F1中的第一缓存节点F2还是用于管理第一缓存区间F11中的数据,以及第一缓存层F1中的第二缓存节点F4还是用于管理第二缓存区间F12中的数据,以及第一缓存层F1中的第二缓存节点F3也还是用于管理第四存区间F13中的数据。但是,此时第一缓存区间F11用于缓存范围缩减后的第一数据标识集合F8内数据标识所指示的数据,而第四缓存区间F13此时用于缓存范围增加后的第四数据标识集合F9内数据标识所指示的数据,且第一缓存区间F11与第四缓存区间F13可以缓存的数据依旧不重合。应理解,图8的示例仅用于理解本方案,而不理解为本申请的限定。
进一步地,以第一数据标识集合的范围未缩减前包括101至200的数据标识,以及第二数据集合的范围包括201至300的数据标识,以及第四数据集合的范围未增加前包括1至100的数据标识,且第一数据标识为“110”为例,若第一数据标识集合的范围缩减后可以包括121至200的数据标识,而第四数据集合的范围增加后包括1至120的数据标识,此时第一数据标识“110”属于范围增加后的第四数据集合的范围(即1至120),因此第一数据标识“110”指示的第一数据将被重新分配至第四缓存区间进行缓存。应理解,前述示例仅用于理解本方案,而不理解为本申请的限定。
本申请实施例中,提供了另一种数据处理的方法,采用上述方式,由于通过将一个缓存层分割为不同的缓存区间,且不同的缓存区间被对应的缓存节点所管理,且缓存区间用于缓存不同数据标识所指示的数据,因此在同一缓存层中存在一个缓存区间出现高负载的情况,即管理该缓存区间的缓存节点的数据热度较高时,在属于同一缓存层的其他缓存区间中通过不同缓存区间的内存占用率,确定能够增加对应数据标识集合的缓存区间,也就是将数据分配至内存占用率相对较低的缓存节点上,在降低处于高负载状态的缓存节点的数据承载量的基础上,还能够保证其他缓存节点对数据的正常处理,避免分配数据后导致其他缓存节点处于高负载状态的可能性的产生,从而提升数据处理的可靠性。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的数据处理的方法一个可选实施例中,在缩减第一数据标识集合的范围,且增加第二数据标识集合的范围之后,数据处理的方法还包括:
当范围增加后的第二缓存区间的内存占用率大于第二缓存区间对应的正常负载预设阈值,且第四缓存区间的内存占用率小于第四缓存区间对应的正常负载预设阈值时,则停止增加第二数据标识集合的范围,并增加第四数据标识集合的范围。
本实施例中,在缩减第一数据标识集合的范围,且增加第二数据标识集合的范围之后,服务器还能够获取范围增加后的第二缓存区间的内存占用率以及第四缓存区间的内存占用率,在范围增加后的第二缓存区间的内存占用率大于第二缓存区间对应的正常负载预设阈值时,说明管理第二缓存区间内数据的第二缓存节点已不处于正常负载状态,为了避免第二缓存节点由于所承载数据量过多,而导致处于高负载状态的可能性,此时将停止增加第二数据标识集合的范围。然而,在停止增加第二数据标识集合的范围时,还可能出现第一缓存区间的内存占用率依旧未达到第一缓存区间对应的正常负载预设阈值内,即第一缓存区间的内存占用率还未小于第一缓存区间对应的正常负载预设阈值。因此,若此时第四缓存区间的内存占用率小于第四缓存区间对应的正常负载预设阈值时,说明处于同一缓存层的第四缓存区间还能够数据的缓存,此时服务器将增加第四数据标识集合的范围。
示例性地,以第二缓存区间对应的正常负载预设阈值为60%,以及第四缓存区间对应的正常负载预设阈值为65%作为示例进行说明,在第一数据标识集合的范围缩减的过程中,服务器还能够将实时监控以获取第二缓存区间的内存占用率,当第二缓存区间的内存占用率为65%时,即第二缓存区间的内存占用率大于第二缓存区间对应的正常负载预设阈值,说明管理第二缓存区间内数据的第二缓存节点已不处于正常负载状态,为了避免第二缓存节点由于所承载数据量过多,而导致处于高负载状态的可能性,此时将停止增加第二数据标识集合的范围。此时,服务器也能够将实时监控以获取第四缓存区间的内存占用率,当第四缓存区间的内存占用率为60%时,即第四缓存区间的内存占用率小于第四缓存区间对应的正常负载预设阈值,说明管理第四缓存区间内数据的第四缓存节点依旧处于正常负载状态,若此时第一缓存区间的内存占用率还未小于第一缓存区间对应的正常负载预设阈值,将开始增加第四数据标识集合的范围,在保证降低热点数据分布的基础上,保证每个缓存区间内数据处理的正常进行。
本申请实施例中,提供了另一种数据处理的方法,采用上述方式,处于高负载状态的缓存节点,在缩减对应缓存区间的数据标识集合的范围的过程中,若数据标识集合的范围增加缓存节点已不处于正常负载状态,为了避免该缓存节点由于所承载数据量过多,而导致处于高负载状态的可能性,此时将停止增加第二数据标识集合的范围,以保证该节点数据处理的正常运行,从而提升本方案的可靠性。其次,当高负载状态的缓存节点还未到达正常负载状态时,将增加处于同一缓存层另一缓存区间中数据标识集合的范围,持续地将管理该缓存区间的缓存节点上的数据分配至其他缓存节点上,以保证能够持续降低处于高负载状态的缓存节点的数据承载量,以达到负载均衡的效果,进一步地提升数据处理效率。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的数据处理的方法一个可选实施例中,第一缓存层还包括第四缓存区间,第四缓存区间被第四缓存节点所管理,第四缓存区间用于缓存第四数据标识集合内数据标识所指示的数据,且第四数据标识集合的范围与第一数据标识集合的范围不重合,以及第四数据标识集合的范围与第二数据标识集合的范围不重合;
当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,具体包括:
当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,以及增加第四数据标识集合的范围。
本实施例中,第一缓存层还包括第四缓存区间,第四缓存区间被第四缓存节点所管理,第四缓存区间用于缓存第四数据标识集合内数据标识所指示的数据,且第四数据标识集合的范围与第一数据标识集合的范围不重合,以及第四数据标识集合的范围与第二数据标识集合的范围不重合。第一缓存层还包括第四缓存区间的示例请再次参阅图7,此处不再赘述。
基于此,当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,服务器可以缩减第一数据标识集合的范围,并且同时增加第二数据标识集合的范围以及增加第四数据标识集合的范围。例如,以第一数据标识集合的范围未缩减前包括101至200的数据标识,以及第二数据集合的范围包括201至300的数据标识,以及第四数据集合的范围未增加前包括1至100的数据标识,且第一数据标识为“110”为例,若同时增加第二数据集合的范围以及第四数据集合的范围,那么可以得到第一数据标识集合的范围缩减后包括111至190的数据标识,而第二数据集合的范围增加后包括191至300的数据标识,以及第四数据集合的范围增加后包括1至110的数据标识。应理解,前述示例仅用于理解本方案,而不理解为本申请的限定。
为了便于理解,请参阅图9,图9为本申请实施例提供的调整同一缓存层中缓存区间范围的另一实施例示意图,如图9所示,G1指的是第一缓存层,G11指的是第一缓存区间,G12指的是第二缓存区间,G13指的是第四缓存区间,G2指的是第一缓存节点,G3指的是第二缓存节点,G4指的是第四缓存节点,G5指的是第一数据标识集合,G6指的是第二数据标识集合,G7指的是第四数据标识集合,以及G8指的是范围缩减后的第一数据标识集合,G9指的是范围增加后的第二数据标识集合,G10指的是范围增加后的第四数据标识集合。
基于此,在图9的(A)图中,第一缓存层G1中包括第一缓存区间G11、第二缓存区间G12以及第四缓存区间G13,第一缓存区间G11中的数据被第一缓存节点G2所管理,第二缓存区间G12中的数据被第二缓存节点G3所管理,以及第四缓存区间G13被第四缓存节点G4所管理。并且第一缓存区间G11用于缓存第一数据标识集合G5内数据标识所指示的数据,而第二缓存区间G12用于缓存第二数据标识集合G6内数据标识所指示的数据,以及第四缓存区间G13用于缓存第四数据标识集合G7内数据标识所指示的数据。且同一缓存层中每个缓存区间所缓存的数据不重合,即第一缓存区间G11与第二缓存区间G12可以缓存的数据不重合,第一缓存区间G11与第四缓存区间G13可以缓存的数据不重合,以及第二缓存区间G12第四缓存区间G13可以缓存的数据不重合,由此使得不同的缓存节点负责管理不同缓存区间内的数据。
基于此,当第一缓存区间G11的内存占用率大于第一缓存区间G11对应的高负载预设阈值时,服务器缩减第一数据标识集合G5的范围,并且增加第二数据标识集合G6的范围,以及增加第四数据标识集合G7的范围,从而得到图9的(B)图,在图9的(B)图中,此时第一缓存层G1中的第一缓存节点G2还是用于管理第一缓存区间G11中的数据,以及第一缓存层G1中的第二缓存节点G4还是用于管理第二缓存区间G12中的数据,以及第一缓存层G1中的第二缓存节点G3也还是用于管理第四存区间G13中的数据。但是,此时第一缓存区间G11用于缓存范围缩减后的第一数据标识集合G8内数据标识所指示的数据,而第二缓存区间G12此时用于缓存范围增加后的第二数据标识集合G9内数据标识所指示的数据,第四缓存区间G13此时用于缓存范围增加后的第四数据标识集合G10内数据标识所指示的数据,且不同的缓存节点负责管理不同缓存区间内的数据。应理解,图9的示例仅用于理解本方案,而不理解为本申请的限定。
本申请实施例中,提供了另一种数据处理的方法,采用上述方式,在同一缓存层中存在一个缓存区间出现高负载的情况,缩减该数据标识集合的范围,且增加属于同一缓存层的其他缓存区间中所有数据标识集合的范围,从而将管理该缓存区间的缓存节点上的数据分配至其他缓存节点上,能够更快速地降低处于高负载状态的缓存节点的数据承载量,因此能够更快速地达到负载均衡的效果,由此进一步地提升数据处理效率。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的数据处理的方法一个可选实施例中,数据处理的方法还包括:
获取第一预设周期内第一缓存区间的内存占用率;
当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,具体包括:
当第一预设周期内的第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则以第一预设比例缩减第一数据标识集合的范围,且增加第二数据标识集合的范围。
本实施例中,服务器还能够获取第一预设周期内第一缓存区间的内存占用率,当第一预设周期内的第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则服务器以第一预设比例缩减第一数据标识集合的范围,且增加第二数据标识集合的范围。具体地,第一预设周期可以为30秒(seconds,s),1分钟(minutes,min)以及3min等,且前述第一预设比例可以为1%,2%或3%等,若第一数据标识集合的范围为包括1至200的数据标识,而第一预设比例为2&,那么以第一预设比例缩减的范围为4(200*2%),即第一数据标识集合中的数据标识将缩减4个。应理解,预设周期的具体时长范围、具体统计频率以及第一预设比例的具体数值需要基于实际情况以及应用场景灵活确定,此处不做限定。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的数据处理的方法一个可选实施例中,数据处理的方法还包括:
获取第二预设周期内范围缩减后的第一缓存区间的内存占用率,其中,第二预设周期是与第一预设周期相邻的下一预设周期;
当第二预设周期内的范围缩减后的第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则以第二预设比例缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,其中,第二预设比例大于第一预设比例。
本实施例中,提供的是采用逐级缩减的方式对数据标识集合的范围进行缩减。在服务器以第一预设比例缩减第一数据标识集合的范围,且增加第二数据标识集合的范围之后,服务器还能够获取第二预设周期内范围缩减后的第一缓存区间的内存占用率,该第二预设周期是与第一预设周期相邻的下一预设周期。例如,若第一预设周期为1s~30s,那么第二预设周期可以为41s~70s。
具体地,当第二预设周期内的范围缩减后的第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,服务器以第二预设比例缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,该第二预设比例大于第一预设比例。例如,若第一预设比例可以为1%,那么第二预设比例可以为2%,且第一数据标识集合的范围为包括1至200的数据标识,那么以第一预设比例缩减的范围为2(200*1%),即以第一预设比例缩减后的第一数据标识集合中的数据标识将缩减2个,同理可知,以第一预设比例缩减的范围为4(200*2%),即以第二预设比例缩减后的第一数据标识集合中的数据标识在缩减2个的基础上,将继续缩减4个数据标识。
应理解,在完成前述类似处理后,服务器还能够持续的在相邻的预设周期内获取范围缩减后的第一缓存区间的内存占用率,直至范围缩减后的第一缓存区间的内存占用率小于第一缓存区间的正常负载预设阈值。例如,服务器还能够获取第三预设周期内范围缩减后的第一缓存区间的内存占用率,该第三预设周期是与第二预设周期相邻的下一预设周期。例如,若第一预设周期为1s~30s,第二预设周期为41s~70s,那么第三预设周期可以为81s~110。其次,若第一预设比例可以为1%,那么第二预设比例可以为2%,以及第三预设比例可以为4%,即服务器具体采用指数缩减的方式对数据标识集合的范围进行缩减,因此当第一数据标识集合的范围为包括1至200的数据标识,那么以第一预设比例缩减的范围为2(200*1%),即以第一预设比例缩减后的第一数据标识集合中的数据标识将缩减2个,同理可知,以第二预设比例缩减的范围为4(200*2%),即以第二预设比例缩减后的第一数据标识集合中的数据标识在缩减2个的基础上,将继续缩减4个。进一步地,以第三预设比例缩减的范围为8(200*4%),即以第三预设比例缩减后的第一数据标识集合中的数据标识在缩减6(2+4)个的基础上,将继续缩减8个数据标识,直至范围缩减后的第一缓存区间的内存占用率小于第一缓存区间的正常负载预设阈值,则服务器停止执行前述类似步骤。可以理解的是,比例之间具体递增方式需要基于实际情况以及应用场景灵活确定,此处不做限定。
本申请实施例中,提供了另一种数据处理的方法,采用上述方式,采用逐级缩减的方式对数据标识集合的范围进行缩减,能够持续的在多个预设周期内持续缩减数据标识集合的范围,且逐级缩减的方式能够在上一次缩减范围的基础上进一步地增大缩减的范围,由此提升负载均衡的效率,且能够保证持续动态的进行数据指标集合的范围的调整,进一步提升本方案的可靠性。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的数据处理的方法一个可选实施例中,将第一数据分配至第二缓存区间进行缓存之后,数据处理的方法还包括:
获取数据调用请求,其中,数据调用请求携带第一数据标识;
基于第一数据标识确定第一数据缓存于第二缓存区间以及第三缓存区间;
获取第二缓存区间的内存占用率以及第三缓存区间的内存占用率;
当第二缓存区间的内存占用率小于第三缓存区间的内存占用率时,则确定第一缓存层对第一数据的数据读取优先级高于第二缓存层对第一数据的数据读取优先级,其中,数据读取优先级指示数据读取的先后顺序;
从第二缓存区间的缓存中读取第一数据。
本实施例中,服务器将第一数据分配至第二缓存区间进行缓存之后,若用户所申请的服务器对第一数据有调用需求,此时服务器能获取携带第一数据标识的数据调用请求,通过前述实施例可知,在由于第一缓存区间处于高负载状态因此服务器将第一数据分配至第二缓存区间进行缓存,且第二缓存层的第三缓存区间负责管理第一数据。基于此,第一数据标识指示第一数据,因此基于第一数据标识确定第一数据缓存于第二缓存区间以及第三缓存区间。为了便于理解,请参阅图10,图10为本申请实施例提供的基于数据标识确定缓存区间的一个实施例示意图,如图10所示,H1指的是第一缓存层,H11指的是第一缓存区间,H12指的是第二缓存区间,H2指的是第二缓存层,H21指的是第三缓存区间,H22指的是第六缓存区间,H3指的是第一数据标识集合,H4指的是第二数据标识集合,H5指的是第三数据标识集合以及H6指的是第六数据标识集合。基于此,第一缓存层H1中包括第一缓存区间H11以及第二缓存区间H12,且第一缓存区间H11用于缓存第一数据标识集合H3内数据标识所指示的数据,而第二缓存区间H12用于缓存第二数据标识集合H4内数据标识所指示的数据。进一步地,以第一数据标识H3集合包括1至100的数据标识,以及第二数据集合H4包括101至200的数据标识作为示例。
那么在第二缓存层部署另外2个缓存节点,但是改变区间划分规则,引入区间偏移量,引入区间偏移量的目的是使不同缓存层的数据区间交错,同一个数据在不同缓存层中将会落在不同的缓存节点上。由图10可知,第二缓存层H2中包括第三缓存区间H21以及第六缓存区间H22,且第三缓存区间H21用于缓存第三数据标识集合H5内数据标识所指示的数据,而第六缓存区间H22用于缓存第六数据标识集合H5内数据标识所指示的数据。若区间偏移量为30,将划分第三数据标识H5集合包括31至130的数据标识,而第六数据标识集合H6包括131至200的数据标识以及1至30的数据标识,由此保证不同缓存层之间存在区间重叠,区间重叠表示缓存节点存放的数据存在交集。
因此,基于此,服务器获取携带第一数据标识的数据调用请求,若第一数据标识为“120”,基于前述示例可知第二数据集合H4包括101至200的数据标识,第三数据标识H5集合包括31至130的数据标识,因此第一数据缓存于第二缓存区间H12以及第三缓存区间H21。
进一步地,服务器获取第二缓存区间的内存占用率以及第三缓存区间的内存占用率,并且判断第二缓存区间的内存占用率以及第三缓存区间的内存占用率的大小,也就是汇总能够管理第一数据的两个缓存节点(第二缓存节点以及第三缓存节点)的内存占用率,对这两个缓存节点进行内存占用率的排序,内存占用率越低的缓存区间数据读取优先级越高,内存占用率越高的缓存区间数据读取优先级越低,本方案设定数据读取优先级指示数据读取的先后顺序,因此为了保证数据读取的速率,将选择其中内存占用率最小的缓存节点管理的缓存区间中的数据第一数据读取。基于此,服务器在第二缓存区间的内存占用率小于第三缓存区间的内存占用率时,能够确定第一缓存层对第一数据的数据读取优先级高于第二缓存层对第一数据的数据读取优先级,该数据读取优先级指示数据读取的先后顺序,由此服务器从第二缓存区间的缓存中读取第一数据。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的数据处理的方法一个可选实施例中,数据处理的方法还包括:
当第二缓存区间的内存占用率大于第三缓存区间的内存占用率时,则确定第一缓存层对第一数据的数据读取优先级低于第二缓存层对第一数据的数据读取优先级;
从第三缓存区间的缓存中读取第一数据。
本实施例中,服务器获取第二缓存区间的内存占用率以及第三缓存区间的内存占用率,并且判断第二缓存区间的内存占用率以及第三缓存区间的内存占用率的大小,也就是汇总能够管理第一数据的两个缓存节点(第二缓存节点以及第三缓存节点)的内存占用率,对这两个缓存节点进行内存占用率的排序,内存占用率越低的缓存区间数据读取优先级越高,内存占用率越高的缓存区间数据读取优先级越低,本方案设定数据读取优先级指示数据读取的先后顺序,因此为了保证数据读取的速率,将选择其中内存占用率最小的缓存节点管理的缓存区间中的数据第一数据读取。基于此,服务器在第二缓存区间的内存占用率大于第三缓存区间的内存占用率时,能够确定第一缓存层对第一数据的数据读取优先级低于第二缓存层对第一数据的数据读取优先级,此时服务器将从第三缓存区间的缓存中读取第一数据。
可以理解的是,前述实施例仅描述了在两个缓存层中在两个缓存区间之间的选择,在实际应用中,还可以分为多个缓存层,即数据可以缓存于多个缓存层中的不同缓存区间中,在基于数据调用请求确定需要调用的数据缓存于哪个缓存区间后,均可采用前述方式获取每个缓存区间的内存占用率,并且基于每个缓存区间的内存占用率确定每个缓存区间的数据读取优先级,也就是缓存区间的内存占用率越高,那么该每个缓存区间的数据读取优先级,从而用户根据需求在数据读取优先级最低的缓存区间内获取所需数据。
本申请实施例中,提供了另一种数据处理的方法,采用上述方式,在数据调用的过程中,由于数据可以缓存于多个缓存层中的不同缓存区间中,因此基于每个缓存区间的内存占用率确定每个缓存区间的数据读取优先级,并在内存占用率较低的缓存区间内获取所需数据,以保证数据处理的效率。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的数据处理的方法一个可选实施例中,第三缓存层中的第五缓存区间包括第一数据标识,第五缓存区间被第五缓存节点所管理,第五缓存区间用于缓存第五数据标识集合内数据标识所指示的数据,且第五数据标识集合的范围与第一数据标识集合的范围不相同但存在交集;
数据处理的方法还包括:
获取数据调用请求,其中,数据调用请求携带第一数据标识;
基于第一数据标识确定第一数据缓存于第二缓存区间、第三缓存区间以及第五缓存区间;
获取第二缓存区间的内存占用率、第三缓存区间的内存占用率以及第五缓存区间的内存占用率;
当第二缓存区间的内存占用率大于第三缓存区间的内存占用率,且第三缓存区间的内存占用率大于第五缓存区间的内存占用率时,则确定第三缓存层对第一数据的数据读取优先级高于第二缓存层对第一数据的数据读取优先级,且第二缓存层对第一数据的数据读取优先级高于第一缓存层对第一数据的数据读取优先级,其中,数据读取优先级指示数据读取的先后顺序;
当第三缓存层处于宕机状态时,则从第二缓存层的第三缓存区间的缓存中读取第一数据。
本实施例中,由于在实际应用中,还可以分为多个缓存层,即数据可以缓存于多个缓存层中的不同缓存区间中,在基于数据调用请求确定需要调用的数据缓存于哪个缓存区间后,均可采用前述方式获取每个缓存区间的内存占用率,并且基于每个缓存区间的内存占用率确定每个缓存区间的数据读取优先级,也就是缓存区间的内存占用率越高,那么该每个缓存区间的数据读取优先级,从而用户根据需求在数据读取优先级最低的缓存区间内获取所需数据。因此若还存在第三缓存层,且第三缓存层中的第五缓存区间包括第一数据标识,第五缓存区间被第五缓存节点所管理,第五缓存区间用于缓存第五数据标识集合内数据标识所指示的数据,且第五数据标识集合的范围与第一数据标识集合的范围不相同但存在交集。
为了便于理解,请参阅图11,图11为本申请实施例提供的第一缓存层、第二缓存层以及第三缓存层的一种实施例示意图,如图11所示,I1指的是第一缓存层,I11指的是第一缓存区间,I2指的是第二缓存层,I21指的是第三缓存区间,I3指的是第三缓存层,I31指的是第五缓存区间,I4指的是第一数据标识集合,I5指的是第三数据标识集合以及I6指的是第五数据标识集合。基于此,第一缓存区间I11中的数据被第一缓存节点所管理,且第一缓存区间I11用于缓存第一数据标识集合I4内数据标识所指示的数据。同理可知,第三缓存区间I21中的数据被第三缓存节点所管理,且第三缓存区间I21用于缓存第三数据标识集合I5内数据标识所指示的数据。以及第五缓存区间I31中的数据被第五缓存节点所管理,且第五缓存区间I31用于缓存第五数据标识集合I6内数据标识所指示的数据。并且第一缓存区间I11与第三缓存区间I21可以缓存的数据不重合但有交集,第一缓存区间I11与第五缓存区间I31可以缓存的数据不重合但有交集,以及第三缓存区间I21与第五缓存区间I31可以缓存的数据不重合但有交集,由此使得不同缓存层之间存在区间重叠,区间重叠表示缓存节点存放的数据存在交集。
基于此,服务器携带第一数据标识获取数据调用请求,并通过前述实施例类似方式基于第一数据标识确定第一数据缓存于第二缓存区间、第三缓存区间以及第五缓存区间,再取第二缓存区间的内存占用率、第三缓存区间的内存占用率以及第五缓存区间的内存占用率。当第二缓存区间的内存占用率大于第三缓存区间的内存占用率,且第三缓存区间的内存占用率大于第五缓存区间的内存占用率时,则确定第三缓存层对第一数据的数据读取优先级高于第二缓存层对第一数据的数据读取优先级,且第二缓存层对第一数据的数据读取优先级高于第一缓存层对第一数据的数据读取优先级,该数据读取优先级指示数据读取的先后顺序,服务器确定数据读取优先级的方式与前述实施例类似,此处不再赘述。
进一步地,由于第三缓存层对第一数据的数据读取优先级高于第二缓存层对第一数据的数据读取优先级,且第二缓存层对第一数据的数据读取优先级高于第一缓存层对第一数据的数据读取优先级,若不出现宕机等突发情况,服务器应该从数据读取优先级最高的第三缓存层中的第五缓存区间读取第一数据,而当服务器确定第三缓存层处于宕机状态时,此时第三缓存层中所有缓存区间均无法正常读写数据,因此需要从优先级低于第三缓存层,但是高于其他缓存层的次优缓存层中获取,也就是从第二缓存层的第三缓存区间的缓存中读取第一数据,从而保证整个数据处理系统的高可靠性。
应理解,在实际应用中,当所有缓存层都处于宕机状态,此时数据调用请求才会穿透至后端的数据库,针对这种极端场景,本方案还可以将不同缓存层的缓存节点部署在不同地区,即使某个地区发生不可抗力的灾害导致缓存节点掉电,其他地区的缓存节点仍可提供正常的数据处理服务。
上述主要以方法的角度对本申请实施例提供的方案进行了介绍,而本申请实施例所提供的数据处理的方法可以应用于如下几种应用场景:
第一类应用场景为游戏,以MMORPG场景为例,由于MMORPG中玩法种类繁多且玩家数量也较多,在热门玩法开启期间或者游戏新开服器件,可能存在大量玩家登陆游戏体验、请求游戏服务的各种内容和资源,此时游戏数据库面临极大的请求压力,通过本方案所提供的数据处理的方法,为了缓解游戏数据库压力,先引入缓存机制,将热点数据缓存在内存中,如果玩家请求的数据命中缓存,可迅速将缓存数据下发至玩家,避免请求穿透至数据库,从而提高每个服务节点以及缓存节点的吞吐量,进一步地,本方案所提供的数据处理的方法通过分割多个缓存层,且每个缓存层之间进行不同的缓存区间的拆解,并且每层缓存的区间拆解通过区间偏移的方式,使不同的缓存层之间缓存区间可以缓存的数据存在交错,使得同一数据在不同缓存层中将会存储在不同缓存节点上,即玩家请求的数据能够被存储在不同缓存节点上,因此当多个数据标识指示的数据被频繁请求使得某个缓存层的缓存区间出现热点数据,通过区间偏移的区间交错分配方式,可以使得多个数据标识指示的热点数据在其他缓存层可能被分配至不通的数据标识集合中,即玩家请求的数据可以被不同的缓存节点所管理,从而能够分别在不同的缓存节点对玩家请求的数据进行读取,从而降低其他缓存层出现热点的概率,由此基于多个缓存的交错结构对热点数据进行了负载均衡,提升了数据处理效率。
第二类应用场景为通讯场景,通讯场景下的服务可以为即时通信应用,即时通信应用可以为多人之间的实时沟通,而实时交流内容可以包括文字、图像、语音、视频以及文件数据传输。因此应用于通讯类应用时,可能存在一个时间段进行视频会议,并需要在该时间段进行文字、图像、语音、视频以及文件数据传输等数据的分享,因此可能出现多个参与视频会议的用户同时请求一段文字数据,从而使得管理该文字数据的某个缓存层的缓存区间出现热点数据,那么通过本方案所提供的数据处理的方法通过分割多个缓存层,且每个缓存层之间进行不同的缓存区间的拆解,并且每层缓存的区间拆解通过区间偏移的方式,使不同的缓存层之间缓存区间可以缓存的数据存在交错,使得同一数据在不同缓存层中将会存储在不同缓存节点上,因此通过区间偏移的区间交错分配方式,可以使得多个数据标识指示的热点数据在其他缓存层可能被分配至不通的数据标识集合中,即多个参与视频会议的用户同时请求一段文字数据的可以被不同的缓存节点所管理,从而能够分别在不同的缓存节点对文字数据进行读取,从而降低其他缓存层出现热点的概率,由此基于多个缓存的交错结构对热点数据进行了负载均衡,进一步地提升了数据处理效率。
可以理解的是,前述应用场景的介绍仅用于进一步地理解本方案,在实际应用中,本申请实施例所提供的数据处理的方法的具体应用场景包括但不限于上述示例的几种,例如,还可以应用于交易支付场景以及实时直播场景等,具体此处不对可用的应用场景进行穷举。
本申请实施例中,提供了另一种数据处理的方法,采用上述方式,基于每个缓存区间的内存占用率确定每个缓存区间的数据读取优先级,并且由于设定了数据读取优先级,因此在数据读取优先级较高的缓存层宕机时,也能通过数据读取优先级交的的缓存层的缓存区间内获取所需数据,以保证数据处理的效率,且保证本方案的可靠性。
图12为本申请实施例提供的一种数据处理装置的结构示意图,如图12所示,该数据处理装置1200包括:
获取模块1201,用于获取第一数据,其中,第一数据携带第一数据标识,第一数据标识指示第一数据;
分配模块1202,用于基于第一数据标识,将第一数据分配至第一缓存层中的第一缓存区间进行缓存,其中,第一缓存区间被第一缓存节点所管理,第一缓存区间用于缓存第一数据标识集合内数据标识所指示的数据,第一数据标识集合包括第一数据标识;
处理模块1203,用于当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,其中,范围增加后的第二数据标识集合包括第一数据标识,第二数据标识集合内数据标识所指示的数据在第二缓存区间进行缓存,第二缓存区间被第二缓存节点所管理;
分配模块1202,还用于将第一数据分配至第二缓存区间进行缓存。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的数据处理装置1200的另一实施例中,分配模块1202,还用于基于第一数据标识,将第一数据分配至第二缓存层中的第三缓存区间进行缓存,其中,第三缓存区间被第三缓存节点所管理,第三缓存区间用于缓存第三数据标识集合内数据标识所指示的数据,第三数据标识集合包括第一数据标识,且第三数据标识集合的范围与第一数据标识集合的范围不相同但存在交集。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的数据处理装置1200的另一实施例中,处理模块1203,还用于当范围缩减后的第一缓存区间的内存占用率小或等于第一缓存区间对应的正常负载预设阈值时,则停止缩减第一数据标识集合的范围,且停止增加第二数据标识集合的范围;
或,
处理模块1203,还用于当范围增加后的第二缓存区间的内存占用率大于第二缓存区间对应的正常负载预设阈值时,则停止增加第二数据标识集合的范围。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的数据处理装置1200的另一实施例中,第一缓存层还包括第四缓存区间,第四缓存区间被第四缓存节点所管理,第四缓存区间用于缓存第四数据标识集合内数据标识所指示的数据,且第四数据标识集合的范围与第一数据标识集合的范围不重合,以及第四数据标识集合的范围与第二数据标识集合的范围不重合;
处理模块1203,具体用于当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则获取第二缓存区间的内存占用率以及第四缓存区间的内存占用率;
当第二缓存区间的内存占用率小于第四缓存区间的内存占用率时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的数据处理装置1200的另一实施例中,处理模块1203,还用于当第二缓存区间的内存占用率大于第四缓存区间的内存占用率时,则缩减第一数据标识集合的范围,且增加第四数据标识集合的范围,其中,范围增加后的第四数据标识集合包括第一数据标识;
分配模块1202,还用于将第一数据分配至第四缓存区间进行缓存。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的数据处理装置1200的另一实施例中,处理模块1203,还用于在获取模块1201缩减第一数据标识集合的范围,且增加第二数据标识集合的范围之后,当范围增加后的第二缓存区间的内存占用率大于第二缓存区间对应的正常负载预设阈值,且第四缓存区间的内存占用率小于第四缓存区间对应的正常负载预设阈值时,则停止增加第二数据标识集合的范围,并增加第四数据标识集合的范围。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的数据处理装置1200的另一实施例中,第一缓存层还包括第四缓存区间,第四缓存区间被第四缓存节点所管理,第四缓存区间用于缓存第四数据标识集合内数据标识所指示的数据,且第四数据标识集合的范围与第一数据标识集合的范围不重合,以及第四数据标识集合的范围与第二数据标识集合的范围不重合;
处理模块1203,具体用于当第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,以及增加第四数据标识集合的范围。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的数据处理装置1200的另一实施例中,获取模块,还用于获取第一预设周期内第一缓存区间的内存占用率;
处理模块1203,具体用于当第一预设周期内的第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则以第一预设比例缩减第一数据标识集合的范围,且增加第二数据标识集合的范围。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的数据处理装置1200的另一实施例中,获取模块1201,还用于获取第二预设周期内范围缩减后的第一缓存区间的内存占用率,其中,第二预设周期是与第一预设周期相邻的下一预设周期;
处理模块1203,还用于当第二预设周期内的范围缩减后的第一缓存区间的内存占用率大于第一缓存区间对应的高负载预设阈值时,则以第二预设比例缩减第一数据标识集合的范围,且增加第二数据标识集合的范围,其中,第二预设比例大于第一预设比例。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的数据处理装置1200的另一实施例中,数据处理装置1200还包括读取模块1204;
获取模块1201,还用于分配模块1202将第一数据分配至第二缓存区间进行缓存之后,获取数据调用请求,其中,数据调用请求携带第一数据标识;
处理模块1203,还用于基于第一数据标识确定第一数据缓存于第二缓存区间以及第三缓存区间;
获取模块1201,还用于获取第二缓存区间的内存占用率以及第三缓存区间的内存占用率;
处理模块1203,还用于当第二缓存区间的内存占用率小于第三缓存区间的内存占用率时,则确定第一缓存层对第一数据的数据读取优先级高于第二缓存层对第一数据的数据读取优先级,其中,数据读取优先级指示数据读取的先后顺序;
读取模块1204,用于从第二缓存区间的缓存中读取第一数据。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的数据处理装置1200的另一实施例中,处理模块1203,还用于当第二缓存区间的内存占用率大于第三缓存区间的内存占用率时,则确定第一缓存层对第一数据的数据读取优先级低于第二缓存层对第一数据的数据读取优先级;
读取模块1204,还用于从第三缓存区间的缓存中读取第一数据。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的数据处理装置1200的另一实施例中,第三缓存层中的第五缓存区间包括第一数据标识,第五缓存区间被第五缓存节点所管理,第五缓存区间用于缓存第五数据标识集合内数据标识所指示的数据,且第五数据标识集合的范围与第一数据标识集合的范围不相同但存在交集;
获取模块1201,还用于获取数据调用请求,其中,数据调用请求携带第一数据标识;
处理模块1203,还用于基于第一数据标识确定第一数据缓存于第二缓存区间、第三缓存区间以及第五缓存区间;
获取模块1201,还用于获取第二缓存区间的内存占用率、第三缓存区间的内存占用率以及第五缓存区间的内存占用率;
处理模块1203,还用于当第二缓存区间的内存占用率大于第三缓存区间的内存占用率,且第三缓存区间的内存占用率大于第五缓存区间的内存占用率时,则确定第三缓存层对第一数据的数据读取优先级高于第二缓存层对第一数据的数据读取优先级,且第二缓存层对第一数据的数据读取优先级高于第一缓存层对第一数据的数据读取优先级,其中,数据读取优先级指示数据读取的先后顺序;
读取模块1204,还用于当第三缓存层处于宕机状态时,则从第二缓存层的第三缓存区间的缓存中读取第一数据。
本申请实施例还提供了另一种数据处理装置,数据处理装置都可以部署于服务器,也可以部署于终端设备,本申请中以数据处理装置部署于服务器为例进行说明,请参阅图13,图13为本申请实施例中服务器一个实施例示意图,如图所示,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1322(例如,一个或一个以上处理器)和存储器1332,一个或一个以上存储应用程序1342或数据1344的存储介质1330(例如一个或一个以上海量存储设备)。其中,存储器1332和存储介质1330可以是短暂存储或持久存储。存储在存储介质1330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1322可以设置为与存储介质1330通信,在服务器1300上执行存储介质1330中的一系列指令操作。
服务器1300还可以包括一个或一个以上电源1326,一个或一个以上有线或无线网络接口1350,一个或一个以上输入输出接口1358,和/或,一个或一个以上操作系统1341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图13所示的服务器结构。
该服务器所包括的CPU 1322用于执行如图2所示实施例以及图2对应的各个实施例。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如前述图2所示实施例描述的方法中服务器所执行的步骤。
本申请实施例中还提供一种包括程序的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图2所示实施例描述的方法中服务器所执行的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如至少两个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (14)
1.一种数据处理的方法,其特征在于,包括:
分割多个缓存层,通过区间偏移的方式对每个所述缓存层之间进行不同缓存区间的拆解,使得不同缓存层之间的缓存区间缓存的数据存在交错;同一所述缓存层中的每个所述缓存区间对应的数据标识集合的并集为全量数据对应的数据标识,且同一所述缓存层中每个所述缓存区间没有交集;
获取第一数据,其中,所述第一数据携带第一数据标识,所述第一数据标识指示所述第一数据;
基于所述第一数据标识,将所述第一数据分配至第一缓存层中的第一缓存区间进行缓存,其中,所述第一缓存区间被第一缓存节点所管理,所述第一缓存区间用于缓存第一数据标识集合内数据标识所指示的数据,所述第一数据标识集合包括所述第一数据标识;所述第一缓存层至少包括:所述第一缓存区间与第二缓存区间;
当所述第一缓存区间的内存占用率大于所述第一缓存区间对应的高负载预设阈值时,则缩减所述第一数据标识集合的范围,且增加第二数据标识集合的范围,其中,所述范围增加后的第二数据标识集合包括所述第一数据标识,所述第二数据标识集合内数据标识所指示的数据在所述第二缓存区间进行缓存,所述第二缓存区间被第二缓存节点所管理;
将所述第一数据分配至所述第二缓存区间进行缓存;
基于所述第一数据标识,将所述第一数据分配至第二缓存层中的第三缓存区间进行缓存,其中,所述第三缓存区间被第三缓存节点所管理,所述第三缓存区间用于缓存第三数据标识集合内数据标识所指示的数据,所述第三数据标识集合包括所述第一数据标识,且所述第三数据标识集合的范围与所述第一数据标识集合的范围不相同但存在交集。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当范围缩减后的第一缓存区间的内存占用率小或等于所述第一缓存区间对应的正常负载预设阈值时,则停止缩减所述第一数据标识集合的范围,且停止增加所述第二数据标识集合的范围;
或,
当范围增加后的第二缓存区间的内存占用率大于所述第二缓存区间对应的正常负载预设阈值时,则停止增加所述第二数据标识集合的范围。
3.根据权利要求1所述的方法,其特征在于,所述第一缓存层还包括第四缓存区间,所述第四缓存区间被第四缓存节点所管理,所述第四缓存区间用于缓存第四数据标识集合内数据标识所指示的数据,且所述第四数据标识集合的范围与第一数据标识集合的范围不重合,以及所述第四数据标识集合的范围与所述第二数据标识集合的范围不重合;
所述当所述第一缓存区间的内存占用率大于所述第一缓存区间对应的高负载预设阈值时,则缩减所述第一数据标识集合的范围,且增加第二数据标识集合的范围,包括:
当所述第一缓存区间的内存占用率大于所述第一缓存区间对应的高负载预设阈值时,则获取所述第二缓存区间的内存占用率以及所述第四缓存区间的内存占用率;
当所述第二缓存区间的内存占用率小于所述第四缓存区间的内存占用率时,则缩减所述第一数据标识集合的范围,且增加所述第二数据标识集合的范围。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述第二缓存区间的内存占用率大于所述第四缓存区间的内存占用率时,则缩减所述第一数据标识集合的范围,且增加所述第四数据标识集合的范围,其中,范围增加后的第三数据标识集合包括所述第一数据标识;
将所述第一数据分配至所述第四缓存区间进行缓存。
5.根据权利要求3所述的方法,其特征在于,在所述缩减所述第一数据标识集合的范围,且增加所述第二数据标识集合的范围之后,所述方法还包括:
当范围增加后的第二缓存区间的内存占用率大于所述第二缓存区间对应的正常负载预设阈值,且所述第四缓存区间的内存占用率小于所述第四缓存区间对应的正常负载预设阈值时,则停止增加所述第二数据标识集合的范围,并增加所述第四数据标识集合的范围。
6.根据权利要求1所述的方法,其特征在于,所述第一缓存层还包括第四缓存区间,所述第四缓存区间被第四缓存节点所管理,所述第四缓存区间用于缓存第四数据标识集合内数据标识所指示的数据,且所述第四数据标识集合的范围与第一数据标识集合的范围不重合,以及所述第四数据标识集合的范围与所述第二数据标识集合的范围不重合;
所述当所述第一缓存区间的内存占用率大于所述第一缓存区间对应的高负载预设阈值时,则缩减所述第一数据标识集合的范围,且增加所述第二数据标识集合的范围,包括:
当所述第一缓存区间的内存占用率大于所述第一缓存区间对应的高负载预设阈值时,则缩减所述第一数据标识集合的范围,且增加所述第二数据标识集合的范围,以及增加所述第四数据标识集合的范围。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取第一预设周期内所述第一缓存区间的内存占用率;
所述当所述第一缓存区间的内存占用率大于所述第一缓存区间对应的高负载预设阈值时,则缩减所述第一数据标识集合的范围,且增加所述第二数据标识集合的范围,包括:
当所述第一预设周期内的所述第一缓存区间的内存占用率大于所述第一缓存区间对应的高负载预设阈值时,则以第一预设比例缩减所述第一数据标识集合的范围,且增加所述第二数据标识集合的范围。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取第二预设周期内范围缩减后的第一缓存区间的内存占用率,其中,所述第二预设周期是与所述第一预设周期相邻的下一预设周期;
当所述第二预设周期内的所述范围缩减后的第一缓存区间的内存占用率大于所述第一缓存区间对应的高负载预设阈值时,则以第二预设比例缩减所述第一数据标识集合的范围,且增加所述第二数据标识集合的范围,其中,所述第二预设比例大于所述第一预设比例。
9.根据权利要求1所述的方法,其特征在于,所述将所述第一数据分配至所述第二缓存区间进行缓存之后,所述方法还包括:
获取数据调用请求,其中,所述数据调用请求携带第一数据标识;
基于所述第一数据标识确定所述第一数据缓存于所述第二缓存区间以及所述第三缓存区间;
获取所述第二缓存区间的内存占用率以及所述第三缓存区间的内存占用率;
当所述第二缓存区间的内存占用率小于所述第三缓存区间的内存占用率时,则确定所述第一缓存层对所述第一数据的数据读取优先级高于所述第二缓存层对所述第一数据的数据读取优先级,其中,所述数据读取优先级指示数据读取的先后顺序;
从所述第二缓存区间的缓存中读取所述第一数据。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当所述第二缓存区间的内存占用率大于所述第三缓存区间的内存占用率时,则确定第一缓存层对所述第一数据的数据读取优先级低于所述第二缓存层对所述第一数据的数据读取优先级;
从所述第三缓存区间的缓存中读取所述第一数据。
11.根据权利要求1所述的方法,其特征在于,第三缓存层中的第五缓存区间包括所述第一数据标识,所述第五缓存区间被第五缓存节点所管理,所述第五缓存区间用于缓存第五数据标识集合内数据标识所指示的数据,且所述第五数据标识集合的范围与所述第一数据标识集合的范围不相同但存在交集;
所述方法还包括:
获取数据调用请求,其中,所述数据调用请求携带第一数据标识;
基于所述第一数据标识确定所述第一数据缓存于所述第二缓存区间、所述第三缓存区间以及所述第五缓存区间;
获取所述第二缓存区间的内存占用率、所述第三缓存区间的内存占用率以及所述第五缓存区间的内存占用率;
当所述第二缓存区间的内存占用率大于所述第三缓存区间的内存占用率,且所述第三缓存区间的内存占用率大于所述第五缓存区间的内存占用率时,则确定所述第三缓存层对所述第一数据的数据读取优先级高于所述第二缓存层对所述第一数据的数据读取优先级,且所述第二缓存层对所述第一数据的数据读取优先级高于所述第一缓存层对所述第一数据的数据读取优先级,其中,所述数据读取优先级指示数据读取的先后顺序;
当所述第三缓存层处于宕机状态时,则从所述第二缓存层的第三缓存区间的缓存中读取所述第一数据。
12.一种数据处理装置,其特征在于,所述数据处理装置包括:
所述装置,用于分割多个缓存层,通过区间偏移的方式对每个所述缓存层之间进行不同缓存区间的拆解,使得不同缓存层之间的缓存区间缓存的数据存在交错;同一所述缓存层中的每个所述缓存区间对应的数据标识集合的并集为全量数据对应的数据标识,且同一所述缓存层中每个所述缓存区间没有交集;
获取模块,用于获取第一数据,其中,所述第一数据携带第一数据标识,所述第一数据标识指示所述第一数据;
分配模块,用于基于所述第一数据标识,将所述第一数据分配至第一缓存层中的第一缓存区间进行缓存,其中,所述第一缓存区间被第一缓存节点所管理,所述第一缓存区间用于缓存第一数据标识集合内数据标识所指示的数据,所述第一数据标识集合包括所述第一数据标识;所述第一缓存层至少包括:所述第一缓存区间与第二缓存区间;
处理模块,用于当所述第一缓存区间的内存占用率大于所述第一缓存区间对应的高负载预设阈值时,则缩减所述第一数据标识集合的范围,且增加第二数据标识集合的范围,其中,所述范围增加后的第二数据标识集合包括所述第一数据标识,所述第二数据标识集合内数据标识所指示的数据在所述第二缓存区间进行缓存,所述第二缓存区间被第二缓存节点所管理;
所述分配模块,还用于将所述第一数据分配至所述第二缓存区间进行缓存;
所述装置,还用于基于所述第一数据标识,将所述第一数据分配至第二缓存层中的第三缓存区间进行缓存,其中,所述第三缓存区间被第三缓存节点所管理,所述第三缓存区间用于缓存第三数据标识集合内数据标识所指示的数据,所述第三数据标识集合包括所述第一数据标识,且所述第三数据标识集合的范围与所述第一数据标识集合的范围不相同但存在交集。
13.一种计算机设备,其特征在于,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,以实现权利要求1至11中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
14.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111323666.7A CN113778692B (zh) | 2021-11-10 | 2021-11-10 | 一种数据处理的方法及装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111323666.7A CN113778692B (zh) | 2021-11-10 | 2021-11-10 | 一种数据处理的方法及装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113778692A CN113778692A (zh) | 2021-12-10 |
CN113778692B true CN113778692B (zh) | 2022-03-08 |
Family
ID=78873666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111323666.7A Active CN113778692B (zh) | 2021-11-10 | 2021-11-10 | 一种数据处理的方法及装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113778692B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783472A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 表数据的迁移方法、装置、计算机设备和存储介质 |
CN110096350A (zh) * | 2019-04-10 | 2019-08-06 | 山东科技大学 | 基于集群节点负载状态预测的冷热区域划分节能存储方法 |
CN110333937A (zh) * | 2019-05-30 | 2019-10-15 | 平安科技(深圳)有限公司 | 任务分发方法、装置、计算机设备和存储介质 |
CN111580959A (zh) * | 2020-04-26 | 2020-08-25 | Oppo(重庆)智能科技有限公司 | 一种数据写入方法、数据写入装置、服务器及存储介质 |
CN112256438A (zh) * | 2020-06-28 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 负载均衡控制方法和装置、存储介质及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108810041B (zh) * | 2017-04-27 | 2021-03-05 | 华为技术有限公司 | 一种分布式缓存系统的数据写入及扩容方法、装置 |
CN110737668B (zh) * | 2019-12-17 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 数据存储方法、数据读取方法、相关设备及介质 |
CN111913670B (zh) * | 2020-08-07 | 2024-04-02 | 北京百度网讯科技有限公司 | 负载均衡的处理方法、装置、电子设备及存储介质 |
CN112698792B (zh) * | 2021-01-14 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 分布式存储系统的数据迁移方法、装置及电子设备 |
CN113312339B (zh) * | 2021-07-28 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 一种数据迁移的方法及装置、计算机设备和存储介质 |
CN113515364B (zh) * | 2021-09-14 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 一种数据迁移的方法及装置、计算机设备和存储介质 |
-
2021
- 2021-11-10 CN CN202111323666.7A patent/CN113778692B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783472A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 表数据的迁移方法、装置、计算机设备和存储介质 |
CN110096350A (zh) * | 2019-04-10 | 2019-08-06 | 山东科技大学 | 基于集群节点负载状态预测的冷热区域划分节能存储方法 |
CN110333937A (zh) * | 2019-05-30 | 2019-10-15 | 平安科技(深圳)有限公司 | 任务分发方法、装置、计算机设备和存储介质 |
CN111580959A (zh) * | 2020-04-26 | 2020-08-25 | Oppo(重庆)智能科技有限公司 | 一种数据写入方法、数据写入装置、服务器及存储介质 |
CN112256438A (zh) * | 2020-06-28 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 负载均衡控制方法和装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113778692A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8639816B2 (en) | Distributed computing based on multiple nodes with determined capacity selectively joining resource groups having resource requirements | |
US20170336998A1 (en) | Method and system for sharing storage resource | |
US8832687B2 (en) | Managing quotas in a distributed virtualization environment | |
US8606897B2 (en) | Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network | |
CN103999031B (zh) | 云服务器的虚拟私有存储阵列服务 | |
US8612615B2 (en) | Systems and methods for identifying usage histories for producing optimized cloud utilization | |
US20120263191A1 (en) | Mechanism For Managing Quotas In a Distributed Virtualization Environment | |
US20090172666A1 (en) | System and method for automatic storage load balancing in virtual server environments | |
US20130086235A1 (en) | Systems and methods for generating cloud deployment targets based on predictive workload estimation | |
US10924542B2 (en) | Content delivery system | |
CN110597639B (zh) | Cpu分配控制方法、装置、服务器及存储介质 | |
CN109857542B (zh) | 算力资源调节方法、系统及装置 | |
CN102917018A (zh) | 端点的负载平衡 | |
US20200050479A1 (en) | Blockchain network and task scheduling method therefor | |
Quesnel et al. | Cooperative and reactive scheduling in large‐scale virtualized platforms with DVMS | |
CN104142864A (zh) | 一种基于虚拟化技术的多租户性能隔离框架 | |
US10616134B1 (en) | Prioritizing resource hosts for resource placement | |
CN102378976B (zh) | 使用多个处理器的图像压缩加速 | |
CN112494934A (zh) | 云游戏数据的处理方法、装置、设备及存储介质 | |
An et al. | A publish/subscribe middleware for dependable and real-time resource monitoring in the cloud | |
KR20210096619A (ko) | 분산 컴퓨팅 및 스토리지에 대한 지능형 비중앙집중식 자율 마켓플레이스 | |
CN111352592B (zh) | 磁盘读写控制方法、装置、设备及计算机可读存储介质 | |
CN113312339B (zh) | 一种数据迁移的方法及装置、计算机设备和存储介质 | |
Lee et al. | Distributed resource allocation in federated clouds | |
CN113778692B (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 |