服务器装置和保证数据次序的方法

文档序号:6380097阅读:172来源:国知局
专利名称:服务器装置和保证数据次序的方法
技术领域
在本文中讨论的实施例针对一种服务器装置、数据次序保证程序以及保证数据次序的方法。
背景技术
近来,作为用于以并行方式处理时时刻刻从不同目标收集到的许多数据集的技术,CEP (复合事件处理)是公知的。在复合事件处理中,从接收到的数据检测事件,并且执行与检测到的事件相关的处理。尽管有时复合事件处理被称为ESP (事件流处理),但是在本文中复合事件处理连同ESP将被称为CEP。在执行复合事件处理的CEP系统中,存在临时地处理大量接收到的数据的情况,并且在这样的情况下,处理负荷增加,并且处理性能可能降低。另外,因为CEP系统是实时处理数据的系统,所以期望CEP系统一直运行并且不允许停止。因此在CEP系统中,通过使用用于云等可以灵活地分配资源的系统技术,根据处理负荷的变化将处理分派至多个服务器或虚拟机(VM)。例如,布置在具有高处理负荷的服务器或虚拟机处的、称为查询或伴随有查询的数据的交易请求语句作为处理元素被移动至另一服务器或另一虚拟机,由此分派处理。然而,在CEP系统中,存在在处理元素发生移动的情况下数据次序改变的可能性。例如,假定数据传输源服务器为A,处理元素的移动源服务器为B,以及处理元素的移动目的地服务器为C。在此将考虑以下情况:其中,传输源服务器A将数据传送至移动源服务器B,并且处理元素从移动源服务器B移动至移动目的地服务器C。在处理元素从移动源服务器B移动至移动目的地服务器C时,从传输源服务器A传送至移动源服务器B的数据到达移动源服务器B。因为处理元素已经移动至移动目的地服务器C,移动源服务器B将到达的数据传送至移动目的地服务器C。当完成处理元素的移动时,移动目的地服务器C向传输源服务器A通知处理元素的移动完成。在通知移动完成之后,传输源服务器A将数据直接传送至移动目的地服务器C。在这样的情况下,存在以下可能:从传输源服务器A直接传送至移动目的地服务器C的数据在从传输源服务器A通过移动源服务器B而传送至移动目的地服务器C的数据之前到达移动目的地服务器C。当数据次序如上发生改变时,存在所代表的含义根据数据次序而改变的情况。例如,将考虑通过CEP系统实现安全系统的情况,在该安全系统中布置了检测使用钥匙解锁房屋前门的门传感器和检测出现在室内的人的运动传感器,并且监测从门传感器和运动传感器传送的数据。在这样的情况下,当门传感器所获取的对使用钥匙打开或关闭前门的检测的数据和运动传感器获取的对室内运动的检测的数据的次序改变时,含义发生改变。例如,在检测到使用钥匙解锁前门之后在室内检测到对象的情况可以认为是业主返回房屋。另一方面,在检测到室内对象后检测到使用钥匙解锁前门的情况可以认为是盗贼逃走。因此,提出了即使当处理元素发生移动时仍然保持数据次序的技术。在此技术中,例如,当确定了处理元素的移动源服务器和移动目的地服务器时,管理CEP系统的控制器将移动请求传送至移动源服务器和移动目的地服务器。移动源服务器将暂停请求发送至所有将数据传送至移动源服务器的传输源,并且等待对暂停请求的确认,从而锁定传输源中的数据传输并且在传输源中缓冲作为移动目标的处理元素的数据。当移动源服务器从所有传输源接收到确认时,不存在处于传输处理中的数据。移动源服务器处理数据直到从所有传输源接收到确认为止。然后,当从所有传输源接收到确认时,移动源服务器开始处理元素的移动。当处理元素的移动完成之后,移动目的地服务器将重启请求传送至所有传输源。当接收到重启请求时,传输源通过改变路由表来将数据的传输目的地改变为移动目的地服务器,重启数据传输以及将缓冲的数据传送至移动目的地服务器。专利文献1:日本早期公开专利公布第2011-039820号非专利文献1:Mehul A.Shah, Joseph M.Hellerstein, SirishChandrasekaranand Michael J.Franklin, “Flux:An AdaptivePartitioning Operator for ContinuousQuery Systems”,ICDEj 2003然而,根据相关技术,当处理元素移动时,移动源服务器通过将暂停请求传送至所有传输源来停止传输源中的数据的传输。因此,根据相关的技术,对于处理元素的每次移动存在停止数据处理的开销。更具体地,当许多处理元素移动时,每当每个处理元素移动时停止数据处理,并且因此开销增加。因此,本发明的实施例的一个方面的目的是提供能够抑制伴随查询移动的开销的服务器装置、数据次序保证程序以及保证数据次序的方法。

发明内容
根据本发明的方面,服务器装置包括:存储器;以及耦合到存储器的处理器,其中该处理器执行处理,该处理包括:对于每个预定时期,停止将数据传送至多个节点,其中,在多个节点中放置了每个均用于在数据与设定的条件一致时执行处理的多个查询,每个节点存储路由表,在该路由表中,针对作为每个查询的处理目标的每个数据,存储每个查询的布置目的地和根据每个查询的移动而更新的版本;当停止数据的传输时,从多个节点获取路由表的版本;比较所获取的多个节点的路由表的版本;以及当作为比较的结果存在存储旧版本的路由表的节点时,更新该节点的路由表。


图1是示出包括根据第一实施例的服务器装置的CEP系统的整体配置的图;图2是示出根据第二实施例的CEP系统的配置的示例的图;图3是示意地示出根据数据流的CEP系统的配置的图;图4A是示出查询的移动的示例的图;图4B是示出查询的移动的另一示例的图;图5是示出对查询分组的示例的图;图6是路由表的数据配置的示例的图;图7是示出存储目的地表的数据配置的示例的图;图8是示出管理服务器的配置的示例的图;图9是示出停止时期表的数据配置的示例的图10是示出数据次序保证处理的序列的流程图;图11是示意地示出根据第三实施例的CEP系统的配置的图;图12是示出路由表的数据配置的示例的图;图13是示出管理服务器的配置的示例的图;图14是示出数据次序保证处理的序列的流程图;以及图15是示出执行数据次序保证程序的计算机的图。
具体实施例方式将参照

本发明的优选实施例。然而,本发明不限于这些实施例。另外,可以在不导致处理内容彼此矛盾的范围内适当地组合实施例。[a]第一实施例将描述根据第一实施例的服务器装置。图1是示出包括根据第一实施例的服务器装置的CEP系统的整体配置的图。服务器装置10是管理CEP系统的物理服务器,并且例如是放置在数据中心或每个公司中用于管理的服务器计算机。服务器装置10可以与多个节点11通信。每个节点11是服务器装置或在服务器装置中操作的虚拟机。在每个节点11中,多个查询12以分布式方式布置,用于在数据与设定的条件一致时执行处理。从各个目标收集到的数据被传递至每个节点11。当接收到的数据与在查询12中设定的条件一致时,节点11执行查询12设定的处理。布置在每个节点11中的查询12可以在节点11之间移动。例如,当为了分散处理负荷等而移动查询12时,每个节点11移动查询12而不停止来自数据传输源的数据的传输。每个节点11存储路由表13,在路由表13中针对作为每个查询12的处理目标的每个数据条目存储了查询12的布置目的地和根据查询12的移动而更新的版本。当移动查询12时,每个节点11更新在路由表13中所存储的移动的查询12的布置目的地和版本。例如,当移动查询12时,移动目的地的节点11更新在路由表13中所存储的移动的查询12的布置目的地和版本,并且将移动的查询12和移动目的地通知给其它节点11。当将查询12的移动和移动目的地通知给每个节点11时,节点11更新在路由表13中所存储的移动的查询12的布置目的地和版本。如在图1中所示,服务器装置10包括停止单元14、获取单元15、比较单元16以及更新单元17。停止单元14临时地停止数据的传递。例如,针对每个预定时期停止单元14停止将数据传送至每个节点11。停止单元14通过以预定时期将数据传输停止请求传送至时期性地传送数据的传输源来停止数据的传输。另外,当作为比较单元16 (将在下文中描述)所执行的比较的结果路由表13的版本相同时,或当更新单元17 (将在下文中描述)完成路由表13的更新时,停止单元14通过将数据传输重启请求传送至传输源来重启数据的传输。获取单元15获取各种信息。例如,当停止单元14停止数据的传输时,获取单元15从每个节点11获取路由表13的版本。获取单元15例如将用于传送路由表13版本的请求传送至每个节点11。然后,获取单元15通过从每个节点11接收版本通知来从每个节点11获取路由表13的版本。比较单元16执行各种比较操作。例如,比较单元16比较获取单元15所获取的节点11的路由表13的版本。更新单元17执行各种更新操作。例如,作为比较单元16所执行的比较的结果,当存在存储旧版本的路由表13的节点11时,更新单元17更新该节点11的路由表13。当旧版本的路由表13存储在节点11中的一个节点中时,更新单元17请求存储新版本的路由表13的节点11传送路由表13的信息。当从节点11接收到路由表13时,比较单元16将路由表13的内容传送至存储旧版本的路由表13的节点11,并且更新该节点11的路由表13。另外,当服务器装置10存储路由表13并且路由表13是新的时,可传送存储的路由表13的内容。另外,在图1中所示的示例中,为了表示功能配置,停止单元14、获取单元15、比较单元16以及更新单元17彼此分离地划分,例如,可通过一个装置来配置功能配置。作为装置的示例,包括电子电路,诸如CPU (中央处理器单元)、MPU (微处理器单元)等。另外,作为装置,可使用诸如ASIC (专用集成电路)或FPGA (现场可编程门阵列)的集成电路。在本文中,在CEP系统中存在以下情况:其中,依赖于被配置为系统的处理的特性,不请求保证精确的数据处理次序,而是以被配置为系统的处理所请求的精度保证数据处理次序就足够。例如,将考虑通过CEP系统实现安全系统的情况,在该安全系统中布置了检测使用钥匙解锁房屋前门的门传感器和检测出现在室内的人的运动传感器,并且监测从门传感器和运动传感器传送的数据。在这样的安全系统中,当在人使用钥匙解锁前门之后进入房屋内部时,存在大约几秒钟的间隔。因此,服务器装置10针对保证所请求精度的数据次序的每个预定时期,停止将数据传送至每个节点11,比较节点11的路由表13的版本以及更新旧版本的路由表13。例如,当通过CEP系统实现上述的安全系统时,预定时期被确定为在几百毫秒至几秒的范围中。预定时期可存储在放置在服务器装置10中的存储单元中。另外,可配置成使得预定时期存储在外部存储装置中并且从外部存储装置读取该预定时期。此外,可在针对每个预定时期停止将数据传送至每个节点11的程序中定义预定时期。如上所述,服务器装置10通过针对每个时期停止数据的处理来获得每个节点11的路由表13的一致性,在该时期保证被配置为系统的处理所请求的精度的数据次序。因此,根据服务器装置10,与每当移动查询12时就停止数据处理的情况相比,可以抑制开销的发生。更具体地,当在节点11之间移动多个查询12时,尽管当针对查询12的每个移动停止数据处理时开销增加,但是通过针对每个预定时期停止数据处理而获取路由表13的一致性,可以抑制开销。如上所述,服务器装置10针对每个预定时期停止将数据传送至多个节点11。另夕卜,当停止数据的传输时,服务器装置10从多个节点11获取路由表13的版本。然后,服务器装置10将获取的多个节点11的路由表13的版本相互进行比较。当作为比较结果存在存储旧版本的路由表13的节点11时,服务器装置10更新节点11的路由表13。据此,根据服务器装置10,可以保证被配置为系统的处理所请求的精度的数据处理次序。另外,根据服务器装置10,可以抑制伴随查询12的移动的开销。[b]第二实施例现在将描述第二实施例。在第二实施例中将描述CEP系统20,在该CEP系统20中,在多个服务器装置30上操作VM (虚拟机)31,并且多个查询33被分散以布置在VM 31中。图2是示出根据第二实施例的CEP系统的配置的示例的图。CEP系统20包括服务器装置21、多个服务器装置30以及管理服务器40。服务器装置21、每个服务器装置30以及管理服务器40通过网络22互连为可通信的。作为这样的网络22的一种类型,存在诸如LAN(局域网)或VPN (虚拟私人网络)的任意通信网络,不论网络是有线的还是无线的。在服务器装置30中操作VM 31。在每个VM 31中,多个查询33被分散布置。服务器装置21通过外部网络23从各种目标接收数据并且将接收到的数据传递至VM 31,在VM31中布置了以数据作为处理目标的查询33。管理服务器40管理服务器装置21和每个服务器装置30,并且控制布置在每个VM 31中的查询33的移动。另外,在图2所示的示例中,尽管示出了三个服务器装置30,但是服务器装置30的数量可能具有任何值。图3是示意地示出根据数据流的CEP系统的配置的图。服务器装置21、VM 31以及管理服务器40存储路由表50,在路由表50中,针对作为每个查询33的处理目标的每个数据条目,存储查询33的布置目的地和根据查询33的移动而更新的版本。服务器装置21通过外部网络23从各种目标接收多个数据条目。服务器装置21执行以预定的数据配置布置接收到的数据条目的预处理。然后,服务器装置21基于路由表50指定以接收到的数据作为处理目标的查询33的布置目的地,并且在预处理之后将数据传送至指定的布置目的地的VM 31。在本实施例中,尽管示出了一个服务器装置21,但是可配置成使得布置多个服务器装置21并且多个服务器装置21所接收到的数据被分散。VM 31操作数据流处理引擎32。数据流处理引擎32是实现复合事件处理的软件。数据流处理引擎32通过将接收到的数据与查询33的条件等式进行匹配来检测事件,并且控制检测到的事件的执行。另外,在CEP系统20中,可根据多个查询33执行一系列处理。例如,可配置成使得作为根据上级查询33所获取的执行结果的数据被传送至下级查询33,以使其成为下级查询33的输入数据。当根据多个查询33执行一系列处理时,数据流处理引擎32将作为查询33的执行结果的数据传送至在其中操作下级查询33的VM 31。另外,根据从管理服务器40传送的用于移动查询33的指令,数据流处理引擎32控制将查询33移动至在另一 VM 31上操作的数据流处理引擎32或从在另一 VM 31上操作的数据流处理引擎32移动查询33的处理。当接收到作为移动的查询33的处理目标的数据时,数据流处理引擎32将接收到的数据传送至作为查询33的移动目的地的VM 31。另外,当从管理服务器40接收到传输停止请求(将在下文中描述)时,数据流处理引擎32执行检查处理,在该处理中检查是否存在处于VM 31之间的传输处理当中的数据。例如,数据流处理引擎32将控制分组传送至所有其它VM 31的数据流处理引擎32。然后,数据流处理引擎32等待从其它VM 31传送的控制分组的接收。这里,如果在接收到传输停止请求时存在处于VM 31之间的传输处理当中的数据,则在将控制分组传送至其它VM 31之后在从所有其它VM31接收到控制分组之前,VM 31接收将要传送至其它VM 31的传输数据。另一方面,如果不存在处于VM 31之间的传输处理当中的数据,则在将控制分组传送至其它VM 31之后,VM 31从所有其它VM 31接收控制分组而不接收传输数据。当在从所有其它VM 31接收到控制分组之前接收到传输数据时,数据流处理引擎32将传输数据传送至传输目的地的VM 31。然后,数据流处理引擎32传送用于再次执行检查处理的请求。如果接收到用于再次执行检查处理的请求,每个VM 31的数据流处理引擎32将控制分组再次传送至所有其它VM 31的数据流处理引擎32。
另一方面,如果从所有其它节点11接收到控制分组而没有接收到传输数据,则数据流处理引擎32将来自所有VM 31的控制分组的接收通知给服务器装置10。另外,每个VM31的数据流处理引擎32可向服务器装置10通知此通知。此外,当一个VM 31的数据流处理引擎32典型地从所有其它VM 31接收通知而不接收用于再次执行检查处理的请求时,数据流处理引擎32可通知服务器装置10。在此,将描述查询33的移动。存在查询33包括伴随数据的情况。例如,当执行了计算在预定时期中作为处理目标的数据的平均值的处理时,查询33保持在预定时期中接收到的数据以计算平均值。另外,存在查询33使用用于处理的预定的数据(诸如表等)的情况。当移动查询33时,数据流处理引擎32移动作为处理元素的查询33和查询33所伴随的数据。另外,在查询33的移动中,可考虑以下情况。图4A是示出查询33的移动的示例的图。如在图4A中所示,当作为处理目标的数据对于每个查询33不同时,移动查询33,并且在移动目的地处理作为处理目标的数据。例如,当处理是分布式时,处理33被分别地移动至互相不同的VM 31,并且由VM 31处理数据。另一方面,例如当处理负荷低时,查询33被移动至一个VM 31,并且由该VM 31处理数据。另一方面,存在具有作为查询33的处理目标的多个数据条目的情况。例如,存在股票代码和股票价格被作为数据传递至VM 31的情况,并且通过一个查询33执行计算在预定时期中每个股票代码的股票价格的移动平均值的处理。图4B是示出查询33的移动的另一示例的图。如在图4B中左侧所示,查询33具有作为处理目标的数据I至数据η。在这样的情况下,针对作为处理目标的数 据I至数据η中的每个,移动查询33。例如,当处理是分布式时,查询33被复制并且移动至不同的VM 31,并且作为处理目标的数据I至数据η由相互不同的VM 31处理。另一方面,例如当处理负荷低时,查询33被布置在一个VM 31中,并且作为处理目标的数据I至数据η由一个VM 31处理。然而,在每个查询33被单独地指示进行移动并且被移动时,用于移动的指示的数量随着作为移动目标的查询33的数量增加而增加。另外,在查询33在路由表50中针对作为处理目标的每个数据条目存储布置目的地的情况中,路由表50中的数据量随着作为查询33的处理目标的数据增加而增加。因此,在本实施例中,多个查询33被划分成多个组,并且移动每个组的查询。另外,路由表50管理每个组的存储目的地。图5是示出对查询33分组的示例的图。例如,假定用于识别每个数据条目的键值(key)作为32位整型数据被包括在作为处理目标的每个数据条目中,并且互相不同的键值被设定为查询33的处理条件。在这样的情况下,例如,执行分组以使具有相同的余数的查询33被划分到同一组,该余数是通过将在处理条件中设定的键值除以预定的整数值而获取的。作为示例,静态地执行分组以使具有通过将在处理条件中设定的键值除以8191所获取的相同的余数的查询33被划分到同一组。因此,查询33被划分为8191个组。在图5所示的示例中,通过对查询33进行分组所获取的每个组以V节点来表示。在此实施例中,对于每个V节点查询33被布置在VM 31 中。在路由表50中,针对每个V节点存储布置目的地和版本。图6是路由表的数据配置的示例的图。如在图6中所示,路由表50具有ID、存储目的地以及版本号这些项。ID项是存储用于识别V节点的ID的区域。存储目的地项是存储表示存储目的地的VM 31的ID的区域。版本号项是存储代表版本的值的区域。在图6的示例中,表示为存储目的地的VM31的ID为“1”,并且在具有ID “12”的V节点处版本为“3”。每个VM 31的服务器装置21和数据流处理引擎32基于键值确定查询33的存储目的地。例如,当包括在接收到的数据中的键值为8203时,服务器装置21计算通过将8203除以8191获取的余数,即12。然后,服务器装置21从路由表50获取V节点的ID为12的存储目的地。在图6所示的示例中,获取V节点的ID为12的存储目的地的VM 31的ID为
1在每个VM 31中,确定用于通信的IP地址和端口号,并且根据每个VM 31的IP地址和端口号为其分配文件描述符。服务器装置21、每个VM 31以及管理服务器40将文件描述符编号和表示VM 31的ID存储在存储目的地表中。图7是示出存储目的地表的数据配置的示例的图。如在图7中所示,在存储目的地表中,包括ID项和文件描述符项。ID项是存储VM 31的ID的区域。文件描述符项是存储分配给连接至ID所表示的VM 31的通信线的文件描述符编号的区域。图7的示例表示分配给连接至具有ID “O”的VM 31的通信线的文件描述符编号为“6”。当与VM 31执行通信时,从存储目的地表中获取对应于作为通信目标的VM 31的ID的文件描述符编号。例如,当作为通信目标的VM 31的ID为“I”时,从存储目的地表获取具有ID “I”的VM 31的文件描述符编号为“7”。然后,使用获取的文件描述符编号通过TCP/IP套接字(socket)与通信目标的VM 31执行通信。另外,每个VM 31检测从每个服务器装置30分配的资源的负荷状态(诸如CPU和存储器的使用率),并且将表示检测到的负荷状态的负荷信息传送至管理服务器40。管理服务器40基于从每个VM 31传送的负荷信息指定作为移动目标的查询33。然后,管理服务器40传送用于移动作为移动目标的查询33的指示。另外,在本实施例中,以V节点为单位移动查询33。管理服务器40将包括移动目的地的VM 31的ID和作为移动目标的V节点的ID的移动指示传送至移动源的VM 31。接收到移动指示的VM 31的数据流处理引擎32对处理元素(诸如属于作为移动目标的V节点的查询33和查询33所伴随的数据)进行串行化,并且将串行化后的处理元素传送至移动目的地的VM 31。移动目的地的VM 31的数据流处理引擎32通过解串行来恢复传送的数据并且开始操作恢复的查询33。另外,数据流处理引擎32用在其中操作数据流处理引擎32的VM 31的ID更新在路由表50中所存储的、属于作为移动目标的V节点的查询33的存储目的地,并且更新版本。例如,数据流处理引擎32用通过将版本值加一所获取的值更新版本值。然后,数据流处理引擎32将作为移动目标的V节点的ID和作为移动目的地的VM 31的ID通知给每个VM 31、服务器装置21以及管理服务器40。当通知了移动时,每个VM 31、服务器装置21以及管理服务器40在路由表50中用作为移动目的地的所通知的VM 31的ID更新属于作为移动目标的所通知的V节点的查询33的存储目的地并且更新版本。例如,每个VM 31、服务器装置21以及管理服务器40接收通过将版本值加一所获取的值,并且用该值更新版本值。图8是示出管理服务器的配置的示例的图。如在图8中所示,管理服务器40包括通信控制I/F单元41、存储单元42以及控制单元43。通信控制I/F单元41包括至少一个端口并且是控制每个VM 31与服务器装置21之间的通信的接口。通信控制I/F单元41将各种信息传送至每个VM 31和服务器装置21并且从每个VM 31和服务器装置21接收各种信息。例如,通信控制I/F单元41从每个VM31接收负荷信息。另外,通信控制I/F单元41将各种指示传送至VM 31。存储单元42存储各种信息。例如,存储单元42在其中存储上述的路由表50、最大时期信息51以及停止时期表52。配置存储单元42的装置的示例包括可以重写数据的半导体存储器(诸如闪存或非易失静态随机存取存储器(NVSRAM))和存储装置(诸如硬盘或光盘)。最大时期信息51是所存储的、当数据在CEP系统20的多个VM 31之间传输时传输所需的最大时期。由CEP系统20的确定单元43a从终端装置(诸如被认为可与管理服务器40通信的客户端计算机)或设置在管理服务器40中的输入装置(诸如鼠标、键盘等)登记最大时期信息51。停止时期表52是针对通过将多个查询33划分为多个组而获取的组存储预定时期(在该预定时期停止数据传输)的表。图9是示出停止时期表的数据配置的示例的图。如在图9中所示,在停止时期表52中包括ID项和时期项。ID项是存储V节点的ID的区域。时期项是以毫秒为单位存储保证处理次序的时期的区域。在图9所示的示例中,具有ID“12”的V节点的预定时期为大约“ 100 ” ms。控制单元43例如是包括内部存储器等的电子电路(诸如CPU),并且包括确定单元43a、移动单元43b、执行单元43c、停止单元43d、获取单元43e、比较单元43f以及更新单元43g。确定单元43a执行各种确定。例如,确定单元43a确定是否存在每个VM 31的负荷状态(允许负荷或更多),该负荷状态以从每个VM 31所传送的负荷信息来表示。移动单元43b移动查询33。例如,当确定单元43a确定存在被确定为具有容许负荷或更多的负荷的VM 31时,移动单元43b移动布置在VM31中的任一 V节点。例如,移动单元43b基于从每个VM 31所传送的负荷信息指定具有低负荷状态的VM 31。然后,移动单元43b关于被确定为具有允许负荷或更多、被设置为移动源的VM 31,具有低负荷状态、被设置为移动目的地的VM 31以及被确定具有允许负荷或更多、被设置为移动目标的VM 31中布置的任一 V节点传送移动指示。执行单元43c从停止时期表52中读取对应于移动的V节点的预定时期。另外,执行单元43c读取最大时期信息51。然后,当对应于移动的V节点的预定时期短于最大时期信息51所表示的最大时期时,执行单元43c执行将在在下文中描述的停止单元43d、获取单元43e、比较单元43f以及更新单元43g的处理。另一方面,当请求的时期是最大时期或更长时,执行单元43c停止停止单元43d、获取单元43e、比较单元43f以及更新单元43g的处理。在此,当对应于移动的V节点的时期长于最大时期时,在查询33的移动之后直到经过对应于V节点的时期,通过每个VM 31从作为移动源的VM 31转发的数据到达作为移动目的地的VM 31。因此,保证对应于V节点的时期之前或之后的数据次序。因此,当对应于移动的V节点的时期是最大时期或更长时,执行单元43c停止停止单元43d、获取单元43e、比较单元43f以及更新单元43g的处理。以这样的方式,根据管理服务器40,可以抑制不必要处理的执行。
当在V节点的移动之后经过对应于V节点的预定时期时,停止单元43停止数据的传输。例如,当从V节点的移动目的地通知了作为移动目标的V节点的ID和作为移动目的地的VM 31的ID之后,经过对应于V节点的预定时期时,停止单元43d将传输停止请求传送至数据的传输源和每个VM 31。当接收到传输停止请求时,每个VM 31的数据流处理引擎32执行用于检查是否存在处于VM 31之间的传输处理当中的数据的检查处理,并且当不存在处于传输处理当中的数据时,将从所有VM 31接收到控制分组通知给服务器装置10。作为比较单元43f (将在下文中描述)所执行的比较的结果,当路由表50的版本相同时,或更新单元43g (将在下文中描述)所执行的路由表50的更新完成时,停止单元43d通过将数据传输重启请求传送至传输源来重启数据传输。当通知从所有VM 31接收到控制分组时,获取单元43e从每个VM 31和服务器装置21获取在路由表50中所存储的对应于移动的V节点的版本。例如,获取单元43e将用于传送对应于移动的V节点的版本的请求传送至每个VM 31和服务器装置21。然后,通过从每个VM 31和服务器装置21接收版本的通知,获取单元43e从每个VM 31和服务器装置21获取版本。比较单元43f将获取的每个VM 31和服务器装置21的路由表50的版本相互进行比较。当作为比较结果旧版本的路由表50存储在VM 31和服务器装置21中的任一个时,更新单元43g更新路由表50。例如,在如果在存储单元42中所存储的路由表50的版本是新的情况下,更新单元43g将存储单元42中所存储的路由表50的信息传送至存储旧版本的路由表50的VM 31或服务器装置21。另外,当存储单元42中所存储的路由表50的版本是旧的时,更新单元43g请求存储新版本的路由表50的VM 31或服务器装置21传送路由表50的信息。然后,当接收到新的路由表50的信息时,更新单元43g将接收到的信息传送至存储旧版本的路由表50的VM 31或服务器装置21。另外,更新单元43g用接收到的信息更新存储单元42中所存储的路由表50。接下来,将描述根据本实施例的管理服务器40保证数据次序的处理的流程。图10是示出数据次序保证处理的序列的流程图。该数据次序保证处理例如是在从V节点的移动目的地通知了作为移动目标的V节点的ID和作为移动目的地的VM 31的ID时执行的。如在图10中所示,在步骤SlO中,执行单元43c从停止时期表52中读取对应于移动的V节点的预定时期。另外,在步骤Sll中,执行单元43c读取被存储作为最大时期信息51的最大时期。然后,在步骤S12中,执行单元43c确定对应于移动的V节点的预定时期是否短于最大时期。当预定时期是最大时期或更长时(在步骤S12中为否),执行单元43c结束处理。另一方面,当预定时期短于最大时期时(在步骤S12中为是),在步骤S13中,停止单元43d确定在V节点的移动的通知之后是否已经经过了对应于V节点的预定时期。当没有经过预定时期时(步骤S13中为否),处理再次进行到步骤S13,并且等待经过预定时期。另一方面,当经过了预定时期时(步骤S13中为是),在步骤S14中,停止单元43d将传输停止请求传送至数据传输源和每个VM 31。在步骤S15中,停止单元43d确定是否从所有传输源获取了对于传输停止请求的确认。当没有获取到确认时(在步骤S15中为否),处理再次进行到步骤S15,并且等待确认。另一方面,当获取到确认时(在步骤S15中为是),在步骤S16中,获取单元43e确定是否接收到来自所有VM 31的控制分组的接收的通知。当没有从所有VM 31获取到通知时(在步骤S16中为否),处理再次进行到步骤S16,并且等待通知。另一方面,当从所有VM 31获取通知时(在步骤S16中为是),在步骤S17中,获取单元43e从每个VM 31和服务器装置21获取在路由表50中所存储的对应于移动的V节点的版本。在步骤S18中,比较单元43f比较获取的每个VM 31和服务器装置21的路由表50的版本,并且确定是否存在旧版本的路由表50。当存在旧版本的路由表50时(在步骤S18中为是),在步骤S19中,更新单元43g更新旧版本的路由表50。另一方面,当不存在旧版本的路由表50时(在步骤S18中为否),处理进行到步骤S20 (将在下文中描述)。在步骤S20中,停止单元43d通过将数据传输重启请求传送至传输源来传送数据并且结束处理。如上所述,管理服务器40存储对于通过将多个查询33划分为多个组而获取的每个V节点的预定时期。另外,当在V节点的移动之后经过对应于V节点的预定时期时,管理服务器40停止数据的传输。然后,管理服务器40从每个VM 31和服务器装置21获取与移动的V节点相关的路由表50的版本。管理服务器40将获取的版本互相比较,并且通过更新旧版本的路由表50来获取路由表50的一致性。因此,根据管理服务器40,可以保证所请求的精度的数据次序。另外,根据管理服务器40,不需要在每次移动查询33时停止数据的传输,借此可以抑制开销。此外,根据管理服务器40,当在V节点的移动之后经过预定时期时,停止数据传输,并且检查版本。因此,根据管理服务器40,可以有效地保证所请求的精度的数据次序。另外,根据管理服务器40,当对应于移动的V节点的预定时期短于最大时期时检查路由表50的一致性,而当预定时期是最大时期或更长时不检查一致性,借此可以减轻处理负荷。[c]第三实施例现在将描述第三实施例。因为根据第三实施例的CEP系统的配置与以上所描述的根据第二实施例的CEP系统几乎相同,所以将描述不同的部分。在本实施例中,与以上描述的第一实施例类似,管理服务器40针对每个预定时期(在该预定时期保证所请求的精度的数据次序)从VM 31获取并且比较路由表50的版本,以及更新旧版本的路由表50。图11是示意地示出根据第三实施例的CEP系统的配置的图。另外,为与以上描述的第二实施例相同的部分分配相同的参考标记,并且将不给出其描述。当更新路由表50时,VM 31、服务器装置21以及管理服务器40将更新时间和日期存储为版本。当移动V节点的查询33时,作为移动目的地的VM 31的数据流处理引擎32更新在路由表50中的移动的V节点的查询33的存储目的地,并且将所更新的更新日期和时间存储为版本。然后,数据流处理引擎32将移动的V节点的ID、作为移动目的地的VM 31的ID以及更新日期和时间通知给VM 31、服务器装置21以及管理服务器40。当通知了移动时,VM 31、服务器装置21以及管理服务器40更新在路由表50中的已通知的移动的V节点的查询33的存储目的地,并且用通知的更新日期和时间更新版本。图12是示出路由表的数据配置的示例的图。在此,为与以上描述的第二实施例相同的部分分配相同的参考标记,并且将不给出其描述。如在图12中所示,在路由表50中,在版本号项中存储更新日期和时间。在图12中所示的示例表示,在具有ID“12”的V节点中,作为存储目的地的VM 31的ID为“1”,并且更新日期和时间为“2011年11月I日10:01:20.12”。另外,对于每个预定时期,每个VM 31的数据流处理引擎32存储与在预定时期期间第一次传送数据的日期和时间相关的日期和时间信息53。例如,当通过将接收日期和时间添加至服务器装置21等接收的数据而使日期和时间包括在数据中时,日期和时间信息53可以是表示包括在数据中的日期和时间的日期和时间信息。另外,日期和时间信息53可以是表示数据流处理引擎32传送数据的日期和时间的日期和时间信息。对于每个预定时期,数据流处理引擎32将存储的日期和时间信息53传送至管理服务器40。另外,对于每个预定时期,当在预定时期期间没有执行数据传输时,数据流处理引擎32将当前时间作为日期和时间信息传送至管理服务器40。预定时期可以是在其中管理服务器40从VM 31获取路由表50的版本并且比较版本的预定时期或更短。因此,对于每个预定时期,将数据传输日期和时间或者来自VM 31的当前日期和时间通知给管理服务器40。图13是示出管理服务器的配置的示例的图。在此,为与以上描述的第二实施例相同的部分分配相同的参考标记,并且将不给出其描述。控制单元43还包括指定单元43h。指定单元43h执行各种指定操作。例如,指定单元43h基于从每个VM 31所通知的日期和时间信息,指定在之前的预定时期期间第一次将数据传送至其它VM 31的传输日期和时间。指定单元43h例如指定如下日期和时间信息的日期和时间:该日期和时间信息的日期和时间是从每个VM 31所通知的日期和时间信息和在之前的预定时期期间第一次将数据传送至其它VM 31的传输日期和时间中最旧的。对于保证所请求的精度的数据次序的每个预定时期,停止单元43d将指定单元43h指定的之前的预定时期中的最旧的传输日期和时间和作为版本在路由表50中所存储的更新日期和时间互相比较。然后,当传输日期和时间是更新日期和时间或者更晚时,停止单元43d通过将传输停止请求传送至数据传输源和VM 31来停止传送数据。另一方面,当传输日期和时间早于更新日期和时间,停止单元43d不传送传输停止请求。当停止单元43d传送传输停止请求时,当通知从所有VM 31接收到控制分组时,获取单元43e从VM 31和服务器装置21获取路由表50的版本。换言之,当在之前的预定时期中最旧的传输日期和时间是路由表50的更新日期和时间或更晚时,管理服务器40停止来自数据传输源和VM 31的数据传输,并且获取路由表50的版本。另一方面,对于每个预定时期,当停止单元43d不传送传输停止请求时,获取单元43e从VM 31和服务器装置21获取路由表50的版本。换言之,当在之前的预定时期中的最旧的传输日期和时间早于路由表50的更新日期和时间时,管理服务器40不停止来自数据传输源和VM 31的数据传输,而是获取路由表50的版本。比较单元43f比较获取的VM 31和服务器装置21的路由表50的版本。当作为比较结果旧版本的路由表50存储在VM 31和服务器装置21中的任一个时,更新单元43g更新路由表50。图14是示出数据次序保证处理的序列的流程图。在此,为与以上描述的第二实施例相同的部分分配相同的参考标记,并且将不给出其描述。例如,对于保证所请求的精度的数据次序的每个预定时期执行该数据次序保证处理。在步骤S30中,指定单元43h基于从每个VM 31所通知的日期和时间信息,指定在之前的预定时期期间最旧的传输日期和时间。在步骤S31中,停止单元43d确定在之前的预定时期期间最旧的传输日期和时间是否是路由表50的更新日期和时间或更晚。当传输日期和时间在更新日期和时间之后(在步骤S31中为是)时,处理进行到步骤S14,并且通过传送传输停止请求来停止数据的传输。另一方面,当传输日期和时间新于更新日期和时间(在步骤S31中为否)时,处理进行到步骤S17,并且从VM31和服务器装置21获取路由表50的版本。如上所述,当之前的预定时期期间最旧的传输日期和时间是路由表50的更新日期和时间或更晚时,管理服务器40停止来自数据传输源和VM 31的数据传输,并且获取路由表50的版本。以这样的方式,根据管理服务器40,当传输日期和时间是更新日期和时间或更晚时,存在数据次序可能改变的可能性,并且因此,通过停止数据的传输可以保证数据的传输停止之前或之后的数据次序。另外,当在之前的预定时期期间的最旧的传输日期和时间新于路由表50的更新日期和时间时,管理服务器40不停止来自数据传输源和VM 31的数据的传输,并且获取路由表50的版本。以这样的方式,根据管理服务器40,当传输日期和时间早于更新日期和时间时,保持数据次序,并且因此,通过不停止数据的传输和获取路由表50的版本,可以抑制由于数据传输停止导致的延迟。[d]第四实施例到现在为止,尽管描述了与所公开的装置相关的实施例,但是可以除以上述实施例之外的各种形式执行公开的技术。因此,在下文中,将描述包括在本发明中的其它实施例。例如,在以上描述的第一实施例中,尽管描述了对于每个预定时期停止到多个节点11的数据传输的情况,但是公开的装置不限于此。例如,当在多个节点11之间移动查询33时,可在查询33的移动之后经过预定时期时停止数据的传输。在这样的情况下,可以保证所请求的精度的数据次序。另外,在以上描述的第二实施例中,尽管描述了在V节点的移动之后经过预定时期时停止数据的传输的情况,但是公开的装置不限于此。例如,可被配置成使得设定一个预定时期,并且当在V节点移动之后经过预定时期时停止传输。此外,在以上描述的第二实施例中,尽管描述了一旦在V节点的移动之后经过预定时期时就停止数据的传输的情况,但是公开的装置不限于此。例如,对于每个预定时期传输可停止多次。换言之,对于每个预定时期传输可停止至少一次。另外,在以上描述的第二实施例中,尽管描述了对于通过将多个查询33划分为多个组而获取的每个V节点将预定时期存储在停止时期表52中的情况,但是公开的装置不限于此。例如,可被配置成使得存储预定时期的字段被布置在路由表50中,并且在路由表50中存储预定时期。另外,在以上描述的第二实施例中,尽管描述了一旦在V节点的移动之后经过预定时期就停止数据的传输的情况,但是公开的装置不限于此。例如,与第三实施例类似,更新日期和时间作为版本被存储在路由表50中。另外,对于每个预定时期,每个VM 31的数据流处理引擎32将与在预定时期期间第一次传送数据的日期和时间相关的日期和时间信息传送至管理服务器40。当在V节点移动之后经过预定时期时,管理服务器40比较在之前的预定时期期间的最旧的传输日期和时间和在路由表50中所存储的作为版本的更新日期和时间。当传输日期和时间是更新日期和时间或者更晚时,管理服务器40停止来自数据传输源和VM 31的数据的传输,并且获取路由表50的版本。另一方面,当传输日期和时间早于更新日期和时间时,优选的是,管理服务器40不停止来自数据传输源和VM31的数据的传输,而是获取路由表50的版本。另外,在以上描述的第二和第三实施例中,尽管描述了以通过将多个查询33划分为多个组而获取的V节点为单位移动查询33的情况,但是公开的装置不限于此。例如,可以以查询33为单位移动查询33。在这样的情况下,路由表50可被配置成使得以查询33为单位在其中存储存储目的地。另外,在这样的情况下,例如,可被配置成使得在停止时期表52中以查询33为单位存储预定时期,并且当在查询33的移动之后经过对应于查询33的预定时期时停止数据的传输。此外,在图中示出的每个装置的组成元件是功能性和概念性的意义,并且不必如图中所示的那样物理地配置组成元件。换言之,装置的分割或集成的特定形式不限于图中所示的形式,并且其部分或整体可根据各种负荷、使用环境等而被配置成以任意单位功能地或物理地分割或集成。例如,图1中所示的停止单元14、获取单元15、比较单元16以及更新单元17的处理单元可适当地集成。另外,例如,在图8和13中所示的确定单元43a、移动单元43b、执行单元43c、停止单元43d、获取单元43e、比较单元43f、更新单元43g以及指定单元43h的处理单元可适当地集成。此外,在每个处理单元中执行的每个处理功能的整体或部分可由CPU和程序实现(该程序由CPU解释和执行),或可通过使用连线逻辑的硬件实现。数据次序保证程序另外,在以上描述的实施例中描述的各种处理可通过使用计算机系统(诸如个人计算机或工作站)执行事先准备的程序而实现。因此,在下文中,将描述执行具有与以上描述的实施例相同的功能的程序的计算机系统的示例。图15是示出执行数据次序保证程序的计算机的图。如在图15中所示,计算机300包括中央处理单元(CPU) 310、只读存储器(ROM)320、硬盘驱动器(HDD) 330以及随机存取存储器(RAM) 340。单元310至340通过总线400互连。在ROM 320中,事先存储数据次序保证程序320a,其表现出与以上描述的第一实施例的停止单元14、获取单元15、比较单元16以及更新单元17相同的功能。替选地,在ROM320中,事先存储数据次序保证程序320a,其表现出与以上描述的第二或第三实施例的执行单元43c、停止单元43d、获取单元43e、比较单元43f、更新单元43g以及指定单元43h相同的功能。另外,可适当地分割数据次序保证程序320a。通过CPU 310从ROM 320读取数据次序保证程序320a并且执行数据次序保证程序320a,执行与第一和第三实施例中的每个的控制单元相同的操作。换言之,数据次序保证程序320a执行与以上描述的第一实施例的停止单元14、获取单元15、比较单元16以及更新单元17或与以上描述的第二或第三实施例的执行单元43c、停止单元43d、获取单元43e、比较单元43f、更新单元43g以及指定单元43h相同的操作。另外,初始时不需要在ROM 320中存储以上描述的数据次序保证程序320a。数据次序保证程序320a可存储在HDD 330中。例如,程序可存储在“便携式物理介质”(诸如插入到计算机300中的软盘(FD)、⑶-ROM、DVD盘、磁光盘或IC卡)中。在这样的情况下,计算机300可从它们中的任一个中读取程序并且执行该程序。另外,程序可存储在“另一计算机”中,“另一计算机”通过公共线、因特网、LAN、WAN等连接至计算机300。在这样的情况中,计算机300可被配置成从它们中的任一个中读取程序并且执行该程序。可以抑制伴随查询的移动的开销。
权利要求
1.一种服务器装置,包括: 停止单元,对于每个预定时期,停止将数据传送至多个节点,在所述多个节点中放置了每个均用于在所述数据与设定的条件一致时执行处理的多个查询,每个节点存储路由表,在所述路由表中,针对作为每个查询的处理目标的每个数据,存储所述每个查询的布置目的地和根据所述每个查询的移动而更新的版本; 获取单元,当所述停止单元停止所述数据的传输时,从所述多个节点获取所述路由表的版本; 比较单元,比较所述获取单元获取的所述多个节点的所述路由表的所述版本;以及 更新单元,当作为所述比较单元执行的比较的结果存在存储旧版本的路由表的节点时,更新该节点的路由表。
2.根据权利要求1所述的服务器装置,其中在所述多个节点之间移动所述查询的情况下,当在所述查询移动之后经过所述预定时期时停止数据传输。
3.根据权利要求2所述的服务器装置,还包括针对每个查询存储所述预定时期的存储单元, 其中,当在查询移动之后经过对应于该查询的预定时期时,所述停止单元停止数据传输,以及 所述获取单元从所述多个节点获取与移动的查询相关的路由表的版本。
4.根据权利要求2所述的服务器装置,还包括针对每个组存储所述预定时期的存储单元,所述每个组是通过将所述多个查询划分为多个组而获取的, 其中,当在查询移动之后经过对应于该查询所属的组的预定时期时,所述停止单元停止数据传输,以及 所述获取单元从所述多个节点获取与移动的查询所属的组的每个查询相关的路由表的版本。
5.根据权利要求1至4中的任一项所述的服务器装置,还包括执行单元,当所述预定时期短于在所述多个节点之间传送数据的最大时期时,所述执行单元执行所述停止单元、所述获取单元、所述比较单元以及所述更新单元的处理。
6.根据权利要求1至5中的任一项所述的服务器装置,还包括指定单元,针对每个预定时期,所述指定单元基于从所述多个节点接收到的表示在预定时期期间第一次将数据传送至另一节点的日期和时间的日期和时间信息,指定在所述预定时期期间第一次将数据传送至另一节点的日期和时间, 其中,所述路由表存储更新日期和时间作为所述版本,以及 当所述指定单元指定的所述日期和时间是在所述路由表中所存储的作为所述版本的所述更新日期和时间或更晚时,针对每个预定时期,所述停止单元停止将数据传送至所述多个节点。
7.一种使用计算机保证数据次序的方法,所述方法包括: 对于每个预定时期,停止将数据传送至多个节点,在所述多个节点中放置了每个均用于在所述数据与设定的条件一致时执行处理的多个查询,每个节点存储路由表,在所述路由表中,针对作为每个查询的处理目标的每个数据,存储所述每个查询的布置目的地和根据所述每个查询的移动而更新的版本;当停止所述数据的传输时,从所述多个节点获取所述路由表的版本; 比较获取的所述多个节点的所述路由表的所述版本;以及 当作为比较的结果存在存储丨日版本的路由表的节点时,更新该节点的路由表。
8.一种服务器装置,包括: 停止单元,停止将数据传送至多个节点,在所述多个节点中放置了执行处理的多个交易请求语句,每个节点存储路由表,在所述路由表中,针对作为每个交易请求语句的处理目标的每个数据,存储所述每个交易请求语句的布置目的地和根据所述每个交易请求语句的移动而更新的版本; 获取单元,当所述停止单元停止所述数据的传输时,从所述多个节点获取所述路由表的版本; 比较单元,比较所述获取单元获取的所述多个节点的所述路由表的所述版本;以及更新单元,当作为所述 比较单元执行的比较的结果存在存储旧版本的路由表的节点时,更新该节点的路由表。
全文摘要
本发明提供了一种服务器装置和保证数据次序的方法。对于每个预定时期,停止单元停止将数据传送至多个节点。当停止数据传输时,获取单元从多个节点获取根据查询的移动而更新的路由表的版本。比较单元比较获取的多个节点的路由表的版本。当作为比较的结果存在存储旧版本的路由表的节点时,更新单元更新该节点的路由表。
文档编号G06F17/30GK103218380SQ20121042475
公开日2013年7月24日 申请日期2012年10月30日 优先权日2011年11月30日
发明者今村信贵, 坂本喜则, 高桥秀和 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1