CN105183670A - 用于分布式缓存系统的数据处理方法和装置 - Google Patents

用于分布式缓存系统的数据处理方法和装置 Download PDF

Info

Publication number
CN105183670A
CN105183670A CN201510706122.7A CN201510706122A CN105183670A CN 105183670 A CN105183670 A CN 105183670A CN 201510706122 A CN201510706122 A CN 201510706122A CN 105183670 A CN105183670 A CN 105183670A
Authority
CN
China
Prior art keywords
server
memory
caching server
caching
cache system
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
Application number
CN201510706122.7A
Other languages
English (en)
Other versions
CN105183670B (zh
Inventor
张东阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201510706122.7A priority Critical patent/CN105183670B/zh
Publication of CN105183670A publication Critical patent/CN105183670A/zh
Application granted granted Critical
Publication of CN105183670B publication Critical patent/CN105183670B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请公开了用于分布式缓存系统的数据处理方法和装置。所述数据处理方法的一具体实施方式包括:获取分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;根据当前内存占用量和内存总容量,对各个缓存服务器进行数据均衡处理,所述数据均衡处理包括:基于当前内存占用量和内存总容量,将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合;在所述高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在所述低负载服务器集合中选择一个缓存服务器作为目标缓存服务器,将所述源缓存服务器中的部分数据迁移到所述目标缓存服务器中。该实施方式提高了分布式缓存系统的内存利用率。

Description

用于分布式缓存系统的数据处理方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及分布式缓存技术领域,尤其涉及用于分布式缓存系统的数据处理方法和装置。
背景技术
目前,随着各行业的高速缓存(Cache)数据的存储规模的不断扩大,为了提供更高容量的数据,通常会采用多个缓存服务器(CacheServer)来存储数据,并通过代理服务器(Proxy)根据预定的哈希(hash)算法将数据分发到各个缓存服务器上。同时,会部署一个元数据管理服务器来管理这些数据的存储位置信息。
然而,在具有多个代理服务器,并且每个代理服务器都连接至少一个缓存服务器的环境中,由于各个代理服务器所连接的缓存服务器的数量不同,导致了不同缓存服务器的内存中的数据量不同,因此可能会出现一些缓存服务器的内存占用量已经接近内存总容量,而其他缓存服务器内存占用相对较少的情况,因此导致了各个缓存服务器的内存中的数据量不均衡,从而使分布式缓存系统的内存利用率较低。
发明内容
本申请的目的在于提出一种用于分布式缓存系统的数据处理方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种用于分布式缓存系统的数据处理方法,所述方法包括:获取分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;根据当前内存占用量和内存总容量,对各个缓存服务器进行数据均衡处理,所述数据均衡处理包括:基于当前内存占用量和内存总容量,将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合;在高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在低负载服务器集合中选择一个缓存服务器作为目标缓存服务器,将所述源缓存服务器中的部分数据迁移到所述目标缓存服务器中。
在一些实施例中,所述基于当前内存占用量和内存总容量,将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合,包括:根据当前内存占用量和内存总容量,得到每个所述缓存服务器的内存占用比以及所述分布式缓存系统中的缓存服务器的平均内存占用比;基于各个缓存服务器的内存占用比和所述平均内存占用比,将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合。
在一些实施例中,所述数据均衡处理还包括:在得到每个所述缓存服务器的内存占用比之后,确定所述缓存服务器的内存占用比中的最大值和最小值的差值是否小于预定的阈值;如果是,则终止执行所述数据均衡处理。
在一些实施例中,所述方法还包括:在将所述源缓存服务器中的部分数据迁移到所述目标缓存服务器中之后,重新获取所述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;根据重新获取的所述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量,对所述分布式缓存系统的中的缓存服务器进行所述数据均衡处理。
在一些实施例中,所述分布式缓存系统中的各个缓存服务器包括至少一个内存桶;以及所述将所述源缓存服务器中的部分数据迁移到所述目标缓存服务器中,包括:将所述源缓存服务器的一个内存桶中的数据迁移到所述目标缓存服务器中。
在一些实施例中,所述方法还包括:在将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合之前,根据内存占用比对所述分布式缓存系统中的缓存服务器进行排序。
在一些实施例中,所述方法还包括:在高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在低负载服务器集合中选择一个缓存服务器作为目标缓存服务器之前,分别将所述高负载服务器集合和所述低负载服务器集合中的缓存服务器随机排列。
第二方面,本申请提供了一种用于分布式缓存系统的数据处理装置,所述装置包括:第一内存信息获取单元,用于获取分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;数据均衡处理单元,用于根据当前内存占用量和内存总容量,对各个缓存服务器进行数据均衡处理,所述数据均衡处理单元包括:服务器划分子单元,用于基于当前内存占用量和内存总容量,将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合;数据迁移子单元,用于在高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在低负载服务器集合中选择一个缓存服务器作为目标缓存服务器,将所述源缓存服务器中的部分数据迁移到所述目标缓存服务器中。
在一些实施例中,所述服务器划分子单元包括:内存占用比获取模块,用于根据当前内存占用量和内存总容量,得到每个所述缓存服务器的内存占用比以及所述分布式缓存系统中的缓存服务器的平均内存占用比;服务器划分模块,用于基于各个缓存服务器的内存占用比和所述平均内存占用比,将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合。
在一些实施例中,所述数据均衡处理单元还包括:均衡处理终止子单元,用于在得到每个所述缓存服务器的内存占用比之后,确定所述缓存服务器的内存占用比中的最大值和最小值的差值是否小于预定的阈值,如果是,则终止执行所述数据均衡处理。
在一些实施例中,所述装置还包括:第二内存信息获取单元,用于在将所述源缓存服务器中的部分数据迁移到所述目标缓存服务器中之后,重新获取所述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;数据均衡指示单元,用于指示所述数据均衡处理单元根据重新获取的所述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量,对所述分布式缓存系统的中的缓存服务器进行所述数据均衡处理。
在一些实施例中,所述分布式缓存系统中的各个缓存服务器包括至少一个内存桶;以及所述数据迁移子单元进一步配置用于将所述源缓存服务器的一个内存桶中的数据迁移到所述目标缓存服务器中。
在一些实施例中,所述装置还包括:服务器排序单元,用于在将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合之前,根据内存占用比对所述分布式缓存系统中的缓存服务器进行排序。
在一些实施例中,所述装置还包括:随机排列单元,用于在高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在低负载服务器集合中选择一个缓存服务器作为目标缓存服务器之前,分别将所述高负载服务器集合和所述低负载服务器集合中的缓存服务器随机排列。
本申请提供的用于分布式缓存系统的数据处理方法和装置,通过根据分布式缓存系统中的缓存服务器的当前内存占用量和内存总容量,将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合,并将高负载服务器集合中的缓存服务器中的部分数据迁移到低负载服务器集合中的缓存服务器中,从而使各个缓存服务器的内存中的数据量更均衡,提高了分布式缓存系统的内存利用率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于分布式缓存系统的数据处理方法的一个实施例的流程图;
图3是根据本申请的用于分布式缓存系统的数据处理方法的另一个实施例的流程图;
图4是根据本申请的用于分布式缓存系统的数据处理装置的一个实施例的结构示意图;
图5是适于用来实现本申请实施例的终端设备、代理服务器或缓存服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的数据处理方法或数据处理装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102,代理服务器103、104,缓存服务器105、106和元数据管理服务器107。终端设备101、102,代理服务器103、104、缓存服务器105、106和元数据管理服务器107之间通过网络通信。其中,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102可以通过网络与代理服务器103、104交互,以接收或发送数据等。终端设备101、102、103上可以安装有各种客户端应用,例如浏览器应用、搜索类应用、邮箱客户端、社交平台软件等。
终端设备101、102可以是支持数据传输的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
代理服务器103、104可以是提供代理服务的服务器,例如将终端设备101、102发送的数据分发给缓存服务器105、106。需要说明的是一个代理服务器可以与一个或者多个缓存服务器通信,图1中所示的代理服务器所连接的缓存服务器的数目仅仅为本架构的一个示例。
缓存服务器105、106可以对接收到的数据进行存储、分析等处理,并将处理结果反馈给代理服务器。
元数据管理服务器107可以管理数据的存储位置信息,例如管理存储数据的各个逻辑内存桶所在的缓存服务器的信息。并且可以控制各个缓存服务器中的数据的迁移。
需要说明的是,本申请实施例所提供的数据处理方法通常由元数据管理服务器107单独执行。相应地,数据处理装置通常设置于元数据管理服务器107中。
应该理解,图1中的终端设备、代理服务器和缓存服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,图2示出了根据本申请的用于分布式缓存系统的数据处理方法的一个实施例的流程200。
如图2所示,本实施例的数据处理方法包括以下步骤:
步骤201,获取分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量。
在本实施例中,数据处理方法运行于其上的电子设备(例如图1所示的元数据管理服务器)可以通过有线连接方式或者无线连接方式从每个缓存服务器接收缓存服务器的当内存占用量和内存总容量。其中,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultrawideband)连接、以及其他现在已知或将来开发的无线连接方式。
步骤202,基于当前内存占用量和内存总容量,将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合。
在本实施例中,元数据管理服务器可以根据各种预定的规则来将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合。例如,可以设置一个内存占用量阈值,将内存占用量大于该内存占用量阈值的缓存服务器作为高负载服务器集合中的一个,并将内存占用量小于等于该内存占用量阈值的缓存服务器作为低负载服务器集合中的一个,从而将上述分布式缓存系统中的缓存服务器划分出高负载服务器集合和低负载服务器集合。
需要说明的是,上述预定的规则不限于上述举例的规则。该预定的规则可以是其他任意可以将上述分布式缓存系统中的缓存服务器划分出高负载服务器集合和低负载服务器集合的规则,本实施例不对上述预定的规则做具体的限定。
步骤203,在高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在低负载服务器集合中选择一个缓存服务器作为目标缓存服务器,将上述源缓存服务器中的部分数据迁移到上述目标缓存服务器中。
本实施例中,元数据管理服务器可以在高负载服务器集合和低负载服务器集合中分别选择第N个(例如第一个)缓存服务器作为源缓存服务器和目标缓存服务器。其中,N可以是预定的小于或等于高负载服务器集合和低负载服务器集合中的缓存服务器的数量的最小值的任意正整数。
之后,元数据管理服务器可以通过网络将上述源缓存服务器中的部分数据迁移到上述目标缓存服务器中。
在本实施例的一些可选的实现方式中,上述分布式缓存系统中的各个缓存服务器可以包括至少一个内存桶;以及上述将上述源缓存服务器中的部分数据迁移到上述目标缓存服务器中可以包括:将上述源缓存服务器的一个内存桶中的数据迁移到上述目标缓存服务器中。其中,上述内存桶是一个逻辑概念,元数据管理服务器通过记录内存桶所在的缓存服务器来管理数据的存储位置信息。在将上述源缓存服务器中的部分数据迁移到上述目标缓存服务器中之后,元数据管理服务器就可以将被迁移的内存桶所在的缓存服务器信息更改为迁移后上述内存桶所在的缓存服务器信息。
在本实施例的一些可选的实现方式中,步骤202可以包括:根据当前内存占用量和内存总容量,得到每个上述缓存服务器的内存占用比以及上述分布式缓存系统中的缓存服务器的平均内存占用比;基于各个缓存服务器的内存占用比和上述平均内存占用比,将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合。
例如,可以将内存占用比大于上述平均占用比的缓存服务器作为高负载服务器集合中的一个;将内存占用比小于上述平均占用比的缓存服务器作为低负载服务器集合中的一个;对于等于上述平均占用比的缓存服务器,可以根据高负载服务器集合和低负载服务器集合中的缓存服务器的数量来决定将该缓存服务器属于哪个集合。其中,每个缓存服务器的内存占用比等于该缓存服务器的内存占用量除以该缓存服务器的内存总容量。
通过根据内存占用比来将上述分布式缓存系统中的缓存服务器划分出高负载服务器集合和低负载服务器集合,使得本实施例对高负载服务器集合和低负载服务器集合的划分综合考虑了缓存服务器的内存占有量和内存总容量的因素,从而使本实施例的上述划分更加合理。
在本实施例的一些可选的实现方式中,本实施例的数据处理方法还可以包括:在将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合之前,根据内存占用比对上述分布式缓存系统中的缓存服务器进行排序。通过排序,可以提高元数据管理服务器执行将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合的步骤的效率。
本申请提供的用于分布式缓存系统的数据处理方法,通过根据分布式缓存系统中的缓存服务器的当前内存占用量和内存总容量,将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合,并将高负载服务器集合中的缓存服务器中的部分数据迁移到低负载服务器集合中的缓存服务器中,从而使各个缓存服务器的内存中的数据量更均衡,提高了分布式缓存系统的内存利用率。
下面参考图3,图3示出了根据本申请的用于分布式缓存系统的数据处理方法的另一个实施例的流程300。
如图3所示,本实施例的数据处理方法包括以下步骤:
步骤301,获取分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量。
在本实施例中,步骤301的具体处理可参考上述对图2对应实施例中步骤201的详细描述,在此不再赘述。
步骤302,根据当前内存占用量和内存总容量,对各个缓存服务器进行数据均衡处理。其中,上述数据均衡处理包括:
步骤3021,根据当前内存占用量和内存总容量,得到每个上述缓存服务器的内存占用比以及上述分布式缓存系统中的缓存服务器的平均内存占用比。
在本实施例中,元数据管理服务器可以根据在步骤301从各个缓存服务器接收到的上述当前内存占用量和内存总容量,计算每个缓存服务器的内存占用比以及上述分布式缓存系统中的缓存服务器的平均内存占用比。其中,每个缓存服务器的内存占用比等于该缓存服务器的内存占用量除以该缓存服务器的内存总容量。
步骤3022,确定上述缓存服务器的内存占用比中的最大值和最小值的差值是否小于预定的阈值。
在本实施例中,如果上述缓存服务器的内存占用比中的最大值和最小值的差值小于预定的阈值(例如0.1),则终止执行步骤302,否则执行继续执行步骤3023。
步骤3023,基于各个缓存服务器的内存占用比和上述平均内存占用比,将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合。
在本实施例中,元数据管理服务器可以将内存占用比大于上述平均占用比的缓存服务器作为高负载服务器集合中的一个;将内存占用比小于上述平均占用比的缓存服务器作为低负载服务器集合中的一个;对于等于上述平均占用比的缓存服务器,可以根据高负载服务器集合和低负载服务器集合中的缓存服务器的数量来决定将该缓存服务器属于哪个集合。
步骤3024,在高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在低负载服务器集合中选择一个缓存服务器作为目标缓存服务器,将上述源缓存服务器中的部分数据迁移到上述目标缓存服务器中。
在本实施例中,步骤3024的具体处理可参考上述对图2对应实施例中步骤203的详细描述,在此不再赘述。
在本实施例中,在步骤3024之后,将继续执行步骤301,重新获取上述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量。然后,根据重新获取的上述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量,执行步骤302。
在本实施例的一些可选的实现方式中,本实施例的数据处理方法还可以包括:在将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合之前,根据内存占用比对上述分布式缓存系统中的缓存服务器进行排序。相应地,本实施例的数据处理方法还可以包括:在高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在低负载服务器集合中选择一个缓存服务器作为目标缓存服务器之前,分别将上述高负载服务器集合和上述低负载服务器集合中的缓存服务器随机排列。通过上述随机排列,避免了每次迁移时选择同一源缓存服务器和目标缓存服务器,从而避免出现数据热点。
从图3中可以看出,与图2对应的实施例相比,本实施例中的数据处理方法的流程300增加了数据均衡处理的执行条件及终止执行条件,并且增加了数据均衡的循环执行的处理步骤。由此,本实施例描述的方案可以更全面地对分布式缓存系统中的缓存服务器进行均衡,从而更加提高了分布式缓存系统的内存利用率。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种数据处理装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于元数据管理服务器中。
如图4所示,本实施例上述的数据处理装置400包括:第一内存信息获取单元401和数据均衡处理单元402。其中,第一内存信息获取单元401,用于获取分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;数据均衡处理单元402,用于根据当前内存占用量和内存总容量,对各个缓存服务器进行数据均衡处理,上述数据均衡处理单元包括:服务器划分子单元4021,用于基于当前内存占用量和内存总容量,将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合;数据迁移子单元4022,用于在高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在低负载服务器集合中选择一个缓存服务器作为目标缓存服务器,将上述源缓存服务器中的部分数据迁移到上述目标缓存服务器中。
在本实施例中,第一内存信息获取单元401的具体处理可参考上述对图2对应实施例中步骤201的详细描述,在此不再赘述。
此外,服务器划分子单元4021、数据迁移子单元4022的具体处理可分别参考上述对图2对应实施例中步骤202、步骤203的详细描述,在此不再赘述。
在本实施例的一些可选的实现方式中,服务器划分子单元4021可以包括:内存占用比获取模块(图中未示出),用于根据当前内存占用量和内存总容量,得到每个上述缓存服务器的内存占用比以及上述分布式缓存系统中的缓存服务器的平均内存占用比;服务器划分模块(图中未示出),用于基于各个缓存服务器的内存占用比和上述平均内存占用比,将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合。其中,内存占用比获取模块和服务器划分模块的具体处理可分别参考上述对图2对应实施例的对应实现方式的相关描述,在此不再赘述。
在本实施例的一些可选的实现方式中,数据均衡处理单元402还可以包括均衡处理终止子单元4023,用于在得到每个上述缓存服务器的内存占用比之后,确定上述缓存服务器的内存占用比中的最大值和最小值的差值是否小于预定的阈值,如果是,则终止执行上述数据均衡处理。
相应地,本实施例的数据处理装置还可以包括:第二内存信息获取单元403,用于在将上述源缓存服务器中的部分数据迁移到上述目标缓存服务器中之后,重新获取上述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;数据均衡指示单元404,用于指示上述数据均衡处理单元根据重新获取的上述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量,对上述分布式缓存系统的中的缓存服务器进行上述数据均衡处理。其中,第二内存信息获取单元403可以通过指示第一内存信息获取单元401进行获取分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量的处理来重新获取上述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;也可以在其内部实现完整的重新获取上述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量的处理。
在本实施例的一些可选的实现方式中,上述分布式缓存系统中的各个缓存服务器包括至少一个内存桶。相应地,上述数据迁移子单元5022可以进一步配置用于将上述源缓存服务器的一个内存桶中的数据迁移到上述目标缓存服务器中。
在本实施例的一些可选的实现方式中,本实施例的数据处理装置还可以包括服务器排序单元(图中未示出),用于在将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合之前,根据内存占用比对上述分布式缓存系统中的缓存服务器进行排序。
相应地,在本实施例的一些可选的实现方式中,本实施例的数据处理装置还可以包括:随机排列单元(图中未示出),用于在高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在低负载服务器集合中选择一个缓存服务器作为目标缓存服务器之前,分别将上述高负载服务器集合和上述低负载服务器集合中的缓存服务器随机排列。
本申请提供的用于分布式缓存系统的数据处理装置,通过服务器划分子单元根据分布式缓存系统中的缓存服务器的当前内存占用量和内存总容量,将上述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合,并通过数据迁移子单元将高负载服务器集合中的缓存服务器中的部分数据迁移到低负载服务器集合中的缓存服务器中,从而使各个缓存服务器的内存中的数据量更均衡,提高了分布式缓存系统的内存利用率。
本领域技术人员可以理解,上述数据处理装置400还包括一些其他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图4中未示出。
下面参考图5,其示出了适于用来实现本申请实施例的终端设备、代理服务器或缓存服务器的计算机系统500的结构示意图。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有系统500操作所需的各种程序和数据。CPU501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,上述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一内存信息获取单元和数据均衡处理单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一内存信息获取单元还可以被描述为“获取缓存服务器发送的内存信息的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:获取所述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;根据当前内存占用量和内存总容量,对各个缓存服务器进行数据均衡处理,所述数据均衡处理包括:基于当前内存占用量和内存总容量,将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合;在高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在低负载服务器集合中选择一个缓存服务器作为目标缓存服务器,将所述源缓存服务器中的部分数据迁移到所述目标缓存服务器中。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (14)

1.一种用于分布式缓存系统的数据处理方法,其特征在于,所述方法包括:
获取分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;
根据当前内存占用量和内存总容量,对各个缓存服务器进行数据均衡处理,所述数据均衡处理包括:
基于当前内存占用量和内存总容量,将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合;
在所述高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在所述低负载服务器集合中选择一个缓存服务器作为目标缓存服务器,将所述源缓存服务器中的部分数据迁移到所述目标缓存服务器中。
2.根据权利要求1所述的方法,其特征在于,所述基于当前内存占用量和内存总容量,将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合,包括:
根据当前内存占用量和内存总容量,得到每个所述缓存服务器的内存占用比以及所述分布式缓存系统中的缓存服务器的平均内存占用比;
基于各个缓存服务器的内存占用比和所述平均内存占用比,将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合。
3.根据权利要求2所述的方法,其特征在于,所述数据均衡处理还包括:
在得到每个所述缓存服务器的内存占用比之后,确定所述缓存服务器的内存占用比中的最大值和最小值的差值是否小于预定的阈值;
如果是,则终止执行所述数据均衡处理。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在将所述源缓存服务器中的部分数据迁移到所述目标缓存服务器中之后,重新获取所述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;
根据重新获取的所述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量,对所述分布式缓存系统的中的缓存服务器进行所述数据均衡处理。
5.根据权利要求1-4任一所述的方法,其特征在于,所述分布式缓存系统中的各个缓存服务器包括至少一个内存桶;以及
所述将所述源缓存服务器中的部分数据迁移到所述目标缓存服务器中,包括:
将所述源缓存服务器的一个内存桶中的数据迁移到所述目标缓存服务器中。
6.根据权利要求2-4任一所述的方法,其特征在于,所述方法还包括:
在将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合之前,根据内存占用比对所述分布式缓存系统中的缓存服务器进行排序。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在低负载服务器集合中选择一个缓存服务器作为目标缓存服务器之前,分别将所述高负载服务器集合和所述低负载服务器集合中的缓存服务器随机排列。
8.一种用于分布式缓存系统的数据处理装置,其特征在于,所述装置包括:
第一内存信息获取单元,用于获取分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;
数据均衡处理单元,用于根据当前内存占用量和内存总容量,对各个缓存服务器进行数据均衡处理,所述数据均衡处理单元包括:
服务器划分子单元,用于基于当前内存占用量和内存总容量,将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合;
数据迁移子单元,用于在所述高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在所述低负载服务器集合中选择一个缓存服务器作为目标缓存服务器,将所述源缓存服务器中的部分数据迁移到所述目标缓存服务器中。
9.根据权利要求8所述的装置,其特征在于,所述服务器划分子单元包括:
内存占用比获取模块,用于根据当前内存占用量和内存总容量,得到每个所述缓存服务器的内存占用比以及所述分布式缓存系统中的缓存服务器的平均内存占用比;
服务器划分模块,用于基于各个缓存服务器的内存占用比和所述平均内存占用比,将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合。
10.根据权利要求9所述的装置,其特征在于,所述数据均衡处理单元还包括:
均衡处理终止子单元,用于在得到每个所述缓存服务器的内存占用比之后,确定所述缓存服务器的内存占用比中的最大值和最小值的差值是否小于预定的阈值,如果是,则终止执行所述数据均衡处理。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二内存信息获取单元,用于在将所述源缓存服务器中的部分数据迁移到所述目标缓存服务器中之后,重新获取所述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量;
数据均衡指示单元,用于指示所述数据均衡处理单元根据重新获取的所述分布式缓存系统中的每个缓存服务器的当前内存占用量和内存总容量,对所述分布式缓存系统的中的缓存服务器进行所述数据均衡处理。
12.根据权利要求8-11任一所述的装置,其特征在于,所述分布式缓存系统中的各个缓存服务器包括至少一个内存桶;以及
所述数据迁移子单元进一步配置用于将所述源缓存服务器的一个内存桶中的数据迁移到所述目标缓存服务器中。
13.根据权利要求9-11任一所述的装置,其特征在于,所述装置还包括:
服务器排序单元,用于在将所述分布式缓存系统中的缓存服务器分为高负载服务器集合和低负载服务器集合之前,根据内存占用比对所述分布式缓存系统中的缓存服务器进行排序。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
随机排列单元,用于在高负载服务器集合中选择一个缓存服务器作为源缓存服务器,并在低负载服务器集合中选择一个缓存服务器作为目标缓存服务器之前,分别将所述高负载服务器集合和所述低负载服务器集合中的缓存服务器随机排列。
CN201510706122.7A 2015-10-27 2015-10-27 用于分布式缓存系统的数据处理方法和装置 Active CN105183670B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510706122.7A CN105183670B (zh) 2015-10-27 2015-10-27 用于分布式缓存系统的数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510706122.7A CN105183670B (zh) 2015-10-27 2015-10-27 用于分布式缓存系统的数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN105183670A true CN105183670A (zh) 2015-12-23
CN105183670B CN105183670B (zh) 2018-11-27

Family

ID=54905760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510706122.7A Active CN105183670B (zh) 2015-10-27 2015-10-27 用于分布式缓存系统的数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN105183670B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105847352A (zh) * 2016-03-22 2016-08-10 青岛海信传媒网络技术有限公司 基于分布式缓存系统的扩容方法、装置及分布式缓存系统
CN106886460A (zh) * 2017-02-22 2017-06-23 北京百度网讯科技有限公司 负载均衡方法和装置
CN107015867A (zh) * 2017-04-06 2017-08-04 安徽国防科技职业学院 一种高效数据处理服务器系统
WO2019104981A1 (zh) * 2017-11-30 2019-06-06 平安科技(深圳)有限公司 数据访问方法、电子装置及可读存储介质
CN110198359A (zh) * 2019-07-08 2019-09-03 紫光云技术有限公司 一种负载均衡方法及装置
CN111797063A (zh) * 2020-06-28 2020-10-20 中孚信息股份有限公司 一种流式数据处理方法与系统
CN112256438A (zh) * 2020-06-28 2021-01-22 腾讯科技(深圳)有限公司 负载均衡控制方法和装置、存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185759A (zh) * 2011-04-12 2011-09-14 田文洪 一种满足需求特性的多物理服务器负载均衡的方法及装置
CN102244685A (zh) * 2011-08-11 2011-11-16 中国科学院软件研究所 一种支持负载均衡的分布式缓存动态伸缩方法及系统
CN102968281A (zh) * 2012-11-26 2013-03-13 华为技术有限公司 一种数据迁移的方法及装置
CN103500072A (zh) * 2013-09-27 2014-01-08 华为技术有限公司 数据迁移方法及数据迁移装置
US20150026417A1 (en) * 2012-12-28 2015-01-22 Huawei Technologies Co., Ltd. Caching Method for Distributed Storage System, a Lock Server Node, and a Lock Client Node
CN104662518A (zh) * 2013-09-24 2015-05-27 华为技术有限公司 数据迁移方法、数据迁移装置和存储设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185759A (zh) * 2011-04-12 2011-09-14 田文洪 一种满足需求特性的多物理服务器负载均衡的方法及装置
CN102244685A (zh) * 2011-08-11 2011-11-16 中国科学院软件研究所 一种支持负载均衡的分布式缓存动态伸缩方法及系统
CN102968281A (zh) * 2012-11-26 2013-03-13 华为技术有限公司 一种数据迁移的方法及装置
US20150026417A1 (en) * 2012-12-28 2015-01-22 Huawei Technologies Co., Ltd. Caching Method for Distributed Storage System, a Lock Server Node, and a Lock Client Node
CN104662518A (zh) * 2013-09-24 2015-05-27 华为技术有限公司 数据迁移方法、数据迁移装置和存储设备
CN103500072A (zh) * 2013-09-27 2014-01-08 华为技术有限公司 数据迁移方法及数据迁移装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105847352A (zh) * 2016-03-22 2016-08-10 青岛海信传媒网络技术有限公司 基于分布式缓存系统的扩容方法、装置及分布式缓存系统
CN105847352B (zh) * 2016-03-22 2019-09-17 聚好看科技股份有限公司 基于分布式缓存系统的扩容方法、装置及分布式缓存系统
CN106886460A (zh) * 2017-02-22 2017-06-23 北京百度网讯科技有限公司 负载均衡方法和装置
CN106886460B (zh) * 2017-02-22 2021-07-20 北京百度网讯科技有限公司 负载均衡方法和装置
CN107015867A (zh) * 2017-04-06 2017-08-04 安徽国防科技职业学院 一种高效数据处理服务器系统
WO2019104981A1 (zh) * 2017-11-30 2019-06-06 平安科技(深圳)有限公司 数据访问方法、电子装置及可读存储介质
CN110198359A (zh) * 2019-07-08 2019-09-03 紫光云技术有限公司 一种负载均衡方法及装置
CN111797063A (zh) * 2020-06-28 2020-10-20 中孚信息股份有限公司 一种流式数据处理方法与系统
CN112256438A (zh) * 2020-06-28 2021-01-22 腾讯科技(深圳)有限公司 负载均衡控制方法和装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN105183670B (zh) 2018-11-27

