CN104123186A - 业务分配方法及装置 - Google Patents
业务分配方法及装置 Download PDFInfo
- Publication number
- CN104123186A CN104123186A CN201310481996.8A CN201310481996A CN104123186A CN 104123186 A CN104123186 A CN 104123186A CN 201310481996 A CN201310481996 A CN 201310481996A CN 104123186 A CN104123186 A CN 104123186A
- Authority
- CN
- China
- Prior art keywords
- server
- business
- spatial model
- mapped
- numeral
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/781—Centralised allocation of resources
-
- 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/502—Proximity
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种业务分配方法及装置。其中,将每个服务器和业务映射到空间模型中,其中,每个服务器和业务在空间模型中的具有相应的位置,空间模型用于表示每个服务器和业务的关系,获取在空间模型中位置与业务距离最近的服务器,将业务分配给距离最近的服务器进行处理。本申请解决了业务与计算机器匹配不协调的技术问题,提高了系统的可靠性和工作效率。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种业务分配方法及装置。
背景技术
在业务的运营中需要得到服务器的支持,随着业务数量的增加,一般会设置多个服务器来执行业务的处理,此时就涉及到如何将业务分配给不同的服务器。
例如,在游戏运营过程中,通常需要对游戏中产生的各种数据进行统计与分析,来为运营与策划提供数据的支持和参考依据,游戏数据分析系统正是为此服务而存在的。
在系统中可能需要同时支持多款游戏业务的数据分析,这就涉及各个业务的数据分析任务与计算集群机器之间的分配问题,由于一些游戏数据分析计算过程,如计算各类新增用户等指标时,需要用到状态数据,如历史的计算得到的用户数据,与新增部分数据合并到一起计算,那么业务与计算机器之间如何匹配将影响到整个系统运算的效率,以及容灾处理的成本等。
基于数据迁移的问题,通常情况下,希望同一个任务分配到同一个服务器上。这样,每次执行时都将会在相同的一台计算机器中,状态数据就可以从本地机器获取,而不需要从别的机器中先传输过来,但是在实际运营过程中会出现下面的情况:
1、当系统计算集群支撑的游戏业务越来越多,机器负载过高时,那么必然的选择就是增加计算集群的机器数量;
2、当某些计算机器出现异常或故障时,需要将其从集群中移除。
在相关技术中,上述情况发生后,原先游戏业务跟计算机器之间的映射匹配关系可能发生改变,在变化的情况下,为了保证后续数据计算的正确性,匹配关系被改变的游戏业务的数据必须要迁移到新的映射计算机器中。
增加或移除一台机器时,如果引起相当部分的游戏业务跟计算机器之间的匹配关系变化的话,那么当计算集群越大,即机器数量越多时,解决的成本就越高,对系统整体的运营影响就越大。
因此,需要一个合适的算法既能使同一业务分配到同一服务器上,又能在服务器数量发生变化是对整体影响仅可能小。
发明内容
本申请实施例提供了一种业务分配方法及装置,以至少解决相关技术中,在服务器数量发生变化时如何尽量保证对服务器集群影响较小的问题。
根据本申请实施例的一个方面,提供了一种业务分配方法,包括:将每个服务器和业务映射到空间模型中,其中,所述每个服务器和所述业务在所述空间模型中的具有相应的位置,所述空间模型用于表示所述每个服务器和所述业务的关系;获取在所述空间模型中位置与所述业务距离最近的服务器;将所述业务分配给所述距离最近的服务器进行处理。
根据本申请实施例的另一个方面,提供了一种业务分配装置,包括:映射模块,用于将每个服务器和业务映射到空间模型中,其中,所述每个服务器和所述业务在所述空间模型中的具有相应的位置,所述空间模型用于表示所述每个服务器和所述业务的关系;获取模块,获取在所述空间模型中位置与所述业务距离最近的服务器;分配模块,用于将所述业务分配给所述距离最近的服务器进行处理。
在本申请实施例中,将每个服务器和业务映射到空间模型中,其中,每个服务器和业务在空间模型中的具有相应的位置,空间模型用于表示每个服务器和业务的关系;获取在空间模型中位置与业务距离最近的服务器;将业务分配给距离最近的服务器进行处理,解决了业务与计算机器匹配不协调的技术问题,提高了系统的可靠性和工作效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的业务分配方法的流程图一;
图2是与本申请实施例相关的业务数据分析系统的示意图;
图3是与本申请实施例相关的业务数据分析系统的空间模型示意图;
图4是根据本申请实施例的优选业务分配方法的流程图二;
图5是根据本申请实施例的优选业务分配方法的流程图三;
图6是根据本申请实施例的优选业务分配装置的结构框图一;
图7是根据本申请实施例的优选业务分配装置的结构框图二;
图8是根据本申请实施例的优选业务分配装置的结构框图三;
图9是根据本申请优选实施例的游戏业务数据分析系统的示意图;
图10是根据本申请优选实施例的游戏业务数据分析系统空间模型的示意图。
具体实施方式
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本实施例中,提供了一种业务分配方法,图1是根据本申请实施例的业务分配方法的流程图一,如图1所示,该流程包括如下步骤:
步骤S102,将每个服务器和业务映射到空间模型中,其中,每个服务器和业务在空间模型中的具有相应的位置,空间模型用于表示每个服务器和业务的关系;
步骤S104,获取在空间模型中位置与业务距离最近的服务器;
步骤S106,将业务分配给距离最近的服务器进行处理。
在上述步骤中,可以设置一个空间模型,在该空间模型中,每个服务器均在该空间模型中有对应的位置,业务也可以按照同样的映射规则映射在该空间模型中,此时,就可以衡量与该业务在该空间模型中距离最近的服务器,从而将该业务分配给该距离最近的服务器进行处理。通过上述步骤,提供了一种业务分配的方法,由于是将业务和服务器均映射到空间模型中,因此,每次业务映射到该空间模型中的位置是一定的,在服务器没有发生变化的情况下该业务必然会被分配到该服务器上。在该业务对应的服务器发生变化的情况下,由于采用了距离最近的处理方式,大部分业务是不需要迁移到其他服务上的。
为了更好的进行说明,下面列举一个算法进行比较。
图2是与本申请实施例相关的业务数据分析系统的示意图,如图2所示,该该系统中有任务配置数据库、任务调度服务器、以及计算机集群(即服务器集群),该服务器集群中的服务器是按照从1到N来进行编号的。
在该系统中,采用的业务分配算法包括如下步骤:
步骤S202,将计算集群里面的机器按顺序1,2,3…N编号配置;
步骤S204,任务调度服务器从任务配置数据库中获取到需要执行运算的各个游戏业务的各计算任务信息,并将业务名称A(或B或C等),通过一定的算法,计算得到一个值Va,再将此值按计算集群机器总数N取模计算,假设得到的值是1,那么业务A的所有计算任务将会被指派到编号1的计算机器执行;
步骤S206,将每个不同的游戏业务的数据分析任务都将会被指派到同一个计算机器里执行;业务名称A->Va->1,这个映射过程,在每次的计算之后,都是相同的结果。
下面,以增加一台机器(移除一台机器情况类似)为例,看下映射失效发生的概率,从而评估对系统整体的影响。
图3是与本申请实施例相关的业务数据分析系统的空间模型示意图,如图2所示,将数值空间看成是一个首(0)尾(X)的线段。那么,当前的技术方案就相当于:n个机器节点(以圆圈表示),如下图2均匀的分布在空间中,业务与机器节点关联匹配的方法就是将游戏业务名称根据一定的算法计算(这里以哈希算法为例)得到值GameV,再将其模n计算后得到的值A1=GameV%n(以三角形表示),向左关联最近的节点xm,在下图示意中就是x1。增加一个节点之后,x1,x2,…xn在空间中的位置都相应发生变化,而A1也重新映射到了x2。其中,x1就是序号为1的节点,x2是序号为2的节点,…,xn是需要为n的节点。
在这个模型中,增加1个机器节点之后,游戏业务跟计算机器之间的映射匹配关系失效的概率计算如下:
如上图3所示,原先映射到x1的部分中有失效的部分,就是对应的虚线标定的部分X/n-X/(n+1),即x1节点映射关系失效的概率为Px1=(X/n-X/(n+1))/X=1/n-1/(n+1),同理有
Px2=2/n-2/(n+1)
…
Px(n-1)=(n-1)/n-(n-1)/(n+1)
Pxn=n/n-n/(n+1)=1-n/(n+1)
因此当增加1个节点时,整个系统映射失效的概率为
P=Px1+Px2+…+Px(n-1)+Pxn
=1/n-1/(n+1)+2/n-2/(n+1)+…+(n-1)/n-(n-1)/(n+1)+n/n-n/(n+1)
=1/2
因此,如果计算集群中有100台机器,那么就可能有一半的机器,即是50台机器,需要人工维护并进行数据迁移,这个成本将非常的高昂,并且随着计算集群规模的增长,成本线性增加。
上述算法并不是每次映射到距离最近的服务器上,请看图3中的上半部分,如果是距离最近的服务器,其应当映射到x2上而不应当映射到x1上,如果映射到x2上那么在此次增加服务器的过程中,该业务就不需要迁移到其他服务上。因此,图1示出的步骤在某种程度上效果要比取模的效果好。
下面结合图3中示出的步骤,对本实施的几个优选的实施方式进行说明。
对于将服务器和业务映射到空间模型的方式可以有很多种,在本实施例中提供了一种优选的方式,图4是根据本申请实施例的优选业务分配方法的流程图二,如图4所示,该流程包括如下步骤:
步骤S402,根据每个服务器的标识信息将每个服务器映射到空间模型中,其中,每个服务器在空间模型的位置与该服务器的标识信息相对应;
步骤S404,根据业务的标识信息将业务映射到空间模型,其中,业务在空间模型中的位置与业务的标识信息相对应;
步骤S406,获取在空间模型中位置与业务距离最近的服务器;
步骤S408,将业务分配给距离最近的服务器进行处理。
通过上述步骤,使用了标识信息将业务映射到空间模型,该标识信息可以是业务的名称,因此,只要按照名称对业务和服务器进行命名就可以保证名称相同的业务可以分配到同一个服务器上,对于希望分配到同一服务器业务,只要命名相同即可。按照标识信息映射到空间模型的方式有很多种,例如,可以按照一定的规则对服务器的标识信息进行排列然后映射到空间模型,然后可以计算业务的标识信息与服务器的标识信息的相似度,将标识信息相似度最大的一个服务器作为距离最近的服务器。
在本实施例中提供了另一种优选的方式将标识信息映射到空间模型中,图5是根据本申请实施例的优选业务分配方法的流程图三,如图5所示,该流程包括如下步骤:
步骤S502,将每个服务器的标识信息转化为数字,根据每个服务器对应的数字将每个服务器映射到空间模型中;
步骤S504,将业务的标识信息转化为数字,根据业务对应的数字将业务映射到空间模型中;
步骤S506,获取在空间模型中位置与业务距离最近的服务器;
步骤S508,将业务分配给距离最近的服务器进行处理。
通过上述步骤,将每个服务器的标识信息转化为数字,根据每个服务器对应的数字将每个服务器映射到空间模型中,将业务的标识信息转化为数字,根据业务对应的数字将业务映射到空间模型中。转换成数字之后对于计算距离最近更加方便,例如,距离最近的服务器可以是业务对应的数据和服务器对应的数字的差值的绝对值最小的。这种情况下,上述的步骤S502至步骤S506可以为:
步骤S502’,将每个服务器对应的数字按照大小进行排序并映射到空间模型中,其中,两个相邻服务器的数字的差值表示两个相邻服务器之间的距离;
步骤S504’,根据业务对应的数字与每个服务器对应的数字的大小关系,将业务映射到最接近业务对应的数字的两个服务器之间;
步骤S506’,获取在空间模型中位置与业务距离最近的服务器包括:分别计算两个服务器对应的数字与业务对应的数字的差值,差值较小的服务器作为与业务距离最近的服务器。
将文字转换成数字的方式有很多种,优选的,将每个服务器的标识信息转化为数字可以通过哈希算法将每个服务器的标识信息和业务的标识信息转化为数字。
在上述实施例涉及到的空间模型中,由于需要计算距离最近,因此,可以将该空间模型中的服务器连接一个封闭的圆环,即,将每个服务器和业务分别映射在圆环上。这样更加有利于计算距离。
在上述实施例及优选的实施方式中,虽然在集群的服务器发生变化之后,迁移的可能性降低了,但是仍然可能涉及到数据的迁移。数据的迁移方式可以采用人工迁移,本实施例中,提供了一种优选的方式,该该优选的方式中通过自动迁移的方式进行。该优选方式包括:在将业务分配给距离最近的服务器进行处理之后,如果处理业务的服务器发生变化,则变化后的处理业务的服务器在接收到数据迁移指令之后,从变换前的处理业务的服务器迁移业务对应的数据。通过自动迁移机制,降低了维护的成本,提高了系统运营的可靠性。
在本实施例中,还提供了一种业务分配装置,该业务分配装置用于实现上述的方法,在上述实施例及优选实施方式中已经进行过说明的,在此不再赘述。需要说明的是,下述装置中的模块的名称并不构成对该模块的实际限定,例如,映射模块可以表述为“用于将每个服务器和业务映射到空间模型中的模块”,以下的模块均可以在处理器中实现,例如,映射模块可以表述为“一种处理器,用于将每个服务器和业务映射到空间模型中”,或者,“一种处理器,包括映射模块”等。
图6是根据本申请实施例的优选业务分配装置的结构框图一,如图6所示,该装置包括:映射模块10、获取模块20和分配模块30,下面对该装置进行说明。
映射模块10,用于将每个服务器和业务映射到空间模型中,其中,每个服务器和业务在空间模型中的具有相应的位置,空间模型用于表示每个服务器和业务的关系;
获取模块20,获取在空间模型中位置与业务距离最近的服务器;
分配模块30,用于将业务分配给距离最近的服务器进行处理。
通过上述装置,可以设置一个空间模型,在该空间模型中,每个服务器均在该空间模型中有对应的位置,业务也可以按照同样的映射规则映射在该空间模型中,此时,就可以衡量与该业务在该空间模型中距离最近的服务器,从而将该业务分配给该距离最近的服务器进行处理。通过上述步骤,提供了一种业务分配的方法,由于是将业务和服务器均映射到空间模型中,因此,每次业务映射到该空间模型中的位置是一定的,在服务器没有发生变化的情况下该业务必然会被分配到该服务器上。在该业务对应的服务器发生变化的情况下,由于采用了距离最近的处理方式,大部分业务是不需要迁移到其他服务上的。
图7是根据本申请实施例的优选业务分配装置的结构框图二,如图7所示,该装置包括:映射模块10、获取模块20和分配模块30,其中,映射模块10包括:第一映射单元12,第二映射单元14,其中、获取模块20和分配模块30与图6所示的获取模块20和分配模块30功能相同,在此不做赘述。
第一映射单元12,用于根据每个服务器的标识信息将每个服务器映射到空间模型中,其中,每个服务器在空间模型的位置与该服务器的标识信息相对应;以及,
第二映射单元14,用于根据业务的标识信息将业务映射到空间模型,其中,业务在空间模型中的位置与业务的标识信息相对应。
使用了标识信息将业务映射到空间模型,该标识信息可以是业务的名称,因此,只要按照名称对业务和服务器进行命名就可以保证名称相同的业务可以分配到同一个服务器上,对于希望分配到同一服务器业务,只要命名相同即可。按照标识信息映射到空间模型的方式有很多种,例如,可以按照一定的规则对服务器的标识信息进行排列然后映射到空间模型,然后可以计算业务的标识信息与服务器的标识信息的相似度,将标识信息相似度最大的一个服务器作为距离最近的服务器。
优选地,第一映射单元12,用于将每个服务器的标识信息转化为数字,根据每个服务器对应的数字将每个服务器映射到空间模型中;第二映射单元14,用于将业务的标识信息转化为数字,根据业务对应的数字将业务映射到空间模型中。通过该优选实施例,将每个服务器的标识信息转化为数字,根据每个服务器对应的数字将每个服务器映射到空间模型中,将业务的标识信息转化为数字,根据业务对应的数字将业务映射到空间模型中。转换成数字之后对于计算距离最近更加方便,例如,距离最近的服务器可以是业务对应的数据和服务器对应的数字的差值的绝对值最小的。这种情况下,上述的上述的第一映射单元12、第二映射单元14以及获取模块20可以如下:
第一映射单元12,用于将每个服务器对应的数字按照大小进行排序并映射到空间模型中,其中,两个相邻服务器的数字的差值表示两个相邻服务器之间的距离;第二映射单元14,用于根据业务对应的数字将业务映射到空间模型中包括:根据业务对应的数字与每个服务器对应的数字的大小关系,将业务映射到最接近业务对应的数字的两个服务器之间;获取模块20,用于分别计算两个服务器对应的数字与业务对应的数字的差值,差值较小的服务器作为与业务距离最近的服务器。
图8是根据本申请实施例的优选业务分配装置的结构框图三,如图8所示,该装置包括:映射模块10、获取模块20,分配模块30和指令发送模块40,其中,映射模块10、获取模块20和分配模块30与图6所示的映射模块10、获取模块20和分配模块30相同,在此不做赘述。
指令发送模块40,用于在处理业务的服务器发生变化,向变化后的处理业务的服务器发送数据迁移指令,其中,数据迁移指令用于指示变化后的处理业务的服务器从变换前的处理业务的服务器迁移业务对应的数据。
下面结合优选实施例进行说明。在该优选实施例中,在现有的游戏数据分析系统上,再引入任务资源匹配协处理服务器,专门用于计算数据分析任务与机器资源的抽象距离,并对其建立匹配关系。
图9是根据本申请优选实施例的游戏数据分析系统的示意图,如图9所示。该系统包括:任务配置数据库,任务调度服务器,任务资源匹配协议处理服务器,计算机器集群。任务配置数据与图2中的任务配置数据库功能相同,任务调度服务器用于向任务资源匹配协议处理服务器发送发送业务名称和任务配置信息,任务资源匹配协议处理服务器用于根据业务名称与机器资源的抽象距离匹配后,分配各任务的资源。上述的业务分配装置的功能通过任务资源匹配协议处理服务器实现。下面对此进行说明。
1.任务配置数据库
1)保存需要进行数据分析的游戏业务的各个任务的信息,如游戏业务标识、任务名称、调度频率、分析指标及规则等信息,以供任务的添加、删除和调度之用。
2.任务调度服务器
1)定时从任务配置数据库中获取游戏业务及其各任务信息,并判断哪些是需要即时执行的任务;
2)根据需要执行的任务的信息,按照系统的规则生成执行指令,并发送到任务资源匹配协处理服务器。
3.任务资源匹配协处理服务器
1)定时获取计算集群机器的配置信息列表,按照抽象距离的定义,计算所有机器的抽象距离;
2)接收任务调度服务器发送过来的任务和指令信息,计算所有游戏业务的抽象距离,并按照匹配规则,指派游戏业务到对应的计算机器,并发送所需的任务和指令信息;同时,保存一份游戏业务和计算机器之间匹配关联的数据镜像;
3)自动数据迁移功能:当计算集群的机器配置信息发送变化时,重新计算所有机器的抽象距离,并与游戏业务进行匹配,并与之前保存的关联数据,如果匹配关系发生改变:假设原先业务A1与计算x1匹配,但是由于集群机器配置信息变化,业务A1新的对应机器是x2,则判断是否可以数据迁移(依据是旧机器x1是否正常工作),可以的话,则发送数据迁移指令到x2,让x2从x1拉取游戏业务A1数据分析任务正常执行所需的历史数据。
4.计算机器集群
1)计算机器集群是实际数据分析任务执行的主体,由多台物理机器组成,每台物理机器均部署有一个计算服务器,上面提及的计算机器,均指该计算服务器;
2)计算服务器接收从任务资源匹配协处理服务器发送过来的数据分析任务信息,并将其放入本地任务队列中,依次执行;
3)自动数据迁移功能:当计算服务器接收到任务资源匹配协处理服务器的数据迁移指令时,将创建一个数据迁移的进程,按照指令的内容,从目标计算服务器拉取所需的历史数据至本地。
图10是根据本申请优选实施例的游戏数据分析系统空间模型的示意图,如图10所示,本优选实施例提到的所谓抽象距离的概念是考虑一个首(0)尾(X)相接的圆环这样一个空间,如图10所示:
在图10所示的空间中,三角形表示业务经过算法映射后的位置,圆圈表示机器资源经过算法映射后的位置。那么抽象距离的定义就是
Dh=min{(H2–H1),(H1+X-H2)},这里Dh表示距离,H1和H2表示空间中的两个点,也就是上面提到的算出来的具体hash值,并且H2>H1;X是算出来的具体hash值,用于表示hash空间的大小,例如,该X是根据服务器或业务的标识信息计算出来的具体数字值,X是该数值可能的最大的上限值,也就是该数值空间的大小。
一般来说,就是将圆环中两个点最近的距离定义为空间距离。
那么本申请优选实施例中所提及的抽象距离匹配规则,就是把业务节点与相邻的两个机器节点的空间距离最小的一个关联起来,作为一种映射关系,如果距离相等,那么则向逆时针匹配。如图10示意,业务A1根据抽象距离匹配到机器x1,A2到x2,Am到xn-1。
参考图10,本申请的优选实施例流程示意图,包括如下步骤:
步骤S1002,首先将计算集群里面的机器按一定规则命名,如x1,x2,x3…xn等配置;
步骤S1004,任务调度服务器从任务配置数据库中获取到需要执行运算的各个游戏业务的各计算任务信息,并将获取到的业务名称和任务配置信息等数据,发送到任务资源匹配协处理服务器;
步骤S1006,任务资源匹配协处理服务器,根据业务名称A1(或A2,A3等)或者其他业务标识信息,通过一定的算法(以hash算法为例),计算并映射到上述空间的位置Va;同时,将计算集群机器,对其标识x1(或x1,x2,x3…xn等),也计算它们在同一个虚拟空间上的位置Vx1;接着,按照上述的抽象距离的定义,计算该业务到各个计算机器的抽象距离,并依据抽象距离匹配规则(参考图4),将业务分派到与之抽象距离最小的计算机器x1;
步骤S1008,计算机器x1将会接收到业务A1的数据分析任务,并将其放到执行任务队列中,顺序执行。
在计算集群机器无变动的情况下,经过上述处理流程之后,那么业务和机器之间的抽象距离是固定的,因此,基于状态(如历史数据)的游戏数据分析任务,每次执行时都将会在相同的一台计算机器中,最大程度地节省了数据传输的时间,有利于提高系统整体的运算效率。
下面论述一下本优选实施例系统实现的方法,由于游戏业务与计算机器之间的匹配失效,带来的影响和成本。
这里考虑当计算集群增加一台机器时的情况,参考图4,假设当前的抽象空间中有n个机器节点,用x1,x2…x(n-1),xn(x1<x2<…x(n-1)<xn)表示各个节点在空间中的位置,X表示空间大小。那么,如果新加的机器节点根据算法计算得到的抽象距离,落在x1和x2之间,那么原有的映射关系失效的概率P12则为
P12=(x2-x1)/(2X)
同理有,P23=(x3-x2)/(2X),…P(n-1)n=(xn-x(n-1))/(2X),Pn1=(X+x1-xn)/(2X)
因此,随机增加一个机器节点后,原有的映射关系期望失效概率P为
P=(P12+P23+…+P(n-1)n+Pn1)/n
=((x2-x1)/(2X)+(x3-x2)/(2X)+…+(xn-x(n-1))/(2X)+(X+x1-xn)/(2X))/n
=1/(2n)
可以看到,假如原先有100台机器的话,那么增加一台机器,就可能有1/200的业务会被重新映射到新的机器执行,也就是0.5台机器的数据需要进行迁移和人工维护。而减少一台机器的情况也是类似的,也是1/200的概率,并且失效的概率随着计算集群的规模n的增大而线性降低。而与之对应的是,现有技术方案,如前所述,如果计算集群中有100台机器,可能有一半的机器,即是50台机器,需要人工维护并进行数据迁移,这个成本将非常的高昂,并且随着计算集群规模的增长,成本线性增加。因此,以100台机器规模的集群为例,本技术方案仅需对0.5台机器进行数据迁移和人工维护,而现有技术方案则为50台,运营效率得到了100倍的极大提升;另外,由于本技术方案中的任务资源匹配协处理服务器和计算服务器具有自动数据迁移功能,在增加计算集群机器数量的这个应用场景之下,数据的迁移是可以不需要人工干预的,这样就就在更进一步的降低了运营的人力成本。
通过本申请的优选实施例提出的一种基于抽象距离匹配的游戏数据分析系统实现方法,可以降低系统在运营过程中,由于计算集群的配置变化而带来的额外开销和成本;另外,由于减少了数据迁移的数据量,也提升了系统整体的运行效率。
在本申请所提供的几个实施例中,应该理解到,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (14)
1.一种业务分配方法,其特征在于,包括:
将每个服务器和业务映射到空间模型中,其中,所述每个服务器和所述业务在所述空间模型中的具有相应的位置,所述空间模型用于表示所述每个服务器和所述业务的关系;
获取在所述空间模型中位置与所述业务距离最近的服务器;
将所述业务分配给所述距离最近的服务器进行处理。
2.根据权利要求1所述的方法,其特征在于,将所述每个服务器和所述业务映射到所述空间模型中包括:
根据所述每个服务器的标识信息将所述每个服务器映射到所述空间模型中,其中,所述每个服务器在所述空间模型的位置与该服务器的标识信息相对应;以及,
根据所述业务的标识信息将所述业务映射到所述空间模型,其中,所述业务在所述空间模型中的位置与所述业务的标识信息相对应。
3.根据权利要求2所述的方法,其特征在于,将所述每个服务器和所述业务映射到所述空间模型中包括:
将所述每个服务器的标识信息转化为数字,根据所述每个服务器对应的数字将所述每个服务器映射到所述空间模型中;
将所述业务的标识信息转化为数字,根据所述业务对应的数字将所述业务映射到所述空间模型中。
4.根据权利要求3所述的方法,其特征在于,
根据所述每个服务器对应的数字将所述每个服务器映射到所述空间模型中包括:将所述每个服务器对应的数字按照大小进行排序并映射到所述空间模型中,其中,两个相邻服务器的数字的差值表示所述两个相邻服务器之间的距离;
根据所述业务对应的数字将所述业务映射到所述空间模型中包括:根据所述业务对应的数字与所述每个服务器对应的数字的大小关系,将所述业务映射到最接近所述业务对应的数字的两个服务器之间;
获取在所述空间模型中位置与所述业务距离最近的服务器包括:分别计算所述两个服务器对应的数字与所述业务对应的数字的差值,所述差值较小的服务器作为与所述业务距离最近的服务器。
5.根据权利要求3或4所述的方法,其特征在于,通过哈希算法将所述每个服务器的标识信息和所述业务的标识信息转化为数字。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述空间模型是一个圆环,所述每个服务器和所述业务分别映射在所述圆环上。
7.根据权利要求1至5中任一项所述的方法,其特征在于,在将所述业务分配给所述距离最近的服务器进行处理之后,如果处理所述业务的服务器发生变化,则所述方法还包括:
变化后的处理所述业务的服务器在接收到数据迁移指令之后,从变换前的处理所述业务的服务器迁移所述业务对应的数据。
8.一种业务分配装置,其特征在于,包括:
映射模块,用于将每个服务器和业务映射到空间模型中,其中,所述每个服务器和所述业务在所述空间模型中的具有相应的位置,所述空间模型用于表示所述每个服务器和所述业务的关系;
获取模块,获取在所述空间模型中位置与所述业务距离最近的服务器;
分配模块,用于将所述业务分配给所述距离最近的服务器进行处理。
9.根据权利要求8所述的装置,其特征在于,所述映射模块包括:
第一映射单元,用于根据所述每个服务器的标识信息将所述每个服务器映射到所述空间模型中,其中,所述每个服务器在所述空间模型的位置与该服务器的标识信息相对应;以及,
第二映射单元,用于根据所述业务的标识信息将所述业务映射到所述空间模型,其中,所述业务在所述空间模型中的位置与所述业务的标识信息相对应。
10.根据权利要求9所述的装置,其特征在于,
所述第一映射单元,用于将所述每个服务器的标识信息转化为数字,根据所述每个服务器对应的数字将所述每个服务器映射到所述空间模型中;
所述第二映射单元,用于将所述业务的标识信息转化为数字,根据所述业务对应的数字将所述业务映射到所述空间模型中。
11.根据权利要求10所述的装置,其特征在于,
所述第一映射单元,用于将所述每个服务器对应的数字按照大小进行排序并映射到所述空间模型中,其中,两个相邻服务器的数字的差值表示所述两个相邻服务器之间的距离;
所述第二映射单元,用于根据所述业务对应的数字将所述业务映射到所述空间模型中包括:根据所述业务对应的数字与所述每个服务器对应的数字的大小关系,将所述业务映射到最接近所述业务对应的数字的两个服务器之间;
所述获取模块,用于分别计算所述两个服务器对应的数字与所述业务对应的数字的差值,所述差值较小的服务器作为与所述业务距离最近的服务器。
12.根据权利要求10或11所述的装置,其特征在于,通过哈希算法将所述每个服务器的标识信息和所述业务的标识信息转化为数字。
13.根据权利要求8至12中任一项所述的装置,其特征在于,所述空间模型是一个圆环,所述每个服务器和所述业务分别映射在所述圆环上。
14.根据权利要求8至12中任一项所述的装置,其特征在于,还包括:
指令发送模块,用于在处理所述业务的服务器发生变化,向变化后的处理所述业务的服务器发送数据迁移指令,其中,所述数据迁移指令用于指示所述变化后的处理所述业务的服务器从变换前的处理所述业务的服务器迁移所述业务对应的数据。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310481996.8A CN104123186B (zh) | 2013-10-15 | 2013-10-15 | 业务分配方法及装置 |
PCT/CN2014/088256 WO2015055092A1 (en) | 2013-10-15 | 2014-10-10 | Task management among multiple servers |
US15/097,884 US20160226966A1 (en) | 2013-10-15 | 2016-04-13 | Task management among multiple servers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310481996.8A CN104123186B (zh) | 2013-10-15 | 2013-10-15 | 业务分配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104123186A true CN104123186A (zh) | 2014-10-29 |
CN104123186B CN104123186B (zh) | 2015-09-16 |
Family
ID=51768608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310481996.8A Active CN104123186B (zh) | 2013-10-15 | 2013-10-15 | 业务分配方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160226966A1 (zh) |
CN (1) | CN104123186B (zh) |
WO (1) | WO2015055092A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017045424A1 (zh) * | 2015-09-18 | 2017-03-23 | 乐视控股(北京)有限公司 | 一种应用程序部署系统及部署方法 |
CN108132830A (zh) * | 2016-12-01 | 2018-06-08 | 北京金山云网络技术有限公司 | 一种任务调度方法、装置及系统 |
CN110365748A (zh) * | 2019-06-24 | 2019-10-22 | 深圳市腾讯计算机系统有限公司 | 业务数据的处理方法和装置、存储介质及电子装置 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11449394B2 (en) | 2010-06-04 | 2022-09-20 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources |
US8504526B2 (en) | 2010-06-04 | 2013-08-06 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations |
US9563518B2 (en) | 2014-04-02 | 2017-02-07 | Commvault Systems, Inc. | Information management by a media agent in the absence of communications with a storage manager |
US10296391B2 (en) * | 2014-06-30 | 2019-05-21 | Microsoft Technology Licensing, Llc | Assigning a player to a machine |
US10129130B2 (en) * | 2016-03-21 | 2018-11-13 | International Business Machines Corporation | Management of connections of a client application including server selection |
US10334334B2 (en) * | 2016-07-22 | 2019-06-25 | Intel Corporation | Storage sled and techniques for a data center |
US10747630B2 (en) | 2016-09-30 | 2020-08-18 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including operations by a master monitor node |
CN109791505A (zh) * | 2016-10-05 | 2019-05-21 | 瑞典爱立信有限公司 | 控制在数据中心中的资源分配 |
CN108446171B (zh) * | 2018-02-01 | 2022-07-08 | 平安科技(深圳)有限公司 | 电子装置、分布式系统执行任务分配方法及存储介质 |
CN109151023A (zh) * | 2018-08-21 | 2019-01-04 | 平安科技(深圳)有限公司 | 任务分配方法、装置及存储介质 |
US10867263B2 (en) * | 2018-12-04 | 2020-12-15 | Afiniti, Ltd. | Techniques for behavioral pairing in a multistage task assignment system |
CN110008017B (zh) * | 2018-12-06 | 2023-08-15 | 创新先进技术有限公司 | 一种分布式处理系统及方法、一种计算设备及存储介质 |
US11200124B2 (en) * | 2018-12-06 | 2021-12-14 | Commvault Systems, Inc. | Assigning backup resources based on failover of partnered data storage servers in a data storage management system |
CN109739628A (zh) * | 2018-12-28 | 2019-05-10 | 北京工业大学 | 一种基于费用的云计算任务调度方法 |
EP3938904A1 (en) * | 2019-03-14 | 2022-01-19 | Microsoft Technology Licensing, LLC | Computing node identifier-based request allocation |
US11099956B1 (en) | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11159449B1 (en) * | 2020-07-09 | 2021-10-26 | International Business Machines Corporation | Dispatching tasks and data using multi-access edge computing |
US11645175B2 (en) | 2021-02-12 | 2023-05-09 | Commvault Systems, Inc. | Automatic failover of a storage manager |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101465875A (zh) * | 2008-11-12 | 2009-06-24 | 湖南大学 | 一种基于网络定位的负载均衡算法 |
CN102857560A (zh) * | 2012-08-15 | 2013-01-02 | 华数传媒网络有限公司 | 一种面向多业务应用的云存储数据分布方法 |
CN103294531A (zh) * | 2012-03-05 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 一种任务分配方法及系统 |
CN103347055A (zh) * | 2013-06-19 | 2013-10-09 | 北京奇虎科技有限公司 | 云计算平台中的任务处理系统、设备及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430618B1 (en) * | 1998-03-13 | 2002-08-06 | Massachusetts Institute Of Technology | Method and apparatus for distributing requests among a plurality of resources |
US7958262B2 (en) * | 2004-10-22 | 2011-06-07 | Microsoft Corporation | Allocating and reclaiming resources within a rendezvous federation |
CN101604261B (zh) * | 2009-07-08 | 2013-07-31 | 深圳先进技术研究院 | 超级计算机的任务调度方法 |
CN101835164B (zh) * | 2010-04-20 | 2014-11-05 | 武汉理工大学 | 基于资源移动性的移动网格资源选择方法 |
US9210225B2 (en) * | 2011-11-01 | 2015-12-08 | Vonage Network Llc | Method and system for dynamically assigning a server |
-
2013
- 2013-10-15 CN CN201310481996.8A patent/CN104123186B/zh active Active
-
2014
- 2014-10-10 WO PCT/CN2014/088256 patent/WO2015055092A1/en active Application Filing
-
2016
- 2016-04-13 US US15/097,884 patent/US20160226966A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101465875A (zh) * | 2008-11-12 | 2009-06-24 | 湖南大学 | 一种基于网络定位的负载均衡算法 |
CN103294531A (zh) * | 2012-03-05 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 一种任务分配方法及系统 |
CN102857560A (zh) * | 2012-08-15 | 2013-01-02 | 华数传媒网络有限公司 | 一种面向多业务应用的云存储数据分布方法 |
CN103347055A (zh) * | 2013-06-19 | 2013-10-09 | 北京奇虎科技有限公司 | 云计算平台中的任务处理系统、设备及方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017045424A1 (zh) * | 2015-09-18 | 2017-03-23 | 乐视控股(北京)有限公司 | 一种应用程序部署系统及部署方法 |
CN108132830A (zh) * | 2016-12-01 | 2018-06-08 | 北京金山云网络技术有限公司 | 一种任务调度方法、装置及系统 |
CN108132830B (zh) * | 2016-12-01 | 2020-12-25 | 北京金山云网络技术有限公司 | 一种任务调度方法、装置及系统 |
CN110365748A (zh) * | 2019-06-24 | 2019-10-22 | 深圳市腾讯计算机系统有限公司 | 业务数据的处理方法和装置、存储介质及电子装置 |
CN110365748B (zh) * | 2019-06-24 | 2022-11-08 | 深圳市腾讯计算机系统有限公司 | 业务数据的处理方法和装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104123186B (zh) | 2015-09-16 |
WO2015055092A1 (en) | 2015-04-23 |
US20160226966A1 (en) | 2016-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104123186B (zh) | 业务分配方法及装置 | |
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
Xu et al. | Dynamic resource allocation for load balancing in fog environment | |
US8200824B2 (en) | Optimized multi-component co-allocation scheduling with advanced reservations for data transfers and distributed jobs | |
CN109241772B (zh) | 发票区块链记录方法、装置、区块链网关服务器和介质 | |
CN111966496B (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
CN103377091A (zh) | 用于资源共享池中的作业的高效执行的方法和系统 | |
CN107678752A (zh) | 一种面向异构集群的任务处理方法及装置 | |
CN105243582A (zh) | 基于财务云的xbrl会计软件标准数据接口系统及方法 | |
CN111899011A (zh) | 一种医务账单对账系统、计算机设备和存储介质 | |
CN105094981A (zh) | 一种数据处理的方法及装置 | |
CN104077187B (zh) | 用于调度应用程序的执行的方法和系统 | |
CN110737425A (zh) | 一种计费平台系统的应用程序的建立方法及装置 | |
CN105550209A (zh) | 一种资源处理方法及装置 | |
CN105608096A (zh) | 时间序列数据处理方法及其系统 | |
CN110532150A (zh) | 一种机箱管理方法、装置、存储介质及处理器 | |
CN104219321A (zh) | 一种基于云计算的电子票号管理方法 | |
CN111783487A (zh) | 一种读卡器设备的故障预警方法及装置 | |
US20230236922A1 (en) | Failure Prediction Using Informational Logs and Golden Signals | |
CN117135050B (zh) | 应用部署方法和装置 | |
CN115002215B (zh) | 面向云上政企的资源分配模型训练方法以及资源分配方法 | |
US20240037000A1 (en) | Automatic identification of reusable hardware components | |
US10574508B1 (en) | MapReduce optimization for partitioned intermediate output | |
CN117527510A (zh) | 框式分流设备的多层级架构管理方法、装置、设备及介质 | |
CN103595763A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |