数据更新方法及装置制造方法

文档序号:7818588阅读:163来源:国知局
数据更新方法及装置制造方法
【专利摘要】本发明公开了一种数据更新方法及装置,属于计算机【技术领域】。所述方法包括:节点接收外部主机发送的第一更新数据,记录所述第一更新数据的接收时刻;根据所述接收时刻生成所述第一更新数据的第一全局版本号;根据所述第一全局版本号确定所述第一更新数据的更新次序;通知各个其它节点以所述更新次序执行对所述第一更新数据的更新操作。本发明解决了主节点的处理能力低导致的通过主节点将更新数据发送给各个从节点的效率低的问题,达到了提高更新数据的更新效率的效果。
【专利说明】数据更新方法及装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,特别涉及一种数据更新方法及装置。

【背景技术】
[0002]分布式系统通常包括若干个存储设备,每个存储设备包括若干个节点,每个节点中存储有相同的数据。当某一个节点接收到更新数据时,需要将更新数据同步到同一个存储设备的所有节点中。
[0003]现有技术提供的一种数据更新方法包括:分布式系统中的所有的节点选举出一个主节点,将除主节点之外的节点确定为从节点;当若干个从节点接收到更新数据时,将更新数据发送给主节点;主节点对每次接收到的更新数据生成一个全局版本号,根据全局版本号的生成顺序依次将更新数据发送给各个从节点。其中,全局版本号包括主节点标识和主节点接收到更新数据的顺序。
[0004]发明人在实现本发明的过程中,发现现有技术中至少存在以下缺陷:从节点需要通过主节点将更新数据发送给各个从节点,当主节点的处理能力较低时,导致数据的更新效率较低。


【发明内容】

[0005]为了解决主节点的处理能力低导致的通过主节点将更新数据发送给各个从节点的效率低的问题,本发明实施例提供了一种数据更新方法及装置。所述技术方案如下:
[0006]第一方面,提供了一种数据更新方法,所述方法包括:
[0007]节点接收外部主机发送的第一更新数据,记录所述第一更新数据的接收时刻;
[0008]根据所述接收时刻生成所述第一更新数据的第一全局版本号;
[0009]根据所述第一全局版本号确定所述第一更新数据的更新次序;
[0010]通知各个其它节点以所述更新次序执行对所述第一更新数据的更新操作。
[0011]在第一方面的第一种可能的实现方式中,所述根据所述接收时刻生成所述第一更新数据的第一全局版本号,包括:
[0012]获取当前的主节点标识,将所述主节点标识和所述接收时刻组成所述第一全局版本号。
[0013]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述第一全局版本号确定所述第一更新数据的更新次序,包括:
[0014]将所述第一更新数据和所述第一全局版本号广播给各个其他节点,所述其它节点用于对应存储所述第一更新数据和所述第一全局版本号,确定最近一次接收到所述外部主机发送的第二更新数据,反馈与所述第二更新数据对应的第二全局版本号;
[0015]接收各个其它节点发送的第二全局版本号;
[0016]从各个第二全局版本号中,选择出包括的接收时刻在所述第一全局版本号包括的接收时刻之前且距离所述第一全局版本号包括的接收时刻最近的一个第二全局版本号;
[0017]确定所述第一更新数据的更新次序在选择出的所述第二全局版本号对应的第二更新数据之后。
[0018]在第一方面的第三种可能的实现方式中,所述通知各个其它节点以所述更新次序执行对所述第一更新数据的更新操作,包括:
[0019]将选择出的所述第二全局版本号广播给各个其他节点,所述其它节点用于确定所述第一更新数据的更新次序在接收到的所述第二全局版本号对应的第二更新数据之后。
[0020]结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述记录所述第一更新数据的接收时刻,包括:
[0021]从与所述节点对应的时钟源获取所述第一更新数据的接收时刻,所述时钟源位于所述节点中,或,所述时钟源位于所述节点外且与所述节点之间存在对应关系。
[0022]第二方面,提供了一种数据更新装置,所述装置包括:
[0023]信息获取模块,用于接收外部主机发送的第一更新数据,记录所述第一更新数据的接收时刻;
[0024]版本生成模块,用于根据所述信息获取模块获取到的所述接收时刻生成所述第一更新数据的第一全局版本号;
[0025]次序确定模块,用于根据所述版本生成模块生成的所述第一全局版本号确定所述第一更新数据的更新次序;
[0026]更新通知模块,用于通知各个其它节点以所述次序确定模块确定的所述更新次序执行对所述第一更新数据的更新操作。
[0027]在第二方面的第一种可能的实现方式中,所述版本生成模块,具体用于获取当前的主节点标识,将所述主节点标识和所述接收时刻组成所述第一全局版本号。
[0028]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述次序确定模块,包括:
[0029]信息发送单元,用于将所述第一更新数据和所述第一全局版本号广播给各个其他节点,所述其它节点用于对应存储所述第一更新数据和所述第一全局版本号,确定最近一次接收到所述外部主机发送的第二更新数据,反馈与所述第二更新数据对应的第二全局版本号;
[0030]版本接收单元,用于接收各个其它节点发送的第二全局版本号;
[0031]版本选择单元,用于从所述版本接收单元接收到的各个第二全局版本号中,选择出包括的接收时刻在所述第一全局版本号包括的接收时刻之前且距离所述第一全局版本号包括的接收时刻最近的一个第二全局版本号;
[0032]次序确定单元,用于确定所述第一更新数据的更新次序在所述版本选择单元选择出的所述第二全局版本号对应的第二更新数据之后。
[0033]在第二方面的第三种可能的实现方式中,所述更新通知模块,具体用于将选择出的所述第二全局版本号广播给各个其他节点,所述其它节点用于确定所述第一更新数据的更新次序在接收到的所述第二全局版本号对应的第二更新数据之后。
[0034]结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述信息获取模块,具体用于从与所述节点对应的时钟源获取所述第一更新数据的接收时亥IJ,所述时钟源位于所述节点中,或,所述时钟源位于所述节点外且与所述节点之间存在对应关系。
[0035]本发明实施例提供的技术方案的有益效果是:
[0036]通过接收外部主机发送的第一更新数据,记录第一更新数据的接收时刻;根据接收时刻生成第一更新数据的第一全局版本号;根据第一全局版本号确定第一更新数据的更新次序;通知各个其它节点以更新次序执行对第一更新数据的更新操作,可以通过节点确定第一更新数据的更新次序,并通知其它节点以该更新次序执行更新操作,而不需要将更新数据发送给主节点,通过主节点确定更新数据的更新次序,通知从节点以该更新次序执行更新操作,解决了主节点的处理能力低导致的通过主节点将更新数据发送给各个从节点的效率低的问题,达到了提高更新数据的更新效率的效果。

【专利附图】

【附图说明】
[0037]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]图1是本发明各实施例提供的数据更新方法所涉及的实施环境的示意图;
[0039]图2是本发明一个实施例提供的数据更新方法的方法流程图;
[0040]图3A是本发明另一实施例提供的数据更新方法的方法流程图;
[0041]图3B是本发明实施例提供的节点的结构示意图;
[0042]图4是本发明一个实施例提供的数据更新装置的结构框架图;
[0043]图5是本发明再一实施例提供的数据更新装置的结构框架图;
[0044]图6是本发明一个实施例提供的数据更新装置的结构框架图;
[0045]图7是本发明再一实施例提供的数据更新装置的结构框架图。

【具体实施方式】
[0046]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0047]请参考图1所示的数据更新方法所涉及的实施环境的示意图,如图1所示,该实施环境可以包括存储设备110、外部主机120和存储区域网络(英文:storage area network ;简称:SAN)。其中,存储设备110和外部主机120之间通过SAN连接。
[0048]存储设备110可以包括至少两个节点,每个节点可以接收外部主机110发送的数据,将数据同步到该存储设备110中的其它节点中,以实现对数据的备份。
[0049]请参考图2,其示出了本发明一个实施例提供的数据更新方法的方法流程图,该数据更新方法可以应用于图1所示的存储设备110所包括的节点中。该数据更新方法,包括:
[0050]步骤201,节点接收外部主机发送的第一更新数据,记录第一更新数据的接收时刻。
[0051]步骤202,节点根据接收时刻生成第一更新数据的第一全局版本号。
[0052]步骤203,节点根据第一全局版本号确定第一更新数据的更新次序。
[0053]步骤204,节点通知各个其它节点以更新次序执行对第一更新数据的更新操作。
[0054]综上所述,本发明实施例提供的数据更新方法,通过接收外部主机发送的第一更新数据,记录第一更新数据的接收时刻;根据接收时刻生成第一更新数据的第一全局版本号;根据第一全局版本号确定第一更新数据的更新次序;通知各个其它节点以更新次序执行对第一更新数据的更新操作,可以通过节点确定第一更新数据的更新次序,并通知其它节点以该更新次序执行更新操作,而不需要将更新数据发送给主节点,通过主节点确定更新数据的更新次序,通知从节点以该更新次序执行更新操作,解决了主节点的处理能力低导致的通过主节点将更新数据发送给各个从节点的效率低的问题,达到了提高更新数据的更新效率的效果。
[0055]请参考图3A,其示出了本发明另一实施例提供的数据更新方法的方法流程图,该数据更新方法可以应用于图1所示的存储设备110所包括的节点中。该数据更新方法,包括:
[0056]步骤301,节点接收外部主机发送的第一更新数据,记录第一更新数据的接收时刻。
[0057]在节点接收到更新数据之后,可以将更新数据广播给各个其他节点,各个其它节点可以执行对更新数据的更新操作。当节点都接收到多个节点发送的不同的更新数据时,由于不同的更新次序会导致不同的更新结果,因此,在节点执行更新操作之前,需要确定各个更新数据的更新次序。其中,节点可以是选举出的主节点,也可以是从节点,本实施例不对节点作限定。
[0058]在时钟源的精度高于预定精度阈值时,不同节点接收到不同的更新数据的时刻不一样,因此,节点可以在获取到外部主机发送的第一更新数据时,对该第一更新数据的接收时刻进行记录,根据该接收时刻确定对第一更新数据的更新次序。其中,本实施例将外部主机发送给节点的数据称为第一更新数据。
[0059]具体地,记录第一更新数据的接收时刻,包括:从与节点对应的时钟源获取第一更新数据的接收时刻,该时钟源位于节点中,或,该时钟源位于节点外且与节点之间存在对应关系。
[0060]请参考图3B所示的节点的结构示意图,图3B(1)中,时钟源(CLOCK)位于节点中,此时,一个时钟源对应于一个节点;图3B(2)中,时钟源位于节点外,至少两个节点通过节点内部互联网络接口(英文:node inner connect1n network interface ;简称:NI)交换器共用一个时钟源,或至少两个存储设备中的全部或部分节点通过NI交换器共用一个时钟源,以节省存储设备的成本。其中,节点还包括中央处理单元(英文=CentralProcessing Unit ;简称:CPU)、双列直插式存储模块(英文:dual inline memory modules ;简称:DIMM)、前端(英文:front end ;简称:FE)接口、NI和后端(英文:back end ;简称:BE)。CPU用于处理存储业务的逻辑;DIMM用于Cache数据;FE接口用于连接外部主机;NI用于与其它节点进行通信;BE用于连接硬盘或硬盘框。
[0061]在使用上述结构的节点记录第一更新数据的接收时刻时,节点可以在接收到外部主机发送的第一更新数据时,向对应的时钟源发送时间获取请求,时钟源将携带有当前时刻的时间信息发送给节点,节点将时间信息中的当前时刻作为第一更新数据的接收时刻进行存储。
[0062]步骤302,节点获取当前的主节点标识,将主节点标识和接收时刻组成第一全局版本号。
[0063]在根据接收时刻确定第一更新数据的更新次序时,节点可以根据接收时刻对每个第一更新数据生成一个第一全局版本号,该第一全局版本号用于唯一地标识一个第一更新数据。
[0064]其中,根据接收时刻生成第一更新数据的第一全局版本号,包括:获取当前的主节点标识,将主节点标识和接收时刻组成第一全局版本号。
[0065]为了明确更新第一更新数据时的主节点,节点还可以获取主节点的主节点标识,将主节点标识和接收时刻组成第一全局版本标识。本实施例以节点为Zookeeper场景中的节点为例进行举例说明,贝1J第一全局版本号可以用zxid表示。zxid包括epoch和count,其中,印och的值为主节点标识,count的值可以是接收时刻,也可以是根据接收时刻确定的用于生成更新次序的数值。
[0066]步骤303,节点根据第一全局版本号确定第一更新数据的更新次序。
[0067]其中,根据第一全局版本号确定第一更新数据的更新次序,包括:
[0068]I)将第一更新数据和第一全局版本号广播给各个其他节点,其它节点用于对应存储第一更新数据和第一全局版本号,确定最近一次接收到外部主机发送的第二更新数据,反馈与第二更新数据对应的第二全局版本号;
[0069]2)接收各个其它节点发送的第二全局版本号;
[0070]3)从各个第二全局版本号中,选择出包括的接收时刻在第一全局版本号包括的接收时刻之前且距离第一全局版本号包括的接收时刻最近的一个第二全局版本号;
[0071]4)确定第一更新数据的更新次序在选择出的第二全局版本号对应的第二更新数据之后。
[0072]本实施例将其它节点接收到的外部主机发送的更新数据称为第二更新数据,对应的,该第二更新数据对应的全局版本号为第二全局版本号。
[0073]节点可以先将第一更新数据和第一全局版本号广播给各个其他节点,每个其它节点将第一更新数据和第一全局版本号对应添加到准备队列中,读取本节点最近一次接收到的第二更新数据,再读取该第二更新数据所对应的第二全局版本号,将该第二全局版本号发送给该节点。其中,由于每个节点都是在执行完对接收到的更新数据的更新操作后,再接收下一个更新数据的,因此,每个节点最多存储有一个最近接收到且未执行更新操作的更新数据,即,其它节点发送的第二更新数据是已经执行完更新操作或未执行更新操作的数据。
[0074]需要说明的是,为了使其它节点明确第一个更新数据和第一全局版本号是哪个节点发送的,节点还可以获取自身的节点标识,将该节点标识和第一更新数据、第一全局版本号一起广播给各个其它节点。
[0075]此时,节点会接收到每个其它节点发送的第二全局版本号,将第一全局版本号与每个第二全局版本号进行比较,查找到包括的接收时刻在第一全局版本号之前且距离第一全局版本号包括的接收时刻最近的一个第二全局版本号,确定第一更新数据的更新次序在选择出的第二全局版本号对应的第二更新数据之后。
[0076]比如,节点A分别接收到节点B、节点C和节点D发送的第二全局版本号B、第二全局版本号C和第二全局版本号D,假设第一全局版本号包括的接收时刻为2014年10月28日18点26分39秒,第二全局版本号B包括的接收时刻为2014年10月28日18点26分20秒,第二全局版本号C包括的接收时刻为2014年10月28日18点27分17秒,第二全局版本号D包括的接收时刻为2014年10月28日18点20分38秒,此时按照接收时刻由早到晚的顺序排列的全局版本号为:第二全局版本号D、第二全局版本号B、第一全局版本号、第二全局版本号C,确定第一更新数据的更新次序在第二全局版本号B所对应的第二更新数据之后。
[0077]步骤304,节点通知各个其它节点以更新次序执行对第一更新数据的更新操作。
[0078]节点在确定出第一更新数据的更新次序之后,还需要通知其它节点,使得其它节点可以按照更新次序执行对第一更新数据的更新操作。
[0079]其中,通知各个其它节点以更新次序执行对第一更新数据的更新操作,包括:将选择出的第二全局版本号广播给各个其他节点,该其它节点用于确定第一更新数据的更新次序在接收到的第二全局版本号对应的第二更新数据之后。
[0080]比如,当节点确定出第一更新数据在第二全局版本号B所对应的第二更新数据的更新操作之后时,可以将第二全局版本号B广播给各个其他节点,每个其它节点在接收到第二全局版本号B后,将第一更新数据添加到提交队列中,使得其它在执行完对第二全局版本号B所对应的第二更新数据的更新操作之后,执行对第一更新数据的更新操作。
[0081]需要说明的是,为了使其它节点明确第二全局版本号是哪个节点发送的,节点还可以将节点标识和第二全局版本号一起广播给各个其它节点,其它节点根据节点标识确定出第一更新数据,再确定出第一更新数据的更新次序在接收到的第二全局版本号所对应的第二全局版本号之后。
[0082]需要说明的是,在将选择出的第二全局版本号广播给各个其他节点后,节点向外部主机发送响应信息,该响应信息用于通知外部主机本次的第一更新数据更新成功。
[0083]综上所述,本发明实施例提供的数据更新方法,通过接收外部主机发送的第一更新数据,记录第一更新数据的接收时刻;根据接收时刻生成第一更新数据的第一全局版本号;根据第一全局版本号确定第一更新数据的更新次序;通知各个其它节点以更新次序执行对第一更新数据的更新操作,可以通过节点确定第一更新数据的更新次序,并通知其它节点以该更新次序执行更新操作,而不需要将更新数据发送给主节点,通过主节点确定更新数据的更新次序,通知从节点以该更新次序执行更新操作,解决了主节点的处理能力低导致的通过主节点将更新数据发送给各个从节点的效率低的问题,达到了提高更新数据的更新效率的效果。
[0084]另外,通过将选择出的第二全局版本号广播给各个其他节点,该其它节点用于确定第一更新数据的更新次序在接收到的第二全局版本号对应的第二更新数据之后,可以保证节点按照更新数据的接收顺序执行更新操作,保证了更新的准确性。
[0085]请参考图4,其示出了本发明一个实施例提供的数据更新装置的结构框架图,该数据更新装置可以应用于图1所示的存储设备110所包括的节点中。该数据更新装置,包括:
[0086]信息获取模块410,用于接收外部主机发送的第一更新数据,记录第一更新数据的接收时刻;
[0087]版本生成模块420,用于根据信息获取模块410获取到的接收时刻生成第一更新数据的第一全局版本号;
[0088]次序确定模块430,用于根据版本生成模块420生成的第一全局版本号确定第一更新数据的更新次序;
[0089]更新通知模块440,用于通知各个其它节点以次序确定模块430确定的更新次序执行对第一更新数据的更新操作。
[0090]综上所述,本发明实施例提供的数据更新装置,通过接收外部主机发送的第一更新数据,记录第一更新数据的接收时刻;根据接收时刻生成第一更新数据的第一全局版本号;根据第一全局版本号确定第一更新数据的更新次序;通知各个其它节点以更新次序执行对第一更新数据的更新操作,可以通过节点确定第一更新数据的更新次序,并通知其它节点以该更新次序执行更新操作,而不需要将更新数据发送给主节点,通过主节点确定更新数据的更新次序,通知从节点以该更新次序执行更新操作,解决了主节点的处理能力低导致的通过主节点将更新数据发送给各个从节点的效率低的问题,达到了提高更新数据的更新效率的效果。
[0091]请参考图5,其示出了本发明再一实施例提供的数据更新装置的结构框架图,该数据更新装置可以应用于图1所示的存储设备110所包括的节点中。该数据更新装置,包括:
[0092]信息获取模块510,用于接收外部主机发送的第一更新数据,记录第一更新数据的接收时刻;
[0093]版本生成模块520,用于根据信息获取模块510获取到的接收时刻生成第一更新数据的第一全局版本号;
[0094]次序确定模块530,用于根据版本生成模块520生成的第一全局版本号确定第一更新数据的更新次序;
[0095]更新通知模块540,用于通知各个其它节点以次序确定模块530确定的更新次序执行对第一更新数据的更新操作。
[0096]可选的,版本生成模块520,具体用于获取当前的主节点标识,将主节点标识和接收时刻组成第一全局版本号。
[0097]可选的,次序确定模块530,包括:
[0098]信息发送单元531,用于将第一更新数据和第一全局版本号广播给各个其他节点,其它节点用于对应存储第一更新数据和第一全局版本号,确定最近一次接收到外部主机发送的第二更新数据,反馈与第二更新数据对应的第二全局版本号;
[0099]版本接收单元532,用于接收各个其它节点发送的第二全局版本号;
[0100]版本选择单元533,用于从版本接收单元532接收到的各个第二全局版本号中,选择出包括的接收时刻在第一全局版本号包括的接收时刻之前且距离第一全局版本号包括的接收时刻最近的一个第二全局版本号;
[0101]次序确定单元534,用于确定第一更新数据的更新次序在版本选择单元533选择出的第二全局版本号对应的第二更新数据之后。
[0102]可选的,更新通知模块540,具体用于将选择出的第二全局版本号广播给各个其他节点,其它节点用于确定第一更新数据的更新次序在接收到的第二全局版本号对应的第二更新数据之后。
[0103]可选的,信息获取模块510,具体用于从与节点对应的时钟源获取第一更新数据的接收时刻,时钟源位于节点中,或,时钟源位于节点外且与节点之间存在对应关系。
[0104]综上所述,本发明实施例提供的数据更新装置,通过接收外部主机发送的第一更新数据,记录第一更新数据的接收时刻;根据接收时刻生成第一更新数据的第一全局版本号;根据第一全局版本号确定第一更新数据的更新次序;通知各个其它节点以更新次序执行对第一更新数据的更新操作,可以通过节点确定第一更新数据的更新次序,并通知其它节点以该更新次序执行更新操作,而不需要将更新数据发送给主节点,通过主节点确定更新数据的更新次序,通知从节点以该更新次序执行更新操作,解决了主节点的处理能力低导致的通过主节点将更新数据发送给各个从节点的效率低的问题,达到了提高更新数据的更新效率的效果。
[0105]另外,通过将选择出的第二全局版本号广播给各个其他节点,该其它节点用于确定第一更新数据的更新次序在接收到的第二全局版本号对应的第二更新数据之后,可以保证节点按照更新数据的接收顺序执行更新操作,保证了更新的准确性。
[0106]请参考图6,其示出了本发明一个实施例提供的数据更新装置的结构框架图,该数据更新装置可以应用于图1所示的存储设备110所包括的节点中。该数据更新装置,包括:接收机610、处理器620和发射机630。
[0107]接收机610,用于接收外部主机发送的第一更新数据;
[0108]处理器620,用于记录第一更新数据的接收时刻,根据接收时刻生成第一更新数据的第一全局版本号;根据第一全局版本号确定第一更新数据的更新次序;
[0109]发射机630,用于通知各个其它节点以处理器620确定的更新次序执行对第一更新数据的更新操作。
[0110]综上所述,本发明实施例提供的数据更新装置,通过接收外部主机发送的第一更新数据,记录第一更新数据的接收时刻;根据接收时刻生成第一更新数据的第一全局版本号;根据第一全局版本号确定第一更新数据的更新次序;通知各个其它节点以更新次序执行对第一更新数据的更新操作,可以通过节点确定第一更新数据的更新次序,并通知其它节点以该更新次序执行更新操作,而不需要将更新数据发送给主节点,通过主节点确定更新数据的更新次序,通知从节点以该更新次序执行更新操作,解决了主节点的处理能力低导致的通过主节点将更新数据发送给各个从节点的效率低的问题,达到了提高更新数据的更新效率的效果。
[0111]请参考图7,其示出了本发明再一实施例提供的数据更新装置的结构框架图,该数据更新装置可以应用于图1所示的存储设备110所包括的节点中。该数据更新装置,包括:接收机710、处理器720和发射机730。
[0112]接收机710,用于接收外部主机发送的第一更新数据;
[0113]处理器720,用于记录第一更新数据的接收时刻,根据接收时刻生成第一更新数据的第一全局版本号;根据第一全局版本号确定第一更新数据的更新次序;
[0114]发射机730,用于通知各个其它节点以处理器720确定的更新次序执行对第一更新数据的更新操作。
[0115]可选的,处理器720,具体用于获取当前的主节点标识,将主节点标识和接收时刻组成第一全局版本号。
[0116]可选的,发射机730,还用于将第一更新数据和第一全局版本号广播给各个其他节点,其它节点用于对应存储第一更新数据和第一全局版本号,确定最近一次接收到外部主机发送的第二更新数据,反馈与第二更新数据对应的第二全局版本号;
[0117]接收机710,还用于接收各个其它节点发送的第二全局版本号;
[0118]处理器720,还用于从各个第二全局版本号中,选择出包括的接收时刻在第一全局版本号包括的接收时刻之前且距离第一全局版本号包括的接收时刻最近的一个第二全局版本号;确定第一更新数据的更新次序在选择出的第二全局版本号对应的第二更新数据之后。
[0119]可选的,发射机730,具体用于将选择出的第二全局版本号广播给各个其他节点,其它节点用于确定第一更新数据的更新次序在接收到的第二全局版本号对应的第二更新数据之后。
[0120]可选的,处理器720具体用于从与节点对应的时钟源获取第一更新数据的接收时亥IJ,时钟源位于节点中,或,时钟源位于节点外且与节点之间存在对应关系。
[0121]综上所述,本发明实施例提供的数据更新装置,通过接收外部主机发送的第一更新数据,记录第一更新数据的接收时刻;根据接收时刻生成第一更新数据的第一全局版本号;根据第一全局版本号确定第一更新数据的更新次序;通知各个其它节点以更新次序执行对第一更新数据的更新操作,可以通过节点确定第一更新数据的更新次序,并通知其它节点以该更新次序执行更新操作,而不需要将更新数据发送给主节点,通过主节点确定更新数据的更新次序,通知从节点以该更新次序执行更新操作,解决了主节点的处理能力低导致的通过主节点将更新数据发送给各个从节点的效率低的问题,达到了提高更新数据的更新效率的效果。
[0122]另外,通过将选择出的第二全局版本号广播给各个其他节点,该其它节点用于确定第一更新数据的更新次序在接收到的第二全局版本号对应的第二更新数据之后,可以保证节点按照更新数据的接收顺序执行更新操作,保证了更新的准确性。
[0123]需要说明的是:上述实施例提供的数据更新装置在进行数据更新时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将数据更新装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据更新装置与数据更新方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0124]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0125]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0126]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种数据更新方法,其特征在于,所述方法包括: 节点接收外部主机发送的第一更新数据,记录所述第一更新数据的接收时刻; 根据所述接收时刻生成所述第一更新数据的第一全局版本号; 根据所述第一全局版本号确定所述第一更新数据的更新次序; 通知各个其它节点以所述更新次序执行对所述第一更新数据的更新操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述接收时刻生成所述第一更新数据的第一全局版本号,包括: 获取当前的主节点标识,将所述主节点标识和所述接收时刻组成所述第一全局版本号。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一全局版本号确定所述第一更新数据的更新次序,包括: 将所述第一更新数据和所述第一全局版本号广播给各个其它节点,所述其它节点用于对应存储所述第一更新数据和所述第一全局版本号,确定最近一次接收到所述外部主机发送的第二更新数据,反馈与所述第二更新数据对应的第二全局版本号; 接收各个其它节点发送的第二全局版本号; 从各个第二全局版本号中,选择出包括的接收时刻在所述第一全局版本号包括的接收时刻之前且距离所述第一全局版本号包括的接收时刻最近的一个第二全局版本号; 确定所述第一更新数据的更新次序在选择出的所述第二全局版本号对应的第二更新数据之后。
4.根据权利要求3所述的方法,其特征在于,所述通知各个其它节点以所述更新次序执行对所述第一更新数据的更新操作,包括: 将选择出的所述第二全局版本号广播给各个其它节点,所述其它节点用于确定所述第一更新数据的更新次序在接收到的所述第二全局版本号对应的第二更新数据之后。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述记录所述第一更新数据的接收时刻,包括: 从与所述节点对应的时钟源获取所述第一更新数据的接收时刻,所述时钟源位于所述节点中,或,所述时钟源位于所述节点外且与所述节点之间存在对应关系。
6.一种数据更新装置,其特征在于,所述装置包括: 信息获取模块,用于接收外部主机发送的第一更新数据,记录所述第一更新数据的接收时刻; 版本生成模块,用于根据所述信息获取模块获取到的所述接收时刻生成所述第一更新数据的第一全局版本号; 次序确定模块,用于根据所述版本生成模块生成的所述第一全局版本号确定所述第一更新数据的更新次序; 更新通知模块,用于通知各个其它节点以所述次序确定模块确定的所述更新次序执行对所述第一更新数据的更新操作。
7.根据权利要求6所述的装置,其特征在于,所述版本生成模块,具体用于获取当前的主节点标识,将所述主节点标识和所述接收时刻组成所述第一全局版本号。
8.根据权利要求7所述的装置,其特征在于,所述次序确定模块,包括: 信息发送单元,用于将所述第一更新数据和所述第一全局版本号广播给各个其他节点,所述其它节点用于对应存储所述第一更新数据和所述第一全局版本号,确定最近一次接收到所述外部主机发送的第二更新数据,反馈与所述第二更新数据对应的第二全局版本号; 版本接收单元,用于接收各个其它节点发送的第二全局版本号; 版本选择单元,用于从所述版本接收单元接收到的各个第二全局版本号中,选择出包括的接收时刻在所述第一全局版本号包括的接收时刻之前且距离所述第一全局版本号包括的接收时刻最近的一个第二全局版本号; 次序确定单元,用于确定所述第一更新数据的更新次序在所述版本选择单元选择出的所述第二全局版本号对应的第二更新数据之后。
9.根据权利要求8所述的装置,其特征在于,所述更新通知模块,具体用于将选择出的所述第二全局版本号广播给各个其他节点,所述其它节点用于确定所述第一更新数据的更新次序在接收到的所述第二全局版本号对应的第二更新数据之后。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述信息获取模块,具体用于从与所述节点对应的时钟源获取所述第一更新数据的接收时刻,所述时钟源位于所述节点中,或,所述时钟源位于所述节点外且与所述节点之间存在对应关系。
【文档编号】H04L29/08GK104394195SQ201410606041
【公开日】2015年3月4日 申请日期:2014年10月31日 优先权日:2014年10月31日
【发明者】张鹏, 杜翔 申请人:杭州华为企业通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1