CN103136322A - 用于配置查询的装置和方法 - Google Patents
用于配置查询的装置和方法 Download PDFInfo
- Publication number
- CN103136322A CN103136322A CN2012104248755A CN201210424875A CN103136322A CN 103136322 A CN103136322 A CN 103136322A CN 2012104248755 A CN2012104248755 A CN 2012104248755A CN 201210424875 A CN201210424875 A CN 201210424875A CN 103136322 A CN103136322 A CN 103136322A
- Authority
- CN
- China
- Prior art keywords
- inquiry
- processing
- load
- unit
- information
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
一种配置装置包括获取单元、指定单元和确定单元。获取单元获取表示在其中配置多个查询的多个装置中执行的查询之间的通信次数的信息,当数据满足所设定的条件时,查询用于执行处理。指定单元基于由获取单元获取的信息表示的通信次数来指定查询集合。确定单元确定将由指定单元指定的查询集合配置在同一装置中。
Description
技术领域
这里讨论的实施例涉及一种用于配置查询的技术。
背景技术
作为一种用于处理每时每刻从各个源收集的许多数据条目的技术,存在CEP(复杂事件处理)。在复杂事件处理中,从接收到的数据检测事件,并且执行与检测到的事件相关的处理。存在其中复杂事件处理被称为ESP(事件流处理)的情况。在下文给出的描述中,假设ESP包括在CEP的技术范围中。
在执行复杂事件处理的CEP***中,存在其中临时处理大量的接收数据的情况。在该情况下,CEP***中的处理接收数据的装置的处理负荷增加,并且因此,处理性能下降。
因此,例如,在CEP***中,通过使用诸如云技术的实现灵活的资源分配的技术,根据处理负荷的变化使处理分散到多个服务器或VM(虚拟机)。作为这种处理分散,例如,配置在具有高处理负荷的服务器或虚拟机中的、被称为查询的事务请求语句以及伴随请求的数据被移动到作为处理元素的其他服务器或其他虚拟机,从而执行处理的分散。
此外,存在如下技术:其中处理顺序彼此相邻(换言之,在查询图中彼此相邻)的查询基于查询图被分散到同一装置,该查询图包括诸如查询中的处理顺序集合的信息。
对于相关技术,参见:例如,美国专利公布第2009/0049187号;美国专利公布第2009/0319687号;Mehul A.Shah、Joseph M.Hellerstein、Sirish Chandrasekaran和Michael J.Franklin的“Flux:An AdaptivePartitioning Operator for Continuous Query Systems,”ICDE,2003、YingXing的“Load Distribution for Distributed Stream Processing,”EDBT,2004WORKSHOPS;以及Ying Xing、Stan Zdonik、Jeong-Hyon Hwang的“Dynamic Load Distribution in the Borealis Stream Processor,”ICDE,2005。
这里,根据上述技术,存在难于抑制装置之间的通信增加的问题。在下文中,将描述具体示例。首先,将描述上述的用于分散处理的技术的示例。
图35A和35B是用于图示上述的用于分散处理的技术的示例的示图。图35A图示了示出查询的连接关系的查询图的示例。图35A中所示的示例的查询图表示使用查询Q1的执行结果来执行查询Q2。此外,图35A中所示的示例的查询图表示使用查询Q2的执行结果来执行查询Q3。此外,在图35A和35B中所示的示例中,查询Q1和Q3配置在服务器90中,并且Q2配置在服务器91中。在图35A和35B中所示的示例中,服务器90将查询Q1的执行结果传送到其中配置查询Q2的服务器91。此外,在图35A和35B中所示的示例中,服务器91将查询Q2的执行结果传送到其中配置查询Q3的服务器90。这样,在图35A和35B中所示的示例中,当执行查询Q1至Q3时,执行两次服务器90和91之间的执行结果的传送。
接下来,将描述用于配置上述的在同一装置中彼此相邻的查询的技术的示例。图36A和36B是图示用于配置上述的在同一装置中彼此相邻的查询的技术的示例的示图。图36A图示了示出查询的连接关系的查询图的示例。图36A中所示的示例的查询图图示了使用Q1的执行结果来执行查询Q2和Q3。此外,图36A中所示的示例的查询图图示了使用查询Q2的执行结果来执行查询Q3。此外,在图36A和36B中所示的示例中,根据由查询图表示的查询的相邻关系,查询Q1和Q2配置在服务器90中,并且Q3配置在服务器91中。这里,假设从其中配置查询Q1的装置向其中配置查询Q3的装置传送处理结果的次数大于从其中配置查询Q1的装置向其中配置查询Q2的装置传送处理结果的次数。在该情况下,在图36A和36B中所示的示例中,由于Q1和Q2配置在同一服务器90中,因此服务器90不在查询Q1和Q2之间传送执行结果。然而,在图36A和36B中所示的示例中,服务器90将查询Q1的执行结果传送到其中配置查询Q3的服务器91。如同上文,在图36A和36B中所示的示例中,当执行查询Q1至Q3时,在服务器90和91之间传送执行结果。
因此,根据上述技术,难于抑制装置之间的通信的增加。
因此,根据实施例的一个方面的本发明的目的在于抑制装置之间的通信的增加。
发明内容
根据实施例的一个方面,一种配置装置包括:获取单元,获取表示在其中配置多个查询的多个装置中执行的查询之间的通信次数的信息,当数据满足所设定的条件时,查询用于执行处理;指定单元,基于由获取单元获取的信息表示的通信次数来指定查询集合;以及确定单元,确定将由指定单元指定的查询集合配置在同一装置中。
附图说明
图1是图示包括根据第一实施例的配置装置的CEP***的配置示例的示图;
图2是图示包括根据第二实施例的配置装置的CEP***的配置示例的示图;
图3是图示根据第三实施例的CEP***的配置示例的示图;
图4是图示根据第三实施例的VM的处理示例的示图;
图5是图示根据第三实施例的VM的处理示例的示图;
图6是图示根据第三实施例的VM的处理示例的示图;
图7A是图示通信计数信息的数据结构的示例的示图;
图7B是图示通信计数信息的数据结构的示例的示图;
图7C是图示通信计数信息的数据结构的示例的示图;
图7D是图示通信计数信息的数据结构的示例的示图;
图8是图示根据第三实施例的VM的处理示例的示图;
图9是示意性图示根据数据流的CEP***的配置的示图;
图10A是图示查询的移动的示例的示图;
图10B是图示查询的移动的另一示例的示图;
图11是图示编组查询的示例的示图;
图12是图示管理服务器的配置的示例的示图;
图13是图示移动指令列表的数据结构的示例的示图;
图14是图示根据第三实施例的管理服务器执行的处理示例的示图;
图15是图示获取处理的序列的流程图;
图16A和16B是图示确定处理的序列的流程图;
图17是图示确定处理的序列的流程图;
图18是图示确定处理的序列的流程图;
图19是图示配置控制处理的序列的流程图;
图20是图示根据第四实施例的管理服务器的配置的框图;
图21是图示根据第四实施例的管理服务器执行的处理示例的示图;
图22A和22B是图示根据第四实施例的确定处理的序列的流程图;
图23是图示根据第四实施例的确定处理的序列的流程图;
图24是图示根据第四实施例的确定处理的序列的流程图;
图25是图示根据第五实施例的管理服务器的配置的框图;
图26是图示根据第五实施例的管理服务器执行的处理示例的示图;
图27A和27B是图示根据第五实施例的确定处理的序列的流程图;
图28是图示根据第五实施例的确定处理的序列的流程图;
图29是图示根据第五实施例的确定处理的序列的流程图;
图30是图示根据修改示例的第一排除处理的序列的流程图;
图31是图示根据修改示例的第二排除处理的序列的流程图;
图32是图示根据修改示例的管理服务器的配置示例的示图;
图33是图示根据修改示例的计算处理的序列的流程图;
图34是图示执行配置程序的计算机的示图;
图35A是图示处理分散技术的示例的示图;
图35B是图示处理分散技术的示例的示图;
图36A是图示用于配置在同一装置中彼此相邻的查询的技术的示例的示图;以及
图36B是图示用于配置在同一装置中彼此相邻的查询的技术的示例的示图。
具体实施方式
将参照附图描述本发明的优选实施例。然而,实施例并非用于限制所公开的技术的目的。此外,实施例可以在不引起处理内容彼此矛盾的范围内进行适当组合。
[a]第一实施例
现将描述根据第一实施例的配置装置。图1是图示包括根据第一实施例的配置装置的CEP***的配置示例的示图。图1中所示的CEP***包括配置装置1和多个装置2a至2c。在图1中所示的示例中,配置装置1和多个装置2a至2c彼此连接。因此,配置装置1和多个装置2a至2c中的每一个可以彼此通信。
配置装置1是管理CEP***的物理服务器。例如,配置装置1是设置在数据中心或每个公司中的管理服务器。每个装置2a至2c是物理服务器或者在物理服务器中操作的虚拟机。在装置2a至2c中,配置了用于在数据满足所设定的条件的情况下执行处理的多个查询3a至3c。从各个源收集的数据被递送(传送)到装置2a至2c。装置2a至2c接收从CEP***外部接收的数据或者表示CPE***内的其他查询中的处理结果的数据。当数据满足在查询3a至3c中设定的条件时,装置2a至2c执行查询3a至3c中设定的处理。
配置装置1将配置在装置2a至2c中的每个查询3a至3c重新配置在装置2a至2c中的任一个中。例如,当分散处理负荷时,装置2a至2c使查询从具有高处理负荷的装置移动到具有低处理负荷的装置。
这里,将描述如下情况:其中当执行查询3b时,使用查询3a的处理结果(执行结果),并且当执行查询3c时,使用查询3a或3c的处理结果。在该情况下,当从外部接收的数据满足在查询3a中设定的条件时,装置2a执行在查询3a中设定的处理。随后,装置2a将通过执行查询3a中设定的处理而获取的处理结果传送到其中配置查询3b的装置2b或者其中配置查询3c的装置2c。此外,当从装置2a接收的数据满足在查询3b中设定的条件时,装置2b执行在查询3b中设定的处理。随后,装置2b将通过执行查询3b中设定的处理而获取的处理结果传送到其中配置查询3c的装置2c。这里,假设装置2a向装置2c传送通过执行查询3a中设定的处理而获取的处理结果的次数大于向装置2b传送通过执行查询3a中设定的处理而获取的处理结果的次数。这里,如上文所述,装置2b基于从装置2a接收到的数据来执行在查询3b中设定的处理并且将处理结果传送到装置2c。在该情况下,在查询3a和3c之间执行的通信次数大于在查询3b和3c之间执行的通信次数。此时,通过下文将描述的配置装置1的控制,将查询之间的通信次数相对大的查询集合3a和3c确定为配置在同一装置中。
此外,装置2c对在查询3a和3b、查询3a和3c以及3b和3c之间执行的通信次数分别求和,并且将求和结果传送到配置装置1。换言之,装置2c将表示在查询之间执行的通信次数的信息传送到配置装置1。“在查询A和B之间执行的通信次数”表示在其中配置查询A的装置和其中配置查询B的装置之间执行的通信(处理结果的传送)次数。
如图1中所示,配置装置1包括获取单元1a、指定单元1b和确定单元1c。
获取单元1a获取表示在查询之间执行的通信次数的信息。例如,获取单元1a通过接收从装置2c传送的、表示在查询之间执行的通信次数的信息来获取该信息。
指定单元1b基于由获取单元1a获取的信息表示的通信次数来指定查询集合。例如,指定单元1b在查询3a和3b之间的通信、查询3a和3c之间的通信以及查询3b和3c之间的通信中,指定与次数最大的、查询3a和3c之间的通信对应的查询集合3a和3c。
确定单元1c确定将由指定单元1b指定的查询集合配置在同一装置中。例如,确定单元1c确定将指定单元1b已指定的查询集合3a和3c配置在同一装置2a、2b或2c中。
如同上文,根据第一实施例的配置装置1确定查询3a和3c将被配置在同一装置中。当基于该确定将查询3a和3c配置在同一装置中时,不执行在将查询3a和3c配置在同一装置中之前已在装置2a和2c之间执行的、两个装置之间的处理结果的通信。因此,根据该实施例的配置装置1,可以抑制通信次数的增加。
在图1中所示的示例中,为了表示功能配置,分离地配置了获取单元1a、指定单元1b和确定单元1c。然而,它们可以被配置为一个装置,诸如电子电路,例如CPU(中央处理单元)、MPU(微处理单元)等。替选地,它们可以被配置为集成电路,诸如ASIC(专用集成电路)或FPGA(现场可编程门阵列)。
[b]第二实施例
接下来,将描述第二实施例。图2是图示包括根据第二实施例的配置装置的CEP***的配置示例的示图。图2中所示的CEP***包括配置装置5和多个装置6a至6c。在图2中所示的示例中,配置装置5和多个装置6a至6c互连。因此,配置装置5和多个装置6a至6c中的每一个可以彼此通信。
配置装置5是管理CEP***的物理服务器。例如,配置装置5是设置在数据中心或每个公司中的管理服务器。每个装置6a至6c是物理服务器或者在物理服务器中操作的虚拟机。在装置6a至6c中,配置了用于在数据满足所设定的条件的情况下执行处理的多个查询7a至7c。从各个源收集的数据被递送(传送)到装置6a至6c。装置6a至6c接收从CEP***外部接收的数据或者表示CPE***内的其他查询中的处理结果的数据。当数据满足在查询7a至7c中设定的条件时,装置6a至6c执行查询7a至7c中设定的处理。
此外,配置装置5将配置在装置6a至6c中的每个查询7a至7c重新配置在装置6a至6c中的任一个中。例如,当分散处理负荷时,装置6a至6c使查询从具有高处理负荷的装置移动到具有低处理负荷的装置。
这里,将描述如下情况:其中当执行查询7b时,使用查询7a的处理结果,并且当执行查询7c时,使用查询7a或7c的处理结果。在该情况下,当从外部接收的数据满足在查询7a中设定的条件时,装置6a执行在查询7a中设定的处理。随后,装置6a将通过执行查询7a中设定的处理而获取的处理结果传送到其中配置查询7b的装置6b或者其中配置查询7c的装置6c。当从装置6a接收的数据满足在查询7b中设定的条件时,装置6b执行在查询7b中设定的处理。随后,装置6b将通过执行查询7b中设定的处理而获取的处理结果传送到其中配置查询7c的装置6c。这里,假设装置6a向装置7c传送通过执行查询7a中设定的处理而获取的处理结果的次数大于向装置6b传送通过执行查询7a中设定的处理而获取的处理结果的次数。此外,如上文所述,装置6b基于从装置6a接收到的数据来执行在查询7b中设定的处理并且将处理结果传送到装置6c。因此,作为结果,在查询7a和7c之间执行的通信次数大于在查询7b和7c之间执行的通信次数。此时,通过下文将描述的配置装置5的控制,将查询之间的通信次数相对大的查询集合7a和7c确定为配置在同一装置中。
此外,在其中未从任何其他装置接收到查询的标识符的情况下,当执行查询中设定的处理时,每个装置6a至6c将如下信息传送到其他装置。换言之,每个装置6a至6c将已执行的查询的标识符和处理结果传送到其他装置。例如,在其中未从任何其他装置接收到查询的标识符的情况下,装置6a将在查询7a中设定的处理的处理结果和所执行的查询7a的标识符传送到装置6b或装置6c。
另一方面,在其中已从任何其他装置接收到查询的标识符的情况下,每个装置6a至6c以能够识别查询的执行顺序的格式,连同处理结果一起传送接收到的查询的标识符和所执行的查询的标识符。例如,装置6b将在查询7b中设定的处理的处理结果传送到装置6c。除此之外,在其中已从装置6a接收到查询7a的标识符的情况下,装置6b执行如下处理。装置6b向装置6c传送如下信息,其中所执行的查询7b的标识符排列在接收到的查询7a的标识符之后以便允许能够识别查询的执行顺序,换言之,可以通过该信息识别查询7b的执行在查询7a的执行之后。此外,装置6c向配置装置5传送在查询7c中设定的处理的处理结果。除此之外,在其中接收到的查询的标识符是查询7a的标识符的情况下,装置6c执行如下处理以便允许能够识别查询的执行顺序。装置6c向装置6c传送如下信息,其中所执行的查询7c的标识符排列在接收到的查询7a的标识符之后,换言之,可以通过该信息识别查询7c的执行在查询7a的执行之后。此外,在其中接收到的查询的标识符是查询7a的标识符和查询7b的标识符的情况下,装置6c执行如下处理以便允许能够识别查询的执行顺序。装置6c向配置装置5传送如下信息,其中标识符按照查询7a的标识符、查询7b的标识符和查询7c的标识符的顺序排列,换言之,可以通过该信息识别按照查询7b和7c的顺序的查询的执行在查询7a的执行之后。这样,装置6c向配置装置5传送表示查询的执行顺序的信息。
如图2中所示,配置装置5包括获取单元5a、计算单元5b、指定单元5b和确定单元5c。
获取单元5a获取表示查询的执行顺序的信息。例如,获取单元5a通过接收从装置6c传送的、表示查询的执行顺序的信息来获得该信息。
计算单元5b基于获取单元5a获取的信息来计算在查询之间执行的通信次数。例如,在表示查询的执行顺序的信息中包括表示查询7c在查询7a之后执行的信息的情况下,计算单元5b使查询7a和7c之间的通信次数递增1。此外,在表示查询的执行顺序的信息中包括表示查询7b在查询7a之后执行的信息的情况下,计算单元5b使查询7a和7b之间的通信次数递增1。此外,在表示查询的执行顺序的信息中包括表示查询7c在查询7b之后执行的信息的情况下,计算单元5b使查询7b和7c之间的通信次数递增1。
指定单元5c基于计算单元5b计算的通信次数来指定查询集合。例如,指定单元5c在查询7a和7b之间的通信、查询7a和7c之间的通信以及查询7b和7c之间的通信中,指定与次数最大的、查询7a和7c之间的通信对应的查询集合7a和7c。
确定单元5d确定将由指定单元5c指定的查询集合配置在同一装置中。例如,确定单元5d确定将指定单元5c已指定的查询集合7a和7c配置在同一装置6a或6c中。
如同上文,根据该实施例的配置装置5确定查询7a和7c将被配置在同一装置中。因此,在其中基于该确定将查询3a和3c配置在同一装置中的情况下,不执行在将查询7a和7c配置在同一装置中之前已在装置6a和6c之间执行的、两个装置之间的处理结果的通信。因此,根据该实施例的配置装置5,可以抑制通信次数的增加。
在图5中所示的示例中,为了表示功能配置,分离地配置了获取单元5a、计算单元5b、指定单元5c和确定单元5d。然而,它们可以被配置为一个装置,诸如电子电路,例如CPU(中央处理单元)、MPU(微处理单元)等。替选地,它们可以被配置为集成电路,诸如ASIC(专用集成电路)或FPGA(现场可编程门阵列)。
[c]第三实施例
现将描述第三实施例。在第三实施例中,将描述如下CEP***,其中VM在多个服务器中操作,并且查询配置在VM中。图3是图示根据第三实施例的CEP***的配置示例的示图。CEP***10包括服务器20、31、32、33、34和35以及管理服务器40。这些服务器通过网络99互连。换言之,在图3中所示的示例的CEP 10中,服务器可以彼此通信。作为网络99的示例,可以使用有线的和无线的任意通信网络,诸如LAN(局域网)或VPN(虚拟私有网络)。在图3中所示的示例中,尽管图示了作为示例的其中服务器31至35的数目是5、管理服务器40的数目是1并且服务器20的数目是1的情况,但是这些数目是任意的。
在服务器31中,VM 31a和31b操作。相似地,在服务器32至35中,VM 32a和32b、VM 33a和33b、VM 34a和34b以及VM 35a和35b操作。在该实施例的描述中,在其中VM 32a、32b、33a和33b以及VM34a、34b、35a和35b以没有它们之间的任何区别的方式进行描述的情况下,上述VM将被共同地简单地称为VM。此外,在图3中所示的示例中,尽管图示了作为示例的其中在每个服务器31至35中操作的VM的数目是2的情况,但是在每个服务器31至35中操作的VM的数目可以是任意值。在VM中,如后面将描述的,通过管理服务器40的控制来配置查询。此外,VM接收从CEP***10的外部接收的并且作为后面将描述的预处理数据的数据或者表示CEP***10内的其他查询中的处理结果的数据。随后,当接收到的数据满足在配置在VM中的查询中设定的条件时,VM执行在查询中设定的处理。
此外,如后面将描述的,管理服务器40向VM通知作为处理结果的传送目标的VM的地址,例如IP(互联网协议)地址。此外,如后面将描述的,从管理服务器40将查询图传送到VM。
此外,在其中未从任何其他VM接收到查询的标识符的情况下,当执行查询中设定的处理时,VM将如下信息传送到其他VM。VM将包括所执行的查询的标识符和处理结果的数据传送到与该地址对应的VM。这里,在下文给出的描述中,该数据可以被表示为“事件数据”。
此外,在其中已从其他VM接收到查询的标识符的情况下,VM连同处理结果一起,包括具有能够识别查询的执行顺序的格式的事件数据中的接收到的查询的标识符以及所执行的查询的标识符,并且传送事件数据。例如,通过使用所通知的地址,VM将事件数据传送到与该地址对应的VM。此时,当已从其他VM接收到查询的标识符时,VM执行如下处理。为了允许能够识别查询的执行序列,VM包括如下信息,其中所执行的查询的标识符排列在接收到的查询的标识符之后,换言之,在事件数据中可以通过该信息识别查询的执行顺序,并且VM将事件数据传送到与地址对应的VM。
现将参照具体示例描述根据第三实施例的VM的处理。图4至6是图示根据第三实施例的VM的处理示例的示图。图4图示了传送到VM的查询图60的示例。在图4中所示的示例中,查询图60图示了在查询中设定的处理的执行顺序。图4中所示的示例的查询图60图示了通过使用在查询61中设定的处理的执行结果来执行在查询62中设定的处理。此外,在图4中所示的示例中,相似地执行查询63至68中设定的处理。此外,图4中所示的示例的查询图60图示了首先执行的查询是查询61。此外,图4中所示的示例的查询图60图示了其中设定最后执行的处理的查询是查询65。因此,被传送图6的示例中所示的查询图60的VM可以基于配置在其中的查询以及查询图60的内容来确定配置在其中的查询是否是其中设定最后执行的处理的查询。例如,在接收到查询图60的情况下,通过参照查询图60来确定配置在其中的查询是否是查询65,VM可以确定配置在其中的查询是否是其中设定最后执行的处理的查询。
图5图示了另一查询图70的一部分的示例。在图5中所示的示例中,查询图70图示了通过使用在查询71中设定的处理的执行结果来执行在查询72和73中设定的处理。此外,图5中所示的示例的查询图70图示了通过使用在查询72中设定的处理的执行结果来执行在查询73中设定的处理。这里,将描述在其中管理服务器40将查询图70传送到VM,并且查询71、72和73配置在VM 31a、32a和33a中的情况下的、VM 31a、32a和33a的操作示例。在下文给出的描述中,查询71至73可以被标为“Q”、“Q2”和“Q3”。
在图6中所示的示例中,VM 31a、32a和33a首先分别确定配置在其中的查询Q1、Q2和Q3是否是其中设定由查询图70表示的最后执行的处理的查询Q3。因此,VM 31a和32a分别确定配置在其中的查询Q1和Q2不是其中设定最后执行的处理的查询。另一方面,VM 33a确定配置在其中的查询Q3是其中设定最后执行的处理的查询。如后面将描述的,已进行该确定的VM 33a基于事件数据中包括的查询Q1、Q2和Q3的执行顺序来对每个查询之间的通信次数求和并且将求和结果传送到管理服务器40。
在图6中所示的示例中,VM 31a将用于识别事件数据的标识符登记在传送到VM 32a的事件数据36a的项目“ID(识别)”中。此外,VM 31a将在查询Q1中设定的处理的处理结果登记在事件数据36a的项目“处理结果”中。此外,VM 31a将其中设定所执行的处理的查询Q1的标识符“Q1”登记在事件数据36a的项目“执行顺序”中。此外,VM 31a将与每个项目对应的信息登记在事件数据36a的其他各项目中。这样,VM31a生成了事件数据36a。随后,VM 31a通过使用关于处理结果的传送目标的VM 32a的地址来向VM 32a传送所生成的事件数据36a,其中从管理服务器40向VM 31a通知该处理结果。
此外,VM 31a将用于识别事件数据的标识符登记在传送到VM 33a的事件数据36b的项目“ID”中。此外,VM 31a将在查询Q1中设定的处理的处理结果登记在事件数据36b的项目“处理结果”中。此外,VM31a将其中设定所执行的处理的查询Q1的标识符“Q1”登记在事件数据36b的项目“执行顺序”中。此外,在事件数据36b的其他各项目中,VM31a登记与每个项目对应的信息。这样,VM 31a生成了事件数据36b。随后,VM 31a通过使用关于处理结果的传送目标的VM 33a的地址来向VM 33a传送所生成的事件数据36b,其中从管理服务器40向VM 31a通知该处理结果。
随后,当接收到事件数据36a时,VM 32a确定登记在事件数据36a的项目“处理结果”中的处理结果的数据是否满足查询Q2中设定的条件。随后,在其中数据满足条件的情况下,VM 32a执行查询Q2中设定的处理。随后,VM 32a将用于识别事件数据的标识符登记在传送到VM 33a的事件数据36c的项目“ID”中。此外,VM 32a将在查询Q2中设定的处理的处理结果登记在事件数据36c的项目“处理结果”中。此外,VM 32a获取登记在事件数据36a的项目“执行顺序”中的标识符“Q1”并且执行如下处理以便将其中设定所执行的处理的查询Q2的标识符“Q2”排列在所获取的标识符“Q1”之后。VM 32a登记标识符“Q1”和“Q2”,使得在事件数据36c的项目“执行顺序”中标识符“Q2”排列在标识符“Q1”之后。此外,在事件数据36c的其他各项目中,VM 32a登记与其每个项目对应的信息。这样,VM 32a生成了事件数据36c。随后,VM 32a通过使用关于处理结果的传送目标的VM 33a的地址来向VM 33a传送所生成的事件数据36c,其中从管理服务器40向VM 32a通知该处理结果。
随后,当接收到事件数据36b时,VM 33a确定登记在事件数据36b的项目“处理结果”中的处理结果的数据是否满足查询Q3中设定的条件。随后,在其中数据满足条件的情况下,VM 33a执行查询Q3中设定的处理。随后,VM 33a获取登记在事件数据36b的项目“执行顺序”中的标识符“Q1”并且生成信息“Q1、Q3”,其中设定所执行的处理的查询Q3的标识符“Q3”排列在所获取的标识符“Q1”之后。随后,VM 33a通过参照所生成的信息“Q1、Q3”来确定在执行由标识符“Q1”表示的查询Q1中设定的处理之后执行由标识符“Q3”表示的查询Q3中设定的处理。随后,VM 33a基于确定结果使登记在与通信计数信息37的传送源的项目“Q1”和传送目标的项目“Q3”对应的项目中的值递增1。
图7A至7D是图示通信计数信息的数据结构的示例的示图。在通信计数信息37中,登记查询之间的通信次数。在图7A中所示的示例中,通信计数信息37a具有项目37a,其中对于其中查询中设定的处理的执行顺序彼此相邻的两个查询,登记与其中设定首先执行的处理的查询(前查询)和其中设定后面执行的处理的查询(后查询)对应的通信次数。图7A中所示的示例图示了所谓的初始状态,即在VM 33a使项目37a的值递增之前的状态,并且所有项目37a的值是“0”。
在其中通信计数信息37的项目37a的登记内容如图7A中所示的示例中图示的那样的情况下,如上文所述,在其中VM 33a确定在执行查询Q1中设定的处理之后执行查询Q3中设定的处理的情况下,VM 33a执行如下处理。如图7B中所示的示例中所示,VM 33a使与作为“前查询”的项目的“Q1”和作为“后查询”的项目的“Q3”对应的项目37a中登记的值递增1。
此外,当接收到事件数据36c时,VM 33a确定确定登记在事件数据36c的项目“处理结果”中的处理结果的数据是否满足查询Q3中设定的条件。随后,在其中数据满足条件的情况下,VM 33a执行查询Q3中设定的处理。随后,VM 33a获取登记在事件数据36c的项目“执行顺序”中的标识符“Q1、Q2”并且生成信息“Q1、Q2、Q3”,其中设定所执行的处理的查询Q3的标识符“Q3”排列在所获取的标识符“Q1、Q2”之后。随后,VM 33a通过参照所生成的信息“Q1、Q2、Q3”来确定在执行由标识符“Q1”表示的查询Q1中设定的处理之后执行由标识符“Q2”表示的查询Q2中设定的处理。此外,VM 33a通过参照所生成的信息“Q1、Q2、Q3”来确定在执行由标识符“Q2”表示的查询Q2中设定的处理之后执行由标识符“Q3”表示的查询Q3中设定的处理。随后,VM 33a基于确定结果,使登记在与作为通信计数信息37的传送源的项目的“Q1”和作为传送目标的项目的“Q2”对应的项目中的值递增1。此外,VM 33a基于确定结果,使登记在与作为通信计数信息37的传送源的项目的“Q2”和作为传送目标的项目的“Q3”对应的项目中的值递增1。
在其中通信计数信息37的项目37a的登记内容如图7A中所示的示例中图示的那样的情况下,如上文所述,当VM 33a确定在执行查询Q1中设定的处理之后执行查询Q2中设定的处理时,VM 33a执行如下处理。如图7C中所示的示例中所示,VM 33a使与作为“前查询”的项目的“Q1”和作为“后查询”的项目的“Q2”对应的项目37a中登记的值递增1。此外,在该情况下,如上文所述,当VM 33a确定在执行查询Q2中设定的处理之后执行查询Q3中设定的处理时,VM 33a执行如下处理。如图7C中所示的示例中所示,VM 33a使与作为“前查询”的项目的“Q2”和作为“后查询”的项目的“Q3”对应的项目37a中登记的值递增1。
此外,根据图7A中所示的示例中所示的情况,在其中确定在执行查询Q1中设定的处理之后执行查询Q3中设定的处理的次数是“10”的情况下,VM 33a执行如下处理。VM 33a使与作为“前查询”的项目的“Q1”和作为“后查询”的项目的“Q3”对应的项目37a中登记的值递增1被执行10次。作为结果,如图7D中所示的示例中所示,与作为“前查询”的项目的“Q1”和作为“后查询”的项目的“Q3”对应的项目37a中登记的值变为“10”。此外,在其中确定在执行查询Q1中设定的处理之后执行查询Q2中设定的处理的次数是“1”的情况下,VM 33a执行如下处理。VM 33a使与作为“前查询”的项目的“Q1”和作为“后查询”的项目的“Q2”对应的项目37a中登记的值递增1被执行1次。作为结果,如图7D中所示的示例中所示,与作为“前查询”的项目的“Q1”和作为“后查询”的项目的“Q2”对应的项目37a中登记的值变为“1”。此外,在其中确定在执行查询Q2中设定的处理之后执行查询Q3中设定的处理的次数是“1”的情况下,VM 33a执行如下处理。VM 33a使与作为“前查询”的项目的“Q2”和作为“后查询”的项目的“Q3”对应的项目37a中登记的值递增1被执行1次。作为结果,如图7D中所示的示例中所示,与作为“前查询”的项目的“Q2”和作为“后查询”的项目的“Q3”对应的项目37a中登记的值变为“1”。
这样,已确定配置在其中的查询Q3是其中设定最后执行的处理的查询的VM 33a对事件数据中包括的在查询Q1、Q2等的执行顺序中的查询之间的通信次数求和。随后,VM 33a生成包括求和结果的通信计数信息37。随后,VM 33a按预定的时间间隔,例如每1分钟,向管理服务器40传送所生成的通信计数信息37。
此外,VM按照预定的时间,例如每1分钟,向管理服务器40传送表示负荷的负荷信息。这里,负荷信息是例如表示包括查询的处理元素的负荷、伴随查询的数据等的信息。
将参照具体示例描述根据第三实施例的VM的处理。图8是图示根据第三实施例的VM的处理示例的示图。在图8中所示的示例中,VM 31a将VM 31a的标识符“31a”登记在传送到管理服务器40的负荷信息38a的项目“装置”中。此外,在图8中所示的示例中,VM 31a将配置在VM 31a中的查询Q1的标识符“Q1”登记在负荷信息38a的项目“查询”中。此外,在图8中所示的示例中,VM 31a将包括查询Q1和伴随查询Q1的数据的处理元素的标识符“V1”登记在负荷信息38a的项目“处理元素”中。此外,在图8中所示的示例中,VM 31a将处理元素的负荷,例如在单位时间期间(例如,在1秒期间)处理的事件数目m,登记在负荷信息38a的项目“负荷值”中。
在图8中所示的示例中,VM 32a将VM 32a的标识符“32a”登记在传送到管理服务器40的负荷信息38b的项目“装置”中。此外,在图8中所示的示例中,VM 32a将配置在VM 32a中的查询Q2的标识符“Q2”登记在负荷信息38b的项目“查询”中。此外,在图8中所示的示例中,VM 32a将包括查询Q2和伴随查询Q2的数据的处理元素的标识符“V2”登记在负荷信息38b的项目“处理元素”中。此外,在图8中所示的示例中,VM 32a将处理元素的负荷,例如在单位时间期间(例如,在1秒期间)处理的事件数目n,登记在负荷信息38b的项目“负荷值”中。
此外,在图8中所示的示例中,VM 33a将VM 33a的标识符“33a”登记在传送到管理服务器40的负荷信息38c的项目“装置”中。此外,在图8中所示的示例中,VM 33a将配置在VM 33a中的查询Q3的标识符“Q3”登记在负荷信息38c的项目“查询”中。此外,在图8中所示的示例中,VM 33a将包括查询Q3和伴随查询Q3的数据的处理元素的标识符“V3”登记在负荷信息38c的项目“处理元素”中。此外,在图8中所示的示例中,VM 33a将处理元素的负荷,例如在单位时间期间(例如,在1秒期间)处理的事件数目r,登记在负荷信息38b的项目“负荷值”中。
这样,VM 31a至33a生成了负荷信息38a至38c。
此外,在图8中所示的示例中,VM 31a至33a按照预定的时间向管理服务器40传送负荷信息38a至38c。
管理服务器40是管理服务器20、服务器31至35以及VM 31a至35a和31b至35b的服务器。管理服务器40控制查询的配置。
图9是示意性图示根据数据流的CEP***的配置的示图。服务器20、VM 31a至35a和31b至35b以及管理服务器40存储路由表格50,在路由表格50中针对作为查询的处理对象的每个数据条目登记每个查询的配置目标。
服务器20通过外部网络98从各个源接收许多数据条目。服务器20执行其中将接收到的数据配置成预定数据组织的预处理。随后,服务器20基于路由表格50将具有接收到的数据的查询的配置目标指定为处理对象。随后,服务器20将经预处理的数据传送到位于特定配置目标处的VM。在图3和9中所示的示例中,尽管作为示例图示了其中服务器20的数目为1的情况,但是可以配置成,设置多个服务器20,并且由多个服务器20接收到的数据被传送到VM。
每个VM操作引擎51。引擎51是实现复杂事件处理的软件。引擎51通过使接收到的数据与查询的条件表述匹配来检测事件并且控制检测到的事件的处理执行。此外,在CEP***10中,通过多个查询执行系列处理。例如,作为根据高级查询获取的处理结果的数据被传送到低级查询。随后,在低级查询中,当执行低级查询中设定的处理时,使用所传送的数据。在其中根据多个查询执行系列处理的情况下,引擎51向其中配置低级查询的VM传送作为查询的处理结果的数据。此外,引擎51控制根据从管理服务器40传送的用于移动查询的指令控制使查询移动到或者移动出在其他VM中操作的其他引擎51。
这里,将描述查询的移动。存在其中查询包括伴随数据的情况。例如,在其中执行在预定时段上计算作为处理对象的数据的平均的处理的情况下,查询保存在比预定时段长的时段期间接收到的数据以便计算平均。此外,存在其中查询使用诸如表格等的预定数据用于处理的情况。在其中移动查询的情况下,引擎51移动作为处理元素的查询和伴随查询的数据。
此外,在查询的移动中,可以考虑如下情况。图10A是图示查询的移动的示例的示图。如图10A中所示,在其中对于每个查询,作为处理对象的数据不同的情况下,使查询移动,并且在移动目标处对处理对象进行处理。例如,在其中分散处理的情况下,查询分别移动到彼此不同的VM,并且由VM处理数据。另一方面,在其中处理负荷低等情况下,查询移动到较少的VM,例如一个VM,并且由一个VM处理数据。
另一方面,存在如下情况,其中存在作为查询的处理对象的多个数据条目。例如,存在如下情况,其中订单符号和股票价格作为数据被递送到VM,并且通过查询执行在预定时段上计算每个订单符号的股票价格的移动平均的处理。图10B是图示查询的移动的另一示例的示图。在图10B中所示的示例中,如图10B中左侧所示,查询具有作为处理对象的数据1至数据n。在该情况下,对于作为处理对象的数据1至数据n中的每个,使查询移动。例如,在其中分散处理的情况下,查询被重复并且移动到不同的VM,并且作为处理对象的数据1至数据n由彼此不同的VM处理。另一方面,在其中处理负荷低等情况下,查询被配置在一个VM中,并且作为处理对象的数据1至数据n由一个VM处理。
这里,在该实施例中,多个查询被分成多个组,并且使每个组的查询移动。此外,路由表格50管理每个组的存储目标。图11是图示编组查询的示例的示图。例如,在该实施例中,包括作为处理对象的每个数据中的作为预定数目位的整数数据的、用于识别数据的密钥,并且针对查询的处理条件设定彼此不同的密钥。在该情况下,通过使用针对每个处理条件设定的密钥,通过用于计算基于密钥的值的预定函数(例如,散列函数)来计算散列值,并且具有相同散列值的查询被编组成同一组。例如,通过使用处理条件中设定的密钥,通过散列函数计算的散列值相同的查询在统计上被编组成同一组。图11中所示的示例图示了其中通过对查询分组获取的每个组是“V节点”的情况。在该实施例中,查询配置在每个V节点的VM中。此外,在该实施例中,多个查询可以被分成互不相同的组。
在路由表格50中,针对每个V节点登记配置目标。例如,路由表格50包括其中登记V节点的标识符的项目以及其中登记位于配置目标处的VM的IP地址的项目。
服务器20和每个VM的引擎51基于密钥确定查询的配置目标。例如,服务器20通过使用散列函数来计算散列值,该散列函数使用接收到的数据中包括的密钥。随后,服务器20搜索路由表格50以寻找其中计算的散列值登记在其中登记V节点的标识符的项目中的记录。随后,在其中作为搜索结果获取记录的情况下,服务器20获取所获取的记录的、其中登记位于配置目标处的VM的IP地址的项目中登记的IP地址。随后,服务器20使用所获取的IP地址与VM通信。
如上文所述,每个VM向管理服务器40传送负荷信息。随后,如下文将描述的,管理服务器40传送用于基于从每个VM传送的负荷信息来使查询移动的指令(移动指令)。此外,在该实施例中,按V节点的单位使查询移动。管理服务器40向移动源的VM传送包括移动目标的VM的IP地址以及作为移动对象的V节点的标识符的移动指令。接收到移动指令的VM的引擎51使诸如属于作为移动对象的V节点的查询以及伴随查询的数据的处理元素串行化,并且将串行化的处理元素传送到移动目标的VM。
移动目标的VM的引擎51通过解串行化恢复所传送的数据并且开始驱动恢复的查询。此外,引擎51利用引擎51在其中操作的VM的IP地址,更新在路由表格50中属于移动V节点的查询的存储目标。随后,引擎51向其他VM、服务器20和管理服务器40通知包括作为移动对象的V节点的标识符以及移动目标的VM的IP地址的路由表格更新指令。由于管理服务器40具有诸如移动源和移动目标的VM的IP地址的与移动相关的信息以及移动处理元素的标识符,因此管理服务器40也可以传送路由表格更新指令。
在其中向每个VM、服务器20和管理服务器40通知路由表格更新指令的情况下,执行如下处理。每个VM、服务器20和管理服务器40利用所通知的路由表格更新指令中包括的移动目标的VM的IP地址,更新属于路由表格50中的作为所通知的移动对象的V节点的查询的存储目标。
图12是图示管理服务器的配置的示例的示图。如图12中所示,管理服务器40包括输入单元41、输出单元42、通信单元43、存储单元44和控制单元45。
输入单元41将各种信息输入到控制单元45。例如,输入单元41从用户接收各种指令并且将接收到的指令输入到控制单元45。作为输入单元41的装置的示例,存在诸如鼠标、键盘等的接受用户操作的装置。
输出单元42输出各种类型的信息。例如,输出单元42显示VM的操作状态等。作为输出单元42的装置的示例,存在液晶显示器等。
通信单元43是用于装置之间的通信的接口。例如,通信单元43连接到网络99。因此,管理服务器40、服务器20和每个VM可以彼此通信。例如,在其中通过网络99从VM接收通信计数信息37的情况下,通信单元43将接收到的通信计数信息37传送到控制单元45。此外,在其中通过网络99从VM接收负荷信息38的情况下,通信单元43将接收到的负荷信息38传送到控制单元45。
存储单元44存储各种类型的信息。例如,存储单元44存储上述的路由表格50、通信计数信息37和负荷信息38以及移动指令列表46。
通信计数信息37是从VM传送的、通过下文将描述的获取单元45b从VM获取的、并且存在存储单元44中的信息。负荷信息38是从VM传送的、通过下午将描述的获取单元45b从VM获取的、并且存在存储单元44中的信息。
在移动指令列表46中,作为移动对象的处理元素的标识符、移动源的VM的IP地址、以及移动目标的VM的IP地址由下文将描述的确定单元45d登记。图13是图示移动指令列表的数据结构的示例的示图。在图13中所示的示例中,移动指令列表46包括其中登记作为移动对象的处理元素的标识符的项目46a“处理元素”、其中登记作为移动源的VM的IP地址的项目46b“移动源”、以及其中登记移动目标的VM的IP地址的项目46c“移动目标”。
存储单元44是例如,诸如闪速存储器的半导体存储器装置或者诸如硬盘或光盘的存储装置。此外,存储单元44不限于上述类型的存储装置,但是可以是RAM(随机存取存储器)或ROM(只读存储器)。
控制单元45具有用于存储限定各种处理序列的程序以及控制数据的内部存储器,并且通过使用这些程序和控制数据来执行各种处理。如图12中所示,控制单元45包括初始配置单元45a、获取单元45b、指定单元45c、确定单元45d和配置控制单元45e。
初始配置单元45a基于查询图使用已知的技术来配置多个VM中的查询。此外,初始配置单元45a向每个VM传送查询图。此外,初始配置单元45a向每个VM通知其中设定将由VM执行的处理的查询。此外,初始配置单元45a向每个VM传送作为处理的处理结果的、传送目标的VM的IP地址。
获取单元45b获取各种信息。例如,对于在多个VM中执行其处理的多个查询,获取单元45b获取表示查询之间的通信次数的通信计数信息37。
现将描述具体示例。获取单元45b通过接收通过通信单元43从VM传送的通信计数信息37来获取通信计数信息37。在其中获取了通信计数信息37的情况下,获取单元45b将获取的通信计数信息37存储在存储单元44中。此外,获取单元45b通过接收通过通信单元43从VM传送的通信负荷信息38来获取负荷信息38。在其中获取了负荷信息38的情况下,获取单元45b将获取的负荷信息38存储在存储单元44中。此外,获取单元45b获取存储在存储单元44中的通信计数信息37和负荷信息38。
指定单元45c指定各种信息。例如,指定单元45c基于由获取单元45b获取的通信计数信息表示的通信次数,来指定查询集合。
现将描述具体示例。首先,指定单元45c通过使用获取单元45b获取的负荷信息38来计算每个VM的处理元素的负荷的总和以便计算每个VM的负荷。随后,指定单元45c通过使用所计算的每个VM的负荷来计算所有VM的负荷的平均值Ave。随后,指定单元45c确定是否存在负荷是阈值α或更大的VM。
图14是图示根据第三实施例的管理服务器执行的处理示例的示图。图14中所示的示例图示了五个VM 31a至35a的负荷。水平轴表示VM、并且竖直轴表示VM的负荷。VM中呈现的“高”表示负荷超过第一阈值的高负荷处理元素。此外,VM中呈现的“中”表示负荷是第一阈值或更小并且超过小于第一阈值的第二阈值的中负荷处理元素。此外,VM中呈现的“低”表示负荷是第二阈值或更小的低负荷处理元素。在图14中所示的示例中,阈值α是上限负荷报警值。此外,在图14中所示的示例中,阈值β小于阈值α并且是下限负荷报警值。在图14中所示的示例中,由于VM 31a的负荷超过阈值α,因此指定单元45c确定存在负荷是阈值α或更大的VM。
在其中存在负荷是阈值α或更大的VM的情况下,指定单元45c将负荷是阈值α或更大的所有VM设定为移动源VM的候选者。例如,在图14中所示的示例中,指定单元45c将负荷是阈值α或更大的VM 31a设定为移动源VM的候选者。
随后,指定单元45c将负荷小于平均值Ave的所有VM设定为移动目标VM的候选者。例如,在图14中所示的示例中,指定单元45c将负荷小于平均值Ave的VM 35a设定为移动目标VM的候选者。
随后,指定单元45c通过下文描述的处理来确定是否验证对于作为移动源的所有VM和作为移动目标的所有VM的组合,指定的查询集合可以配置在同一VM中。在其中配置未被验证的情况下,指定单元45c通过下文描述的处理来确定指定查询集合中的一个查询针对其中配置其他查询的VM的移动是否已登记在移动指令列表46中。
在其中没有登记移动的情况下,指定单元45c确定在移动源VM的候选者中是否存在未被选择的VM。在其中不存在未被选择的VM的情况下,指定单元45c将移动目标VM的候选者的所有VM设定为未被选择的。随后,指定单元45c在其后执行如下处理。另一方面,在其中存在未被选择的VM的情况下,指定单元45c从移动源VM的候选者中选择一个未被选择的VM。
随后,指定单元45c通过下文描述的处理来确定在移动目标VM的候选者中是否存在未被选择的VM。在其中不存在未被选择的VM的情况下,指定单元45c将移动目标VM的候选者的所有VM设定为未被选择的。随后,指定单元45c再次确定是否验证对于所有移动源VM和所有移动目标VM的组合,上述的指定查询集合可以配置在同一VM中。随后,指定单元45c在其后执行如下处理。另一方面,在其中存在未被选择的VM的情况下,指定单元45c从移动目标VM的候选者中选择一个未被选择的VM。
随后,指定单元45c通过下文描述的处理来确定是否指定查询集合。在其中没有指定查询集合的情况下,指定单元45c通过使用获取单元45b获取的通信计数信息37来指定查询之间的通信次数最大的查询集合。例如,在其中使用图7D中所示的示例中呈现的通信计数信息37的情况下,指定单元45c选择查询之间的通信次数是10的查询Q1和查询Q3的集合。
随后,指定单元45c确定是否存在多个指定集合。在其中存在多个指定集合的情况下,通过参照预先提供给管理服务器40的查询图来针对每个指定集合计算查询之间的距离。例如,将描述如下情况,其中在图5的示例中所示的查询图70中,指定单元45c指定两个集合,包括查询Q1和查询Q2的集合以及查询Q1和查询Q3的集合。在该情况下,指定单元45c计算在查询图70上的查询Q1和查询Q2之间的距离以及查询Q1和查询Q3之间的距离。此外,在图5中所示的示例中,在查询图70上,查询Q1和查询Q2之间的距离短于查询Q1和查询Q3之间的距离。换言之,查询Q1和查询Q2之间的距离小于查询Q1和查询Q3之间的距离。
随后,指定单元45c确定是否存在查询之间的计算距离最短的多个查询集合。在图5中所示的示例中,由于查询之间的计算距离最短的查询Q和Q2的集合数目是1,因此指定单元45c确定不存在查询之间的计算距离最短的多个查询集合。
在其中存在查询之间的计算距离最短的多个查询集合的情况下,指定单元45c在查询之间的计算距离最短的多个查询集合中,指定包括查询的处理元素的负荷总和最小的查询集合。另一方面,在其中不存在查询之间的计算距离最短的多个查询集合的情况下,指定单元45c在指定的多个集合中,指定查询之间的距离最短的查询集合。
确定单元45d确定各种信息。例如,确定单元45d确定指定单元45c已指定的查询集合将被配置在同一VM中。
现将描述具体示例。首先,对于指定单元45c指定的查询集合,确定单元45d确定一个查询是否是配置在新选择的移动源的VM中的查询,并且其他查询是否是配置在新选择的移动目标的VM中的查询。在其中一个查询不是配置在新选择的移动源的VM中的查询,或者其他查询不是配置在新选择的移动目标的VM中的查询的情况下,确定在上述的移动目标VM的候选者中是否存在未被选择的VM。随后,执行其后的如下处理。
另一方面,在其中一个查询是配置在新选择的移动源的VM中的查询,并且其他查询是配置在新选择的移动目标的VM中的查询的情况下,确定单元45d计算在其中包括指定查询集合中的配置在新选择的移动源的VM中的查询的处理元素移动到新选择的移动目标的VM的情况下的负荷Y。换言之,确定单元45d计算通过使包括配置在指定查询集合中的新选择的移动源的VM中的查询的处理元素的负荷与移动目标的VM的负荷相加而获取的值,作为负荷Y。
随后,确定单元45d确定所计算的负荷Y的值是否小于平均Ave并且负荷Y的值是否大于阈值β。在其中所计算的负荷Y的值是平均值Ave或更大,或者所计算的负荷Y的值是阈值β或更小的情况下,确定在上述的移动目标VM的候选者中是否存在未被选择的VM。随后,执行其后的如下处理。另一方面,在其中负荷Y的值小于平均值Ave并且负荷Y的值大于阈值β的情况下,确定单元45d执行如下处理。确定单元45d确定包括配置在指定查询集合中的新选择的移动源的VM中的查询的处理元素从移动源的VM移动到新选择的移动目标VM的VM。
如同上文,根据该实施例的管理服务器40确定包括指定集合的两个查询的两个处理元素配置在同一VM中。因此,在其中基于该确定将两个处理元素配置在同一VM中的情况下,在将两个处理元素配置在同一VM中之前,不执行在两个VM之间执行的处理结果的通信。因此,根据该实施例的管理服务器40,可以抑制通信次数的增加。
此外,根据该实施例的管理服务器40获取表示在多个装置执行的事务请求语句之间执行的通信次数的信息,在所述多个装置中配置了用于结合多个查询调用的事务请求语句来执行事件的一个或更多个事务请求语句。随后,管理服务器40基于通信次数指定事务请求语句的集合。随后,管理服务器40确定用于将指定的事务请求语句集合配置在同一装置中的装置。因此,在其中基于该确定将两个事务请求语句配置在同一VM中的情况下,在将两个事务请求语句配置在同一VM中之前,不执行在两个VM之间执行的处理结果的通信。因此,根据该实施例的管理服务器40,可以抑制通信次数的增加。
此外,根据该实施例的管理服务器40,可以确定有许多次通信的处理元素配置在一个具有高优先级的VM中。
此外,根据该实施例的管理服务器40,可以确定处理元素的配置,使得在处理元素移动的情况下,移动目标的VM的负荷的值小于平均值Ave并且大于阈值β。
随后,确定单元45d通过彼此相关联地将被确定移动的处理元素的标识符、移动源的VM的IP地址以及移动目标的VM的IP地址登记在移动指令列表46中,来更新移动指令列表46。随后,确定单元45d从移动源VM的候选者中排除被确定移动的处理元素的移动源的VM并且从移动目标VM的候选者中排除移动目标的VM。
随后,确定单元45d将移动目标VM的候选者和移动源VM的候选者的所有VM设定为未被选择的。随后,确定单元45d再次确定上述的指定查询集合中的一个查询针对其中配置其他查询的VM的移动是否已再次登记在移动指令列表46中,并且其后执行如下处理。
此外,在其中指定单元45c确定验证对于移动源的所有VM和移动目标的所有VM的组合,是否可以将指定查询集合配置在同一VM中的情况下,确定单元45d将移动源VM的候选者的所有VM设定为未被选择的。随后,确定单元45d确定在移动源VM的候选者中是否存在未被选择的VM。在移动源VM的候选者中存在未被选择的VM的情况下,从移动源VM的候选者中选择一个未被选择的VM。
随后,确定单元45d将“1”设定到变量N。随后,确定单元45d从新选择的移动源的VM的处理元素中选择具有第n高的负荷的处理元素。在N=1的情况下,在图14中所示的示例中,确定单元45d从VM 31a的处理元素中选择位于最上侧的具有最高负荷的“高”处理元素。
随后,确定单元45d通过下文描述的处理来确定在移动目标VM的候选者中是否存在未被选择的VM。在不存在未被选择的VM的情况下,确定单元45d再次确定在移动源VM的候选者中是否存在未被选择的VM,并且执行如下处理。另一方面,在其中存在未被选择的VM的情况下,确定单元45d从移动目标VM的候选者中选择一个未被选择的VM。
随后,确定单元45d计算其中新选择的具有第N高的负荷的处理元素移动到新选择的移动目标的VM的情况的负荷Y'。换言之,确定单元45d计算通过使所选择的具有第N高的负荷的处理元素的负荷与移动目标的VM的负荷相加而获取的值,作为负荷Y'。例如,在N=1的情况下,在图14中所示的示例中,确定单元45d计算通过使VM 31a的处理元素中的位于最上侧的“高”处理元素的负荷与VM 35a的负荷相加而获取的值,作为负荷Y'。
随后,确定单元45d确定所计算的负荷Y'的值是否小于平均值Ave,并且负荷Y'的值是否大于阈值β。在其中所计算的负荷Y'的值是平均值Ave或更大,或者所计算的负荷Y'的值是阈值β或更小的情况下,确定单元45d使变量N的值递增1。随后,确定单元45d确定变量N的值是否超过新选择的移动源的VM的处理元素的数目K。在其中变量N的值未超过处理元素的数目K的情况下,确定单元45d在新选择的移动源的VM的处理元素中,指定具有第N高的负荷的处理元素。在N=2的情况下,在图14中所示的示例中,确定单元45d选择VM 31a的处理元素中的、位于最下侧的具有第二高的负荷的“高”处理元素。随后,确定单元45d再次执行上述的计算负荷Y的处理,以计算其中新选择的具有第N高的负荷的处理元素移动到新选择的移动目标的VM的情况的负荷Y,并且继续如下处理。
另一方面,在其中变量N的值超过处理元素的数目K的情况下,确定单元45d再次确定在移动目标VM的候选者中是否存在未被选择的VM,并且继续如下处理。
此外,在其中所计算的负荷Y'的值小于平均值Ave,并且负荷Y'的值大于阈值β的情况下,确定单元45d执行如下确定。确定单元45d确定新选择的具有第N高的负荷的处理元素从新选择的移动源的VM移动到新选择的移动目标的VM。
如同上文,根据该实施例的管理服务器40,可以确定处理元素的配置,使得在处理元素移动的情况下,移动目标的VM的负荷的值小于平均值Ave并且大于阈值β。
随后,确定单元45d通过彼此相关联地将被确定移动的处理元素的标识符、移动源的VM的IP地址以及移动目标的VM的IP地址登记在移动指令列表46中,来更新移动指令列表46。随后,确定单元45d从移动源VM的候选者中排除被确定移动的处理元素的移动源的VM并且从移动目标VM的候选者中排除移动目标的VM。
随后,确定单元45d将移动目标VM的候选者和移动源VM的候选者的所有VM设定为未被选择的。随后,确定单元45d再次确定在移动源VM的候选者中是否存在未被选择的VM并且继续如下处理。
配置控制单元45e控制处理元素的配置。例如,配置控制单元45e执行控制,使得基于由确定单元45d执行的处理元素的配置的确定结果,将指定单元45c已指定的查询集合配置在同一VM中。
现将描述具体示例。配置控制单元45e首先从存储单元44获取移动指令列表46。随后,配置控制单元45e通过将获取的移动指令列表46的内容与先前获取的内容进行比较来确定在移动指令列表46中是否存在新添加的内容。在其中存在新添加的内容的情况下,配置控制单元45e使用登记在新添加的记录的项目“移动源”中的IP地址来执行如下处理。配置控制单元45e将用于使由登记在记录的项目“处理元素”中的标识符表示的处理元素移动到由登记在记录的项目“移动目标”中的IP地址表示的移动目标的指令(移动指令)传送到移动源。因此,移动源的VM将作为移动对象的处理元素传送到移动目标的VM,从而使处理元素移动。例如,在其中配置指定查询集合的VM的IP地址被登记在新添加的记录中的项目“移动源”和“移动目标”中的情况下,配置控制单元45e可以执行控制,使得查询集合配置在一个VM中。随后,配置控制单元45e向VM、服务器20和管理服务器40传送包括作为移动对象的V节点的标识符和移动目标的VM的IP地址的路由表格更新指令。
控制单元45是诸如ASIC(专用集成电路)或FPGA(现场可编程门阵列)的集成电路或者诸如CPU(中央处理单元)或MPU(微处理单元)的电子电路。
接下来,将描述根据该实施例的管理服务器40执行的每个处理的流程。图15是图示获取处理的序列的流程图。例如,在从VM接收到数据的定时执行该获取处理。
如图15中所示,获取单元45b在S101中确定接收到的数据是否是通信计数信息37。在接收到的数据是通信计数信息37的情况下(S101中的“是”),获取单元45b获取接收到的通信计数信息37,在S102中将获取的通信计数信息37存储在存储单元44中,并且结束处理。另一方面,在接收到的数据不是通信计数信息37的情况下(S101中的“否”),获取单元45b在S102中确定接收到的数据是否是负荷信息38。在其中接收到的数据是负荷信息38的情况下(S103中的“是”),获取单元45b获取接收到的负荷信息38,在S104中将获取的负荷信息38存储在存储单元44中,并且结束处理。另一方面,在接收到的数据不是负荷信息38的情况下(S103中的“否”),处理结束。
图16A至18是图示确定处理的序列的流程图。按照预定间隔执行确定处理。
如图16A至18中所示,获取单元45b在S201中从存储单元44获取负荷信息38。指定单元45c在S202中通过使用由获取单元45b获取的负荷信息38计算每个VM的处理元素的负荷的总和来计算每个VM的负荷。随后,指定单元45c在S203中使用所计算的每个VM的负荷来计算所有VM的负荷的平均值Ave。随后,指定单元45c在S204中确定是否存在负荷是阈值α或更大的VM。
在其中不存在负荷是阈值α或更大的VM的情况下(S204中的“否”),处理技术。另一方面,在其中存在负荷是阈值α或更大的VM的情况下(S204中的“是”),指定单元45c在S205中将负荷是阈值α或更大的所有VM设定为移动源VM的候选者。
随后,指定单元45c在S206中将负荷小于平均值Ave的所有VM设定为移动目标VM的候选者。随后,指定单元45c在S207中通过下文描述的处理来确定是否验证对于移动源的所有VM和移动目标的所有VM的组合,指定的查询集合可以配置在同一VM中。在其中配置未进行验证的情况下(S207中的“否”),指定单元45c在S208中通过下文描述的处理来确定指定查询集合中的一个查询针对其中配置其他查询的VM的移动是否已登记在移动指令列表46中。
在其中移动已被登记的情况下(S208中的“是”),处理前往S229。另一方面,在其中移动没有被登记的情况下(S208中的“否”),指定单元45c在S209中确定在移动源VM的候选者中是否存在未被选择的VM。在其中不存在未被选择的VM的情况下(S209中的“否”),处理前往S212。另一方面,在其中存在未被选择的VM的情况下(S209中的“是”),指定单元45c在S210中从移动源VM的候选者中选择一个未被选择的VM。
随后,指定单元45c在下文描述的S212的处理中,在S211中确定在移动目标VM的候选者中是否存在未被选择的VM。在其中不存在未被选择的VM的情况下(S211中的“否”),指定单元45c在S212中将移动目标VM的候选者的所有VM设定为未被选择的。随后,处理返回S207。另一方面,在其中存在未被选择的VM的情况下(S211中的“是”),指定单元45c在S213中从移动源VM的候选者中选择一个未被选择的VM。
随后,指定单元45c在S214中确定是否在下文描述的S216、S220和S221中的一个中指定查询集合。在其中指定查询集合的情况下(S214中的“是”),处理前往S222。另一方面,在其中没有指定查询集合的情况下(S214中的“否”),获取单元45b在S215中从存储单元44获取通信计数信息37。随后,指定单元45c在S216中使用获取单元45b获取的通信计数信息37来指定查询之间的通信次数最大的查询集合。
随后,指定单元45c在S217中确定是否存在多个指定集合。在其中不存在多个指定集合的情况下(S217中的“否”),处理前往S222。另一方面,在其中存在多个指定集合的情况下(S217中的“是”),指定单元45c在S218中通过参照预先提供给管理服务器40的查询图来针对每个指定集合计算查询之间的距离。
随后,指定单元45c在S219中确定是否存在查询之间的计算距离最短的多个查询集合。
在其中存在查询之间的计算距离最短的多个查询集合的情况下(S219中的“是”),指定单元45c在S221中,在查询之间的计算距离最短的多个查询集合中,指定包括查询的处理元素的负荷总和最小的查询集合并且前往S222。另一方面,在其中不存在查询之间的计算距离最短的多个查询集合的情况下(S219中的“否”),指定单元45c在S220中,在指定的多个集合中,指定查询之间的距离最短的查询集合并且前往S222。
对于指定单元45c指定的查询集合,确定单元45d在S222中确定一个查询是否是配置在新选择的移动源的VM中的查询,并且其他查询是否是配置在新选择的移动目标的VM中的查询。在其中一个查询不是配置在新选择的移动源的VM中的查询,或者其他查询不是配置在新选择的移动目标的VM中的查询的情况下(S222中的“否”),处理返回S211。
另一方面,在其中一个查询是配置在新选择的移动源的VM中的查询,并且其他查询是配置在新选择的移动目标的VM中的查询的情况下(S222中的“是”),确定单元45d执行如下处理。确定单元45d在S223中计算在其中包括指定查询集合中的配置在新选择的移动源的VM中的查询的处理元素移动到新选择的移动目标的VM的情况下的负荷Y。
随后,确定单元45d在S224中确定所计算的负荷Y的值是否小于平均Ave并且负荷Y的值是否大于阈值β。在其中所计算的负荷Y的值是平均值Ave或更大,或者所计算的负荷Y的值是阈值β或更小的情况下(S224中的“否”),处理返回S211。另一方面,在其中负荷Y的值小于平均值Ave并且负荷Y的值大于阈值β的情况下(S224中的“是”),确定单元45d执行如下处理。确定单元45d在S225中确定包括配置在指定查询集合中的新选择的移动源的VM中的查询的处理元素从移动源的VM移动到新选择的移动目标VM的VM并且更新移动指令列表46。随后,确定单元45d在S226中从移动源VM的候选者中排除被确定移动的处理元素的移动源的VM并且从移动目标VM的候选者中排除移动目标的VM。
随后,确定单元45d在S227中将移动目标VM的候选者和移动源VM的候选者的所有VM设定为未被选择的,并且处理返回S208。
此外,在其中指定单元45c确定验证对于移动源的所有VM和移动目标的所有VM的组合,是否可以将指定查询集合配置在同一VM中的情况下(S207中的“是”),确定单元45d执行如下处理。确定单元45d在S228中将移动源VM的候选者的所有VM设定为未被选择的。随后,确定单元45d在S229中确定在移动源VM的候选者中是否存在未被选择的VM。在存在未被选择的VM的情况下(S229中的“是”),在S230中从移动源VM的候选者中选择一个未被选择的VM。
随后,确定单元45d在S231中将“1”设定到变量N。随后,确定单元45d在S232中从新选择的移动源的VM的处理元素中选择具有第n高的负荷的处理元素。
随后,确定单元45d在S233中通过下文描述的S234的处理来确定在移动目标VM的候选者中是否存在未被选择的VM。在不存在未被选择的VM的情况下(S233中的“否”),处理返回S229。另一方面,在其中存在未被选择的VM的情况下(S233中的“是”),确定单元45d从移动目标VM的候选者中选择一个未被选择的VM(S234)。
随后,确定单元45d在S235中计算其中新选择的具有第N高的负荷的处理元素移动到新选择的移动目标的VM的情况的负荷Y'。
随后,确定单元45d在S236中确定所计算的负荷Y'的值是否小于平均值Ave,并且负荷Y'的值是否大于阈值β。在其中所计算的负荷Y'的值是平均值Ave或更大,或者所计算的负荷Y'的值是阈值β或更小的情况下(S236中的“否”),确定单元45d在S237中使变量N的值递增1。随后,确定单元45d在S238中确定变量N的值是否超过新选择的移动源的VM的处理元素的数目K。在其中变量N的值未超过处理元素的数目K的情况下(S238中的“否”),确定单元45d在S239中在新选择的移动源的VM的处理元素中,指定具有第N高的负荷的处理元素,并且处理返回S235。
另一方面,在其中变量N的值超过处理元素的数目K的情况下(S238中的“是”),处理返回S233。
此外,在其中所计算的负荷Y'的值小于平均值Ave,并且负荷Y'的值大于阈值β的情况下(S236中的“是”),确定单元45d执行如下确定。确定单元45d在S240中确定新选择的具有第N高的负荷的处理元素从新选择的移动源的VM移动到新选择的移动目标的VM并且更新移动指令列表46。随后,确定单元45d在S241中从移动源VM的候选者中排除被确定移动的处理元素的移动源的VM并且从移动目标VM的候选者中排除移动目标的VM。
随后,确定单元45d在S242中将移动目标VM的候选者和移动源VM的候选者的所有VM设定为未被选择的,并且处理返回S229。
图19是图示配置控制处理的序列的流程图。按照预定的间隔执行配置控制处理。
如图19中所示,配置控制单元45e在S301中从存储单元44获取移动指令列表46。随后,配置控制单元45e在S302中通过将获取的移动指令列表46的内容与先前获取的内容进行比较来确定在移动指令列表46中是否存在新添加的内容。在其中存在新添加的内容的情况下(S302中的“是”),配置控制单元45e使用登记在新添加的记录的项目“移动源”中的IP地址来执行如下处理。配置控制单元45e在S303中将用于使由登记在记录的项目“处理元素”中的标识符表示的处理元素移动到由登记在记录的项目“移动目标”中的IP地址表示的移动目标的指令(移动指令)传送到移动目标。随后,配置控制单元45e在S304中向VM、服务器20和管理服务器40传送包括作为移动对象的V节点的标识符和移动目标的VM的IP地址的路由表格更新指令,并且结束处理。另一方面,在其中不存在新添加的内容的情况下(S302中的“否”),处理结束。
如上文所述,根据该实施例的管理服务器40确定包括指定集合的两个查询的两个处理元素配置在同一VM中。因此,在其中基于该确定将两个处理元素配置在同一VM中的情况下,在将两个处理元素配置在同一VM中之前,不执行两个VM之间的处理结果的通信。因此,根据该实施例的管理服务器40,可以抑制通信次数的增加。
此外,根据该实施例的管理服务器40,可以确定处理元素之间通信次数大的处理元素配置在一个具有高优先级的VM中。
此外,根据该实施例的管理服务器40,可以确定处理元素的配置,使得在处理元素移动的情况下,移动目标的VM的负荷的值小于平均值Ave并且大于阈值β。
[d]第四实施例
将描述第四实施例。在第四实施例中,将描述在其中所有VM的处理元素的负荷的平均值超过阈值α的情况下的、其中配置查询的VM的数目增加的情况。
图20是图示根据第四实施例的管理服务器的配置的框图。如图20中所示,管理服务器80的控制单元45与根据图12中所示的第三实施例的控制单元45的不同之处在于,包括指定单元81c和确定单元81d,而非指定单元45c和指定单元45d。在下文中,与图12等中所示相同的附图标记被分配给实现与上述第三实施例等相同的功能的每个部分,并且将不给出其描述。
图21是图示根据第四实施例的管理服务器执行的处理示例的示图。在图21中所示的示例中图示了五个VM 31a至35a的负荷。水平轴表示VM、并且竖直轴表示VM的负荷。VM中呈现的“高”表示负荷超过第一阈值的高负荷处理元素。此外,VM中呈现的“中”表示负荷是第一阈值或更小并且超过小于第一阈值的第二阈值的中负荷处理元素。此外,VM中呈现的“低”表示负荷是第二阈值或更小的低负荷处理元素。在图21中所示的示例中,阈值α是上限负荷报警值。此外,在图21中所示的示例中,阈值β小于阈值α并且是下限负荷报警值。在图21中所示的示例中,五个VM的负荷的平均值Ave超过阈值α。因此,在图21中的示例中,管理服务器80执行控制,使得VM的数目增加2(VM 31b和VM32b),处理元素移动到所添加的两个VM 31b和VM 32b,并且七个VM的总负荷的平均值Ave是预定值WC。
指定单元81c与根据第三实施例的指定单元45c的不同之处在于以下各点。首先,指定单元81c计算所有VM的总负荷T。尽管指定单元45c确定是否存在负荷是阈值α或更大的VM,但是不同于该确定操作,指定单元81c确定平均值Ave是否是阈值α或更大。例如,在图21中所示的示例中,由于五个VM的负荷的平均值Ave超过阈值α,并且因此,在该情况下指定单元81c确定平均值Ave是阈值α或更大。
此外,在其中平均值Ave是阈值α或更大的情况下,指定单元81c计算通过使所计算的所有VM的总负荷T除以预定值WC而获取的值(T/WC)。这里,值(T/WC)表示在其中VM的平均负荷是WC的情况下的VM的数目。随后,指定单元81c计算通过从在负荷是WC的情况下的VM的数目(T/WC)中减去当前的VM的数目S而获取的值ΔS(=(T/WC)-S),从而计算将增加的VM的数目。
此外,在指定单元45c中,尽管均具有小于平均值Ave的负荷的所有VM是移动目标VM的候选者,但是指定单元81c并非选举移动目标VM的候选者,而是将与数目ΔS对应的所有新的VM设定为移动目标VM的候选者。例如,在图21中所示的示例中,指定单元81c将与数目ΔS=2(7-5)对应的所有新的VM 31b和32b设定为移动目标VM的候选者。
确定单元81d与根据第三实施例的确定单元45d的不同之处在于下文描述的各点。尽管确定单元45d确定所计算的负荷Y的值是否小于平均值Ave,并且负荷Y的值是否大于阈值β,但是不同于该确定操作,确定单元81d执行如下处理。确定单元81d确定所计算的负荷Y的值是否小于WC并且负荷Y的值是否大于阈值β。此外,尽管确定单元45d确定所计算的负荷Y'的值是否小于平均值Ave,并且负荷Y'的值是否大于阈值β,但是不同于该确定操作,确定单元81d执行如下处理。确定单元81d确定所计算的负荷Y'的值是否小于WC,并且负荷Y'的值是否大于阈值β。因此,在移动目标的VM中,在其中处理元素移动的情况下的负荷可以被配置成小于WC并且大于阈值β。此外,可以确定VM的平均负荷是WC的VM的数目。
此外,根据该实施例的管理服务器80确定包括指定集合的两个查询的两个处理元素配置在同一VM中。因此,在其中基于该确定将两个处理元素配置在同一VM中的情况下,在将两个处理元素配置在同一VM中之前,不执行在两个VM之间执行的处理结果的通信。因此,根据该实施例的管理服务器80,可以抑制通信次数的增加。
此外,根据该实施例的管理服务器80,可以确定处理元素之间通信次数大的处理元素配置在一个具有高优先级的VM中。
此外,根据该实施例的管理服务器80,可以确定处理元素的配置,使得在处理元素移动的情况下,移动目标的VM的负荷的值小于平均值Ave并且大于阈值β。
接下来,将描述根据该实施例的管理服务器80执行的每个处理的流程。由于获取处理和配置控制处理与第三实施例相似,因此这里将不给出它们的描述,并且将描述根据第四实施例的确定处理。图22A至24是图示根据第四实施例的确定处理的序列的流程图。按照预定间隔执行确定处理。此外,为了描述,相同的附图标记被分配给与第三实施例相同的处理。
如图22A至24中所示,在S202之后,指定单元81c在S401中计算所有VM的总负荷T。此外,在S203之后,指定单元81c在S402中而非在S204中确定平均值Ave是否是阈值α或更大。
在其中平均值Ave不是阈值α或更大的情况下(S402中的“否”),处理结束。另一方面,在其中平均值Ave不是阈值α或更大的情况下(S402中的“是”),指定单元81c在S403中计算通过使所计算的所有VM的总负荷T除以预定值WC而获取的值(T/WC)。随后,指定单元81c在S404中计算通过从在负荷是WC的情况下的VM的数目(T/WC)中减去当前的VM的数目S而获取的值ΔS(=(T/WC)-S),从而计算将增加的VM的数目。
此外,不同于S205之后的S206,指定单元81c在S405中将与数目ΔS对应的所有新的VM设定为移动目标VM的候选者。
此外,不同于S224,确定单元81d在S406中确定所计算的负荷Y的值是否小于WC并且负荷Y的值是否大于阈值β。因此,不同于S236,确定单元81d在S407中确定所计算的负荷Y'的值是否小于WC,并且负荷Y'的值是否大于阈值β。
如上文所述,根据该实施例的管理服务器80确定包括指定集合的两个查询的两个处理元素配置在同一VM中。因此,在其中基于该确定将两个处理元素配置在同一VM中的情况下,在将两个处理元素配置在同一VM中之前,不执行在两个VM之间执行的处理结果的通信。因此,根据该实施例的管理服务器80,可以抑制通信次数的增加。
此外,根据该实施例的管理服务器80,可以确定处理元素之间通信次数大的处理元素配置在一个具有高优先级的VM中。
此外,根据该实施例的管理服务器80,可以确定处理元素的配置,使得在处理元素移动的情况下,移动目标的VM的负荷的值小于平均值Ave并且大于阈值β。
此外,根据该实施例的管理服务器80,在移动目标的VM中,在其中处理元素移动的情况下的负荷可以被配置成小于WC并且大于阈值β。
此外,根据该实施例的管理服务器80,可以确定VM的平均负荷是WC的VM的数目。
[d]第五实施例
将描述第五实施例。在第五实施例中,将描述在其中所有VM的处理元素的负荷的平均值小于阈值β的情况下的、其中配置查询的VM的数目减少的情况。
图25是图示根据第五实施例的管理服务器的配置的框图。如图25中所示,管理服务器82的控制单元45与根据图20中所示的第四实施例的控制单元45的不同之处在于,包括指定单元83c和确定单元83d,而非指定单元83c和指定单元83d。在下文中,相同的附图标记被分配给实现与上述每个实施例相同的功能的每个部分,并且将不给出其描述。
图26是图示根据第五实施例的管理服务器执行的处理示例的示图。在图26中所示的示例中图示了五个VM 31a至35a的负荷。水平轴表示VM、并且竖直轴表示VM的负荷。VM中呈现的“高”表示负荷超过第一阈值的高负荷处理元素。此外,VM中呈现的“中”表示负荷是第一阈值或更小并且超过小于第一阈值的第二阈值的中负荷处理元素。此外,VM中呈现的“低”表示负荷是第二阈值或更小的低负荷处理元素。在图26中所示的示例中,阈值α是上限负荷报警值。此外,在图26中所示的示例中,阈值β小于阈值α并且是下限负荷报警值。在图26中所示的示例中,五个VM的负荷的平均值Ave小于阈值β。因此,在图26中的示例中,首先,其中配置查询的VM的数目减少2(VM 34a、VM 35a)。随后,管理服务器80执行控制,使得被去除的两个VM 34a、VM 35a的处理元素移动到剩余VM中的均具有小于WC的负荷的所有VM(VM32a、VM 33a),并且三个VM的总负荷的平均值Ave是预定值WC。
指定单元83c与根据第四实施例的指定单元81c的不同之处在于以下各点。首先,尽管指定单元81c确定平均值Ave是否是阈值α或更大,但是指定单元83c确定平均值Ave是否小于阈值β。例如,在图26中所示的示例中,由于五个VM的负荷的平均值Ave小于阈值β,因此在该情况下指定单元83c确定平均值Ave小于阈值β。
此外,尽管指定单元81c计算ΔS(=(T/WC)-S)以便计算将增加的VM的数目,但是不同于计算ΔS,指定单元81c计算将减少的数目ΔS'(=S-(T/WC))。
此外,尽管指定单元81c将负荷均是阈值α或更大的所有VM设定为移动源VM的候选者,但是指定单元83c将来自所有VM中的低负荷侧的与值ΔS'表示的数目对应的VM设定为移动源VM的候选者。例如,在图26中所示的示例中,指定单元83c将与ΔS'=2(5-3)对应的具有低负荷的VM 34a和35a设定为移动源VM的候选者。
此外,尽管指定单元81c将与值ΔS表示的数目对应的所有新VM设定为移动目标的候选者,但是指定单元83c将并非是去除对象的VM设定为移动目标VM的候选者,换言之,将剩余VM中的均具有小于WC的负荷的所有VM设定为移动目标VM的候选者。例如,在图26中所示的示例中,指定单元83c将剩余VM 31a至33a中的均具有小于WC的负荷的所有VM 32a和33a设定为移动源VM的候选者。因此,可以确定VM的平均负荷是SV的VM的数目。此外,在移动目标的VM中,其中处理元素移动的情况下的负荷可以被配置成小于WC并且大于阈值β。
此外,根据该实施例的管理服务器82确定包括指定集合的两个查询的两个处理元素配置在同一VM中。因此,在其中基于该确定将两个处理元素配置在同一VM中的情况下,在将两个处理元素配置在同一VM中之前,不执行在两个VM之间执行的处理结果的通信。因此,根据该实施例的管理服务器82,可以抑制通信次数的增加。
此外,根据该实施例的管理服务器82,可以确定处理元素之间通信次数大的处理元素配置在一个具有高优先级的VM中。
此外,根据该实施例的管理服务器82,可以确定处理元素的配置,使得在处理元素移动的情况下,移动目标的VM的负荷的值小于平均值Ave并且大于阈值β。
接下来,将描述根据该实施例的管理服务器82执行的每个处理的流程。由于获取处理和配置控制处理与第四实施例相似,因此这里将不给出它们的描述,并且将描述根据第五实施例的确定处理。图27A至29是图示根据第五实施例的确定处理的序列的流程图。按照预定间隔执行确定处理。此外,为了描述,相同的附图标记被分配给与第三或第四实施例相同的处理。
如图27A至29中所示,在S203之后,不同于S402,指定单元83c在S501中确定平均值Ave是否小于阈值β。
此外,在S403之后,不同于S404,指定单元81c在S502中计算通过从当前的VM的数目S中减去在负荷是WC的情况下的VM的数目(T/WC)而获取的值ΔS'(=S-(T/WC)),从而计算将减少的VM的数目。随后,不同于S205,指定单元83c在S503中将来自低负荷侧的与值ΔS'表示的数目对应的VM设定为移动源VM的候选者。随后,不同于S405,指定单元83c在S504中将剩余VM中的均具有小于WC的负荷的所有VM设定为移动目标VM的候选者。
如上文所述,根据该实施例的管理服务器82确定包括指定集合的两个查询的两个处理元素配置在同一VM中。因此,在其中基于该确定将两个处理元素配置在同一VM中的情况下,在将两个处理元素配置在同一VM中之前,不执行两个VM之间的处理结果的通信。因此,根据该实施例的管理服务器82,可以抑制通信次数的增加。
此外,根据该实施例的管理服务器82,可以确定处理元素之间通信次数大的处理元素被确定为配置在一个具有高优先级的VM中。
此外,根据该实施例的管理服务器82,可以确定处理元素的配置,使得在处理元素移动的情况下,移动目标的VM的负荷的值小于平均值Ave并且大于阈值β。
此外,根据该实施例的管理服务器82,在移动目标的VM中,在其中处理元素移动的情况下的负荷可以被配置成小于WC并且大于阈值β。
此外,根据该实施例的管理服务器82,可以确定VM的平均负荷是WC的VM的数目。
尽管到此为止已描述了所公开的装置的实施例,但是本发明可以在除上述实施例以外的各种形式中实施。因此,在下文中,将描述属于本发明的其他实施例。
首先,将描述上述的每个实施例的修改示例。例如,在CEP***内部,存在仅能够由其中配置查询的多个装置中的特定装置执行的查询。因此,在该情况下,将描述如下修改示例,其中管理服务器执行控制,使得包括该查询的处理元素不会被配置在任何其他装置中。根据上述的每个实施例的修改示例的管理服务器将表示禁止配置在特定装置中的查询的移动的第一禁止信息存储在存储单元中。随后,根据修改示例的指定单元、确定单元等在选举移动源装置的候选者之前确定第一禁止信息是否存储在存储单元中,并且在其中存储第一禁止信息的情况下参照第一禁止信息。随后,在其中与第一禁止信息对应的特定装置被选举为移动源装置的候选者的情况下,根据修改示例的指定单元、确定单元等从移动源装置的候选者中排除该特定装置。此外,根据修改示例的指定单元或确定单元可以在选举移动源装置的候选者之前参照第一禁止信息并且防止由第一禁止信息表示的特定装置被选举为移动源装置的候选者。
图30是图示根据修改示例的第一排除处理的序列的流程图。例如,在选举移动源VM的候选者之后,作为确定处理的一部分,执行第一排除处理。如图30中所示,根据修改示例的指定单元、确定单元等在S601中搜索存储单元并且确定第一禁止信息是否存储在存储单元中。在第一禁止信息不存在的情况下(S601中的“否”),确定处理继续。另一方面,在第一禁止信息存在的情况下(S601中的“是”),根据修改示例的指定单元、确定单元等在S602中从存储单元获取第一禁止信息并且基于所获取的第一禁止信息确定由第一禁止信息表示的特定装置是否包括在移动源装置的候选者中。
在其中由第一禁止信息表示的特定装置包括在移动源装置的候选者中的情况下(S602中的“是”),根据修改示例的指定单元、确定单元等在S603中从移动源装置的候选者中排除该特定装置,并且确定处理继续。另一方面,在其中由第一禁止信息表示的特定装置不包括在移动源装置的候选者中的情况下(S602中的“否”),确定处理继续。
如上文所述,在修改示例中,对于CEP***内部的仅能够由其中可以配置查询的多个装置中的特定装置执行的查询,从移动源装置的候选者中排除其中配置该查询的装置。因此,根据修改示例,移动源装置的候选者的数目减少,并且因此,抑制了用于移动处理元素的处理成本。此外,根据修改示例,可以抑制其中仅能够由特定装置执行的查询移动到任何其他装置的事件的发生。
此外,在CEP***内部,存在仅能够执行多个查询中的特定查询的装置。因此,在该情况下,将描述如下修改示例,其中管理服务器执行控制,使得其他装置的处理元素不移动到该装置。根据上述的每个实施例的修改示例的管理服务器将表示禁止查询从其他装置移动到仅能够执行特定查询的装置的第二禁止信息存储在存储单元中。随后,根据修改示例的指定单元、确定单元等在选举移动目标装置的候选者之后确定第二禁止信息是否存储在存储单元中,并且在其中存储第二禁止信息的情况下参照第二禁止信息。随后,在其中与第二禁止信息对应的装置被选举为移动目标装置的候选者的情况下,根据修改示例的指定单元、确定单元等从移动目标装置的候选者中排除该装置。此外,根据修改示例的指定单元或确定单元可以在选举移动目标装置的候选者之前参照第二禁止信息并且防止由第二禁止信息表示的装置被选举为移动目标装置的候选者。
图31是图示根据修改示例的第二排除处理的序列的流程图。例如,在选举移动目标VM的候选者之后,作为确定处理的一部分,执行第一排除处理。如图31中所示,根据修改示例的指定单元、确定单元等在S701中搜索存储单元并且确定第二禁止信息是否存储在存储单元中。在第二禁止信息不存在的情况下(S701中的“否”),确定处理继续。另一方面,在第二禁止信息存在的情况下(S701中的“是”),根据修改示例的指定单元、确定单元等在S702中从存储单元获取第二禁止信息并且基于所获取的第二禁止信息确定由第二禁止信息表示的装置是否包括在移动目标装置的候选者中。
在其中由第二禁止信息表示的装置包括在移动目标装置的候选者中的情况下(S702中的“是”),根据修改示例的指定单元、确定单元等在S703中从移动目标装置的候选者中排除该装置,并且确定处理继续。另一方面,在其中由第二禁止信息表示的装置不包括在移动目标装置的候选者中的情况下(S702中的“否”),确定处理继续。
如上文所述,根据修改示例,在CEP***内,从移动目标装置的候选者中排除仅能够执行多个查询中的特定查询的装置。因此,根据修改示例,移动目标装置的候选者的数目减少,并且因此,抑制了用于移动处理元素的处理成本。此外,根据修改示例,可以抑制其中其他查询从其他装置移动到仅能够执行特定查询的装置的事件的发生。
此外,在上述的每个实施例中,作为示例描述了其中VM计算查询之间的通信次数,并且将包括所计算的通信次数的通信计数信息37传送到管理服务器的情况。然而,所公开的装置不限于此。因此,将描述如下修改示例,其中VM将表示查询的执行序列的序列信息传送到管理服务器,接收该序列信息的管理服务器计算查询之间的通信次数,并且基于所计算的通信次数指定查询集合。
图32是图示根据修改示例的管理服务器的配置示例的示图。图32中所示的示例图示了第五实施例的修改示例。如图32中所示,管理服务器86的控制单元45包括计算单元87。在该修改示例中,获取单元45b获取从VM传送的序列信息,并且所获取的序列信息被存储在存储单元44中。随后,计算单元87在预定的定时,例如在获取单元45b在确定处理中获取存储单元44中存储的通信计数信息37之前,从存储单元44获取序列信息。随后,计算单元87基于由所获取的序列信息表示的查询的执行序列来计算查询的通信次数。随后,计算单元87将其中所计算的查询的通信次数被登记在相应的项目中的通信计数信息37存储在存储单元44中。
图33是图示根据修改示例的计算处理的序列的流程图。例如,该计算处理作为确定处理的一部分,在获取单元获取通信计数信息37之前执行。如图33中所示,计算单元87在S801中从存储单元44获取序列信息。随后,计算单元87在S802中基于由所获取的序列信息表示的查询的执行序列来计算查询的通信次数。随后,计算单元87在S803中将其中所计算的查询的通信次数被登记在相应的项目中的通信计数信息37存储在存储单元44中。
如上文所述,在该修改示例中,VM在不计算查询的通信次数的情况下向管理服务器传送查询的执行序列。随后,在该修改示例中,基于查询的执行序列来计算查询的通信次数,并且通过使用所计算的通信次数来指定查询集合。因此,根据该修改示例,可以抑制VM的处理成本。此外,尽管在上面的描述中描述了第五实施例的修改示例,但是根据第五实施例的修改示例的技术可以用在例如第三或第四实施例中。
此外,在上述的每个实施例中,尽管描述了其中查询配置在VM中的情况,但是所公开的装置可以通过将查询配置在物理服务器中来执行相同的处理。
此外,可以手动地执行在实施例中被描述为自动执行的处理的全部或部分。此外,通过使用已知的方法,可以自动地执行在实施例中被描述为手动执行的处理的全部或部分。
此外,在每个实施例中描述的每个处理的每个步骤中执行的处理可以根据各种负荷、使用环境等按照任意的方式被细分或者组合为整体。此外,一些步骤可以被省略。
此外,在每个实施例中描述的每个处理的每个步骤中执行的处理可以根据各种负荷、使用环境等而改变。
此外,附图中所示的每个装置的每个构成元件是按照功能和概念来表示的,并且没有必要在物理上如附图中所示的那样配置构成元件。换言之,装置的划分或集成的具体形式不限于附图中所示的形式,并且其整体或部分可以被配置成根据各种负荷、使用环境等按照任意的单位在功能上或物理上进行划分或集成。
[配置程序]
此外,在上述每个实施例中描述的配置装置和管理服务器的各种处理可以通过使用诸如个人计算机或工作站的计算机***执行预先准备的程序来实现。因此,在下文中,将参照图34描述执行具有与上述的每个实施例的配置装置和管理服务器相同的功能的配置程序的计算机的示例。图34是图示执行配置程序的计算机的示图。
如图34中所示,计算机300包括CPU(中央处理单元)310、ROM(只读存储器)320、HDD(硬盘驱动器)330和RAM(随机存取存储器)。由附图标记310至340表示的装置通过总线350互连。
在ROM 320中,存储诸如OS(操作***)等的基本程序。此外,在HDD 330中,预先存储呈现与上述的每个实施例中说明的初始配置单元、获取单元、计算单元、指定单元、确定单元和配置控制单元相同的功能的配置程序。此外,可以适当地划分配置程序。此外,在HDD 330中,设置路由表格、通信计数信息、负荷信息和移动指令列表。路由表格、通信计数信息、负荷信息、移动指令列表以及序列信息对应于路由表格50、通信计数信息37、负荷信息38、移动指令列表46以及序列信息。
CPU从HDD 330读出配置程序并且执行配置程序。
CPU 310读出设置路由表格、通信计数信息、负荷信息和移动指令列表并且将它们存储在RAM 340中。此外,CPU 310通过使用RAM 340中存储的设置路由表格、通信计数信息、负荷信息和移动指令列表来执行配置程序。RAM 340中存储的每个数据条目的整体将不会恒久地存储在RAM 340中。用于处理的数据可以存储在RAM 340中。
此外,上述配置程序在最初时未存储在HDD 330中。
例如,程序可以存储在“便携式物理介质”中,诸如软盘(FD)、CD-ROM、DVD盘、磁光盘或者***到计算机300中的IC卡。在该情况下,计算机300可以从它们中的任何介质读出程序并且执行程序。
此外,程序可以存储在通过公共线路、互联网、LAN、WAN等连接到计算机300的“其他计算机(或服务器)”中。在该情况下,计算机300可以被配置成从它们中的任何介质读出程序并且执行程序。
根据本发明的实施例,可以抑制装置之间的通信的增加。
Claims (14)
1.一种配置装置,包括:
获取单元,获取表示在其中配置多个查询的多个装置中执行的查询之间的通信次数的信息,当数据满足所设定的条件时,所述查询用于执行处理;
指定单元,基于由所述获取单元获取的信息表示的通信次数来指定查询集合;以及
确定单元,确定将由所述指定单元指定的查询集合配置在同一装置中。
2.一种配置装置,包括:
获取单元,获取表示在其中配置多个查询的多个装置中执行的查询的执行顺序的信息,当数据满足所设定的条件时,所述查询用于执行处理;
计算单元,基于所述获取单元获取的信息来计算查询之间的通信次数;
指定单元,基于由所述计算单元计算的通信次数来指定查询集合;以及
确定单元,确定将由所述指定单元指定的查询集合配置在同一装置中。
3.根据权利要求1或2所述的配置装置,其中所述指定单元指定查询之间的通信次数最大的查询集合。
4.根据权利要求3所述的配置装置,其中,当存在查询之间的通信次数相同的多个查询集合时,确定单元在查询之间的通信次数相同的查询集合中,指定具有最小负荷的查询集合或者具有在查询图上的查询之间的最短距离的查询集合,所述查询图表示所述多个查询之间的连接关系。
5.根据权利要求1或2所述的配置装置,进一步包括配置控制单元,所述配置控制单元执行控制,使得基于确定单元的确定结果将由所述指定单元指定的查询集合配置在同一装置中。
6.根据权利要求5所述的配置装置,其中所述配置控制单元执行控制,使得由所述指定单元指定的查询集合从负荷超过第一阈值的装置配置到负荷小于第二阈值的装置。
7.根据权利要求5所述的配置装置,其中,当所述多个装置的负荷超过第一阈值时,所述配置控制单元执行控制,使得由所述指定单元指定的查询集合被配置在与所述多个装置不同的装置中。
8.根据权利要求5所述的配置装置,其中,当所述多个装置的负荷小于第二阈值时,所述配置控制单元执行控制,使得由所述指定单元指定的查询集合以及配置在所述多个装置中的负荷超过第三阈值的装置中的查询配置在所述多个装置中的第一装置中,所述第一装置的数目小于所述多个装置的总数目。
9.根据权利要求5所述的配置装置,其中,当其中配置由所述指定单元指定的查询集合表示的任何查询的装置是仅执行该查询的装置时,所述配置控制单元执行控制,使得该装置未被设定为该查询以外的查询的配置目标的装置。
10.根据权利要求5所述的配置装置,其中,当所述指定单元指定的查询集合表示的任何查询仅能够由所述多个装置中的、其中配置该查询的装置执行时,所述配置控制单元执行控制,使得该查询未被配置在该装置以外的装置中。
11.根据权利要求1或2所述的配置装置,其中所述获取单元获取根据装置对查询的执行来记录或求和的信息。
12.一种由计算机执行的配置方法,所述配置方法包括:
对于其中配置多个查询的多个装置中执行的所述多个查询,获取表示查询之间的通信次数的信息,当数据满足所设定的条件时,所述查询用于执行处理;
基于由所获取的信息表示的通信次数来指定查询集合;以及
确定将指定的查询集合配置在同一装置中。
13.一种由计算机执行的配置方法,所述配置方法包括:
获取表示在其中配置多个查询的多个装置中执行的查询的执行顺序的信息,当数据满足所设定的条件时,所述查询用于执行处理;
基于所获取的信息来计算查询之间的通信次数;
基于所计算的通信次数来指定查询集合;以及
确定将指定的查询集合配置在同一装置中。
14.一种配置装置,包括:
获取单元,获取表示由其中配置一个或更多个事务请求语句的多个装置执行的事务请求语句之间的通信次数的信息,所述装置通过链接多个事务请求语句来执行事件;
指定单元,基于通信次数来指定事务请求语句的集合;以及
确定单元,确定用于将指定的事务请求语句的集合配置在同一装置中的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011263048A JP5862245B2 (ja) | 2011-11-30 | 2011-11-30 | 配置装置、配置プログラムおよび配置方法 |
JP2011-263048 | 2011-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103136322A true CN103136322A (zh) | 2013-06-05 |
CN103136322B CN103136322B (zh) | 2016-12-21 |
Family
ID=47631158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210424875.5A Active CN103136322B (zh) | 2011-11-30 | 2012-10-30 | 用于配置查询的装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9141677B2 (zh) |
EP (1) | EP2600259B1 (zh) |
JP (1) | JP5862245B2 (zh) |
CN (1) | CN103136322B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105450964A (zh) * | 2014-09-30 | 2016-03-30 | 杭州海康威视***技术有限公司 | 对录像数据进行云存储的方法、***及管理节点 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3029581B1 (en) | 2013-07-30 | 2019-10-09 | Fujitsu Limited | Processing program, processing system, and processing method |
WO2015087449A1 (ja) * | 2013-12-13 | 2015-06-18 | 株式会社日立製作所 | 計算機システムおよび計算機システムの制御方法 |
JP6428012B2 (ja) * | 2014-07-16 | 2018-11-28 | 富士通株式会社 | 分散処理プログラム、分散処理管理装置及び分散処理方法 |
US10089362B2 (en) * | 2014-08-13 | 2018-10-02 | Software Ag | Systems and/or methods for investigating event streams in complex event processing (CEP) applications |
JP6626198B2 (ja) * | 2016-06-27 | 2019-12-25 | 株式会社日立製作所 | 管理装置、実行環境設定方法、ストリームデータ処理システム |
US11461335B1 (en) | 2021-04-09 | 2022-10-04 | Snowflake Inc. | Optimized processing of data in different formats |
US11100111B1 (en) | 2021-04-09 | 2021-08-24 | Snowflake Inc. | Real-time streaming data ingestion into database tables |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110202550A1 (en) * | 2010-02-16 | 2011-08-18 | Qiming Chen | Functional-form queries |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030158842A1 (en) * | 2002-02-21 | 2003-08-21 | Eliezer Levy | Adaptive acceleration of retrieval queries |
US20040230581A1 (en) * | 2003-05-15 | 2004-11-18 | Chang-Hung Lee | Processing distributed mobile queries with interleaved remote mobile joins |
JP2005004676A (ja) * | 2003-06-16 | 2005-01-06 | Fujitsu Ltd | 適応型分散処理システム |
JP4485230B2 (ja) | 2004-03-23 | 2010-06-16 | 株式会社日立製作所 | マイグレーション実行方法 |
US7610397B2 (en) | 2005-02-28 | 2009-10-27 | International Business Machines Corporation | Method and apparatus for adaptive load shedding |
JP4687253B2 (ja) * | 2005-06-03 | 2011-05-25 | 株式会社日立製作所 | ストリームデータ処理システムのクエリ処理方法 |
US8103656B2 (en) * | 2008-02-20 | 2012-01-24 | Infosys Technologies Limited | Integrated distributed query processor for data grids |
US8060614B2 (en) | 2008-06-19 | 2011-11-15 | Microsoft Corporation | Streaming operator placement for distributed stream processing |
CN101685449B (zh) * | 2008-09-26 | 2012-07-11 | 国际商业机器公司 | 一种用于连接多个异构分布式数据库中的表的方法和*** |
JP2010086145A (ja) * | 2008-09-30 | 2010-04-15 | Hitachi East Japan Solutions Ltd | 分散処理システム |
JP5149840B2 (ja) * | 2009-03-03 | 2013-02-20 | 株式会社日立製作所 | ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置 |
US20110029985A1 (en) * | 2009-07-31 | 2011-02-03 | Nokia Corporation | Method and apparatus for coordinating resource access |
US8352945B2 (en) * | 2009-08-11 | 2013-01-08 | International Business Machines Corporation | System, method, and apparatus for scan-sharing for business intelligence queries in an in-memory database |
US8688683B2 (en) * | 2009-11-30 | 2014-04-01 | Business Objects Software Ltd. | Query plan reformulation |
US9172678B2 (en) * | 2011-06-28 | 2015-10-27 | At&T Intellectual Property I, L.P. | Methods and apparatus to improve security of a virtual private mobile network |
-
2011
- 2011-11-30 JP JP2011263048A patent/JP5862245B2/ja active Active
-
2012
- 2012-10-04 US US13/644,978 patent/US9141677B2/en active Active
- 2012-10-24 EP EP12189718.5A patent/EP2600259B1/en active Active
- 2012-10-30 CN CN201210424875.5A patent/CN103136322B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110202550A1 (en) * | 2010-02-16 | 2011-08-18 | Qiming Chen | Functional-form queries |
Non-Patent Citations (1)
Title |
---|
JASON SONNEK等: "STARLING:MINIMIZING COMMUNICATION OVERHEAD IN VIRTUALIZED COMPUTING PLATFORMS USING DECENTRALIZED AFFINITY-AWARE MIGRATION", 《DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF MINNESOTA》, 31 December 2010 (2010-12-31) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105450964A (zh) * | 2014-09-30 | 2016-03-30 | 杭州海康威视***技术有限公司 | 对录像数据进行云存储的方法、***及管理节点 |
CN105450964B (zh) * | 2014-09-30 | 2020-03-17 | 杭州海康威视***技术有限公司 | 对录像数据进行云存储的方法、***及管理节点 |
Also Published As
Publication number | Publication date |
---|---|
US9141677B2 (en) | 2015-09-22 |
JP5862245B2 (ja) | 2016-02-16 |
CN103136322B (zh) | 2016-12-21 |
US20130138686A1 (en) | 2013-05-30 |
EP2600259B1 (en) | 2021-01-20 |
EP2600259A3 (en) | 2015-01-28 |
JP2013114626A (ja) | 2013-06-10 |
EP2600259A2 (en) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103136322A (zh) | 用于配置查询的装置和方法 | |
Ashok et al. | Vehicular cloud computing through dynamic computation offloading | |
CN103763378A (zh) | 基于分布式流式计算***的任务处理方法、***及节点 | |
CN110738389A (zh) | 工作流处理方法、装置、计算机设备和存储介质 | |
CN106712981B (zh) | 一种节点变更通知方法及装置 | |
Mitzenmacher | Analyzing distributed join-idle-queue: A fluid limit approach | |
US7464348B1 (en) | Method and system for mapping source elements to destination elements as interconnect routing assignments | |
US20200084121A1 (en) | Node of a Network and a Method of Operating the Same for Resource Distribution | |
CN104981781A (zh) | 分布式计算架构 | |
CN103218380A (zh) | 服务器装置和保证数据次序的方法 | |
WO2020236250A1 (en) | Efficient freshness crawl scheduling | |
Huang et al. | A Simulation‐Based Approach of QoS‐Aware Service Selection in Mobile Edge Computing | |
CN104754021A (zh) | 用于促进对分布式存储***中的数据的访问的装置和方法 | |
CN1783121A (zh) | 用于执行设计自动化的方法和*** | |
CN101495978B (zh) | 减少总线连接的消费者和产生者之间的消息流 | |
CN104951855A (zh) | 用于促进对资源的管理的装置和方法 | |
Prudius et al. | Averaging frameworks for simulation optimization with applications to simulated annealing | |
CN103685405B (zh) | 网络服务***及其更新固件的方法 | |
JP6963465B2 (ja) | 計算機システム及びデータ処理の制御方法 | |
CN110659125A (zh) | 一种分析任务执行方法、装置、***及电子设备 | |
US10972353B1 (en) | Identifying change windows for performing maintenance on a service | |
CN103366238A (zh) | 自动分配计算任务的方法和设备 | |
EP2600247B1 (en) | Server device, query movement control program and query movement control method | |
CN112949887B (zh) | 派件路径的规划方法、装置、设备及计算机可读存储介质 | |
JP4026456B2 (ja) | 計算機システム及び情報収集方法 |
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 |