基于对象具有的表决资源的数量而标识对象的方法和设备的制作方法

文档序号:6339739阅读:168来源:国知局
专利名称:基于对象具有的表决资源的数量而标识对象的方法和设备的制作方法
技术领域
本发明的各实施方式涉及数据处理,并且更具体地涉及一种基于对象具有的表决资源(Quorum Resource)的数量而标识对象的方法、设备和相关计算机程序产品。
背景技术
随着计算设备处理能力的提高,现有的计算设备能够提供越来越强大的计算能力。然而,为了满足广大用户不断增长的需求,出现了其中存在大量的计算节点(例如,N 个计算节点,例如N >=32)的集群化的计算环境。出于各种原因,在集群化计算环境启动时,其中的节点并非全部同时启动;另外在集群操作的过程中,额外的计算节点还有可能会随时加入集群,或者有些计算节点也有可能因故障重启等原因而退出集群。通常,集群化计算环境由主控节点总体管理各个计算节点,而每个计算节点此时作为从属节点在主控节点的控制下操作。一般地,主控节点的领导地位是由正在运行的各计算节点选举得出的。现有的主控节点选举机制依赖于所有表决节点(Quorum node)达成一致意见,在此所述的表决节点也即具有选举权利的计算节点。现有技术通常需要所有表决节点相互进行信息沟通,例如,表决节点之间相互比较系统运行时间长短,运行时间最长的节点被选举为主控节点等等。但是,对于大规模的集群,需要大量的信息沟通,加重了集群信息通道的负载。

发明内容
因此,在尽量不改变现有配置的前提下,如何实现在集群环境中快速有效地标识计算节点的类型(例如,主控节点和从属节点)成为一项亟待解决的问题。并且理想的是, 只要集群中存在能够正常工作的计算节点,则可以通过某种选举机制尽快地得出控制整个集群的主控节点。为此,提供了一种基于节点具有的表决资源的数量而标识节点的方法、装置和计算机程序产品。在下文中,将计算节点概括地称为对象,并且对象还可以包括计算节点以外的其他实现,将在下文中详述。根据本发明的一个实施方式,提出了一种基于对象具有的表决资源的数量而标识对象的方法,包括向对象提供至少一个表决资源;在至少一个轮次中,为对象分配至少一个表决资源;基于已经向对象分配的表决资源的数量,标识对象的类型。根据本发明的一个实施方式,其中在至少一个轮次中,为对象分配至少一个表决资源包括在至少一个轮次的每个轮次中,基于至少一个表决资源的优先级而为对象分配可见的具有最高优先级的表决资源。根据本发明的一个实施方式,提供了一种基于对象具有的表决资源的数量而标识对象的方法,包括查找对对象可见的至少一个表决资源;在至少一个轮次中,选择至少一个表决资源用于对象;基于已经选择用于对象的表决资源的数量,标识对象的类型。根据本发明的一个实施方式,其中在至少一个轮次中,选择至少一个表决资源用于对象包括在至少一个轮次的每个轮次中,基于至少一个表决资源的优先级而选择可见的具有最高优先级的表决资源用于对象。根据本发明的一个实施方式,提供了一种基于对象具有的表决资源的数量而标识对象的设备,包括用于向对象提供至少一个表决资源的装置;用于在至少一个轮次中、为对象分配至少一个表决资源的装置;用于基于已经向对象分配的表决资源的数量、标识对象的类型的装置。根据本发明的一个实施方式,其中用于在至少一个轮次中、为对象分配至少一个表决资源的装置包括用于在至少一个轮次的每个轮次中、基于至少一个表决资源的优先级而为对象分配可见的具有最高优先级的表决资源的装置。根据本发明的一个实施方式,提供了一种基于对象具有的表决资源的数量而标识对象的设备,包括用于查找对对象可用的至少一个表决资源的装置;用于在至少一个轮次中、选择至少一个表决资源用于对象的装置;用于基于已经选择用于对象的表决资源的数量、标识对象的类型的装置。根据本发明的一个实施方式,其中用于在至少一个轮次中、选择至少一个表决资源用于对象的装置包括用于在至少一个轮次的每个轮次中、基于至少一个表决资源的优先级而选择可见的具有最高优先级的表决资源用于对象的装置。采用根据本发明的各实施方式,可以在尽量不改变集群硬件配置的前提下,方便、 可靠地基于节点具有的表决资源的数量而标识对象,并且还可以以易于部署的方式实现集群中各对象的配置。此外,本发明的实施方式具备鲁棒性,并可以在集群首次启动时、集群中计算节点的数量动态变化时、或者当前主控节点因故障而关机等异常情况下保持有效。


结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在附图中图1示意性示出了可在其中使用本发明实施方式的应用环境架构图;图2A和图2B分别示意性示出了根据本发明不同实施方式的基于对象具有的表决资源的数量而标识对象的方法的流程图;图3示意性示出了根据本发明一个实施方式的、在对象端的具体操作流程;图4示意性示出了使用根据本发明的方法标识对象的过程的具体实例;图5示意性示出了使用根据本发明的方法标识对象的另一过程的具体实例;图6A和图6B分别示意性示出了根据本发明不同实施方式的基于对象具有的表决资源的数量而标识对象的设备的架构图;以及图7示意性示出了适于实现本发明实施方式的计算机系统的框图。
具体实施例方式下面参考附图详细描述本发明的各实施方式。附图中的流程图和框图,图示了按照本发明各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。在下文中,将参考图1至图7详细说明基于对象具有的表决资源的数量而标识对象的方法和设备。应当注意,虽然以在集群环境中将计算节点标识为主控节点或者从属节点为具体示例进行说明,但本发明并非局限于此。根据本发明的实施方式,对象的种类并不仅限于集群环境中的计算节点,而是还可以包括但不限于物理机、虚拟机、应用程序、进程以及线程等。也即,术语“对象”的含义可以表示需要基于不同规则而被划分成不同种类的实体对象或者虚拟对象的全部。图1示意性示出了可在其中使用本发明实施方式的应用环境架构图100。在图1 中,示出了节点1 110、节点2 112···、以及节点N 114。上述节点连接至虚拟区域网络120 以构成集群100。尽管未示出,该集群100中还可以包括其他的节点和数据存储设备、控制设备等。通过利用本发明实施方式的方法,可以“选举”得出集群100的主控节点,也即分别将集群中的各节点标识为主控节点和从属节点。在本发明一个实施方式中,对于具有一定数量(例如,N)对象的集群,设置特定数量(例如,Q)的表决资源,当某一对象获得的表决资源的数量大于或等于预定义阈值(例如,[^/2」+1,其中10/2」表示对0/2的向下取整操作)时,则将该对象标识为主控,而将
其余对象标识为从属。应当注意,对象获得表决资源的过程是在不同轮次中完成的。图2A示意性示出了根据本发明一个实施方式的基于对象具有的表决资源的数量而标识对象的方法的流程图200A。流程图200A从管理各个对象的角度示出了根据本发明的方法。当集群环境中的对象启动后,如果发现在该集群中没有主控,则各个对象启动选举主控的过程。在一个实施方式的方法中,包括向对象提供至少一个表决资源;在至少一个轮次中,为对象分配至少一个表决资源;以及基于已经向对象分配的表决资源的数量,标识对象的类型。应当注意,在本发明的实施方式中,通过判断一个对象A(例如,图1中的节点 1110)获得的“表决资源”的多少,而标识其类型。在一个实施方式中,至少一个表决资源中的每个仅被分配给一个对象,一旦某表决资源被分配给一个对象,则在该对象退出选举并释放该表决资源之前,该表决资源不能再被分配给其他的对象。在具体实现中,表决资源可以采用任意适当的物理/虚拟装置(例如,在集群中采用物理/虚拟盘的形式)实现,还可以采用各种适合的数据结构来实现。在一个实施方式中,可以在共享盘集群环境中,利用支持SCSI的共享盘实现表决资源。在一个实施方式中,表决资源例如可以采用一系列二进制数据位实现,并且以二进制数据位的位置表示表决资源的序号,例如当“表决资源”被某对象占用时将该位设置为“ 1 ”,而在未被占用时将该位设置为“ 0 ”。参见图2A,在步骤S202A中,向对象提供至少一个表决资源。应当注意,在此所述的“向对象提供至少一个表决资源”是指使得对象可以看到表决资源,进而有资格参与随后的标识操作。应当注意,表决资源对于对象可见,并不意味着可以将该表决资源分配给对象。在该表决资源尚未被分配给其他对象的前提下,可以将该表决资源分配给对象;而如果该表决资源已经被分配给其他对象,则该表决资源尽管对于对象可见,然而却不能被分配给对象。在不考虑可能出现异常的情况下,可以认为向一个对象提供的表决资源对于该对象全部是“可见”的。应当注意,所提供的表决资源的数量可以是预先确定的。在一个实施方式中,为防止在分配结束时出现例如两个对象被分配有相同数量的表决资源的“平局”状态,通常提供奇数个表决资源。为简单起见,假设提供Q = 3个表决资源,当某对象具有的表决资源的数量大于或等于1_ρ/2」+1 (即,大于或等于2)时,则将其标识为主控。在步骤S204A中,在至少一个轮次中,为对象分配至少一个表决资源。例如,当只提供了一个表决资源时,则仅需要一轮操作即可将全部表决资源(即,一个表决资源)分配给一个对象,并得出该对象可以担任主控。而当存在多个表决资源时,则需要多个轮次的操作,例如当提供3个表决资源时可以需要2轮操作。如步骤S206A所示,如果存在下一轮次, 则操作返回操作S204A以继续执行下一轮次的分配操作。如果在步骤S206A中的判断结果为“否”,则没有下一轮次的操作,并且流程前进至步骤S208A。应当注意,分配表决资源的操作可以基于对象的请求而执行,例如可以采用先请求先分配的原则。如果对象A和对象B都请求了同一个表决资源(例如,表决资源1),而对象B先于对象A发出了请求,则可以向对象B分配该表决资源1,尽管表决资源1对于对象 A可见,然而却不能将其分配给对象Α。应当注意,在每个轮次中,对于一个对象而言,该对象最多仅能被分配一个表决资源。而在每个轮次中,针对不同对象而言,不同对象可以被分配有不同的表决资源。例如, 在针对对象A的一个轮次中,可以向对象A分配表决资源1 ;而在针对对象B的一个轮次中, 可以向对象B分配表决资源2。应当注意,表决资源是可以在每个对象之间共享的资源,然而,当向一个对象分配了特定表决资源后,则不能再向其他对象分配该特定的表决资源。在步骤S208A中,基于已经向对象分配的表决资源的数量,标识对象的类型。继续上文的示例,当对象A被分配了 2个表决资源时,则可以将该对象标识为主控。对于其他对象而言,由于这些对象所具有的表决资源的数量小于2个,因而将这些对象标识为从属。应当注意,对象可以具备多种类型,而并不仅限于主控类型和从属类型。在一个实施方式中,基于每个对象具有的表决资源的多少,还可以包括主控、从属以及备选主控等多种类型。当主控对象因故障而关机或者出于各种其他原因而不能继续担任主控时,一个简单的方法是,如果备选主控此时正常运行并且适合于担任主控,则可以将该备选主控标识为主控。应当注意,上文参见图2Α所述的操作流程是针对集群中的各个对象并行执行的。 例如,在集群启动时针对各个对象同时执行,但由于各个对象的启动速度并不相同,而可能导致对象A在其他对象尚未完成启动时,已经开始执行如图2Α所示的方法。此时由于没有其他对象与对象A竞争表决资源,因而在针对对象A进行的两个轮次的分配中,对象A即可获得2个表决资源,继而可以将对象A标识为主控。当多个对象的启动速度类似时,将存在多个对象同时竞争表决资源的情况。在一个实施方式中,还可以包括筛选向哪些对象提供表决资源的过程。例如,假设执行本发明的方法的目的在于在集群中选举出一个主控对象。通常而言,选举主控节点时可以考虑选择处理能力较高、网络连接状况较好、并且当前工作负载较低的对象,以便该对象可以提供更多的计算能力用于管理和协调集群中的各个设备。此时,则可以设置“过滤” 步骤并针对节点的处理能力、网络连接状况、当前工作负载、以及工作稳定性等因素设置过滤标准。继而,仅向符合这些标准的节点提供表决资源,也即排除了不符合标准的节点竞选主控的机会。设置“过滤”步骤的优势在于,可以初步筛选删除不符合特定条件的对象。假设没有“过滤”步骤,即使一个本应当被过滤掉的对象被分配了足够数量的表决资源并被标识为主控,而该对象通常会出于自身处理能力较低、工作状况不稳定等原因而难以胜任主控节点的任务,并导致整个集群效率低下甚至瘫痪。应当注意,即使向集群中的全部对象提供相同数量的表决资源,然而出于某些原因(例如,网络状况差、延迟时间长等),有些表决资源可能会对集群中的有些对象不可见。 例如可能存在如下情况,表决资源1、2和3对于对象A可见,表决资源2、3对于对象B可见, 而表决资源1、3对于对象C可见。因而在一个实施方式中,还可以包括,判断向对象提供的至少一个表决资源的可见性。在后续至少一个轮次的分配操作中,仅能向对象分配对其可见的表决资源,而不能向对象分配对其不可见的表决资源。本发明的方法在于基于对象具有的表决资源的数量而标识对象,其目的在于标识对象的类型。应当注意,在经过多轮次的分配之后,即使某对象未曾被分配任何资源(此时该对象具有的表决资源数量为零),也可以标识该对象(例如,标识为从属节点)。在一个实施方式中,还可以在已经标识出某种对象之后,标识其他对象的类型。例如,在通过对象具有的表决资源的数量选举得出主控之后,可以将集群中的其他对象均标识为从属。在一个实施方式中,在至少一个轮次中,为对象分配至少一个表决资源包括在至少一个轮次的每个轮次中,基于至少一个表决资源的优先级而为对象分配可见的具有最高优先级的表决资源。应当注意,在此所述的分配“可见的具有最高优先级的表决资源”将会出现不同的情况即“可见的具有最高优先级的表决资源”可以是已经被分配或者尚未被分配的表决资源,在下文中将详细描述。如上所述,表决资源对对象“可见”是指,对象可以看到表决资源,此时并不区分该表决资源是否已经被分配给了某个对象。对于一个对象而言,将尚未被分配的可见表决资源称为“可用”的表决资源。一个表决资源不能分配给一个对象可能有两个原因,一是该表决资源本身对于该对象不可见,二是虽然可见但是该表决资源已经被分配给了其他对象。 因而成功分配给一个对象的表决资源是对其“可用”的表决资源,而在后文中将详述对于 “不可用”表决资源的处理方式。在一个实施方式中,为表决资源设置优先级。在一个实施方式中,每个表决资源唯一地具有一个优先级。这里的优先级是指在向各个对象分配表决资源时需要考虑的顺序。 使得表决资源与优先级一一对应的目的在于,在分配表决资源时,基于优先级的顺序可以唯一确定下一个被分配的表决资源。将全部表决资源依优先级顺序进行排序,在向每个对象分配表决资源时,按照优先级的顺序进行分配。例如,在一个实施方式中可以提供3个表决资源,则此时可以将3个表决资源1、表决资源2和表决资源3的优先级从高至低地分别设置为“优先级1”、“优先级2”和“优先级3”。例如在分配表决资源的某一时刻,表决资源1、2和3均对对象A可见,表决资源1和3对对象B可见。则在针对对象A的一个轮次分配中,由于在对象A可用的表决资源中, 表决资源1具有最高的优先级(即,“优先级1”),可以向对象A分配表决资源1。此时,由于已经向对象A分配了表决资源1,则该表决资源1此时对对象B不可用,而仅有表决资源 3可用。因而在针对对象B的一个轮次的分配中,可以向对象B分配表决资源3。在一个实施方式中,其中在至少一个轮次的每个轮次中、基于至少一个表决资源的优先级而为对象分配可见的具有最高优先级的表决资源包括如果具有最高优先级的表决资源先前未被分配,则为对象分配具有最高优先级的表决资源;如果具有最高优先级的表决资源先前已经被分配,则退出当前轮次。退出当前轮次意味着,放弃竞选主控。上述段落细化了在每一轮次中针对一个对象的分配操作,即当待分配表决资源可用时,可以正常地进行分配;而当待分配表决资源不可用时,则为了避免互锁现象(即一个对象已经占有了一定数量的表决资源、然而却不能获得用于满足预定义阈值的其他表决资源的情况),需要该对象退出竞选操作。在一个实施方式中,向对象分配表决资源需要满足三个条件,表决资源对于对象可见、表决资源对于对象可用、以及表决资源具有最高优先级。并且在一个轮次中,针对一个对象仅进行一次分配,一旦发现对象请求的表决资源不可用,则针对该对象进行的本轮次分配结束。在一个实施方式中,基于已经向对象分配的表决资源的数量,标识对象的类型包括当已经向对象分配的表决资源的数量大于或者等于预定义阈值时,将对象的类型标识为主控。在一个实施方式中,基于已经向对象分配的表决资源的数量,标识对象的类型包括当已经向对象分配的表决资源的数量小于预定义阈值时,将对象的类型标识为从属。例如,在上文的示例中,将具有2个表决资源的对象标识为主控,而将具有其他数量表决资源的对象标识为从属。由于集群的操作可能会存在不稳定因素,可能导致向对象提供至少一个表决资源时出现异常。例如,预定向集群中的各个对象提供3个表决资源,然而由于网络稳定性等原因而导致有可能每个对象都仅能看到一个表决资源,则此时无论怎样分配,对象具有的表决资源的数量都不能达到预定义阈值“2”。在一个实施方式中,还可以获取对每个对象可见的表决资源的数量。在一个实施方式中,还可以基于获取的对每个对象可见的表决资源的数量,动态地调整预定义阈值的数量。例如在当各个对象可见的表决资源的数量均低于所提供的表决资源的数量时,可以适当地调整预定义阈值的大小。在上文提供3个表决资源而每个对象仅可见1个表决资源时,例如可以将预定义阈值设置为1,此时如果出现多个对象各自具有一个表决资源,还可以结合下文的平局裁判步骤实现选举主管。例如,出于各种原因可能会导致各个对象均可见偶数个相同的表决资源(也即等效于提供了偶数个表决资源的情况),还可以单独设置平局裁判步骤。例如,选择处理能力较高的对象、选择网络状况较好的对象、选择当前工作负载较低的对象、或者可以随机选择。尽管提供3个表决资源即可实现基于对象具有的表决资源的数量而标识对象的目的,在一个实施方式中,为提高鲁棒性还可以提供3个以上的奇数个表决资源。提供更多的表决资源在一方面可以通过提高所提供表决资源的数量而保证对各个节点“可见”的表决资源的数量,另一方面,由于复杂性的增加而导致需要更多轮次的分配操作。应当注意,尽管轮次数量有所增加,然而在每个轮次中,仍然基于至少一个表决资源的优先级而为对象分配可见的具有最高优先级的表决资源。也即,如上文所述,在每个轮次中的分配标准仍然是表决资源对于对象可见、表决资源对于对象可用以及表决资源具有最高优先级。在一个实施方式中,对象包括以下至少一个物理机、虚拟机、应用程序、进程以及线程。已知的是,集群中的各个计算节点可以是单独的物理机,也可以是虚拟机,这些物理机和/或虚拟机可以分布于不同物理位置并且通过网络(包括,有线网络和无线网络)进行交互,从而在逻辑上形成一个集群。并且可以基于本说明书中所述的方法来标识进程和线程等对象的类型。在一个实施方式中,还可以随着新对象的加入、现有对象的异常或者当前标识的对象类型不再适合等情况,而动态地执行基于对象具有的表决资源的数量而标识对象的类型。在一个实施方式中,可以使用SCSI3 Persistent Group Reservation (PGR)机制实现根据本发明的方法,根据本发明的其他实施方式,还可以采用其他机制实现。在一个实施方式中,可以在共享盘集群环境中,利用支持SCSI的共享盘实现表决资源。下面参见图2B,图2B示意性示出了根据本发明另一实施方式的基于对象具有的表决资源的数量而标识对象的方法的流程图200B。图2B中的各步骤与图2A中的各步骤分别相对应,并且图2B是从各个对象的角度示出了根据本发明的方法。在一个实施方式中,包括查找对对象可用的至少一个表决资源;在至少一个轮次中,选择至少一个表决资源用于对象;基于已经选择用于对象的表决资源的数量,标识对象的类型。如图2B所示,在步骤S202B中,查找对对象可见的至少一个表决资源,查找所得表决资源即为对该对象可见的表决资源。在步骤S204B中,在至少一个轮次中,选择至少一个表决资源用于对象。在步骤S206B中,判断是否存在下一轮次,如果存在,则操作返回步骤 S204B以执行下一轮次的选择;如果不存在,则操作前进至步骤S208B,以便基于已经选择用于对象的表决资源的数量,标识对象的类型。应当注意,如图2B中所示的从对象角度描述方法的步骤与如图2A中所示的从管理对象角度描述方法的步骤相对应,上文中针对图2A所述的各种实施方式、术语、示例和其他描述均适用于参见图2B所述的方法,因而不再赘述。在一个实施方式中,其中在至少一个轮次中,选择至少一个表决资源用于对象包括在至少一个轮次的每个轮次中,基于至少一个表决资源的优先级而选择可见的具有最高优先级的表决资源用于对象。在一个实施方式中,其中在至少一个轮次的每个轮次中,基于至少一个表决资源的优先级而选择可见的具有最高优先级的表决资源用于对象如果具有最高优先级的表决资源先前未被选择,则选择具有最高优先级的表决资源;如果具有最高优先级的表决资源先前已经被选择,则退出当前轮次。在一个实施方式中,其中每个表决资源唯一地具有一个优先级。在一个实施方式中,其中基于已经选择用于对象的表决资源的数量,标识对象的类型包括当已经选择用于对象的表决资源的数量大于或者等于预定义阈值时,将对象的类型标识为主控。在一个实施方式中,其中基于已经选择用于对象的表决资源的数量,标识对象的类型包括当已经选择用于对象的表决资源的数量小于预定义阈值时,将对象的类型标识为从属。在一个实施方式中,其中对象包括以下至少一个物理机、虚拟机、应用程序、进程以及线程。
参见图3,该图示意性示出了根据本发明一个实施方式的、在对象端的具体操作流程300。应当注意,该流程图适用于在集群中的每个对象处执行,并且各个对象处执行的操作流程300是并行执行的。图3所示流程图的应用背景与上文所述示例相同,即为从集群中的N个对象中选举出主控,提供了 Q = 3个表决资源,并且当某对象具有的表决资源大于等于|_0/2」+1 (S卩,大于等于2)时,则将该对象标识为主控,而将集群中的其他对象标识为从属。应当注意,在流程图300中,以粗体显示的实线框图S302表示流程图的起点,而以粗体显示的实线框图S304、S306和S308表示流程图的终点,也即该流程可以具有不同的出口。方法开始于步骤S302,此时对象启动,并继而在步骤S310处判断可见表决资源的数量, 如果可见表决资源数量为0,则流程进入步骤S3M以查找可用表决资源并返回步骤S310 处。如果在步骤S310处发现可见表决资源数量不为零,则操作进入步骤S312以判断可见表决资源的数量是否大于1,如果判断为“是”则操作进入步骤S314 ;如果判断为“否”,则操作进入步骤S304,将该对象标识为从属,此时在该对象处执行的操作结束。在步骤S314中,将当前表决资源ID设置为1(也即,从第一个表决资源开始,逐个判断当前对象是否可以选择该表决资源),并将当前对象具备的表决资源的数量Count设置为0。应当注意,此时的表决资源是按照优先级从高至低排序的一个序列。例如,ID为1 的表决资源具有最高优先级,ID为2的标记资源的优先级次之,以此类推。操作流程继而进入步骤S316以判断标号为ID的表决资源对于当前节点是否可见,如果结果为“是”则操作进入步骤S318 ;如果步骤S316的结果为“否”则进入步骤,将表决资源ID加1,以查看下一表决资源的状态。继而从步骤进入步骤,判断当前表决资源的ID是否小于等于3,如果满足条件则流程返回步骤S316重复上文的操作;如果不满足条件则流程前进至步骤S330以表示该操作失败。应当注意,在本流程图300中仅以提供了 3个表决资源作为示例详细解释了在对象端的操作流程,根据本发明的其他实施方式,还可以提供更多的表决资源。本领域技术人员可以根据图3所示的算法而易于实现其他的实施方式。现在继续上文所述操作,在步骤S318处,判断是否成功选择该表决资源,如果判断为“否”,则操作转向步骤S304,以将当前对象标记为从属(操作300结束);如果判断为“是”则前进至步骤S320,并将对象具有的表决资源的数量Count加1,继而前进至步骤 S322。在步骤S322中,判断对象具有的表决资源的数量Count是否大于等于2,如果为“否” 则操作返回步骤重复执行上文所述操作;如果为“是”则前进至步骤S306,以将当前对象标记为主控(操作300结束)。从上文针对图3的详细描述可知,在对象处执行操作在于,在对象具有的表决资源达到预定义阈值之前,在多个轮次中逐个遍历(即按照优先级从高到低的顺序)对于对象可见的表决资源如果某表决资源尚未被其他对象选择,则选择该表决资源;如果某表决资源已经被其他对象选择,则对象退出选举。应当注意,由于在多个对象中的每个对象处都要执行图3所示的操作,并且每个对象的启动时间、查找可见表决资源的时间、以及选择表决资源所消耗的时间长短可能彼此不同,因而可能会出现如下情况1)例如对象A在其余节点尚未启动时,已经成功完成了如图3所示的多轮次的选择表决资源的操作,此时该对象A将被标识为主控(即,从步骤 S306所示的出口结束操作流程300)。2)又例如,多个对象A、B和C大约同时启动,并且执CN 102541802 A
行每一轮次的选择表决资源的所用时间也大致相同,则多个对象A、B和C在同一时间段内分多轮次选择表决资源。3)又例如,对象A的启动非常慢,而此时启动较快的其他对象已经完成了多轮次的选择表决资源的操作并成功选举了主控,此时尽管对象A可以看到全部表决资源,然而这些表决资源已经被其他对象占有,则对象A从步骤S304所示的出口结束操作300,并被标识为从属。现在将参见图4至图5详细说明标识对象过程。图4示意性示出了使用根据本发明的方法标识对象的过程的具体实例400。应当注意,图4至图5所绘出的示例适用于从管理对象角度描述的实施方式、还适用于从对象本身角度的描述,其中分别示出了在多轮次的每个轮次中的对象所具有的表决资源。应当注意,在图4和图5中包括的对象A、对象B和对象C处均执行如附图2B所示的方法,由于各个对象的启动时间、自身性能等属性各不相同,在各个轮次中向哪个对象分配表决资源的方式可能并不唯一。图4和图5的示例中示出了能够体现本发明方法优势的几种情况。如图4示出了 3个对象,分别为对象A 402、对象B 404以及对象C 406 ;并且表决资源1、2、3对于对象A 402可见,表决资源2、3对于对象B 404可见,以及表决资源1、2对于对象C 406可见。基于本发明的方法,在至少一个轮次的每个轮次中,基于至少一个表决资源的优先级而为对象分配可见的具有最高优先级的表决资源。对于对象A而言,表决资源1具有最高的优先级并且是可见且可用的表决资源,因而将表决资源1分配给对象A。此时对于对象B,表决资源2是可见的且可用的具有最高优先级的表决资源,因而将表决资源2分配给对象B。由于对对象C可见的表决资源1和2已经分别被分配给了对象A和对象B,则对象 C退出选举过程。在经过箭头410所示的第一轮次的操作之后,如标记412所示,对象A具有表决资源1 (如图中阴影所示),而对象B具有表决资源2。由于对象A和对象B中的任一项目前只具有一个表决资源,尚未达到2个表决资源的预定义阈值,需要下一轮次的分配操作。在第二轮次中,对象A应当被分配的可见的最高优先级的表决资源为表决资源2, 然而此时该表决资源2已经被对象B所占有。表决资源2对于对象A不可用,因而对象A 在第二轮次中退出选举。对象B应当被分配的可见的最高优先级的表决资源为表决资源3, 并且此时表决资源3可用,则将表决资源3分配给对象B。在第二轮次结束时,对象B具有表决资源2和3 (如框图4M所示),并且具有的表决资源的数量达到预定义阈值“2”,因而对象B被标识为主控,而其他的对象A和C被标识为从属。现在参见图5,该图示意性示出了使用根据本发明的方法标识对象的过程的具体实例500。如图5示出了 3个对象,分别为对象A 502、对象B 504以及对象C 506 ;并且表决资源1、2、3对于对象A 502可见,表决资源2、3对于对象B 504可见,以及表决资源1、3 对于对象C 506可见。对于对象C而言,表决资源1具有最高的优先级。假设在第一轮次中,对象C首先请求了表决资源1,则将表决资源1分配给对象C。此时对于对象B,表决资源2是可见的具有最高优先级的表决资源,因而将表决资源2分配给对象B。由于对对象A 可见的表决资源1和2已经分别被分配给了对象C和对象B,则对象A退出选举过程。在经过箭头510所示的第一轮次的操作之后,如标记512所示,对象B具有表决资源2 (如图中阴影所示),而对象C具有表决资源1。由于对象B和对象C中的任一项目前只具有1个表决资源,尚未达到2个表决资源的预定义阈值,需要下一轮次的分配操作。在第二轮次中,由于对象B和对象C的可见的最高优先级的表决资源均为表决资源3,则此时该表决资源3被分配给先请求的对象。因而依赖于对象B和对象C的请求顺序,对象B和C均有可能获得2个表决资源并达到预定义阈值而被标识为主控,而其余的对象被标识为从属。现在参见图6A和图6B描述用于执行根据本发明实施方式的装置的配置。图6A 和图6B分别示意性示出了根据本发明不同实施方式的基于对象具有的表决资源的数量而标识对象的设备600A和600B的架构图。附图6A所示,基于对象具有的表决资源的数量而标识对象的设备600A包括提供装置610A,用于向对象提供至少一个表决资源;分配装置620A,用于在至少一个轮次中,为对象分配至少一个表决资源;以及标识装置630A,用于基于已经向对象分配的表决资源的数量,标识对象的类型。其中所示分配装置620A还可以包括轮次管理装置622A和资源分配装置624A,用于在至少一个轮次的每个轮次中,基于至少一个表决资源的优先级而为对象分配可见的具有最高优先级的表决资源。如附图6B所示,基于对象具有的表决资源的数量而标识对象的设备600B包括查找装置610B,用于查找对对象可见的至少一个表决资源;选择装置620B,用于在至少一个轮次中,选择至少一个表决资源用于对象;以及标识装置630B,用于基于已经选择用于对象的表决资源的数量,标识对象的类型。其中所示选择装置620B还可以包括轮次管理装置 622B和资源选择装置624B,用于在至少一个轮次的每个轮次中,基于至少一个表决资源的优先级而选择可见的具有最高优先级的表决资源用于对象。应当注意,尽管在图6A和图6B中并未逐一详细示出基于对象具有的表决资源的数量而标识对象的设备(包括从管理对象角度示出的设备和从对象角度示出的设备)中的各种装置,本领域技术人员可以基于说明书的公开而实现上述各装置。并且上述设备可以实现上文中参见图2A和图2B所述的方法。此外,图6A和图6B中所示的各装置以及并未逐一绘出的各装置可以位于集群中的一个或者多个对象中,或者还可以位于一个或者多个其他的专用设备中,只要能够实现与集群中的各对象实现数据通信并完成基于对象具有的表决资源的数量而标识对象的功能即可。根据本发明的实施方式,并不限制图6A和图6B 所示设备的物理位置,而是该设备包括的各个装置可以以集中式或者分布式方式位于任何适当的物理设备中,只要这些装置在整体上能够实现本说明书中所述功能即可。应当注意,尽管本说明书中以选举主控和设置从属作为标识对象类型的示例,然而本发明并不局限于说明书中示出的主控和从属的分类方式,而是可以包括根据管理员或者其他人员的需要和偏好、适应于不同的软件和硬件条件,而对各种硬件实体对象和软件虚拟对象进行分类的不同标识方式。图7示意性示出了适于实现本发明实施方式的计算机系统的框图。如图7所示, 计算机系统可以包括CPU(中央处理单元)701、RAM(随机存取存储器)702、R0M(只读存储器)703、系统总线704、硬盘控制器705、键盘控制器706、串行接口控制器707、并行接口控制器708、显示控制器709、硬盘710、键盘711、串行外部设备712、并行外部设备713和显示器714。在这些部件中,与系统总线704相连的有CPU 701、RAM 702、R0M703、硬盘控制器705、键盘控制器706、串行接口控制器707、并行接口控制器708和显示控制器709。硬盘710与硬盘控制器705相连,键盘711与键盘控制器706相连,串行外部设备712与串行接口控制器707相连,并行外部设备713与并行接口控制器708相连,以及显示器714与显示控制器709相连。应当理解,图7所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明的限制。在某些情况下,可以根据需要增加或者减少其中的一些设备。本发明可以采取硬件实施方式、软件实施方式或既包含硬件组件又包含软件组件的实施方式的形式。在优选实施方式中,本发明实现为软件,其包括但不限于固件、驻留软件、微代码等。而且,本发明还可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,这些介质提供程序代码以供计算机或任何指令执行系统使用或与其结合使用。 出于描述目的,计算机可用或计算机可读机制可以是任何有形的装置,其可以包含、存储、 通信、传播或传输程序以由指令执行系统、装置或设备使用或与其结合使用。介质可以是电的、磁的、光的、电磁的、红外线的、或半导体的系统(或装置或器件)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移动计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。目前光盘的例子包括紧凑盘-只读存储器(CD-ROM)、压缩盘-读/写(CD-R/W)和DVD。适合于存储/或执行程序代码的数据处理系统将包括至少一个处理器,其直接地或通过系统总线间接地耦合到存储器元件。存储器元件可以包括在程序代码的实际执行期间所利用的本地存储器、大容量存储器、以及提供至少一部分程序代码的临时存储以便减少执行期间从大容量存储器必须取回代码的次数的高速缓存存储器。输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等等)可以直接地或通过中间I/O控制器耦合到系统。网络适配器也可以耦合到系统,以使得数据处理系统能够通过中间的私有或公共网络而耦合到其他数据处理系统或远程打印机或存储设备。调制解调器、线缆调制解调器以及以太网卡仅仅是当前可用的网络适配器类型的几个例子。从上述描述应当理解,在不脱离本发明真实精神的情况下,可以对本发明各实施方式进行修改和变更。本说明书中的描述仅仅是用于说明性的,而不应被认为是限制性的。 本发明的范围仅受所附权利要求书的限制。
权利要求
1.一种基于对象具有的表决资源数量而标识所述对象的方法,包括向所述对象提供可供分配的至少一个表决资源;在至少一个轮次中,为所述对象分配所述至少一个表决资源;基于已经分配给所述对象的表决资源的数量,标识所述对象的类型。
2.根据权利要求1所述的方法,其中所述在至少一个轮次中,为所述对象分配所提供的表决资源包括在所述至少一个轮次的每个轮次中,基于所述至少一个表决资源的优先级而为所述对象分配可见的具有最高优先级的表决资源。
3.根据权利要求2所述的方法,其中在所述至少一个轮次的每个轮次中、基于所述至少一个表决资源的优先级而为所述对象分配可见的具有最高优先级的表决资源包括如果所述具有最高优先级的表决资源先前未被分配,则为所述对象分配所述具有最高优先级的表决资源;以及如果所述具有最高优先级的表决资源先前已经被分配,则退出当前轮次。
4.根据权利要求1至3中任一项所述的方法,其中每个表决资源唯一地具有一个优先级。
5.根据权利要求1至3中任一项所述的方法,其中所述基于已经向所述对象分配的表决资源的数量,标识所述对象的类型包括当已经向所述对象分配的表决资源的数量大于或者等于预定义阈值时,将所述对象的类型标识为主控;以及当已经向所述对象分配的表决资源的数量小于所述预定义阈值时,将所述对象的类型标识为从属。
6.根据权利要求1至3中任一项所述的方法,其中所述对象包括以下至少一个物理机、虚拟机、应用程序、进程以及线程。
7.一种基于对象具有的表决资源的数量而标识所述对象的方法,包括查找对所述对象可见的至少一个表决资源;在至少一个轮次中,选择所述至少一个表决资源用于所述对象;基于已经选择用于所述对象的表决资源的数量,标识所述对象的类型。
8.根据权利要求7所述的方法,其中所述在至少一个轮次中,选择所述至少一个表决资源用于所述对象包括在所述至少一个轮次的每个轮次中,基于所述至少一个表决资源的优先级而选择可见的具有最高优先级的表决资源用于所述对象。
9.根据权利要求8所述的方法,其中在所述至少一个轮次的每个轮次中,基于所述至少一个表决资源的优先级而选择可见的具有最高优先级的表决资源用于所述对象,如果所述具有最高优先级的表决资源先前未被选择,则选择所述具有最高优先级的表决资源;如果所述具有最高优先级的表决资源先前已经被选择,则退出当前轮次。
10.根据权利要求7至9中任一项所述的方法,每个表决资源唯一地具有一个优先级。
11.根据权利要求7至9中任一项所述的方法,其中所述基于已经选择用于所述对象的表决资源的数量,标识所述对象的类型包括当已经选择用于所述对象的表决资源的数量大于或者等于预定义阈值时,将所述对象的类型标识为主控;以及当已经选择用于所述对象的表决资源的数量小于预定义阈值时,将所述对象的类型标识为从属。
12.根据权利要求7至9中任一项所述的方法,其中所述对象包括以下至少一个物理机、虚拟机、应用程序、进程以及线程。
13.一种基于对象具有的表决资源的数量而标识所述对象的设备,包括 用于向所述对象提供至少一个表决资源的装置;用于在至少一个轮次中、为所述对象分配所述至少一个表决资源的装置; 用于基于已经向所述对象分配的表决资源的数量、标识所述对象的类型的装置。
14.根据权利要求13所述的设备,其中用于在至少一个轮次中、为所述对象分配所述至少一个表决资源的装置包括用于在所述至少一个轮次的每个轮次中、基于所述至少一个表决资源的优先级而为所述对象分配可见的具有最高优先级的表决资源的装置。
15.根据权利要求13所述的设备,其中用于在所述至少一个轮次的每个轮次中、基于所述至少一个表决资源的优先级而为所述对象分配可见的具有最高优先级的表决资源的装置包括用于如果所述具有最高优先级的表决资源先前未被分配、则为所述对象分配所述具有最高优先级的表决资源的装置;用于如果所述具有最高优先级的表决资源先前已经被分配、则退出当前轮次的装置。
16.根据权利要求13至15中任一项所述的设备,其中每个表决资源唯一地具有一个优先级。
17.根据权利要求13至15中任一项所述的设备,其中所述用于基于已经向所述对象分配的表决资源的数量、标识所述对象的类型的装置包括用于当已经向所述对象分配的表决资源的数量大于或者等于预定义阈值时、将所述对象的类型标识为主控的装置,以及用于当已经向所述对象分配的表决资源的数量小于所述预定义阈值时、将所述对象的类型标识为从属的装置。
18.根据权利要求13至15中任一项所述的设备,其中所述对象包括以下至少一个物理机、虚拟机、应用程序、进程以及线程。
19.一种基于对象具有的表决资源的数量而标识所述对象的装置,包括 用于查找对所述对象可用的至少一个表决资源的装置;用于在至少一个轮次中、选择所述至少一个表决资源用于所述对象的装置; 用于基于已经选择用于所述对象的表决资源的数量、标识所述对象的类型的装置。
20.根据权利要求19所述的设备,其中所述用于在至少一个轮次中、选择所述至少一个表决资源用于所述对象的装置包括用于在所述至少一个轮次的每个轮次中、基于所述至少一个表决资源的优先级而选择可见的具有最高优先级的表决资源用于所述对象的装置。
21.根据权利要求19所述的设备,其中用于在所述至少一个轮次的每个轮次中、基于所述至少一个表决资源的优先级而选择可见的具有最高优先级的表决资源用于所述对象的装置包括用于如果所述具有最高优先级的表决资源先前未被选择、则选择所述具有最高优先级的表决资源的装置;用于如果所述具有最高优先级的表决资源先前已经被选择、则退出当前轮次的装置。
22.根据权利要求19至21中任一项所述的设备,其中每个表决资源唯一地具有一个优先级。
23.根据权利要求19至21中任一项所述的设备,其中所述用于基于已经选择用于所述对象的表决资源的数量、标识所述对象的类型的装置包括用于当已经选择用于所述对象的表决资源的数量大于或者等于预定义阈值时、将所述对象的类型标识为主控的装置;以及用于当已经选择用于所述对象的表决资源的数量小于预定义阈值时、将所述对象的类型标识为从属的装置。
24.根据权利要求19至21中任一项所述的设备,其中所述对象包括以下至少一个物理机、虚拟机、应用程序、进程以及线程。
全文摘要
本发明的实施方式涉及基于对象具有的表决资源的数量而标识对象的方法和设备。根据一个实施方式的方法,包括向对象提供至少一个表决资源;在至少一个轮次中,为对象分配至少一个表决资源;基于已经向对象分配的表决资源的数量,标识对象的类型。根据另一实施方式的方法,包括查找对对象可见的至少一个表决资源;在至少一个轮次中,选择至少一个表决资源用于对象;基于已经选择用于对象的表决资源的数量,标识对象的类型。
文档编号G06F15/16GK102541802SQ20101060314
公开日2012年7月4日 申请日期2010年12月17日 优先权日2010年12月17日
发明者吴江, 李卫华, 黄剑 申请人:伊姆西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1