Similar Documents

Publication Publication Date Title
CN105183670A (zh) 用于分布式缓存系统的数据处理方法和装置
CN107230035B (zh) 信息推送方法和装置
CN105260229A (zh) 拉取虚拟机镜像文件的方法和装置
CN105205174A (zh) 用于分布式系统的文件处理方法和装置
CN102656570B (zh) 用于缓存的方法和服务器
CN110519401A (zh) 提高网络访问成功率的方法、装置、设备及存储介质
CN112352234A (zh) 用于处理并发属性图查询的系统
CN105243396A (zh) 用户位置信息生成方法和装置
CN105516367A (zh) 分布式数据存储系统、方法和装置
CN103607735B (zh) 一种基于地图的基站显示方法及装置
CN110069579A (zh) 电子围栏分块方法和装置
CN108804383B (zh) 基于度量空间的支撑点并行枚举方法及装置
CN104796880B (zh) 客户识别模块sim卡资源分配方法、相关设备及系统
CN113419856B (zh) 智能限流方法、装置、电子设备及存储介质
CN104281664A (zh) 分布式图计算系统数据切分方法和系统
CN110309142B (zh) 规则管理的方法和装置
CN105653373A (zh) 资源分配方法及装置
CN108875035B (zh) 分布式文件系统的数据存储方法及相关设备
CN104956340A (zh) 可扩展数据重复删除
CN104601486A (zh) 一种网络流量的分流方法和装置
CN105956422A (zh) 用于控制移动计算装置上的软件程序的使用的方法和系统
Xiang et al. A dataset for mobile edge computing network topologies
CN111813517A (zh) 任务队列的分配方法、装置、计算机设备及介质
CN108833592A (zh) 云主机调度器优化方法、装置、设备及存储介质
CN111044062B (zh) 路径规划、推荐方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant