CN110383764B - 无服务器系统中使用历史数据处理事件的系统和方法 - Google Patents
无服务器系统中使用历史数据处理事件的系统和方法 Download PDFInfo
- Publication number
- CN110383764B CN110383764B CN201780077885.7A CN201780077885A CN110383764B CN 110383764 B CN110383764 B CN 110383764B CN 201780077885 A CN201780077885 A CN 201780077885A CN 110383764 B CN110383764 B CN 110383764B
- Authority
- CN
- China
- Prior art keywords
- pool
- event
- instances
- instance
- function
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- 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
-
- 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
- H04L41/0897—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及处理分布式计算环境中事件的技术。从事件队列接收包括可由实例执行的函数的事件。将所接收的事件映射至池中执行相应函数的实例。当确定所述池中的实例中至少一个不可用并且不包括对应于所述事件的所述函数时,在所述池中创建新实例,其中所述新实例包括对应于所述事件的所述函数。当具有相应函数的所述事件的发生模式的频率指示所述事件发生的频率较不频繁时,可以终止所述池中的实例,从而使得鲜有实例需要执行所述相应函数。否则,将所述事件调度至所述池中合适的实例执行。
Description
相关申请案交叉申请
本申请要求于2017年1月5日提交的、发明名称为“无服务器系统中使用历史数据处理事件的系统和方法(System and Method to Handle Events Using Historical Datain Serverless Systems)”的美国非临时专利申请第15/399,687号的优先权,其又要求于2016年12月16日提交的、发明名称为“无服务器系统中使用历史数据优化实例高速缓存的系统和方法(System and Method to Optimize Instance Cache Using Historical DataIn Serverless Systems)”的美国非临时专利申请第62/435,582号的优先权,其全部内容以引用的方式并入本文中。
背景技术
事件处理是分布式计算中的一个难题。事件是系统的一部分到系统的另一部分的发生事件的通知。事件可由系统的若干部分(例如,客户端)产生,并且由若干其它组件(例如,数据中心中的服务器)处理。
为了便于数据中心资源的增加利用,虚拟化技术可以允许单个物理计算设备将出现并作为独立计算设备运行的虚拟机的一个或多个实例驻留在数据中心的客户端上。通过使用虚拟化,单个物理计算设备可以以动态方式创建、维护、删除或以其它方式管理虚拟机。客户端可以从数据中心请求计算机资源并且为其提供虚拟机资源以执行所请求的事件。
发明内容
在第一实施例中,提供一种用于在分布式计算环境中处理事件的计算机实现的方法,包括:接收存储在一个或多个事件的队列中的事件,其中所述事件包括可由实例池中的实例执行的函数;将所述事件映射至所述池中正在执行相应函数的所述实例,所述映射包括:响应于确定所述池中的所述实例中至少一个不可用或不包括对应于所述事件的所述函数,在所述池中创建新实例,所述新实例包括对应于所述事件的所述函数,以及当具有相应函数的所述事件的发生模式的频率指示所述事件发生频率较不频繁时,终止所述池中的所述实例的一个或多个,从而使得减少需要执行所述相应函数的实例;以及将所述事件调度至所述池中的所述新实例以在主机服务器上执行。
根据第一实施例的第二实施例中,所述方法还包括:响应于确定所述池中的所述实例包括对应于所述事件的所述函数,将所述事件调度至所述池中的已有实例。
根据第一至第二实施例的任一实施例的第三实施例中,所述方法还包括:从函数数据存储请求对应于所述事件的所述函数的状态;以及接收来自所述函数数据存储指示所述池中具有对应于所述事件的所述函数的所述一个或多个实例的所述状态的响应。
根据第一至第三实施例的任一实施例的第四实施例中,所述状态是繁忙或空闲。
根据第一至第四实施例的任一实施例的第五实施例中,所述方法还包括:确定所述池中的多个实例为池容量;以及基于历史事件数据为所述函数中的每个分配所述池容量的百分比。
根据第一至第五实施例的任一实施例的第六实施例中,所述模式的频率包括:从所述一个或多个事件的队列中接收的所述函数的平均到达速率,以及从所述实例池中接收的平均运行时间速率。
根据第一至第六实施例的任一实施例的第七实施例中,所述频率模式存储为所述历史事件数据并且可从历史数据存储访问。
根据第一至第七实施例的任一实施例的第八实施例中,所述实例中的每个建模为G/G/1队列,所述实例中的所述事件的所述平均到达速率和所述实例执行的每个函数的所述平均运行时间速率遵循一般分布。
根据第一至第八实施例的任一实施例的第九实施例中,所述实例包括在所述分布式计算环境中的与一个或多个服务器相关联的资源。
在第十实施例中,提供一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储用于在分布式计算环境中处理事件的计算机指令,一个或多个处理器执行所述计算机指令时,执行以下步骤:接收存储于一个或多个事件的队列中的事件,其中所述事件包括可由实例池中的实例执行的函数;将所述事件映射至所述池中正在执行相应函数的所述实例,所述映射包括:响应于确定池中的所述实例中至少一个不可用或不包括对应于所述事件的所述函数,在所述池中创建新实例,所述新实例包括对应于所述事件的所述函数,以及当具有相应函数的所述事件的发生模式的频率指示所述事件发生频率较不频繁时,终止所述池中的所述实例的一个或多个,从而使得减少需要执行所述相应函数的实例;以及将所述事件调度至所述池中的所述新实例以在主机服务器上执行。
在第十一实施例中,提供一种用于在分布式计算环境中处理事件的网络设备,其特征在于,包括:非瞬时性存储器存储,所述非瞬时性存储器存储包括指令;以及与所述存储器通信的一个或多个处理器,其中所述一个或多个处理器执行所述指令以:接收存储于一个或多个事件的队列中的事件,其中所述事件包括可由实例池中的实例执行的函数;将所述事件映射至所述池中正在执行相应函数的所述实例,所述映射包括:将所述事件映射至所述池中正在执行相应函数的所述实例,所述映射包括:响应于确定所述池中的所述实例中至少一个不可用或不包括对应于所述事件的所述函数,在所述池中创建新实例,所述新实例包括对应于所述事件的所述函数,以及当具有相应函数的所述事件的发生模式的频率指示所述事件发生频率较不频繁时,终止所述池中的所述实例的一个或多个,从而使得减少需要执行所述相应函数的实例;以及将所述事件调度至所述池中的所述新实例以在主机服务器上执行。
提供此发明内容以通过简化形式引入下文在具体实施方式中进一步描述的概念选择。此发明内容并不旨在标识所要求保护的主题的关键或基本特征,并且也不旨在帮助确定所要求保护的主题的范围。所要求保护的主题不限于解决在背景技术中所提出的任何或所有缺点的实施方式。
附图说明
本公开的各方面借助于示例示出并且不受限于附图,在附图中类似标记指示类似元件。
图1为可以实现本公开的实施例的示例数据处理系统。
图2示出根据实施例的示例虚拟计算系统。
图3示出事件映射至池的实例的无服务器系统。
图4示出根据本公开的用于映射事件的示例系统。
图5示出事件管理器的功能的示例实施例。
图6示出实例管理器的功能的示例实施例。
图7示出由实例管理器采用的统计优化的示例实施例。图8示出根据本公开的方法的流程图。
图9示出可用于实现各种实施例的网络系统的框图。
具体实施方式
本公开涉及在无服务器系统中用于处理事件的技术。将事件排队至事件队列中,并分配(或调度)至一个或多个资源处理。将资源保存于池中,并且包括负责执行对应于传入事件的函数的实例。基于各种因素,将事件映射至一个或多个包括池中的实例的状态的已有实例。当在池中不存在对应于所请求的事件的函数的实例时,可以创建一个或多个新实例。此外,可以终止池中的已有实例,并且基于表示事件的平均到达速率和在实例上执行的函数的平均运行时间速率的历史信息来创建新实例。一旦接收到客户端请求,管理准备使用的资源池减少了与执行事件(以用户代码的形式)相关联的延迟(等待时间),并且资源使用减到最少,使得资源可用于处理传入事件。
应理解,本发明的实施例可以以许多不同的形式来实现,并且权利要求范围不应被理解为限于在此阐述的实施例。更准确地说,提供这些实施例使得本发明透彻完整,并且这些实施例将创造性的实施例概念完整地传达给所属领域的技术人员。实际上,本发明旨在覆盖这些实施例的替换、修改和等效方案,这些替换,修改和等效方案包括在由所附权利要求所限定的本发明的范围和精神内。此外,在本发明的以下详细描述中,阐述许多特定细节以便提供透彻理解。然而,所属领域的技术人员清楚本发明的实施例可以在没有这些具体细节的情况下实践。
图1为可以实现本公开的实施例的示例数据处理系统。数据处理系统100是计算机网络,包括例如网络102、服务器104、存储108和客户端110。尽管图中示出特定数目的这些组件或元件,但是系统100中可以包括任何数目的这些组件或元件。
网络102可以是有线网络、无线网络或其组合。此外,网络102可以是个人区域网络、局域网、广域网、空中广播网络(例如,用于无线电或电视)、有线网络、卫星网络、蜂窝式电话网络或其组合。例如,网络102可以是链接网络的公共可访问网络,其可能由各种不同方操作,例如因特网。在一些实施方案中,网络102可为私人的或半私网,如公司或大学内部网。网络102可以包括一个或多个无线网络,如全球移动通信系统(Global System forMobile Communications,GSM)、码分多址接入(Code Division Multiple Access,CDMA)、长期演进(Long Term Evolution,LTE)或任何其它类型的无线网络。网络102还可使用通过因特网或任何其它上述类型的网络通信的协议和组件。
在所示示例中,服务器104连同存储单元108和客户端110连接到网络102。服务器104可以是任何网络设备(或节点),也就是说可以是能够通过通信信道发送或接收数据的任何网络设备(或节点),例如路由器、交换机、集线器、主机网口或能够通过网络102发送和接收数据的一些其它基于硬件和/或软件的组件。
客户端110,类似于服务器104,连接到网络102和存储108,并且可以包括(但不限于),例如,个人计算机(personal computer,PC)、寻呼机、蜂窝式电话、个人数字助理(personal digital assistant,PDA)、智能电话、笔记本电脑、平板电脑、触摸板、无线传感器或消费型电子装置。
存储108可为数据库、存储器、数据存储或存储系统或其任何组合。存储108可为存储数据,如代码、与代码相关联的元数据或数据处理网络100所使用的任何其它数据。例如,每个服务器104和/或客户端110可具有与其物理上(例如,驻留在物理计算系统上的本地存储)或逻辑上(例如,位于内部或外部的网络连接存储系统)相关联的一个或多个存储系统。
图2示出根据实施例的示例虚拟计算系统200。虚拟计算系统200,例如在分布式计算环境中运行,如图1的数据处理系统100,该数据处理系统100包括使用一个或多个计算机网络互连的多个计算机系统。在此环境下,客户端(例如,开发者等)可以使用由虚拟计算系统200提供的虚拟计算资源请求用于执行的事件(程序代码)。在一个实施例中,虚拟计算系统200在图1的服务器104上实现。
客户端,如客户端110,可以使用例如网络102(图1)来访问此类虚拟计算系统200。客户端110还可以以程序代码的形式生成和上载事件至虚拟计算系统200,从而虚拟计算系统200可以调用驻留在虚拟计算系统200上的实例上的程序代码。程序代码可以包括例如,以程序代码的形式提交执行事件的请求。
虚拟计算系统200可以包括,例如,预热池管理器203、工作池管理器240和资源管理器250。虚拟机实例(“实例”)252、254在由预热池管理器230管理的预热池230A中示出,实例256至259在由工作池管理器240管理的活动池240A中示出。尽管所示的实施例示出具有单个预热池管理器230、工作池管理器240、资源管理器250等的单个虚拟计算系统200,但是应理解,虚拟计算系统200可以包括一个或多个预热池管理器、工作管理器、资源管理器等。此外,尽管示出六个实例,但是本文所述实施例不限于此,并且本领域技术人员可以理解,虚拟计算系统200可以包括使用任意数目的物理计算设备实现的任意数目的实例。
虚拟计算系统200可以在硬件和/或软件中实现,并且可以包括,例如,在物理计算机硬件上实现的一个或多个物理或虚拟服务器,该物理计算机硬件用于执行本文所述的各种特征的计算机可执行指令。一个或多个服务器可以是地理上分散的或地理上共址的,例如,在一个或多个数据中心或数据处理系统中。
当虚拟计算系统200接收到在虚拟计算系统200上执行客户端事件的请求时,例如一个或多个函数,预热池管理器230确保虚拟机实例准备好可供工作池管理器240使用。在图示中,预热池管理器230管理预热池230A,预热池230A是可用于服务传入事件的预初始化和预配置虚拟机实例的组。
实例252和254可具有加载于其上的操作系统(operating system,OS)和/或语言运行时间。例如,由预热池管理器230管理的预热池230A包括实例252和254。实例252和254包括OS 252A和/或运行时间252B。在一些实施例中,预热池230A中的虚拟机实例可用于服务客户端110所请求的事件。预热池230A中的实例可以以相同或大体上类似的方式或不同的方式配置,以适于各种传入事件的功能和相应的函数。
工作池管理器240还管理用于服务传入事件的实例。例如,工作池管理器240管理活动池240A,活动池240A是当前分配给一个或多个客户端110中的一个或多个事件的一组虚拟机实例256至259。
实例256至259中的每个包括容器256A至256N、257A至257N、258A至258N和259A至259N,它们是在使用实例上可用的资源的实例内创建的逻辑单元。容器256A中加载有OS256A1、运行时间256A2和代码256A3。容器256N还可以包括OS、运行时间和代码。容器257A-N、258A-N和259A-N可以类似地加载。在一个示例中,实例是可用于创建新实例和/或容器的空白空间或部分空白空间。
工作池管理器240可以在活动池240A中的一个实例中创建新容器或定位已有容器,并将该容器分配给请求(例如,事件请求)以处理客户端代码(事件)的执行和与该请求相关联的相应函数。下面将参照图3-5更详细地讨论请求的执行。
当客户端110提交请求时,工作池管理器240查找到服务请求的容量以在虚拟计算系统200上执行事件。例如,若在活动池240A中存在具有其中加载了相同功能的容器的特定虚拟机实例(例如,在容器256A中示出的代码256A3),则工作池管理器240可以将容器分配给请求并使事件在容器中执行。或者,若事件在虚拟机实例中的一个的本地高速缓存中可用(例如,存储在实例258上,但不属于任何单独的容器),则工作池管理器240可以在这样的实例上创建新容器,将容器分配给请求,并使事件在容器中加载和执行。
若工作池管理器240确定在活动池240A中的任何实例(例如,在一个实例的容器或本地高速缓存中)上没有发现与请求相关联的事件,则工作池管理器240可以确定活动池240A中的任何实例当前是否分配给与请求相关联并具有处理当前请求的计算容量的客户端110。若存在此类实例,则工作池管理器240可以在实例上创建新容器并将容器分配给请求。或者,工作池管理器240还可以在分配给客户端110的实例上配置已有容器并将容器分配给请求。
若活动池240A不包括当前分配给客户端110的任何实例,则工作池管理器240可以从预热池230A中请求分发新的虚拟机实例,将实例分配给与请求相关联的用户,在实例上创建新容器,将容器分配给请求,并且使事件在容器上下载和执行。
一旦工作池管理器240在预热池230A中定位了一个可用于服务事件请求的虚拟机实例,则预热池管理器230或工作池管理器240将实例从预热池230A取出并将其分配给与该请求相关联的用户。将所分配的虚拟机实例从预热池230A中取出放置于活动池240A中。
资源管理器250管理分配用于处理进入请求以在虚拟计算系统200上执行事件和相应函数的资源量。例如,资源管理器250可以与预热池管理器230和工作池管理器240通信,以监视和管理分配给(并由其使用)在虚拟计算系统200上执行的各种事件的计算容量。资源管理器250包括资源管理数据250A,资源管理数据250A可以包括例如关于进入请求的历史和在虚拟计算系统200上执行的程序代码的实例的状态的数据。
如上所述,请求本身可以指定用于执行与请求相关联的程序代码的计算资源(例如,存储器、CPU、存储器、网络数据包等)的量。在已经处理此类请求并且已经分配虚拟机实例至与请求相关联的客户端110之后,资源管理器250可以通过为相同数量的资源创建容器以将在请求中指定的资源量分配给请求。
图3示出事件映射至池中的实例的无服务器系统。无服务器系统300包括但不限于事件产生器302、事件管理器304和包括多个实例I1306A至IN306N的池308。如上所述,客户端或用户产生具有相应函数的请求(事件)。在下面的讨论中,任何一个或多个客户端或用户在本文中称作事件产生器302。
事件E1302A至EN302N在事件队列(图4)中排队,直至事件E1302A至EN 302N中的每个可由事件管理器304映射至相应的实例I1306A至IN 306N中执行。在一个实施例中,实例I1306A至IN 306N负责执行与传入事件I1306A至IN 306N相关联的一个或多个函数fm、fi、fk、fi。
在一个实施例中,保持实例I1306A至IN 306N在池306中,池306可以由主机(未示出)管理,并且包括多个实例主机平台,每个实例主机平台可以容纳各种类型的一个或多个实例,例如虚拟化计算服务器200。池306内的实例主机的数目可以基于如信息基础设施限定或对各种类型的资源实例的需求等各种因素确定。
事件管理器304负责调度(映射)通过事件队列从事件生成器302接收的事件E1302A至EN 302N。在一个实施例中,事件管理器304是或类似于资源管理器250。
在一个实施例中,当接收到事件E1302A至EN 302N时,事件管理器304解析(例如,从事件元数据中提取事件类型信息)传入事件E1302A至EN 302N并生成工作项或作业(未示出)。例如,事件类型用于确定如何处理事件的事件的分类,而元数据一组更通用且结构松散的属性,该属性可用于将事件E1302A调度至EN 302N或传递至特定实例。
在一个实施例中,将工作项放置于事件管理器304的工作队列中。任何一个事件E1302A至EN 302N可以生成一个或多个工作项,其中每个工作项分类为单个工作类型并且要求由实例执行动作。
在一个实施例中,实例I1306A至IN 306N中的每个包括能够执行一个或多个工作类型的代理(图4)。当适当的工作类型的工作项在工作队列中可用时,将工作项分配给相应的代理。当代理313完成处理一个或多个工作类型(成功或不成功)时,将工作项标记为完成并报告回事件管理器304。
图4示出根据本公开的用于映射事件的示例系统。系统400可以是较大网络的一部分,例如图1中描述的数据处理网络100,数据处理网络100提供一种机制,在机制中使用历史数据以优化实例缓存,使得启动延迟和资源使用最小化。
如上所述,系统400包括但不限于:事件产生器402,其发送用于排队到事件队列404的事件E1302A至EN 302N;以及事件映射器405,其负责映射事件;以及实例I1414A至IN414N的池414,其执行对应于事件E1302A至EN 302N的函数。在一个实施例中,池414可以是预热池230A或活动池240A(图2)或池306(图3),或其任意组合。
事件映射器405包括例如事件管理器406、实例管理器408、函数状态存储410和历史数据存储412。事件映射器405通常负责池管理功能,例如创建实例、终止实例和调度事件。事件映射器405还负责管理和/或存储来自事件队列404的历史数据以及关于在其上执行的实例和相应函数的相关状态信息。依靠历史数据和状态信息,在一个实施例中,事件映射器405将事件E1302A至EN 302N调度并映射至池414中的实例I1414A至IN 414N。
事件队列404存储事件E1302A至EN 302N中的每个,并且由于具有相应函数的实例在池414中可用,事件E1 302A至EN 302N可以由事件管理器406和实例管理器408处理。
在一个实施例中,事件管理器406的运行类似于参考图3描述的事件管理器304。在另一实施例中,事件管理器406查询函数状态存储410以确定在池414中是否存在具有与传入事件对应的函数fm、fi、fk、fn等的实例I1 414A至IN 414N。基于此确定,事件管理器404调度事件并将其调度至池414中的实例,或查阅实例管理器408。下面将参考图5更详细地描述事件管理器404。
实例管理器408连同事件管理器406可以负责响应于客户端请求以协调配置操作,用于响应未预期的实例关闭和/或注册新实例主机。例如,响应客户端请求(例如,基于事件和相关联的功能)以启动特定实例I1 414A至IN 414N,实例管理器408可以准确地标识将使用哪个实例主机来执行所请求的事件。下面将参照图6更详细地描述实例管理器408。
函数状态存储410存储实例I1 414A至IN 414N的状态及其相关联的函数fm、fi、fk。例如,可以在一个或多个实例主机的本地缓存中或在存储器(例如,存储器108)中独立地维护该状态,并且识别特定实例是新的、繁忙的、空闲的等。例如,如池414所示,存在具有各自的函数fm、fi、fk和fi的四个实例I1 414A、I2 414B、IJ 414C至IN 414N,每个具有与其相关联的状态。这可以表示为并存储在函数状态存储器410中作为(Ik、fj、状态),其中I是第k个实例,f是第jth个函数并且状态是新的、繁忙的、空闲的等。
历史数据存储412存储关于函数的平均到达速率(λj)和平均运行时间速率(μj)的信息。类似于函数状态存储410,函数的到达速率和平均运行时间速率可以存储于一个或多个实例主机的本地缓存中,或者独立地存储于如存储108的存储中。当事件到达系统时,可以计算平均到达速率。此外,还可以存储各种实例上正执行的函数的执行时间。
在一个实施例中,到达过程定义为:事件如何到达(例如,单独地或成组地(批次或批量到达)),到达如何在时间上分布(例如,连续到达之间的时间的概率分布(到达间时间分布)),以及是否存在有限的事件总体或(有效地)无限的数目。
测量到达速率的另一种形式是使用泊松到达流。在此情况下,事件的到达随机发生。在泊松流中,连续的事件在独立地为指数分布的间隔之后到达。其它到达过程包括但不限于预定到达、批次到达和时间相关到达率(即,到达率根据一天中的时间而变化)。
平均运行时间速率(或服务时间分布)通常独立于到达进程并且通常是指数分布的。在一个实施例中,平均运行时速率可以由如开始服务所需的资源数目、服务将花费多长时间、可用的服务器数目、服务器是串联的(每个服务器具有单独的队列)还是并联的(所有服务器具有一个队列),以及是否允许抢占的因素来定义(服务器可以停止处理一个事件以处理另一个“高级”事件)。
池414类似于以上参考图2和3描述的池。池414是一组资源(例如实例主机或主机服务器),其维护并准备好使用,而不是在使用时获取并随后释放。如客户端110之类的客户端从池414请求资源(包括实例),并执行期望的操作(与事件和相应的函数相关联)。当客户端110完成资源时,资源返回到池414而不是释放。在一个实施例中,池414是活动池240A。在另一个实施例中,池414是预热池230A。
如所示实施例所示,实例I1 414A至IN 414N各自包括各自的代理A1至AN。每个代理A1至AN能够执行一个或多个工作类型,并且由事件管理器406和/或实例管理器408指示执行工作。在一个实施例中,代理A1至AN还可以从事件管理器406和/或实例管理器408请求工作。代理A1至AN还可以负责报告特定动作的成功或失败。例如,当特定实例I1 414A至IN 414N完成工作时,代理A1至AN向函数状态存储410和/或历史数据存储412报告状态(例如,成功或失败)。代理A1至AN还可以在处理完成时(例如,繁忙,空闲等)传送平均运行时间速率(例如,过程运行多长时间)和实例I1 414A至IN 414N的当前状态。当创建新实例时,代理A1至AN可类似地将这种创建报告给函数状态存储410和/或历史数据存储412。
图5示出事件管理器的功能的示例实施例。在以下描述中,事件管理器502驻留在一个或多个虚拟计算系统上,如虚拟计算系统200,并且可以是,例如资源管理器250(在图2中所示)。在另一示例中,事件管理器502可以是预热池管理器203或工作池管理器240。然而,应了解,事件管理器502不限于此实施例,且可以是可由能够执行此类动作的系统100的组件执行的硬件和/或软件的任意组合。
事件管理器502接收来自事件队列404(或直接来自事件产生器402)的传入事件,并查询函数状态存储410以获取池414中实例I1 414A至IN 414N的状态,这些实例在504处具有相应的函数fj。
在506,事件管理器502确定池414中的实例I1 414A至IN 414N是否存在对应的函数fj。在一个实施例中,这可以通过事件管理器502与预热池管理器230和/或工作池管理器240通信来实现。在另一个具体实例中,这可以通过事件管理器502直接与预热池230A和/或活动池240A通信来实现。
若事件管理器502确定存在具有函数fj的实例I1 414A至IN 414N,则在508调度事件并将其调度至相应的实例I1 414A至IN。否则,事件管理器502请求实例管理器408在池414中创建新实例,并向函数状态存储410报告任一状态更新。例如,实例I1414A具有已经在池414中新创建的相应函数fm以执行传入事件的函数。一旦创建了新实例I1 414A,则向函数状态存储410发送确认以反映新实例的创建。
图6示出实例管理器的功能的示例实施例。在下面的描述中,实例管理器602可以是如上所述的实例主机或服务器。然而,应了解,实例管理器602不限于此实施例,且可以是可由能够执行此类动作的系统100的组件执行的硬件和/或软件的任意组合。
实例管理器602通常负责确定应分配给每个函数的池414实例的百分比,以便优化实例的使用。这可以使用分布模型来实现,例如普通(或高斯)分布,泊松分布等(下面参考图7描述其示例)。
作为输入,实例管理器602可以从事件管理器502接收以下中的任何一个或多个:创建具有函数fi的新实例的请求;历史信息,例如来自历史数据存储412的平均到达速率λ和平均运行时间速率μ;以及X个实例的池容量。使用输入以确定应分配给每个函数的池实例的百分比,实例管理器602输出命令以创建新实例I1 414A至IN 414N和/或终止池414中的已有实例I1 414A至IN 414N,如上述更详细的描述。
在一个实施例中,实例管理器602应用正态分布以统计方式优化实例和相应函数的分配。在其最通常形式中,从独立分布中独立抽取的随机变量的平均值在分布上收敛到正常值。即,当随机变量的数目足够大时,它们变为正态分布。如所理解的,存在许多分布排列,其中任何一种都可以应用于此。
图7示出由实例管理器采用的统计优化的示例实施例。如所示,附图标记702表示由如事件产生器402的事件产生器接收的事件E1至EN的时间线。附图标记704表示服务器由圆圈表示的队列,由一系列矩形表示的队列和由箭头表示的路由网络。如上所述,λ是每个时间段的到达次数,即平均到达速率,而μ是每个时间段服务的事件的平均(或平均)次数,即平均运行时间速率。
使用标准符号系统将排队系统分类为A/B/C/D/E,其中:A表示用于到达过程的概率分布,B表示用于业务过程的概率分布,C表示信道(服务器)的数目,D表示指示排队系统中允许的客户的最大数目(被提供业务或等待业务),E表示总的客户的最大数目。D和E在未另外指定时假定为无限的。A和B的常见选项包括:M用于泊松到达分布(指数到达间分布)或指数业务时间分布,D用于确定性或恒定值,以及G用于一般分布(但是具有已知的均值和方差)。
在图7的非限制性示例中(为了论述而简化),M/M/1排队系统具有泊松到达分布、指数业务时间分布和单个信道(一个服务器)。在该示例中,假定我们具有单个服务器,并且事件以泊松到达分布以平均速率λ=0.5个事件/毫秒(ms)到达,即平均每1/λ=1/0.5=2ms出现一个事件。这意指到达间时间具有平均到达间时间为2ms的指数分布。服务器具有平均服务速率为4个事件/ms的指数业务时间分布,即业务速率μ=4个事件/ms。由于我们具有泊松到达率/指数业务时间/单个服务器,我们具有按照标准符号的M/M/1队列。
将输入应用于图6的实例管理器602,我们有λj的平均到达速率、μj的平均运行时间速率、fj的请求的期望数目)、Nj(实例数目),使得Nj=λj/μj。为了在等待区域(队列)中具有零等待时间,需要具有fj个函数的Nj个实例。当存在X个实例的容量时,Nj被归一化。如果用Nj0描述归一化的Nj,则使用等式Nj0=(Nj x X)/(ΣNi)来计算Njo。
图8示出根据本公开的方法的流程图。在下面的描述中,事件映射器405通过处理从事件生成器402和/或事件队列404接收的事件以实现该方法。然而,应了解,实施不限于事件映射器,且任何系统硬件和/或软件可负责实现该方法。
在804,事件生成器402生成事件E1至EN,这些事件排队到806处的事件队列404中。如所示,由事件产生器402产生的事件和将事件排队到事件队列404中共同表示事件映射器405的输入(如虚线802所示)。虽然共同描述,但是可以理解,事件产生器402和事件队列404也可以彼此分开驻留。在一个实施例中,事件队列404对来自可以位于网络100内或外的任意地方的多个事件生成器402的事件进行排队。
事件管理器502在808由事件队列404接收事件。参考图7,可以在事件管理器406和/或事件映射器405的历史数据存储412处从事件队列404接收事件。
在810,事件映射器405将事件E1至EN映射至执行相应函数的池414中的实例I1414A至IN 414N。为了将事件E1至EN映射至池414中的实例I1 414A至IN 414N,事件映射器405在812处确定池414中的实例I1 414A至IN 414N是否繁忙(不可用)或不包括与事件的函数相对应的函数。例如,参考图4,如若输入事件EN具有相应的函数fk,则事件映射器405(通过事件管理器406)搜索池414以确定实例I1 414A至IN 414N中的任何一个具有相应的函数fk。在图4的示例中,IJ 414N具有可以将事件EN分配给的相应函数fk。
响应事件映射器405以确定在池414中存在具有相应函数的一个或多个实例I1414A至IN 414N(即,这些实例不繁忙或包括该函数),将事件EN发送至池414中的已有实例(例如,主机服务器)I1 414A至IN 414N,该池414包括用于在814执行的相应函数。在图4的示例中,事件EN调度至实例IJ 414N。例如,空闲实例IJ 414N可以保持实例运行以使用它来服务来自相同或另一客户端的附加请求。因此,在不必创建新容器并加载事件的情况下,消除了延迟。
在812,响应事件映射器405确定在池414中不存在具有相应函数的一个或多个实例I1414A至IN 414N(即,这些实例繁忙或不包括该函数),在816在池414中创建包括与事件EN相应的函数fm的新实例I1 414A。然后,事件EN可以发送至池414中的新实例以在820处执行。
在818,事件映射器405也可以终止池414中的实例I1 414A至IN 414N。在一个实施例中,当具有相应函数的事件EN的出现模式的频率指示该事件发生频率较不频繁时,终止池414中的实例I1 414A至IN 414N中的一个或多个,从而减少需要执行相应函数的实例。在其它实施例中,在已经在实例I1 414A至IN 414N上执行了函数之后,可以终止用于执行函数的实例I1 414A至IN 414N,以释放其占用的资源供其它事件使用。
在一个实施例中,可以基于阈值时间、用户的类型和/或其它操作条件确定在执行事件EN之后是否保持实例运行。例如,在阈值时间已经过去(例如,5分钟)而没有任何活动(例如,运行事件)之后,关闭实例(例如,删除,终止等),并且释放所分配的资源。
在一个实施例中,可以通过访问函数状态存储410来确定实例I1 414A至IN 414N是繁忙或不包括特定函数。如上所述,函数状态存储410将实例I1 414A的状态存储于IN 414N及其相关联的函数fm、fi、fk。在812A,事件映射器405可以请求对应于请求的事件的函数的状态。例如,事件管理器406可查询函数状态存储410以确定特定函数是否在池414中的实例I1 414A至IN 414N中的任一个上执行。
在812B,事件映射器405从函数状态存储410接收指示具有函数的实例I1 414A至IN414N的状态的响应。例如,函数状态存储410可返回指示实例IN 414N具有函数fi并且是繁忙的或空闲的,或不存在的值(无)。
图9示出可用于实现各种实施例的网络设备900的框图。特定网络设备900可以利用示出的所有组件或组件的一个子集,并且设备之间的集成水平可能不同。此外,网络设备900可以包括组件的多个实例,如多个处理单元、处理器、存储器、发射器、接收器等。网络设备900可以包括配备有一个或多个输入/输出设备(例如网络接口,存储接口等)的处理单元901。处理单元901可以包括中央处理单元(central processing unit,CPU)910、存储器920、大容量存储设备930以及连接到总线970的I/O接口960。总线970可以是任意类型的若干总线体系结构,包括存储器总线或存储器控制器,外围总线等中的一个或多个。
CPU 910可以包括任何类型的电子数据处理器。存储器920可以包括任意类型的系统存储器,例如静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)或其组合等等。在实施例中,存储器920可包含在开机时使用的ROM以及在执行程序时使用的存储程序和数据的DRAM。在实施例中,存储器920是非瞬时的。在一个实施例中,存储器920包括:接收模块920A,用于接收事件;映射模块920B,用于将事件映射至一个或多个实例;调度模块920C,用于将事件调度至实例;以及创建和终止模块920D,用于创建和终止池中的实例。
大容量存储器设备930可以包括任意类型的存储设备,其用于存储数据、程序和其它信息,并使这些数据、程序和其它信息通过总线970访问。大容量存储器设备930可以包括如下项中的一种或多种:固态磁盘、硬盘驱动器、磁盘驱动器、光盘驱动器等等。
处理单元901还包括一个或多个网络接口950,网络接口可以包括例如以太网电缆或其类似者的有线链路,和/或用以访问节点或一个或多个网络980的无线链路。网络接口950允许处理单元901通过网络980与远程单元通信。例如,网络接口950可以通过一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一个实施例中,处理单元901耦合到局域网或广域网上以用于数据处理以及与远程装置通信,该远程装置例如其它处理单元、因特网、远程存储设施或其类似者。
在一些实施方案中,处理事件的网络设备900包括非瞬时性存储器存储920,非瞬时性存储器存储920包括指令和与存储器920通信的一个或多个处理器910。一个或多个处理器910执行接收存储于一个或多个事件的队列中的事件的指令,其中事件包括可由实例池中的实例执行的函数;将事件映射至池中正在执行相应函数的实例,映射包括:响应于确定池中的实例中至少一个不可用或不包括对应于事件的函数,在池中创建新实例,新实例包括对应于事件的函数,并且当具有相应函数的事件的发生模式的频率指示事件发生频率较不频繁时,终止池中的实例中的一个或多个,从而减少需要执行相应函数的实例;以及将事件调度至池中的新实例以在主机服务器上执行。
使用本公开的实施例有诸多益处。例如,在所公开的用于处理事件的技术中,通过优化发起延迟和资源使用,应用体系结构以实现使用历史数据的实例高速缓存的优化,使用历史事件数据以决定是否破坏或保持池中的有效实例,利用泊松分布来优化工作负荷,该泊松分布是无服务器系统中频繁报告的模式之一,以减少无服务器系统中的等待时间-资源使用折衷。
应当理解,本主题可以以许多不同的形式来体现,并且不应该理解为限于本文中阐述的实施例。实际上,提供这些实施例使得本主题透彻完整,并且将向本领域技术人员完全传达本公开。实际上,该主题旨在覆盖这些实施例的替换,修改和等效方案,这些替换,修改和等效方案包括在由所附权利要求所限定的该主题的范围和精神内。此外,在本主题的以下详细描述中,阐述许多特定细节以便提供对本主题的透彻理解。然而,本领域的普通技术人员将清楚,本主题可以在没有这些具体细节的情况下实践。
根据本公开的各种实施例,本文所描述的方法可使用执行软件程序的硬件计算机系统来实现。另外,在一个非限制性实施例中,实施方式可以包括分布式处理、组件/对象分布式处理,以及并行处理。虚拟计算机系统处理可以构造成实现本文所述的方法或函数中的一个或多个,并且本文所述的处理器可以用于支持虚拟处理环境。
参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图说明和/或框图描述了本公开的各方面。应理解,可以通过计算机程序指令实现流程图说明和/或方块图中的每个方块以及流程图说明和/或方块图中的方块的组合。这些计算机程序指令可以提供到通用计算机、专用计算机或其它可编程数据处理设备的处理器以产生机器,以使得通过计算机或其它可编程指令实行设备的处理器执行的指令创建用于实现流程图和/或框图的一个或多个方框中指定的函数/动作的机构。
本文中所用的术语仅仅是出于描述特定方面的目的,并且并不打算限制本发明。除非上下文清楚说明,否则本文所用的单数形式“一”和“所述”包括其复数形式。应进一步了解,本说明书中所用的术语“包括”用于说明存在所述特征、整数、步骤、操作、元件和/或部件,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、元件、部件和/或它们的组合。
本公开的描述是出于说明和描述的目的而呈现的,但并非旨在穷举或以所公开的形式限于本公开。在不偏离本发明的范围和精神的前提下,多种修改和改变对本领域技术人员而言是显而易见的。选择和描述的本发明各个方面以便更好地解释本发明的原理和实际应用,并且使本领域技术人员能够理解本发明适合预期特定用途的各种修改。
出于本文的目的,与所公开技术相关联的每一进程可连续且由一个或多个计算设备执行。进程中的每个步骤可以由与其它步骤中使用的计算设备相同或不同的计算设备来进行,并且每个步骤不必由单个计算设备来进行。
虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应该理解的是,权利要求书定义的主题不必局限于上面描述的具体特征或动作。相反,公开以上描述的具体特征和动作作为实现权利要求的示例形式。
Claims (21)
1.一种用于在分布式计算环境中处理事件的计算机实现的方法,其特征在于,包括:
接收存储在一个或多个事件的队列中的事件,其中所述事件包括可由实例池中的实例执行的函数;
将所述事件映射至所述池中正在执行相应函数的所述实例,所述映射包括:
响应于确定所述池中的所述实例中至少一个不可用或不包括对应于所述事件的所述函数,
在所述池中创建新实例,所述新实例包括对应于所述事件的所述函数,以及
当具有相应函数的所述事件的发生模式的频率指示所述事件发生频率较不频繁时,终止所述池中的一个或多个所述实例,从而使得减少需要执行所述相应函数的实例;以及
将所述事件调度至所述池中的所述新实例以在主机服务器上执行。
2.根据权利要求1所述的方法,其特征在于,还包括:
响应于确定所述池中的所述实例包括对应于所述事件的所述函数,将所述事件调度至所述池中的已有实例。
3.根据权利要求1所述的方法,其特征在于,还包括:
从函数数据存储请求对应于所述事件的所述函数的状态;以及
接收来自所述函数数据存储指示所述池中具有对应于所述事件的所述函数的所述一个或多个实例的所述状态的响应。
4.根据权利要求3所述的方法,其特征在于,所述状态是繁忙或空闲。
5.根据权利要求1所述的方法,其特征在于,还包括:
确定所述池中的多个实例为池容量;以及
基于历史事件数据为所述函数中的每个分配所述池容量的百分比。
6.根据权利要求1所述的方法,其特征在于,所述模式的频率包括:
从所述一个或多个事件的队列中接收的所述函数的平均到达速率,以及
从所述实例池中接收的平均运行时间速率。
7.根据权利要求5所述的方法,其特征在于,所述频率模式存储为所述历史事件数据并且可从历史数据存储访问。
8.根据权利要求6所述的方法,其特征在于,所述实例中的每个建模为G/G/1队列,所述实例中的所述事件的所述平均到达速率和所述实例执行的每个函数的所述平均运行时间速率遵循一般分布。
9.根据权利要求1所述的方法,其特征在于,所述实例包括在所述分布式计算环境中的与一个或多个服务器相关联的资源。
10.一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储用于在分布式计算环境中处理事件的计算机指令,一个或多个处理器执行所述计算机指令时,执行以下步骤:
接收存储于一个或多个事件的队列中的事件,其中所述事件包括可由实例池中的实例执行的函数;
将所述事件映射至所述池中正在执行相应函数的所述实例,所述映射包括:
响应于确定所述池中的所述实例中至少一个不可用或不包括对应于所述事件的所述函数,
在所述池中创建新实例,所述新实例包括对应于所述事件的所述函数,以及
当具有相应函数的所述事件的发生模式的频率指示所述事件发生频率较不频繁时,终止所述池中的一个或多个所述实例,从而使得减少需要执行所述相应函数的实例;以及
将所述事件调度至所述池中的所述新实例以在主机服务器上执行。
11.根据权利要求10所述的非瞬时性计算机可读存储介质,所述一个或多个处理器还执行以下步骤:
响应于确定所述池中的所述实例包括对应于所述事件的所述函数,将所述事件调度至所述池中的已有实例。
12.根据权利要求10所述的非瞬时性计算机可读存储介质,所述一个或多个处理器还执行以下步骤:
从函数数据存储请求对应于所述事件的所述函数的状态;以及
接收来自所述函数数据存储指示所述池中具有对应于所述事件的所述函数的所述一个或多个实例的所述状态的响应。
13.根据权利要求10所述的非瞬时性计算机可读存储介质,所述一个或多个处理器还执行以下步骤:
确定所述池中的多个实例为池容量;以及
基于历史事件数据为所述函数中的每个分配所述池容量的百分比。
14.根据权利要求10所述的非瞬时性计算机可读存储介质,其特征在于,所述模式的频率包括:
从所述一个或多个事件的队列中接收的所述函数的平均到达速率,以及
从所述实例池中接收的平均运行时间速率。
15.根据权利要求14所述的非瞬时性计算机可读存储介质,其特征在于,所述实例中的每个建模为G/G/1队列,所述实例中的所述事件的所述平均到达速率和所述实例执行的每个函数的所述平均运行时间速率遵循一般分布。
16.一种用于在分布式计算环境中处理事件的网络设备,其特征在于,包括:非瞬时性存储器存储,所述非瞬时性存储器存储包括指令;以及
与所述存储器通信的一个或多个处理器,其中所述一个或多个处理器执行所述指令以:
接收存储于一个或多个事件的队列中的事件,其中所述事件包括可由实例池中的实例执行的函数;
将所述事件映射至所述池中正在执行相应函数的所述实例,所述映射包括:
响应于确定所述池中的所述实例中至少一个不可用或不包括对应于所述事件的所述函数,
在所述池中创建新实例,所述新实例包括对应于所述事件的所述函数,以及
当具有相应函数的所述事件的发生模式的频率指示所述事件发生频率较不频繁时,终止所述池中的一个或多个所述实例,从而使得减少需要执行所述相应函数的实例;以及
将所述事件调度至所述池中的所述新实例以在主机服务器上执行。
17.根据权利要求16所述的网络设备,其特征在于,所述一个或多个处理器还执行所述指令以:
响应于确定所述池中的所述实例包括对应于所述事件的所述函数,将所述事件调度至所述池中的已有实例。
18.根据权利要求16所述的网络设备,其特征在于,所述一个或多个处理器还执行所述指令以:
从函数数据存储请求与所述事件对应的所述函数的状态;以及
接收来自所述函数数据存储指示所述池中具有对应于所述事件的所述函数的所述一个或多个实例的所述状态的响应。
19.根据权利要求16所述的网络设备,其特征在于,所述一个或多个处理器还执行所述指令以:
确定所述池中的多个实例为池容量;以及
基于历史事件数据为所述函数中的每个分配所述池容量的百分比。
20.根据权利要求16所述的网络设备,其特征在于,所述模式的频率包括:
从所述一个或多个事件的队列中接收的所述函数的平均到达速率,以及
从所述实例池中接收的平均运行时间速率。
21.根据权利要求20所述的网络设备,其特征在于,所述实例中的每个建模为G/G/1队列,所述实例中的所述事件的所述平均到达速率和所述实例执行的每个函数的所述平均运行时间速率遵循一般分布。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662435582P | 2016-12-16 | 2016-12-16 | |
US62/435,582 | 2016-12-16 | ||
US15/399,687 | 2017-01-05 | ||
US15/399,687 US10505791B2 (en) | 2016-12-16 | 2017-01-05 | System and method to handle events using historical data in serverless systems |
PCT/CN2017/114650 WO2018108001A1 (en) | 2016-12-16 | 2017-12-05 | System and method to handle events using historical data in serverless systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110383764A CN110383764A (zh) | 2019-10-25 |
CN110383764B true CN110383764B (zh) | 2020-11-17 |
Family
ID=62559763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780077885.7A Active CN110383764B (zh) | 2016-12-16 | 2017-12-05 | 无服务器系统中使用历史数据处理事件的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10505791B2 (zh) |
EP (1) | EP3556053A4 (zh) |
CN (1) | CN110383764B (zh) |
WO (1) | WO2018108001A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10581687B2 (en) * | 2013-09-26 | 2020-03-03 | Appformix Inc. | Real-time cloud-infrastructure policy implementation and management |
KR102612312B1 (ko) | 2018-11-05 | 2023-12-12 | 삼성전자주식회사 | 전자 장치 및 이의 제어방법 |
US10872057B1 (en) * | 2019-05-23 | 2020-12-22 | Xilinx, Inc. | Partitioning in a compiler flow for a heterogeneous multi-core architecture |
CN110650215A (zh) * | 2019-10-24 | 2020-01-03 | 百度在线网络技术(北京)有限公司 | 边缘网络的函数执行方法及装置 |
US11240045B2 (en) * | 2019-10-30 | 2022-02-01 | Red Hat, Inc. | Detection and prevention of unauthorized execution of severless functions |
US11044173B1 (en) | 2020-01-13 | 2021-06-22 | Cisco Technology, Inc. | Management of serverless function deployments in computing networks |
CN111274297A (zh) * | 2020-01-19 | 2020-06-12 | 政采云有限公司 | 一种基于存储库的无服务端化共享资源方法及系统 |
CN111475235B (zh) * | 2020-04-13 | 2023-09-12 | 北京字节跳动网络技术有限公司 | 函数计算冷启动的加速方法、装置、设备及存储介质 |
CN111562990B (zh) * | 2020-07-15 | 2020-10-27 | 北京东方通软件有限公司 | 一种基于消息的轻量级无服务器计算方法 |
US11609803B2 (en) * | 2020-09-16 | 2023-03-21 | Red Hat, Inc. | Managing event delivery in a serverless computing environment |
CN112363823A (zh) * | 2020-10-10 | 2021-02-12 | 北京东方通软件有限公司 | 一种基于消息的轻量级无服务器计算方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181744B2 (en) * | 2002-10-24 | 2007-02-20 | International Business Machines Corporation | System and method for transferring data between virtual machines or other computer entities |
US7707240B2 (en) | 2005-05-19 | 2010-04-27 | Cisco Technology, Inc. | Proxy for application server |
EP2425341B1 (en) | 2009-05-01 | 2018-07-11 | Citrix Systems, Inc. | Systems and methods for establishing a cloud bridge between virtual storage resources |
US8887227B2 (en) | 2010-03-23 | 2014-11-11 | Citrix Systems, Inc. | Network policy implementation for a multi-virtual machine appliance within a virtualization environtment |
WO2012041397A1 (en) * | 2010-09-27 | 2012-04-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Performance calculation, admission control, and supervisory control for a load dependent data processing system |
US8595722B2 (en) * | 2010-10-14 | 2013-11-26 | International Business Machines Corporation | Preprovisioning virtual machines based on request frequency and current network configuration |
US9141410B2 (en) | 2011-03-08 | 2015-09-22 | Rackspace Us, Inc. | Pluggable allocation in a cloud computing system |
US9152405B2 (en) * | 2011-08-22 | 2015-10-06 | International Business Machines Corporation | Rapid provisioning of virtual machines based on multi-dimensional user request patterns in a cloud |
US9372735B2 (en) * | 2012-01-09 | 2016-06-21 | Microsoft Technology Licensing, Llc | Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool |
US20130238785A1 (en) | 2012-03-06 | 2013-09-12 | Rackspace Us, Inc. | System and Method for Metadata Discovery and Metadata-Aware Scheduling |
US9294236B1 (en) | 2012-03-27 | 2016-03-22 | Amazon Technologies, Inc. | Automated cloud resource trading system |
US9069606B2 (en) * | 2012-05-08 | 2015-06-30 | Adobe Systems Incorporated | Autonomous application-level auto-scaling in a cloud |
US9851989B2 (en) * | 2012-12-12 | 2017-12-26 | Vmware, Inc. | Methods and apparatus to manage virtual machines |
US9141487B2 (en) * | 2013-01-15 | 2015-09-22 | Microsoft Technology Licensing, Llc | Healing cloud services during upgrades |
US10574748B2 (en) * | 2013-03-21 | 2020-02-25 | Infosys Limited | Systems and methods for allocating one or more resources in a composite cloud environment |
CN104735102A (zh) | 2013-12-18 | 2015-06-24 | 广州岚萃贸易有限公司 | 一种基于云平台和云计算的客户关系管理系统 |
WO2015158377A1 (en) | 2014-04-16 | 2015-10-22 | Telefonaktiebolaget L M Ericsson (Publ) | Event processing in a network management system |
CN105704736B (zh) * | 2014-11-24 | 2019-01-29 | 北京信息科技大学 | 一种基于贝叶斯信任模型的网络端到端延迟优化方法 |
US9848041B2 (en) | 2015-05-01 | 2017-12-19 | Amazon Technologies, Inc. | Automatic scaling of resource instance groups within compute clusters |
-
2017
- 2017-01-05 US US15/399,687 patent/US10505791B2/en active Active
- 2017-12-05 WO PCT/CN2017/114650 patent/WO2018108001A1/en unknown
- 2017-12-05 EP EP17881207.9A patent/EP3556053A4/en not_active Withdrawn
- 2017-12-05 CN CN201780077885.7A patent/CN110383764B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US10505791B2 (en) | 2019-12-10 |
EP3556053A4 (en) | 2019-12-04 |
CN110383764A (zh) | 2019-10-25 |
EP3556053A1 (en) | 2019-10-23 |
US20180176070A1 (en) | 2018-06-21 |
WO2018108001A1 (en) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110383764B (zh) | 无服务器系统中使用历史数据处理事件的系统和方法 | |
US11762703B2 (en) | Multi-region request-driven code execution system | |
US10372499B1 (en) | Efficient region selection system for executing request-driven code | |
JP6892729B2 (ja) | コード実行要請ルーティング | |
US10528390B2 (en) | Idempotent task execution in on-demand network code execution systems | |
US10282229B2 (en) | Asynchronous task management in an on-demand network code execution environment | |
US9952896B2 (en) | Asynchronous task management in an on-demand network code execution environment | |
US10445140B1 (en) | Serializing duration-limited task executions in an on demand code execution system | |
US10725826B1 (en) | Serializing duration-limited task executions in an on demand code execution system | |
CN107590001B (zh) | 负载均衡方法及装置、存储介质、电子设备 | |
US11157324B2 (en) | Partitioning for delayed queues in a distributed network | |
EP3073374B1 (en) | Thread creation method, service request processing method and related device | |
US20200364608A1 (en) | Communicating in a federated learning environment | |
US11119813B1 (en) | Mapreduce implementation using an on-demand network code execution system | |
US10430218B2 (en) | Management of demand for virtual computing resources | |
US11734073B2 (en) | Systems and methods for automatically scaling compute resources based on demand | |
CN112214293A (zh) | 一种无服务器架构下业务部署的方法和函数管理平台 | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
CN109564525B (zh) | 按需网络代码执行环境中的异步任务管理 | |
US11228658B1 (en) | Pre-caching data for use upon execution of program code | |
US10721260B1 (en) | Distributed execution of a network vulnerability scan | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
CN112424749A (zh) | 内存占用有限情况下的按需代码执行 | |
CN113434591A (zh) | 数据处理方法以及装置 | |
CN111045778B (zh) | 一种虚拟机的创建方法、装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |