CN106104527B - 流式查询资源控制 - Google Patents

流式查询资源控制 Download PDF

Info

Publication number
CN106104527B
CN106104527B CN201580012047.2A CN201580012047A CN106104527B CN 106104527 B CN106104527 B CN 106104527B CN 201580012047 A CN201580012047 A CN 201580012047A CN 106104527 B CN106104527 B CN 106104527B
Authority
CN
China
Prior art keywords
query
queries
computing
computing entity
sending
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.)
Active
Application number
CN201580012047.2A
Other languages
English (en)
Other versions
CN106104527A (zh
Inventor
M·沃伊诺维奇
C·格坎特西迪斯
B·宗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106104527A publication Critical patent/CN106104527A/zh
Application granted granted Critical
Publication of CN106104527B publication Critical patent/CN106104527B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

描述了流式查询资源控制,例如,将流式查询分配给提供流式查询平台的数据中心中的服务器。在各实施例中,以试图平衡服务器之间的负荷以及降低数据流源与服务器之间的网络业务成本的方式将流式查询分配给服务器。在各示例中,考虑到查询类型,其中查询类型是查询所使用的一个或多个数据流源的标识,并且任选地还是数据流源的业务速率。在一些示例中,用于通过在线方式分配进入的查询的过程被描述,并且在一些示例中,描述了用于以离线方式分配查询的过程。在示例中,使用网络业务成本度量,其考虑到将给定查询添加到服务器的增量的网络业务成本。

Description

流式查询资源控制
背景技术
流式查询包括用于正在进行的对来自一个或多个数据流的信息进行检索的搜索准则,例如新闻推送、天气更新数据流、航程数据流、金融市场数据流以及持续更新信息的其它源的。
现有的流式查询平台使得能够代表诸如组织或公司的实体来管理大规模查询。查询是大规模的,因为使用查询检索的数据量相对较大。通过使用流式查询平台,实体获得了进行中的搜索结果的益处,而无需为进行中的查询的执行提供资源(计算资源和通信资源)。
随着对流式查询的需求增加,存在有效地且高效地管理用于操作那些查询的资源的需要。
下面所描述的实施例不限于解决现有数据中心和/或流式查询平台的任意或全部缺点的实施方式。
发明内容
下面提供了本公开的简化概述,从而向读者提供基本理解。该概述不是公开内容的延伸性的概述,也不确定关键/重要元素或勾勒本说明书的范围。其唯一目的是作为后面呈现的更详细说明的前序而以简化的形式呈现本文公开的概念的选择。
描述了流式查询资源控制,例如将流式查询分配给提供流式查询平台的数据中心的服务器。在各个实施例中,以寻求服务器之间的负荷平衡以及还降低数据流源与服务器之间的网络业务成本的方式,将流式查询分配给服务器。在各个示例中,考虑了查询类型,其中查询类型是查询所使用的一个或多个数据流源的标识,可选地,还考虑了数据流源的业务速率。在一些示例中,描述用于以在线方式分配进入的查询的过程,并且描述了用于以离线方式分配查询的过程。在示例中,使用网络业务成本度量,其考虑了在服务器中增加给定查询的增加的网络业务成本。
许多附加的特征将更易于理解,因为通过参考结合附图考虑的下面的详细说明,这些附加特征更好理解。
附图说明
结合附图理解下面的详细说明,本说明书将更好理解,其中:
图1是流式查询操作执行的数据中心的示意图;
图2是图1的更详细的查询分配器装备的示意图;
图3是在在线模式下图2的查询分配器的操作方法的流程图;
图4是用于在在线模式与离线模式之间选择的图2的查询分配器中的另一操作方法的流程图;
图5是可以在在线模式下可在查询分配器中实施的使用预留的方法的流程图;
图6是查询具有单个源的用于离线模式的查询分配器中的操作方法的流程图;
图7是查询具有多个源的用于离线模式的查询分配器中的操作方法的流程图;
图8是查询具有多个源的用于离线模式的查询分配器中的操作方法的流程图;
图9图示出可以实现用于数据中心控制的流式查询分配器装备的实施例的示范性的基于计算的设备。
在附图中相似的附图标记用于指代相似的部件。
具体实施方式
下面结合附图提供的详细说明意在作为本示例的描述,而不意在代表可构造或使用本示例的唯一的形式。该说明书阐述了示例的功能以及用于构造和操作示例的步骤序列。然而,可通过不同的示例来实现相同或等同的功能和序列。
图1是流式查询操作执行的数据中心中的示意图。数据中心100包括多个计算实体,诸如服务器102,104,106、虚拟机或其它计算设备。数据中心100通过任何适合类型的通信网络来与多个数据流116,118通信。数据流116,118(也称为源)各自具有业务速率,该业务速率是数据从源输出或者使得为源可用的速率。业务速率可以随时间而变化。数据中心内的计算实体可以彼此通信,但是这不是必要的。
位于数据中心处的服务器中的单个服务器具有用于执行一个或多个流式查询的容量。在图1的示例中,服务器102包括两个流式查询108,110;服务器106具有一个流式查询112;服务器104具有一个流式查询114。这仅是例子。数据中心100可以存在更多的计算设备,单个的计算设备可以托管大量的流式查询,其中输入到上述流式查询的源的业务速率相对低(例如,与每秒或每分钟多次发生数据更新相比,针对天气更新流、航程更新流和以相对低频率发生更新的其它流)。
单个的流式查询接收来自至少一个数据流的输入。在图1的示例中,图示的流式查询是单源流式查询,其接收来自仅一个数据流的输入。然而,流式查询可以接收来自两个或更多个不同数据流的输入。
在本文所描述的示例中,数据中心100被安排为查询流式平台。数据中心处的计算实体被配置为实现提供流式查询托管服务。诸如智能手机 124、126、128、130,平板式计算机、膝上型计算机、个人计算机或其它终端用户设备的终端用户设备使得终端用户能够输入流式查询。终端用户 122输入的流式查询例如通过诸如信息检索***的中间***来发送到流式查询分配器120。流式查询分配器120将其接收到的流式查询分配给数据中心100中的计算实体。流式查询分配器120使用智能分配过程,从而控制在哪些计算实体处托管哪些流式查询。这实现了改善的数据中心控制,例如,以平衡数据中心处的计算实体之间的工作负荷和/或更高效地使用数据中心资源。另外,减少了数据流与数据中心之间的网络业务。这节约了通信带宽并且还降低了数据分组丢失的风险,从而使得改善流式查询输出的品质。工作负荷平衡和网络业务的减少允许部署可扩展的平台,并且允许及时处理流式查询。
在数据中心处的查询执行服务可以运行于普通计算平台之上。例如,在数据中心中的计算实体之间没有可用的高效的分配***(诸如多播)。因此,当服务器执行从特定的源读取的一个或多个查询时,则平台创建内部网络流以将流传送给该服务器,并且消耗与流速率成比例的网络资源。流可以至多在数据中心的每个计算实体中被传送一次。
在图1的示例中,流式查询包括对于针对特定地点或航班的天气更新请求或者航程更新请求。这些仅是示例;可使用从一个或多个数据流中搜索数据的其它流式查询。数据流116,118可以是任何使得新数据以规律或非规律的间隔可用于其它计算实体的源。例如,新闻推送,天气预报推送,业务更新,共享价格流以及其它。
流式查询包括软件,其规定一个或多个数据流且还包括待应用于上述数据流的一个或多个规则或准则。例如,流式查询可以充当从包括有关很多航程的数据的数据流中挑选出有关特定航程的数据的过滤器。在另一示例中,流式查询可以充当聚合器和过滤器。例如,过滤来自两个源的数据且组合结果。这些是查询可包括的操作的示例。其它示例是可能的。
在各个示例中,各个流式查询使用数据中心100的相对少量的计算资源,使得数千或数百万的流式查询可以在任何一个时间由数据中心托管。各个的流式查询具有不同的寿命时间。例如,有关一次性事件的流式查询与有关每日循环事件的流式查询相比具有较短的寿命。随着时间经过,在数据中心处托管的流式查询被执行,终止以及删除,并且新的流式查询到达以被托管。通过类似的方式,数据流到达,终止,以及改变业务速率。数据中心100内的计算实体也经历故障,以及添加新的计算实体,去除旧的计算实体。流式查询分配器120具有处理这些类型的变化中的一个或多个的挑战。例如,流式查询分配器120可以试图以半永久方式将查询分配给服务器。分配器可试图最小化在计算实体之间移动查询,例如减少开销,因为这要求移动查询状态,同时确保查询不错过任何流更新。当计算实体失败时,可以重新分配查询。当查询到达时,分配器旨在对向服务器分配查询做出好的决策。期望查询中(查询具有有限的寿命)以及服务器中(由于服务器失败和再循环)的波动。查询动态地到达且离开,并且通过分配器向服务器分配查询对于查询和服务器的动态是鲁棒的。
流式查询的结果可以发送到终端用户设备,或者直接从数据中心100 发送到终端用户设备,或者经由另一服务。例如,流式查询结果可以返回到信息检索***,信息检索***控制结果如何传送到终端用户设备。在一些示例中,可使用推送通知***将消息发送给终端用户设备,这得到了终端用户设备处的操作***所产生的弹出式显示(例如,“祝贺”消息)。在一些示例中,电子邮件***可用来将流式查询结果电子邮件发送到终端用户设备。在一些示例中,可使用网络套接字来将流式查询结果发送到终端用户设备,例如,以更新终端用户设备的图形用户界面显示器处的实况“瓦片(tile)”。
通过使用数据中心100来托管流式查询,从终端用户设备中去除了处理负担。另外,在数据流与执行流式查询的计算实体之间实现了网络业务效率。
图2是图1的查询分配器设备的更详细的示意图。查询分配器200是利用软件和/或硬件来实现的。查询分配器包括用于通过通信网络来访问数据流的网络接口218。网络接口218还使得查询分配器能够与自其接收流式查询的一个或多个计算***通信。例如,信息检索***。网络接口218可以使得查询分配器能够将流式查询的结果发送给终端用户设备,直接地或者经由另一计算服务(例如,推送通知***或信息检索***)。
查询分配器包括存储器202,其中至少存储有:服务器数据204、查询数据206、源数据208、一个或多个网络业务度量210、负荷平衡参数212、分配算法214。服务器数据至少包括有关多少计算实体在数据中心处可用以及那些计算实体具有何种可用容量的信息。例如,服务器数据可以包括数据中心处的计算实体的标识。服务器数据还可以包括针对数据中心处的各个计算实体所维护的状态信息。针对计算实体所维护的状态信息可包括输入到计算实体的任何数据流的标识。
对于各个计算实体,查询数据可以包括关于以下各项的信息:哪些查询在计算实体中是活动的、在计算实体中托管的查询的数量、在计算实体中托管的查询的类型以及可选的有关查询的统计信息。
查询的类型可以是由查询所使用的数据流的标识,并且可选地,也可以是查询所使用的数据流的业务速率。
源数据208可以包括可用于数据中心的源的标识以及源的业务速率。
网络业务度量210可以是数据流与数据中心之间的任何规则、标准、阈值或网络业务的度量。多个不同的网络业务度量可以存储在存储器202 中以便由分配器216使用。
负荷平衡参数212是可以与用于评估工作负荷如何均匀地分布在数据中心中的服务器中的规则、阈值或准则相结合地使用的任意值或值的范围。
分配算法214是分配器216在控制数据中心中的计算实体之间的查询的分配时所使用的进程的库。分配算法的示例稍后在该文档中进行描述。
查询分配器216包括用于执行分配算法的软件和/或硬件逻辑。数据中心接口220用于发送指令以将查询安置在数据中心中的分配的计算实体中。数据中心接口220还接收关于数据中心中的行为的信息和/或监控数据中心中的行为。例如,检测计算实体的失败,检测计算实体的添加,检测计算实体中可用的容量。
替代地,或者另外地,本文所描述的查询分配器的功能可以至少部分地通过一个或多个硬件逻辑组件来执行。例如,不是限制,能够使用的硬件逻辑组件的示例类型包括现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑器件(CPLD)、图形处理单元(GPU)。
现在描述图2的查询分配器的操作的各个示例。在一些示例中,查询分配器以离线模式工作,在离线模式中,一批查询或查询库可供用于分配。在一些示例中,查询分配器工作在在线模式下,其中,查询流到达且来自流的各个查询依次被分配,而不需要知道哪些查询将随后到达。查询分配器可以在在线模式与离线模式之间切换,如下文更详细说明的。
图3是在在线模式下图2的查询分配器中的操作方法的流程图。在在线模式期间,在查询分配器中接收到查询且在贪婪过程中分配给数据中心中的一个服务器。贪婪过程是这样的过程:通过该过程,分配考虑到当前的情形,而不是未来的情形,因此,一旦查询分配给服务器,其在贪婪过程中保留在该服务器中。
在查询分配器中接收300查询。对数据中心查询平台是否处于初始阶段做出可选的检查302。在初始阶段期间,几乎没有查询被安置在数据中心中,服务器处可用的容量较高。可选的检查302可以包括:监控接收到的查询的累积量,以及将监控到的量与阈值进行比较。如果可选的检查302 指示查询平台处于初始阶段,则查询分配器继续使用绝对负荷平衡约束 304。例如,绝对负荷平衡约束可以是可用于查询的规定容量(其可以在每个服务器中都是相同的);查询可分配给服务器,直至满足规定容量。例如,进入的查询可以在一定时间段内分配给相同的服务器,直至该服务器达到绝对负荷平衡约束。例如,这使得一个服务器在移到下一服务器之前充满查询,等等。例如,可以根据与数据中心的状态有关的数据在绝对负荷平衡度量与相对负荷平衡度量之间切换负荷平衡度量。
如果可选的检查302指示查询平台不处于初始阶段,则查询分配器继续使用相对负荷平衡约束306。相对负荷平衡约束是考虑到多于服务器中的一个处的当前容量的负荷平衡约束。例如,相对负荷平衡约束可以选择具有大部分容量或者具有在至少一个其它服务器之上的容量的服务器中的一个。
一旦选择了负荷平衡约束(绝对的或者相对的),查询分配器继续使用如步骤308、310、312中指示的贪婪分配过程。图3的方法随后可以随着后续查询到达而重复。
如果接收到的查询要添加到那些服务器中,则查询分配器从可用的服务器k中查找满足平衡约束(根据该方法的先前步骤为相对的或绝对的) 的候选服务器C。这是通过计算可用服务器处的更新的容量以及基于负荷平衡约束进行比较来实现的。
查询分配器基于网络业务度量而从候选服务器中选出310服务器。网络业务度量是对将查询所需的数据流发送到服务器的网络业务成本的测量。如果存在多于一个的选择的服务器,则查询分配器继续进行到步骤312。步骤312包括从选择的服务器中挑选装载负荷的服务器且将接收到的查询分配给它。分配过程包括将控制消息或其它指令发送到选择的服务器,这触发该服务器安置接收到的查询。如果仅从候选服务器中选出一个服务器,则可省去步骤312。
可使用各种不同的网络业务度量。例如,网络业务度量可考虑到查询类型,其中查询的类型是查询所使用的一个或多个数据源的标识符。查询的类型还可以包括查询所使用的数据源的业务速率信息。
在一些示例中,图3的方法使用最小增量成本度量来用于网络业务度量。该度量测量作为提出向给定服务器添加进入的查询而在该服务器处产生的业务成本的变化。该度量是针对数据中心处的不同的服务器进行计算的,并且比较结果以选择一个服务器。例如,选出具有业务成本的最小变化的服务器。
在一些示例中,图3的方法使用针对网络业务度量的最小源成本度量。该度量测量在提议的进入查询被安置在给定服务器中的情况下,在该给定服务器处的新的总业务成本。该度量是针对数据中心处的不同服务器进行计算的,并且比较结果以选择一个服务器。
在一些示例中,图3的方法使用针对网络业务度量的最小查询类型度量。该度量测量在提议的进入查询被安置在给定服务器中的情况下,位于服务器处的查询类型的相似性。该度量是针对数据中心中的不同服务器来计算的,比较结果以选择一个服务器。
根据经验发现上文参考图3所描述的过程给出了良好的结果,这比随机向服务器分配查询表现得更佳。另外,已经发现最小增量成本度量给出了尤其好的结果并且在广泛的场景下表现很好,包括查询和服务器的波动。
如上文所提到的,图3与在线模式期间的贪婪分配过程有关。在贪婪分配使用的情况下,数据中心中的服务器会变得关于查询分配不平衡或者非最优安排。这是因为,贪婪分配过程本质上没有考虑到未来的场景。例如,相同类型的查询可以在数据中心中变得分散,而不是集中于一个服务器,因此拉高了网络业务成本。为降低数据中心中的此类不平衡的风险,离线查询分配可以以规律的或者不规律的间隔与在线查询交错。现在参考图4来描述。在离线查询分配情形下,查询分配具有对待分配的多个查询的知识并且能够基于该知识来分配。
在在线查询分配正在进行中400的情况下,查询分配器可以监控402 数据中心行为统计数据。例如,查询分配器可以监控网络业务级别、服务器负荷和其它数据。如果查询分配器检测到重新平衡的需要404,则其移至离线分配算法406。在离线分配期间,安置在数据中心的现有的查询可以被移至不同的服务器,从而获得在负荷平衡和网络业务成本这两方面的更佳布置。一旦离线分配完成,查询分配器可以返回在线查询分配模式406。当在步骤404中做出重新平衡的决策时,查询分配器可以使用规则、准则、阈值或其它数据以及监控到的统计数据。然而,还可以通过配置查询分配器以在规定时间或者以规定的间隔实施离线分配,来省去步骤402和404。
在一些示例中,离线查询分配用于预留数据中心中的服务器处的容量。预留的容量随后可用于在线分配。例如,参考图5,查询分配器可布置成预测500进入的查询类型以及在规定时间段内的频率。该预测可利用有关进入到查询分配器的查询的历史数据来进行。查询分配器使用预测数据来预留502数据中心的服务器处的查询分配。在在线模式中,查询分配器接收 504待分配的查询并且其将接收到的查询分配506给服务器处预留的容量。例如,在服务器A处预留的容量可以包括用于类型X的50个查询的存储槽(slot)以及类型Y的查询的10个存储槽。查询分配器根据进入的查询的查询类型来填充预留的存储槽。预留的存储槽也可以在离线分配过程被划分优先级,使得查询分配器能够根据该优先级来填充存储槽。通过该方式,可以在在线分配期间获得离线查询分配的益处,其中对进入查询的良好预测是可能的。这减少了网络业务且提高了数据中心的工作容量。
在图4和图5的方法或其它离线分配方法中,查询分配器可使用各种不同的离线分配过程。现在参考图6至图8来给出可使用的离线分配过程的示例。
图6是在单源情况下离线分配过程的流程图,其中单个查询从单个源取得输入。图6的过程可以实现于图1的查询分配器中。查询分配器发送控制消息到数据中心的服务器,指示服务器初始化600规定量的容量,以便由查询分配服务使用。例如,查询分配器使用如上所述的绝对负荷平衡准则来计算规定量的容量。查询分配器具有要在离线过程中分配的查询池的知识并且可以在做出初始化指令时使用有关查询池的信息。还可以通过其它方式来预先配置或计算规定量的容量。
查询分配器基于例如初始化的服务器容量来选择602数据中心的服务器。查询分配器从位于要分配的查询池中的可能类型的查询中选出查询类型604。例如,查询分配器可以选择查询池中的最经常出现的查询类型,和 /或可以选择具有最大业务速率的查询类型604。也即,查询类型的选择可以基于查询类型频率和/或查询类型业务速率。可使用其它选择查询类型的准则。
查询分配器将尽可能多的所选择类型的查询分配给所选择的服务器 606。查询分配器随后更新查询池和服务器容量数据。该过程随后通过选择具有空闲的初始化容量的服务器而从步骤602重复。
图7是用于在多源情形下的离线查询分配的在查询分配器处的方法的示例,其中查询可以从两个或两个以上的源取得输入。在该示例中,查询分配器选择700任意的服务器作为用于分配的目标服务器。查询分配器从查询池中的可用的查询类型中选择702任意的查询类型。查询分配器将选择类型的可行数量的查询分配给选择的服务器。其将选择类型的其余查询放回查询池中。查询分配器检查是否来自池的全部查询已经被分配704。如果是,则过程结束;否则过程从步骤700重复。
图8是用于在多源情形下的离线查询分配的查询分配中的方法的另一示例。在查询池中的查询按类型组合800,并且按照频率(即,每组中查询的数量)的顺序对组进行排序。按减小的容量对服务器排序802。查询分配器选择804得到最小增量业务成本或最小业务成本的查询-服务器对。查询分配器分配806所选择类型的查询到所选择的服务器,直到服务器达到负荷平衡准则,或者直到所选择类型的查询用尽。该过程从步骤802重复。
图9示出了可以实现为任意形式的计算和/或电子设备的示范性的基于计算的设备900的各组件,并且其中可以实现数据中心查询分配器的实施例。
基于计算的设备900包括一个或多个处理器902,其可以是微处理器、控制器或者任何其它适合类型的用于处理计算机可执行指令以控制设备的操作从而控制在离线或在线模式下向数据中心的服务器分配查询的处理器。在一些示例中,例如,在使用片上***架构的情况下,处理器902可以包括一个或多个固定功能块(也称为加速器),其以硬件(而不是软件或固件)实现了向服务器分配查询的方法的一部分。可以在基于计算的设备处提供包括操作***904或者任何其它适合的平台软件的平台软件,以使应用软件能够在设备上执行。例如,数据中心管理组件906包括如本文所描述的查询分配器,以使得能够控制数据中心的计算资源。存储器910处的数据库908可以存储分配算法、来自数据中心的监控数据、数据源信息、准则、阈值、规则和其它数据。
可以利用基于计算的设备900能访问的任何计算机可读介质来提供计算机可执行指令。计算机可读介质可包括例如计算机存储介质,诸如存储器910和通信介质。诸如存储器910的计算机存储介质包括易失性和非易失性的、可移除和非可移除的介质,其通过用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术来实现。计算机存储介质包括但不限于RAM、ROM、EPROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁盒、磁带、磁盘存储或其它磁存储设备、或者任何其它能够用于存储信息以便由计算设备访问的非传输介质。相反,通信介质可以具体实施计算机可读指令、数据结构、程序模块或者调制数据信号的其它数据,诸如载波,或其它传输机制。如本文所定义的,计算机存储介质不包括通信介质。因此,计算机存储介质不应解释为传播信号本身。传播信号可以存在于计算机存储介质中,但是传播信号本身不是计算机存储介质的示例。虽然显示计算机存储介质(存储器910)位于基于计算的设备900内,但是将意识到,存储可以是分布式的或者远程定位且经由网络或其它通信链路(例如,使用通信接口912)来访问。通信接口912使得基于计算的设备900能够与诸如在通信网络上可得到的数据流的数据源通信。通信接口912还使得基于计算的设备900能够接收直接或者经由中间***来自终端用户设备的查询以及将查询执行的输出发送给那些实体。
基于计算的设备900还包括被布置为与数据中心920接口的输入/输出控制器914,例如,将控制消息发送到数据中心的服务器和/或监控数据中心中的行为,例如业务速率、服务器负荷、误差检测、查询波动以及其它。
输入/输出控制器914可以将显示信息输出到显示器设备916,该显示器设备916可以与基于计算的设备900分离或者一体。显示信息可以提供图形用户界面,例如,使人类操作者能够观看有关数据中心和查询服务的管理数据。输入/输出控制器914可被布置成接收并处理来自一个或多个设备的输入,诸如用户输入设备918(例如,鼠标、键盘、照相机、麦克风或其它传感器)。在一些示例中,用户输入设备918可以检测语音输入、用户姿势或其它用户动作,并且可以提供自然用户接口(NUI)。该用户输入可用来查看有关数据中心的管理数据,选择查询分配算法,在在线模式与离线模式之间选择,以及其它。在实施例中,如果其是触摸敏感显示器设备,则显示器设备916还可以充当用户输入设备918。输入/输出控制器914还可以将数据输出到除了显示器设备之外的设备,例如,本地连接的打印设备。
输入/输出控制器914、显示器设备916和用户输入设备918中的任一个可以包括NUI技术,其使得用户能够以自然的方式与基于计算的设备交互,没有诸如鼠标、键盘、远程控件等输入设备所施加的人工约束。可提供的NUI技术的示例包括但不限于那些依赖于语音和/或语言识别、触摸和/或触针识别(触摸敏感显示器)、在屏幕上以及邻近屏幕的姿态识别、空中姿势、头与眼睛跟踪、语音和语言、视觉、触摸、姿势和机器智能的技术。可使用的NUI技术的其它示例包括意图和目标理解***,使用深度照相机 (诸如立体照相机***、红外照相机***、rgb照相机***以这些的组合) 的运动姿势检测***,使用加速度计/陀螺仪、面部识别、3D显示、头、眼睛和注视跟踪、沉浸式增强现实和虚拟现实***的运动姿势检测以及利用电场感应电极(EEG和相关方法)来感应脑活动的技术。
术语“计算机”或“基于计算的设备”在本文中用来指代任何具有处理能量而使其能够执行指令的设备。本领域技术人员将认识到,这些处理能力并入很多不同的设备中并且因此术语“计算机”或“基于计算的设备”各自包括PC、服务器、移动电话(包括智能手机)、平板式计算机、机顶盒、媒体播放器、游戏控制台、个人数字助理和许多其它设备。
本文所描述的方法可以通过有形存储介质上的机器可读形式的软件来执行,例如包括计算机程序代码手段的计算机程序的形式,该计算机程序代码手段适于在程序运行于计算机上时且计算机程序可以具体实施到计算机可读介质上的情况下执行本文所描述的任意方法中的全部步骤。有形存储介质的示例包括包含诸如磁盘、拇指驱动器、存储器等计算机可读介质的计算机存储设备,而不包括传播信号。传播信号可以存在于有形存储介质中,但是传播信号本身不是有形存储介质的示例。软件可适合于在并行处理器或串行处理器上执行,使得方法步骤可以任何适合的顺序或者同时实施。
这确认了,软件可以是有价值的、单独可交易的商品。目的在于涵盖运行于“不灵活”或标准硬件上或者控制它们从而实施所期望的功能的软件。还意在涵盖“描述”或定义硬件的配置的软件,诸如HDL(硬件描述语言)软件,这用于设计硅芯片,或者用于配置通用可编程芯片,以实施期望的功能。
本领域技术人员将认识到,用于存储程序指令的存储设备能够分布到网络上。例如,远程计算机可以存储描述为软件的过程的示例。本地或终端计算机可以访问远程计算机且下载软件的部分或全部以运行程序。可选地,本地计算机可以根据需要下载软件,或者在本地终端执行一些软件指令,并且在远程计算机(或计算机网络)处执行一些软件指令。本领域技术人员还将认识到,通过使用本领域技术人员公知的常规技术,软件指令中的全部或部分可以通过专用电路来实施,诸如DSP、可编程逻辑阵列等。
在本文中给出的任何范围或设备值可以扩展或改动,而不失去所追求的效果,这是技术人员显而易见的。
虽然以特定于结构特征和/或方法行为的语言描述了主题,应当理解,在随附权利要求中限定的主题不一定限于上文所描述的具体的特征或行为。相反,上述的具体的特征和行为被公开作为实现权利要求的示例的形式。
将理解的是,上述的益处和优点可以与一个实施例有关或者可以与多个实施例有关。实施例不限于那些解决了任意或全部所述问题的实施例或者那些具有任意或全部所述的益处和优点的实施例。将进一步理解,对“一个(an)”项的提及是指一个或多个那些项。
本文所描述的方法的步骤可以适当地按任何适合的顺序或者同时地实施。另外,单个的框可以从任何方法中删除,而不偏离本文所描述的主题的精神和范围。上述任意示例的方面可以与被描述为形成另外的示例的其它示例中的任一示例的方面相结合,而不失去所追求的效果。
术语“包括”在本文中表示包括所标识的方法框或元素,但是这些框或元素不包括排他性的列表,并且方法或装置可以包含额外的框或元素。
将理解的是,上面的说明仅通过示例的方式给出,本领域技术人员可以得到各种修改。上面的说明书、示例和数据提供了示范性的实施例的结构和使用的完整描述。虽然上文通过一定程度的特殊性或者参考一个或多个单个的实施例描述了各个实施例,本领域技术人员可以对公开的实施例做出若干改动,而不偏离本说明书的精神或范围。

Claims (10)

1.一种计算机实现的方法,包括:
在处理器处接收多个查询,其中所述多个查询中的各个查询与各自的数据流源相关联并且包括从相关联的数据流源中读取的处理器可执行的指令;
基于以下两项选择多个计算实体中的第一计算实体:
对所述多个计算实体之间的负载平衡的第一测量;和
对与所述多个查询中的第一查询相关联的数据流源和所述第一计算实体之间的通信业务成本的第二测量;
向所述第一计算实体发送第一控制指令,以触发所述第一计算实体安置所述第一查询;
基于以下两项选择多个计算实体中的第二计算实体:
对所述多个计算实体之间的负载平衡的第三测量;和
对与所述多个查询中的第二查询相关联的数据流源和所述第二计算实体之间的通信业务成本的第四测量;
向所述第二计算实体发送第二控制指令,以触发所述第二计算实体安置所述第二查询;
在向所述第一计算实体发送所述第一控制指令和向所述第二计算实体发送所述第二控制指令之后,重新平衡所述第一查询和所述第二查询,并且通过基于以下两点来选择所述多个计算实体中的第三计算实体、第四计算实体和第五计算实体以分配所述多个查询中的第三查询:
指示所述第三计算实体、所述第四计算实体和所述第五计算实体针对所述第一查询、所述第二查询和所述第三查询之间的负载平衡的第五测量;以及
指示所述第三计算实体、所述第四计算实体和所述第五计算实体中的至少一个与关联于所述第一查询、所述第二查询和所述第三查询中的至少一个的至少一个数据流源之间的通信业务成本的第六测量;
向所述第一计算实体发送控制指令以触发所述第一计算实体将所述第一查询移出所述第一计算实体;
向所述第二计算实体发送控制指令以触发所述第二计算实体将所述第二查询移出所述第二计算实体;
向所述第三计算实体发送控制指令以触发所述第三计算实体安装所述第一查询;
向所述第四计算实体发送控制指令以触发所述第四计算实体安装所述第二查询;以及
向所述第五计算实体发送控制指令以触发所述第五计算实体安装所述第三查询。
2.如权利要求1所述的方法,被实施为在线贪婪过程的一部分,其中所述查询是多个查询中的个体查询,并且计算和发送的步骤重复进行,以将所述多个查询安置在数据中心的计算实体处。
3.如权利要求2所述的方法,其中对负荷平衡的测量包括以下各项中的任意一项:在所述多个查询的第一子集的安置期间的绝对负荷平衡度量;以及在所述多个查询的第二子集的安置期间的相对负荷平衡度量。
4.如权利要求2所述的方法,其中对负荷平衡的测量是根据关于所述数据中心的状态的数据,在绝对负荷平衡度量与相对负荷平衡度量之间切换的。
5.如权利要求1所述的方法,其中对通信业务成本的测量测量以下各项中的一项或多项:在所接收的查询被安置在计算实体中的一个计算实体处的情况下在所述计算实体处的新的总业务成本;在所接收的查询被安置在计算实体中的一个计算实体处的情况下在所述计算实体处的查询类型的相似性。
6.如权利要求1所述的方法,其中所接收的查询是包括多个查询的池中的一个查询,并且所述方法包括:当计算所述多个计算实体中的所述选择的一个计算实体时,考虑关于所述池中的查询的数据。
7.如权利要求6所述的方法,包括以下各项中的任意一项:基于所述池中的查询的业务速率来选择查询类型并发送控制指令以将来自所述池的所选择的查询类型的查询安置在所述多个计算实体中的所述选择的一个计算实体处;选择查询类型并发送控制指令以将来自所述池的所选择的查询类型的规定数量的查询安置在所述多个计算实体中的所述选择的一个计算实体处;按查询类型对所述多个查询分组,查询类型是由查询使用的一个或多个数据流的标识,与选择查询类型中的一个查询类型相结合来选择所述多个计算实体中的所述选择的一个计算实体;以及发送控制指令以将所选择的查询类型的查询安置在所选择的计算实体处。
8.如权利要求6所述的方法,其中,所述池中的所述多个查询是被预测为将在规定时间间隔上接收的查询。
9.如权利要求8所述的方法,包括在数据中心中发送控制指令,以针对计算实体中的一个或多个计算实体处的查询预留资源。
10.一种计算机实现的方法,包括:
在处理器处接收第一查询,其中所述第一查询包括从至少一个数据流源中接收数据的计算机可执行指令;
基于以下两项选择多个计算实体中的第一计算实体:
对所述多个计算实体之间的负载平衡的测量;和
对所述至少一个数据流与所选择的计算实体之间的通信业务成本的测量;
其中,对通信业务成本的测量是对在计算实体中的一个计算实体处由于提议的将所述第一查询添加到该计算实体而引起的业务成本的变化进行测量;
向所述第一计算实体发送控制指令,以触发所述第一计算实体安置所述第一查询;
在所述处理器处接收第二查询;
通过至少部分地基于以下两项来确定不同于所述第一计算实体的第二计算实体,在所述多个计算实体中重新平衡所述第一查询和所述第二查询:
对所述多个计算实体之间的负载平衡的第二测量;和
对指示所述多个计算实体中的各个计算实体处由于提议的将所述第一查询和所述第二查询中的各个查询添加到所述各个计算实体而引起的业务成本的变化的通信业务成本的各个测量;以及
向所述第二计算实体发送控制指令,以触发所述第二计算实体安置所述第一查询。
CN201580012047.2A 2014-03-03 2015-03-02 流式查询资源控制 Active CN106104527B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/194,963 US9819558B2 (en) 2014-03-03 2014-03-03 Streaming query resource control
US14/194,963 2014-03-03
PCT/US2015/018257 WO2015134363A1 (en) 2014-03-03 2015-03-02 Streaming query resource control

Publications (2)

Publication Number Publication Date
CN106104527A CN106104527A (zh) 2016-11-09
CN106104527B true CN106104527B (zh) 2020-03-13

Family

ID=52686497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580012047.2A Active CN106104527B (zh) 2014-03-03 2015-03-02 流式查询资源控制

Country Status (4)

Country Link
US (1) US9819558B2 (zh)
EP (1) EP3114579B1 (zh)
CN (1) CN106104527B (zh)
WO (1) WO2015134363A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9613127B1 (en) 2014-06-30 2017-04-04 Quantcast Corporation Automated load-balancing of partitions in arbitrarily imbalanced distributed mapreduce computations
WO2018002724A1 (en) * 2016-06-28 2018-01-04 Alcatel Lucent Method and apparatus for query selection and admission (qsa) optimization for iot and other applications
CN108833531A (zh) * 2018-06-12 2018-11-16 合肥工业大学 一种基于数据中心能耗和网络能耗的数据放置方法
CN112035579B (zh) * 2019-06-03 2024-02-20 杭州海康威视数字技术股份有限公司 图管理、数据存储、数据查询方法、装置及存储介质
CN113435938B (zh) * 2021-07-06 2023-05-16 牡丹江大学 电力现货市场中分布式特征数据选择方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463454B1 (en) * 1999-06-17 2002-10-08 International Business Machines Corporation System and method for integrated load distribution and resource management on internet environment

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6556541B1 (en) * 1999-01-11 2003-04-29 Hewlett-Packard Development Company, L.P. MAC address learning and propagation in load balancing switch protocols
US7441045B2 (en) * 1999-12-13 2008-10-21 F5 Networks, Inc. Method and system for balancing load distribution on a wide area network
US7299291B1 (en) * 2000-05-18 2007-11-20 Akamai Technologies, Inc. Client-side method for identifying an optimum server
US20040083277A1 (en) * 2002-07-09 2004-04-29 Himachal Futuristic Communications Limited (Hfcl) Method for fast cost-effective internet network topology design
US7010538B1 (en) * 2003-03-15 2006-03-07 Damian Black Method for distributed RDSMS
US7383253B1 (en) * 2004-12-17 2008-06-03 Coral 8, Inc. Publish and subscribe capable continuous query processor for real-time data streams
US20070100960A1 (en) * 2005-10-28 2007-05-03 Yahoo! Inc. Managing content for RSS alerts over a network
US20100242042A1 (en) 2006-03-13 2010-09-23 Nikhil Bansal Method and apparatus for scheduling work in a stream-oriented computer system
US7853949B2 (en) 2006-03-13 2010-12-14 International Business Machines Corporation Method and apparatus for assigning fractional processing nodes to work in a stream-oriented computer system
US7738129B2 (en) * 2006-03-13 2010-06-15 International Business Machines Corporation Method and apparatus for assigning candidate processing nodes in a stream-oriented computer system
US7865614B2 (en) * 2007-02-12 2011-01-04 International Business Machines Corporation Method and apparatus for load balancing with server state change awareness
US8060614B2 (en) * 2008-06-19 2011-11-15 Microsoft Corporation Streaming operator placement for distributed stream processing
US9519728B2 (en) 2009-12-04 2016-12-13 Time Warner Cable Enterprises Llc Apparatus and methods for monitoring and optimizing delivery of content in a network
JP4967014B2 (ja) * 2009-12-16 2012-07-04 株式会社日立製作所 ストリームデータ処理装置及び方法
TWI414161B (zh) * 2011-01-28 2013-11-01 Univ Nat Chiao Tung 負載分配方法
US9065831B2 (en) * 2011-03-01 2015-06-23 Cisco Technology, Inc. Active load distribution for control plane traffic using a messaging and presence protocol
US9448849B2 (en) * 2011-08-31 2016-09-20 Oracle International Corporation Preventing oscillatory load behavior in a multi-node distributed system
US9923826B2 (en) * 2011-10-14 2018-03-20 Citrix Systems, Inc. Systems and methods for dynamic adaptation of network accelerators
US9910896B2 (en) * 2013-03-15 2018-03-06 Cisco Technology, Inc. Suspending and resuming continuous queries over data streams

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463454B1 (en) * 1999-06-17 2002-10-08 International Business Machines Corporation System and method for integrated load distribution and resource management on internet environment

Also Published As

Publication number Publication date
US20150249583A1 (en) 2015-09-03
CN106104527A (zh) 2016-11-09
EP3114579B1 (en) 2020-04-22
EP3114579A1 (en) 2017-01-11
WO2015134363A1 (en) 2015-09-11
US9819558B2 (en) 2017-11-14

Similar Documents

Publication Publication Date Title
US11567795B2 (en) Minimizing impact of migrating virtual services
CN106104527B (zh) 流式查询资源控制
JP6241300B2 (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
US10289973B2 (en) System and method for analytics-driven SLA management and insight generation in clouds
Maleki et al. Mobility-aware computation offloading in edge computing using machine learning
US9037880B2 (en) Method and system for automated application layer power management solution for serverside applications
CN112486648A (zh) 任务调度方法、装置、***、电子设备和存储介质
CN112437018A (zh) 分布式集群的流量控制方法、装置、设备和存储介质
CN111694646A (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
US11496413B2 (en) Allocating cloud computing resources in a cloud computing environment based on user predictability
CN112015521A (zh) 推理服务的配置方法、装置、电子设备及存储介质
KR102347375B1 (ko) 복수의 예측 모델을 기초로 가상 머신 워크 로드 예측 방법
CN111880914A (zh) 资源调度方法、资源调度装置、电子设备和存储介质
US12010169B2 (en) Dynamic management of locations of modules of a platform hosted by a distributed system
CN111865720B (zh) 用于处理请求的方法、装置、设备以及存储介质
US20140129598A1 (en) Dynamic management of log persistence
Swagatika et al. Markov chain model and PSO technique for dynamic heuristic resource scheduling for system level optimization of cloud resources
Jin et al. $ run $ r u n Data: Re-Distributing Data via Piggybacking for Geo-Distributed Data Analytics Over Edges
Danthuluri et al. Energy and cost optimization mechanism for workflow scheduling in the cloud
Ajmera et al. Dynamic Virtual Machine Scheduling Using Residual Optimum Power-Efficiency In The Cloud Data Center
KR102090306B1 (ko) 멀티 코어 시스템에서 태스크를 분배하기 위한 방법 및 그 전자 장치
Tairin et al. Embracing Uncertainty for Equity in Resource Allocation in ML Training
CN112698934A (zh) 资源调度方法和装置、pmd调度装置、电子设备、存储介质
JP2013242899A (ja) 監視制御システム、監視制御方法、監視制御サーバ及び監視制御プログラム
US11953978B2 (en) Method and system for performing service remediation in a distributed multi-tiered computing environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant