专利名称:一种分布式自增计数的实现方法、装置及系统的制作方法
技术领域:
本发明涉及云计算领域,特别涉及ー种分布式自增计数的实现方法、装置及系统。
背景技术:
Cloud Computing(云计算)是 Grid Computing(网格计算)、DistributedComputing(分布式计算)、Parallel Computing(并行计算)、Utility Computing(效用计算)、Network Storage Technologies (网络存储)、Virtualization (虚拟化)、LoadBalance (负载均衡)等传统计算机技术和网络技术发展融合的产物。Cloud Computing旨在通过网络把多个成本相对较低的计算实体整合成ー个具有強大计算能力的系统。分布式缓存是云计算范畴中的ー个领域,其作用是提供海量数据的分布式存储服务以及高速读写访问的能力。分布式缓存系统是由若干服务器节点和服务终端互相连接构 成的;服务器节点负责数据的存储,服务终端可以对服务器节点做数据的写入、读取、更新、删除等操作,例如,商店里的监视器(即服务终端)针对每一个进入商店的顾客进行计数统计,并将统计结果上报至后台的服务节点进行存储。一般来说,为了保证数据的安全性,月艮务终端写入的数据不可能只保存在单个服务器节点(以下简称“节点”)上,而是在多台节点上保存同一个数据的副本,互为备份。而存储的数据由Key (键)和Value(值)构成,Key相当于数据的索引,例如,Key设置为“进入商店的顾客总数目,而Value是Key所代表的数据内容,例如,Value为“ 10203人次”,在逻辑上,Key和Value是ー对一的关系,用于唯一标识某一形式的数据存储,这种存储形式又称为分布式自增计数器。分布式自增计数器用途很广泛,可以实现在分布式环境中进行数值的原子加减运算,可以实现全局唯一序列号的生成,可以实现全局的统计计数功能等。基于分布式自增计数器,应用可以实现许多复杂的功能。目前,分布式自增计数器的准确性、并发性、可用性和效率是难以兼顾的关键问题。现有技术下,通常保证了并发性和准确性的系统,无法实现高可用性,如,在有任意ー节点故障时,整体服务会间断,将故障节点的任务全部转到其他节点上执行后,再恢复整体服务,这就往往要花费很长时间,从而在一定程度上降低了分布式自增计数器的服务效率;进一歩地,现有技术下,保证了准确性和可用性的系统,无法实现多请求并发,如,同一个数值的多个自增计数同时发到服务端时,只能允许ー个请求成功,其他请求将返回失败,请求失败的服务终端必须重试,这在一定程度上也降低了分布式自增计数器的服务效率;再进ー步地,保证了并发性和可用性的系统,无法保证准确性,如,多个自增计数请求同时执行吋,各服务器之间的计数结果未经协调,从而导致计数结果不一致,影响其计数准确性。鉴于上述现有技术的局限性,需要提供一种新的分布式自增计数的实现方法,以克服上述技术缺陷。
发明内容
本发明实施例提供ー种分布式自增计数的实现方法及装置,用以提高分布式自增计数的执行效率,提升计数结果的准确性。本发明实施例提供的具体技术方案如下ー种分布式自增计数的实现方法,包括第一服务器接收服务终端发送的自增计数请求消息,该自增计数请求消息中携帯用于指示操作内容的标识信息;第一服务器根据所述标识信息,获取本地对应该标识信息存储的计数结果,以及获取各第二服务器上对应该标识信息存储的计数结果,其中,第一服务器和第二服务器互为备份;
第一服务器根据获得的各计数结果中更新时间距当前时间的时长最小的计数结果执行自增计数操作,获得更新后的计数结果;第一服务器将所述更新后的计数结果发往各第二服务器进行备份,并在确认超过设定数目的第二服务器备份成功时,确定当前自增计数操作成功。ー种分布式自增计数的实现装置,包括第一通信単元,用于接收服务终端发送的自增计数请求消息,该自增计数请求消息中携帯用于指示操作内容的标识信息;获取单元,用于根据所述标识信息,获取本地对应该标识信息存储的计数结果,以及获取各第二服务器上对应该标识信息存储的计数结果,其中,本装置和第二服务器互为备份;执行单元,用于根据获得的各计数结果中更新时间距当前时间的时长最小的计数结果执行自增计数操作,获得更新后的计数结果;第二通信単元,用于将所述更新后的计数结果发往各第二服务器进行备份,并在确认超过设定数目的第二服务器备份成功时,确定当前自增计数操作成功。ー种分布式自增计数的实现系统,包括互为备份的第一服务器和第二服务器,其中,第一服务器,用于接收服务终端发送的自增计数请求消息,该自增计数请求消息中携帯用于指示操作内容的标识信息,根据所述标识信息,获取本地对应该标识信息存储的计数結果,以及获取各第二服务器上对应该标识信息存储的计数結果,井根据获得的各计数结果中更新时间距当前时间的时长最小的计数结果执行自增计数操作,获得更新后的计数結果,再将所述更新后的计数结果发往各第二服务器进行备份,并在确认超过设定数目的第二服务器备份成功时,确定当前自增计数操作成功;第二服务器,用于根据第一服务器发送的标识信息,向第一服务器返回本地对应所述标识信息保存的计数結果,以及对第一服务器发送的更新后的计数结果进行备份,并向第一服务器返回备份結果。本发明实施例中,针对云计算领域分布式缓存系统,提出了一种高效的分布式自增计数的实现方法,具体为针对ー个自增计数器在多个服务器上保存其计数结果的副本,每次执行自增计数操作时,在各服务器上针对同一自增计数器保存的计数结果中选取出最新的计数结果执行自增计数操作,从而有效保证了计数结果的准确性,同时,只需确认计数结果备份成功的服务器的数目达到设定阈值,便可确定当前自增计数操作成功,从而在一定程度上提高了自增计数操作的执行效率,并且当某服务器出现故障时只要正常工作的服务器的数目达到设置的门限值,就不会影响分布式缓存系统的正常工作,进而有效提高了分布式缓存系统的稳定性、安全性及可用性。
图I为本发明实施例中分布式缓存系统体系架构图;图2为本发明实施例中协同服务器功能架构示意图;图3为本发明实施例中实现自增计数操作概述流程图;图4为本发明实施例中实现自增计数操作举例流程图。
具体实施例方式在分布式缓存系统中,为了提供可用的高效的自增计数服务,令某服务器发生临 时故障时不影响系统的整体服务性能,本发明实施例中,提供了一种高效的分布式自增计数的方法,具体为在服务器端采用多副本机制,即针对同一个自增计数器在多个服务器上保存其数据副本,每次执行自增计数操作吋,执行自增计数操作成功的服务器的数目达到预设门限值,则视为系统整体执行自增操作成功;与现在技术相比,本发明实施例的优势在于,当某服务器出现故障时只要正常工作的服务器的数目达到设置的门限值,就不会影响分布式缓存系统的正常工作。下面结合附图对本发明优选的实施方式进行详细介绍。參阅图I所示,本发明实施例中,分布式缓存系统中设置有多个互为备份的服务器,其中,第一服务器,又称为协同服务器,用于接收服务终端发送的自增计数请求消息,该自增计数请求消息中携帯用于指示操作内容的标识信息,根据所述标识信息,获取本地对应该标识信息存储的计数結果,以及获取各副本服务器上对应该标识信息存储的计数结果,井根据获得的各计数结果中更新时间距当前时间的时长最小的计数结果执行自增计数操作,获得更新后的计数结果,再将所述更新后的计数结果发往各副本服务器进行备份,并在确认超过设定数目的副本服务器备份成功时,确定当前自增计数操作成功;第二服务器,又称为副本服务器,用于根据协同服务器发送的标识信息,向协同服务器返回本地对应所述标识信息保存的计数結果,以及对协同服务器发送的更新后的计数结果进行备份,井向协同服务器返回备份結果。如图I所示,服务终端和多个服务器(包括协同服务器和副本服务器)之间建立连接,多个服务器之间同样互相建立连接并且运行正常,其中,当某ー个Key及相应的Value被保存在多个服务器上后,其中一个服务器将在后续的自增计数操作中被服务终端选定为协同服务器,其余的服务器则称为副本服务器,协同服务器和副本服务器互为备份,即这些服务器上有存储有保存有相同的ー个Key和对应的Value,针对不同的Key及Value,服务终端选定的协同服务器和副本服务器可以相同,也可以不同,而针对同一个Key及Value,在不同的自增计数操作流程中,服务终端选定的协同服务器和副本服务器可以相同,也可以不相同。在实际应用中,若某ー个Key (称为Key A)对应的协同服务器发生了故障,则系统可以在相应的副本服务器中按照优先级从高到低的顺序选择ー个优先级符合要求的副本服务器作为新的协同服务器,如,选取优先级最高/次高/第三高/......的副本服务器作
为新的协同服务器,其他副本服务器则仍然作为副本服务器,这样,新的协同服务器和副本服务器之间仍然互为备份,从而有效缩短了故障排除的历时时长,也不会影响后续自增计数操作的执行結果。通过上述技术方案可以获知,本实施例中,针对同一个Key,在不同的自增操作流程中,服务终端选择的协同服务器可能不相同,以及,在协同服务器发生故障时,服务终端可以在副本服务器中重新选择ー个作为协同服务器,因此,基于这种执行方式,有可能出现以下情况协同服务器上对应Key A保存的Value不是最新数据,即协同服务器上对应KeyA保存的Value的更新时间距当前时间的时长,大于某一副本服务器上对应Key A保存的Value的更新时间距当前时间的时长,因此,协同服务器在执行自增计数操作时,便需要综合考虑各副本服务器上对应Key A保存的Value的相关/[目息,这一点将在后续实施例中进行进ー步介绍。參阅图2所示,本发明实施例中,协同服务器第一通信単元20、获取单元21、执行 单元22和第二通信单元23,其中,第一通信単元20,用于接收服务终端发送的自增计数请求消息,该自增计数请求消息中携帯用于指示操作内容的标识信息;获取单元21,用于根据所述标识信息,获取本地对应该标识信息存储的计数結果,以及获取各副本服务器上对应该标识信息存储的计数结果;执行单元22,用于根据获得的各计数结果中更新时间距当前时间的时长最小的计数结果执行自增计数操作,获得更新后的计数结果;第二通信単元23,用于将所述更新后的计数结果发往各副本服务器进行备份,并在确认超过设定数目的副本服务器备份成功时,确定当前自增计数操作成功。基于上述技术方案,參阅图3所示,本发明实施例中,在分布式缓存系统内,实现自增计数操作的详细流程如下步骤300 :服务终端发起计数器自增操作,向选定的协同服务器发送自增计数请求消息,该自增计数请求消息中携帯有自增计数操作对应的标识信息,即Key,以下称为KeyA0本发明实施例中,服务终端可以根据Key A表示的自增计数操作内容选择一台服务器节点,并将自增计数请求消息发送至选定的服务器,该选定的服务器被称作本次操作的协同服务器,对于不同的Key,服务终端选定的协同服务器可能相同,也可能不同。例如,服务终端为商店的监视器,当该监视器确定有新的顾客进入商店吋,向后台选定的一台协同服务器发送自增计数请求消息,该自增计数请求消息中携带的Key A表示当前自增计数操作内容为“进入商店的顾客总数目”。步骤310 :协同服务器根据获得的Key A,获取本地对应Key A存储的计数結果,即Value,以及获取各副本服务器上对应Key A存储的Value。在执行步骤310时,协同服务器接收到服务终端发送的携帯有Key的自增计数请求消息后,尝试从本地读取该Key对应的Value,井向同样保存有该Key的服务器发送副本读取请求消息,其中,同样保存有上述Key的服务器在称为本次操作的副本服务器,具体为协同服务器向KeyA对应的各副本服务器发送副本获取请求消息,该副本获取请求消息中至少携带有Key A,令部分/全部副本服务器返回其本地对应Key A保存的Value,具体实现方式包含但不限于以下两种A、协同服务器向Key A对应的各副本服务器发送携带Key A的副本获取请求消息,每一个副本服务器接收到Key A后,均将Key A及本地对应Key A保存的Value返回至协同服务器(副本服务器向协同服务器返回Key A,是为了令协同服务器明确接收的是哪个Key的value)。通过执行方式A,可以获得最全面的数据,从而执行最为准确的自增计数操作。
另一方面,若接收到携带上述Key的副本获取请求消息的副本服务器上未保存有对应该Key的Value,则副本服务器向协同服务器通知未保存有相关数据即可,在此不再赘述。B、协同服务器向Key A对应的各副本服务器发送携带Key A及相应Value (协同服务器保存的Value)的副本获取请求消息,每一个副本服务器接收到Key A和Value后,均判断本地对应Key A保存的Value的更新时间距当前时间的时长是否小于接收的Value的更新时间距当前时间的时长,若是,则向协同服务器返回Key A及本地对应Key A保存的Value,否则,仅向协同服务器返回Key A。通过执行方式B,可以有效降低网络数据流量,减轻网络运行负荷。实际应用中,无论执行方式A还是方式B,为了提高处理效率,同时为了避免因某些副本服务器出现临时故障而导致自增计数操作中断,较佳的,协同服务器发送副本获取请求消息后,不必等到接收到全部副本服务器的反馈信息后再执行后续操作,而是在确定返回Key A及相应Value或/和返回Key A的副本服务器的数目达到设定的门限值(称为门限值X)时,便开始执行后续操作,即协同服务器发送副本获取请求消息后,确定针对该副本获取请求消息进行反馈的副本服务器的数目达到门限值X,则开始执行步骤320。步骤320 :协同服务器根据获得的各Value中更新时间距当前时间的时长最小的Value执行自增计数操作,获得更新后的Value。本发明实施例中,在步骤320中,协同服务器判断Value的更新时间与当前时间之间的时长的方式有多种,例如,根据对应Value记录的时间戳来确定其更新时间距当前时间的时长,时间截记录的时间越晚,表示更新时间距当前时间的时长越短;又例如,据对应Value记录的版本号来确定其更新时间距当前时间的时长,版本号越大,表示更新时间距当前时间的时长越短;这两种实现方式仅为举例,但并不局限于这两种实现方式,在此不再赘述。协同服务器在进行自增计数操作时均执行上述判断操作,可以有效保证自增计数操作中系统的数据一致性,从而保证更新后的Value的准确性。另一方面,若在步骤300中,多个服务终端向协同服务器发送针对同一自增计数器的自增计数请求消息,即协同服务器接收到来自于多个服务终端的携带有相同Key的自增计数请求消息,则协同服务器需要先将接收的多个自增计数请求消息指示的自增数目进行合并,再执行后续操作;其中,合并操作可以在接收到自增计数请求消息后立即执行,也可以在获得各Value后,在进行自增计数操作之前执行,在此不再赘述。例如,若协同服务器接收到来自于100个服务终端的携带Key A的自增计数请求消息,每条自增计数请求消息均请求自增数目为1,则协同服务器将自增数目合并为100后,再对当前获取的最新的Value进行自增计数操作,即在当前最新的Value上添加100作为更新后的Value ;相应的,协同服务器在向任意一服务终端反馈更新的Value时,只需要减去其他服务终端请求的自增数目即可。这样,现有技术下需要进行一百次的操作在本实施例中可以一次性解决,大大节省了自增计数操作的操作时间,提高了自增计数操作的执行效率,步骤330 :协同服务器将更新后的Value发往各副本服务器进行备份,较佳的,应当将KeyA和更新后的Value —同发送,并在确认超过设定数目的第二服务器备份成功时,确认当前自增计数操作成功。在执行步骤330的过程中,每一个副本服务器在接收到服务器发送的更新后的Value后,需判断接收的更新后的Vlaue的更新时间距当前时间的时长,是否小于副本服务器本地对应Key A保存的Value的更新时间距当前时间的时长,若是,则保存更新后的Value,并通知协同服务器备份成功;否则,不保存数据,并通知协同服务器备份失败。每一个副本服务器在进行备份时均执行上述判断操作,可以加强自增计数操作中系统的数据一致性,从而保证更新后的Value的准确性。较佳的,为了提高系统的执行效率,协同服务器不必等到接收到全部副本服务器的反馈信息后再确定自增计数操作成功,而是在确认备份 成功的副本服务器的数目达到设定的门限值(称为门限值Y)时,便可确认当前自增计数操作成功,此处的门限值Y与之前记载的门限值X的取值可以相同,也可以不同。在上述实施例中,若选定的协同服务器发生故障,则服务终端可以根据针对各副本服务器预设的优先级,选择优先级符合条件的一个副本服务器作为新的协同服务器来执行当前的自增计数操作,不会影响最后的执行结果,这样,有效提高了分布式缓存系统的稳定性和安全性。而若各副本服务器中的某些副本服务器发生故障,则只要未发生故障的副本服务器的数目达到门限值X或/和门限值Y,便不会影响自增计数操作的整体流程,即只要不影响协同服务器向各副本服务器获取其保存的Value,以及不影响协同服务器接收备份服务器返回的表示自增计数操作成功的响应,则备份服务器的故障不会影响分布式缓存系统中的自增计数器的工作性能。这样,便进一步有效提高了分布式缓存系统的稳定性和安全性。基于上述实施例,参阅图4所示,假设分布式缓存系统中设置有一个服务终端,一个协同服务器,以及两个副本服务器,分别称为副本服务器I和副本服务器2,其中,协同服务器中保存的自增计数相关数据为Key B-ValueO,副本服务器I中保存的自增计数相关数据为Key B-Valuel,而副本服务器2中保存的自增计数相关数据为Key B-Value2,Key B表示“使用ATM终端的顾客数目”,ValueO取值为“ 150”、Valuel取值为“ 148”、Value2取值为“ 152”,则实现自增计数操作的具体流程如下步骤400 :服务终端向协同服务器发送携带Key B的自增计数请求消息,假设请求自增的计数数目为I。步骤401 :协同服务器获取本地对应Key B保存的ValueO。步骤402 :协同服务器向副本服务器I发送至少携带Key B的副本获取请求消息。步骤403 :协同服务器向副本服务器2发送至少携带Key B的副本获取请求消息。步骤404 :副本服务器I获取本地对应Key B保存的Valuel。步骤405 :副本服务器2获取本地对应Key B保存的Value2。步骤406 :副本服务器2向协同服务器返回Value2。步骤407 :副本服务器I向协同服务器返回Valuel。
如图4所示,本实施例中,步骤402、步骤404、步骤407,和步骤403、步骤405、步骤406可以是并行执行或先后执行的关系,在此并不限制其执行顺序。步骤408 :协同服务器比较ValueO、Valuel和Value2的更新时间,确定最新的计数结果为Value2,即取值为“152”。步骤409 :协同服务器基于Value2以及请求自增的计数数目执行自增计数操作,获得更新后的Value3,其取值为“153”。步骤410 :协同服务器向副本服务器I发送携带Value3的备份请求消息。步骤411 :协同服务器向副本服务器2发送携带Value3的备份请求消息。步骤412 :副本服务器I对应Key B保存最新的Value3。步骤413 :副本服务器I向协同服务器返回操作成功响应。 步骤414 :副本服务器2对应Key B保存最新的Value3。步骤415 :副本服务器2向协同服务器返回操作成功响应。如图4所示,本实施例中,步骤410、步骤412、步骤413,和步骤411、步骤414、步骤415可以是并行执行或先后执行的关系,在此并不限制其执行顺序。步骤416 :协同服务器确定返回操作成功响应的副本服务器达到预设门限值(如,门限值为I)。如图4所示,本实施例中,在执行步骤416时,若协同服务器确定返回操作成功响应的副本服务器未达到预设门限值,则可以返回步骤401进行失败重试,并在重试次数达到设定阈值且仍未成功执行自增计数操作时,结束当前流程并对服务终端进行告警,在此不再赘述。步骤417 :协同服务器向服务终端返回自增计数结果,即Value3。综上所述,本发明实施例中,针对云计算领域分布式缓存系统,提出了一种高效的分布式自增计数的实现方法,具体为针对一个自增计数器在多个服务器上保存其计数结果的副本,每次执行自增计数操作时,在各服务器上针对同一自增计数器保存的计数结果中选取出最新的计数结果执行自增计数操作,从而有效保证了计数结果的准确性,同时,只需确认计数结果备份成功的服务器的数目达到设定阈值,便可确定当前自增计数操作成功,从而在一定程度上提高了自增计数操作的执行效率,并且当某服务器出现故障时只要正常工作的服务器的数目达到设置的门限值,就不会影响分布式缓存系统的正常工作,进而有效提高了分布式缓存系统的稳定性、安全性及可用性;进一步地,还可以对针对同一自增计数器的多个自增计数请求进行合并处理,从而进一步提高了自增计数操作的执行效率。这样,便满足了分布式缓存系统对分布式自增计数器的可用性、高效性、并发性和准确性的要求。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种分布式自增计数的实现方法,其特征在于,包括 第一服务器接收服务终端发送的自增计数请求消息,该自增计数请求消息中携带用于指示操作内容的标识信息; 第一服务器根据所述标识信息,获取本地对应该标识信息存储的计数结果,以及获取各第二服务器上对应该标识信息存储的计数结果,其中,第一服务器和第二服务器互为备份; 第一服务器根据获得的各计数结果中更新时间距当前时间的时长最小的计数结果执行自增计数操作,获得更新后的计数结果; 第一服务器将所述更新后的计数结果发往各第二服务器进行备份,并在确认超过设定数目的第二服务器备份成功时,确定当前自增计数操作成功。
2.如权利要求I所述的方法,其特征在于,若第一服务器接收到至少两个服务终端发送的携带同一标识信息的自增计数请求消息,则第一服务器将所述至少两个自增计数请求消息指示的自增数目进行合并后,再进行后续操作。
3.如权利要求I所述的方法,其特征在于,第一服务器根据所述标识信息,获取各第二服务器上对应该标识信息存储的计数结果,包括 第一服务器向所述标识信息对应的各第二服务器,发送携带该标识信息的副本获取请求消息,令每一个接收到所述标识信息的第二服务器,向第一服务器返回所述标识信息及第二服务器本地对应该标识信息保存的计数结果; 或者, 第一服务器向所述标识信息对应的各第二服务器,发送携带该标识信息及第一服务器对应该标识信息保存的计数结果的副本获取请求消息,令每一个接收到所述标识信息和计数结果的第二服务器,在确定第二服务器本地对应所述标识信息保存的计数结果的更新时间距当前时间的时长,小于接收的计数结果的更新时间距当前时间的时长时,向第一服务器返回所述标识信息及第二服务器本地对应该标识信息保存的计数结果。
4.如权利要求3所述的方法,其特征在于,第一服务器发送副本获取请求消息后,确定针对该副本获取请求消息进行反馈的副本服务器的数目达到预设门限值时,根据获得的各计数结果中更新时间距当前时间的时长最小的计数结果执行自增计数操作。
5.如权利要求1-4任一项所述的方法,其特征在于,第一服务器根据获得的各计数结果中更新时间距当前时间的时长最小的计数结果执行自增计数操作,包括 第一服务器根据获得的各计数结果中,时间截指示时间最晚的计数结果执行自增计数操作; 或者, 第一服务器根据获得的各计数结果中,版本号最大的计数结果执行自增计数操作。
6.如权利要求5所述的方法,其特征在于,若服务终端确定协同服务器发生故障,则根据针对各副本服务器预设的优先级,选择优先级符合条件的一个副本服务器作为新的协同服务器。
7.一种分布式自增计数的实现装置,其特征在于,包括 第一通信单元,用于接收服务终端发送的自增计数请求消息,该自增计数请求消息中携带用于指示操作内容的标识信息;获取单元,用于根据所述标识信息,获取本地对应该标识信息存储的计数结果,以及获取各第二服务器上对应该标识信息存储的计数结果,其中,本装置和第二服务器互为备份; 执行单元,用于根据获得的各计数结果中更新时间距当前时间的时长最小的计数结果执行自增计数操作,获得更新后的计数结果; 第二通信单元,用于将所述更新后的计数结果发往各第二服务器进行备份,并在确认超过设定数目的第二服务器备份成功时,确定当前自增计数操作成功。
8.如权利要求7所述的装置,其特征在于,若所述第一通信单元接收到至少两个服务终端发送的携带同一标识信息的自增计数请求消息,则所述第一通信单元将所述至少两个自增计数请求消息指示的自增数目进行合并后,再进行后续操作。
9.如权利要求7所述的装置,其特征在于,所述获取单元根据所述标识信息,获取各第二服务器上对应该标识信息存储的计数结果,包括 所述获取单元通过所述第二通信单元向所述标识信息对应的各第二服务器,发送携带该标识信息的副本获取请求消息,令每一个接收到所述标识信息的第二服务器,向本装置返回所述标识信息及第二服务器本地对应该标识信息保存的计数结果; 或者, 所述获取单元通过所述第二通信单元向所述标识信息对应的各第二服务器,发送携带该标识信息及本装置对应该标识信息保存的计数结果的副本获取请求消息,令每一个接收到所述标识信息和计数结果的第二服务器,在确定第二服务器本地对应所述标识信息保存的计数结果的更新时间距当前时间的时长,小于接收的计数结果的更新时间距当前时间的时长时,向本装置返回所述标识信息及第二服务器本地对应该标识信息保存的计数结果。
10.如权利要求9所述的装置,其特征在于,所述获取单元通过所述第二通信单元发送副本获取请求消息后,所述执行单元确定针对该副本获取请求消息进行反馈的副本服务器的数目达到预设门限值时,根据获得的各计数结果中更新时间距当前时间的时长最小的计数结果执行自增计数操作。
11.如权利要求7-10任一项所述的装置,其特征在于,所述执行单元根据获得的各计数结果中更新时间距当前时间的时长最小的计数结果执行自增计数操作,包括 所述执行单元根据获得的各计数结果中,时间截指示时间最晚的计数结果执行自增计数操作; 或者, 所述执行单元根据获得的各计数结果中,版本号最大的计数结果执行自增计数操作。
12.—种分布式自增计数的实现系统,其特征在于,包括互为备份的第一服务器和第二服务器,其中, 第一服务器,用于接收服务终端发送的自增计数请求消息,该自增计数请求消息中携带用于指示操作内容的标识信息,根据所述标识信息,获取本地对应该标识信息存储的计数结果,以及获取各第二服务器上对应该标识信息存储的计数结果,并根据获得的各计数 结果中更新时间距当前时间的时长最小的计数结果执行自增计数操作,获得更新后的计数结果,再将所述更新后的计数结果发往各第二服务器进行备份,并在确认超过设定数目的第二服务器备份成功时,确定当前自增计数操作成功;第二服务器,用于根据第一服务器发送的标识信息,向第一服务器返回本地对应所述标识 信息保存的计数结果,以及对第一服务器发送的更新后的计数结果进行备份,并向第一服务器返回备份结果。
全文摘要
本发明涉及云计算领域,公开了一种分布式自增计数的实现方法、装置及系统,用以提高分布式自增计数的执行效率,提升计数结果的准确性。该方法为在云计算领域分布式缓存系统中,针对一个自增计数器在多个服务器上保存其计数结果的副本,每次执行自增计数操作时,在各服务器上针对同一自增计数器保存的计数结果中选取出最新的计数结果执行自增计数操作,从而有效保证了计数结果的准确性,同时,只需确认计数结果备份成功的服务器的数目达到设定阈值,便可确定当前自增计数操作成功,从而在一定程度上提高了自增计数操作的执行效率。
文档编号H04L29/08GK102833281SQ20111016042
公开日2012年12月19日 申请日期2011年6月15日 优先权日2011年6月15日
发明者陈典强, 郭斌, 韩银俊 申请人:中兴通讯股份有限公司