CN101014036B - 用于节点簇的分散应用程序资源分配的方法与系统 - Google Patents
用于节点簇的分散应用程序资源分配的方法与系统 Download PDFInfo
- Publication number
- CN101014036B CN101014036B CN2007100021510A CN200710002151A CN101014036B CN 101014036 B CN101014036 B CN 101014036B CN 2007100021510 A CN2007100021510 A CN 2007100021510A CN 200710002151 A CN200710002151 A CN 200710002151A CN 101014036 B CN101014036 B CN 101014036B
- Authority
- CN
- China
- Prior art keywords
- node
- application program
- local
- local node
- application
- 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
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Abstract
一种分散处理,用于确保在两种类型的同时资源请求下服务器上应用程序的动态放置,这两种类型的同时资源请求分别是依赖于放置到应用程序上的负载的资源请求和独立于该负载的资源请求。对应用程序的需求(负载)随时间变化,目标是要满足所有需求,同时尽可能少地改变解决方案(向服务器的应用程序分配)。
Description
技术领域
本发明涉及计算机簇(cluster)上的应用程序放置,更具体而言,涉及当应用程序的负载波动时以分布方式的分散按需应用程序资源分配。
背景技术
随着万维网(WWW或简单地是“Web”)与数据服务的外部获取(outsource)的激增,计算服务中心的大小和复杂性都增加了。例如,服务中心可以包括称为服务器池(farm)的服务器集合,该服务器池运行对特定应用程序的处理,该服务器集合称为簇。这种中心提供多种服务,例如Web内容寄放(host)、电子商务、web应用程序及商务应用程序。管理这种中心是有挑战性的,因为服务提供者必须面对不可预测的负载强度和多种所提供的服务与应用程序之间的分布而管理提供给竞争应用程序的服务质量。已经介绍了几种处理这些操作性管理问题的管理软件包。这些软件系统提供包括监视、需求估计、负载平衡、动态提供、服务区分、优化资源分配及动态应用程序放置的功能。最后一个功能,即动态应用程序放置,是本发明的主题。
服务请求一般是通过执行应用程序集合中每一个应用程序的一个或多个实例满足的。应用程序包括对静态与动态web内容的访问、企业应用程序及对数据库服务器的访问。应用程序可以由HTTP(超文本传输协议)web服务器、小服务程序、企业Java Beans(EJB)或数据库查询提供。当用于特定应用程序的服务请求的个数增加时,负责放置应用程序的管理软件部署应用程序的附加实例,以便适应增加的负载。具有允许应用程序实例动态部署与除去的按需管理环境常常是很重要的。问题是动态改变应用程序实例的个数,从而在最小化开始与停止应用程序实例的开销的同时满足动态负载。
当应用程序的负载波动时与服务器池中应用程序处理的自动实例化关联的一个问题是每个服务器机器可以运行有限数量的应用程序处理。用于特定应用程序的请求消息在该应用程序的所有实例间分开。因此,当应用程序实例使用不同的服务器时,簇的大小直接影响在没有性能降低的情况下簇可以维持的负载量。
当簇的大小不够时,应用程序用户体验性能降低或故障,导致违背服务水平协定(SLA)。目前,为了避免违背SLA,应用程序提供者通常过多地提供应用程序实例的数量,以便处理峰值负载。这导致正常运行条件下的资源利用率差。动态分配通过根据应用程序当前负载与SLA目标自动地重新在应用程序间分配服务器减轻浪费容量的问题。
目前可用的大部分放置算法是集中式的。集中式的方法通常不具有对发生在两次放置操作之间的改变立即作出反应的能力。在集中式解决方案中,单个控制器常常需要处理来自几个节点的约束。此外,每个应用程序一般都需要特定的时间开始或停止。在这个时间中,重新配置处理会占用本地机器上的大部分CPU功率,因此会部分地破坏其服务能力。集中式解决方案一般需要以不会同时发生的方式调度这些改变的增强,以避免系统总处理能力的急剧下降。
发明内容
本发明解决了服务器池中应用程序处理的自动实例化的问题,以便当应用程序的负载波动时允许服务器池动态调整应用程序处理的数量。与集中式解决方案相比,应用程序放置的分散解决方案可以有多个概念性优点。首先,由于算法在系统中的每个机器上独立和异步地运行,因此分散放置使系统能够面对外部事件持续地重新配置。其次,由于每个节点只管理本地资源,因此分散解决方案的复杂性比较低。第三,由于与放置算法运行在单个机器上的集中式解决方案相比,每个机器具有完全相同的功能,因此在分散情况下没有配置开销。本发明有利地优化了服务器上计算应用程序的动态放置,以便在尽可能小地改变应用程序分配的同时满足整个应用程序的需求。
本发明的一个示例方面是用于节点簇的分散应用程序资源分配的方法。该方法包括配置成在本地节点从节点簇中的节点子集接收应用程序的资源利用率数据的接收操作。本地节点包括其正执行的当前应用程序集合。确定操作形成要在本地节点执行的新应用程序集合。该新应用程序集合优化由本地节点本地计算的目标函数并至少部分地基于利用率数据。修改操作根据所述新的执行应用程序集合修改哪些应用程序在本地节点执行。发送操作从本地节点向节点簇中的所述节点子集广告在本地节点的所述新的应用程序集合与所述当前应用程序集合之间的应用程序执行改变。
本发明的另一示例方面是用于节点簇的分散应用程序资源分配的系统。该系统包括配置成执行计算机程序的处理器和耦合到该处理器并配置成通过计算机网络发送与接收数据的网络接口。此外,存储设备包含计算机程序。该计算机程序包括计算机可执行指令,该计算机可执行指令配置成在本地节点从节点簇中的节点子集接收应用程序的资源利用率数据;至少部分地基于该利用率数据确定要在本地节点执行的新应用程序集合,该新应用程序集合优化由本地节点本地计算的目标函数;根据所述新的执行应用程序集合修改哪些应用程序在本地节点执行;及从本地节点向节点簇中的所述节点子集发送在本地节点的所述新的应用程序集合与所述当前应用程序集合之间的应用程序执行改变。
本发明还有一个示例方面是包含在有形介质中的计算机程序产品。该计算机程序产品包括计算机可读程序代码,该计算机可读程序代码配置成使程序执行:在本地节点从节点簇中的节点子集接收应用程序的资源利用率数据;至少部分地基于利用率数据确定要在本地节点执行的新应用程序集合,该新应用程序集合优化由本地节点本地计算的目标函数;根据所述新的执行应用程序集合修改哪些应用程序在本地节点执行;及从本地节点向节点簇中的所述节点子集发送在本地节点的所述新的应用程序集合与所述当前应用程序集合之间的应用程序执行改变。
如在附图中所说明的,本发明的以上及其它特征、使用与优点将从以下本发明各种实施方式的更具体描述中变得显而易见。
附图说明
图1示出了示例系统的主要组件及其物理互连的框图。
图2示出了系统组件之间逻辑连接的框图。
图3是显示运行在作为示例系统一部分的每个节点上的软件程序的框图。
图4是显示全局放置矩阵的示例结构的框图。
图5示出了说明其中节点从其邻居检索状态信息的示例方法的流程图。
图6是说明根据本发明一种实施方式分散放置算法的重新配置阶段逻辑的流程图。
图7是说明根据本发明一种实施方式分散放置算法的提交(commit)阶段逻辑的流程图。
图8是说明根据本发明一种实施方式的放置更新在系统中传播的方式的流程图。
图9是说明根据本发明一种实施方式的当重新配置现有应用程序时放置更新被串行化以维护系统稳定性的方式的流程图。
图10是说明根据本发明一种实施方式的当激活新应用程序时放置更新被串行化以维护系统稳定性的方式的流程图。
图11示出了体现本发明的网络节点的说明性实施方式。
图12示出了如本发明预期的用于节点簇的分散应用程序资源分配的示例流程图。
具体实施方式
以下描述具体描述如何采用本发明来优化服务器上计算应用程序的动态放置,以满足整体的应用程序需求。贯穿本发明的描述都参考图1-11。当参考附图时,所示出的相同的结构和元素都使用相同的标号指示。
问题阐述
动态应用程序放置问题如下阐述:给出具有存储器容量Γ1、...、Γm和服务能力(每个单位时间可以服务的请求个数)Q1、...、Qm的m个服务器1、...、m。还给出具有存储器需求Y1、...、Yn的n个应用程序1、...、n。应用程序j必须在时间间隔t内为一定数量的请求ωjt服务。
在时间t对问题的可行解决方案是向服务器分配应用程序的工作量。每个应用程序可以分配给多个服务器(在多个服务器上复制)。对于应用程序j分配到的每个服务器i,解决方案必须指定这个服务器为这个应用程序处理的请求个数ωitj。对于所有应用程序j和时间步长t,∑iωitj都必须等于ωjt。对于每个服务器,必须考虑存储器与处理约束。分配给服务器的应用程序的存储器需求总和不能超过其存储器Γi和∑iωitj,即,在时间步长t中由这个服务器服务的请求总数不能超过Ωi。应当指出,应用程序向服务器的每次分配(拷贝)都导致全存储器成本,而处理负载在拷贝之间分配。
目标是找出与在时间步长t-1的解决方案差别不大的在时间步长t的解决方案。更正式地说,对于每种可行的解决方案,关联二分(bipartite)图(A,S,Et),其中A表示在时间步长t分配给服务器i(或在服务器i上有拷贝)的应用程序j的集合。目标函数是最小化即,两个边缘集合的对称差分的基数。这是在时间t必须关掉或加载的应用程序实例的个数。
系统模型
本发明的一种实施方式是在图1、2和3中总体说明的网络系统中实现的。图1示出了由本发明预期的示例系统的物理基础结构102。物理基础结构102包括耦合到计算机网络106的一个或多个进入点104。计算机网络106可以是局域网(LAN)、广域网(WAN)或其组合。预期计算机网络106可以配置为例如因特网的公共网络和/或例如内联网或其它专有通信系统的专用网。本领域技术人员已知的各种拓扑结构和协议都可以由网络106采用,例如TCP/IP和UDP。此外,计算机网络106可以包括本领域已知的各种联网设备,例如路由器、交换机、网桥(bridge)、中继器等。
物理基础结构102还附加地包括多个节点108-118。这些组件使用如路由器、交换机或集线器120-124的联网设备互连。进入点104是将进入的请求重定向到节点108-118的交换机。多种类型的硬件(例如计算机、硬件层4-7交换机或者甚至是大型机)都可以执行这种功能。节点108-118可以是桌面计算机、服务器、膝上型电脑或任何其它包括CPU、存储器及可以连接到网络的硬件设备。
图2示出了在图1中所示物理基础结构之上配置的示例系统的逻辑拓扑结构202。进入点104通过逻辑链路连接到大量节点(可能是系统中的所有节点)。为了说明,进入点和节点之间的逻辑链路在图2中示为虚线。进入点使用如循环(round robin)或随机转发的各种转发策略向节点转发进入的请求。节点108-118以每个节点只与其邻居通信的逻辑覆盖来自组织。因此,节点簇中的节点子集是对应于节点的邻居定义的。节点之间的逻辑对等链路示为实线。与系统中的节点总数相比,节点的邻居个数通常很小。任何覆盖构造算法都可以用于向节点分配邻居组。结果产生的覆盖可以是各种类型,例如小世界与随机图。逻辑链路可以几种方式实现。一种可能是打开处于逻辑链路末端的节点之间的TCP连接。另一种可能是为每个节点维护本地邻居列表并限制到这些邻居的通信。
在一种实施方式中,节点108-118维护相对稳定的覆盖邻居组并在每个放置周期中收集状态信息。在另一实施方式中,节点108-118可能不需要使用稳定的邻居组。相反,节点108-118可以运行杂谈协议来发现系统中的其它节点并在不同的放置周期中对不同的节点收集状态信息。
图3示出了在单个节点上执行的示例软件302。在本发明的一种实施方式中,在分散放置算法的环境下,所有节点都具有完全相同的功能。节点可以运行一种或多种应用程序处理304-308。每种应用程序处理处理用于一种类型应用程序(该应用程序类型由A1、A2、...、An指示)的请求。
每个应用程序可以由两种类型的参数表示其特征:(1)运行应用程序所需的独立于负载的资源需求,及(2)作为放置到应用程序的外部负载或需求的函数的依赖于负载的需求。独立于负载的需求的例子是存储器、通信信道及贮存器。依赖于负载的需求的例子是当前或发射的请求率、CPU(中央处理单元)周期、磁盘活动性及执行线程的个数。
类似地,节点(例如,服务器)可以由两个参数表示其特征:(1)表示可用于在节点上寄放应用程序的资源量的独立于负载的容量,及(2)表示处理应用程序服务的请求的可用容量的依赖于负载的容量。
放置执行器310、放置控制器312及应用程序建档器(profiler)314是配置成提供放置功能性的软件对象。放置执行器310具有停止或开始应用程序处理的能力。应用程序建档器314收集用于每个本地应用程序的统计数据,例如请求到达率、一个应用程序实例使用的总存储器及应用程序请求消耗的平均CPU周期数。在本发明的特定实施方式中,应用程序建档器314定义抽象元素集合的依赖负载的能力的集合和独立于负载能力的集合,如以下更具体讨论的。
放置控制器312包含分散放置算法的内核逻辑。放置控制器312基于目标函数动态重新配置每个节点上应用程序的放置,以优化所有节点上应用程序的全局放置。
放置控制器312在每个节点上独立并异步地执行。放置算法的两次执行之间的时间在此称为执行周期。以下具体描述放置算法。
每个节点维护全局放置矩阵P的副本。全局放置矩阵将多个节点和多个应用程序描述为抽象元素集合。全局放置矩阵402的示例结构在图4中示出。矩阵的每一行对应于一个应用程序,每一列对应于一个节点。矩阵P的元素如下定义:如果应用程序a在节点n上运行则Pa,n=1,否则Pa,n=0。更新与维护全局放置矩阵的处理是完全分散的。
分散的放置算法
放置控制器在三个阶段运行放置算法。首先,放置控制器收集关于系统当前状态的(部分)信息。接下来,基于这种信息,放置控制器决定在要来(incoming)的执行周期中哪些应用程序应当在本地节点上运行。最后,放置控制器在系统中分散对全局放置矩阵的更新的组,该组反映了放置算法的本地决定。
收集状态信息
为了确保可量测性(scalability),每个节点都从小的邻居集合中检索状态信息。覆盖构造机制建立定义每个节点的邻居的逻辑拓扑结构。
图5说明了本发明预期的状态信息在邻居之间交换的一种方式。假定节点502和504是逻辑邻居。如箭头510所表示的,运行在节点504上的放置控制器506从运行在节点502上的放置控制器508请求状态信息。当接收到请求时,放置控制器508从放置执行器512请求活动应用程序列表。如箭头516所表示的,作为响应,放置执行器512检索该列表并将其发送到放置控制器508。如箭头520和522所表示的,放置控制器508还从应用程序建档器518获得应用程序统计数据。在这种处理的结束时,放置控制器508收集以下信息:本地活动应用程序的列表(a1...am)、交给每个应用程序的CPU周期数(ωa1 delivered...ωam delivered)、每个应用程序的存储器需求(γa1...γam)、每个活动应用程序的本地经历(experienced)需求(ωa1 requested...ωam requested)及对在网络中任何地方都没有提供、在全局放置矩阵中没有活动项的应用程序的本地经历需求。如箭头524所表示的,放置控制器508将这种信息发送回放置控制器506。这完成了两个逻辑邻居之间的信息交换。
除了从其邻居检索信息,放置控制器506还从本地放置执行器526和本地应用程序建档器528收集本地信息。
重新配置阶段
在图6中,说明了由本发明一种实施方式执行的重新配置阶段的流程图。如以下具体讨论的,流程图的操作允许在一个或多个依赖于负载的资源约束和一个或多个独立于负载的资源约束下通过动态重新配置应用程序在节点上以分布方式的放置从而优化矩阵的多重性实现的分散的按需应用程序资源分配。应当注意,所示出的逻辑操作可以以硬件或软件或者其组合实现。实现是依赖于实现本发明的系统的性能需求的选择问题。因此,构成在此所述本发明实施方式的逻辑操作可选地称为操作、步骤或模块。
在建立操作602,放置控制器取在前一阶段中收集到的邻居状态作为输入,并建立运行应用程序的集合R={r1...rr}和备用应用程序的集合S={S1...Ss}。R包含本地节点上当前活动的应用程序。S包含在该节点的邻居上运行但不在该节点本身上运行的应用程序或者在系统中任何地方都没有提供的应用程序。S是使用在前一阶段收集到的邻居信息建立的。
R中的应用程序以其密度的递增次序排序,该密度等于交给应用程序r的负载除以r的存储器使用(ωr delivered/γr)。S中的应用程序以其剩余密度的递减次序排序,该剩余密度等于应用程序s的未满足需求除以s的存储器使用:∑n∈neighbors{ωns delivered-ωns requested}/γs。
未满足需求为零的备用应用程序从S中除去,因为没有必要为那些应用程序开始附加的实例。当完成建立操作602后,控制转移到确定操作604。
在确定操作604,检查备用集合。如果备用集合为空,则算法完成。如果备用集合包含一个或多个应用程序,则控制转移到偏移操作606。
在偏移操作606,放置控制器尝试将尽可能多的负载从一个或多个运行的应用程序偏移到邻居。当一个或多个邻居(a)运行应用程序A的实例且(b)具有空闲的CPU能力时,偏移应用程序A的负载是可能的。应当指出,由偏移操作606执行的负载偏移处理是可以提高算法性能的可选步骤。在偏移操作606完成后,控制转移到初始化操作608。
初始化操作608开始控制循环,其中放置控制器以本地CPU使用率被最大化的方式计算在本地节点上运行的应用程序的优化集合。在初始化操作608,应用程序的个数设置成零,新运行集合设置成当前运行集合,而最大CPU利用率被设置成初始CPU利用率。
接下来,控制转移到操作610、612、614、616和618的循环,在该循环中放置控制器尝试以本地节点上CPU使用率最大化的方式用S的子集替换R的子集。用于两个给定集合R和S的可能重新配置组合的个数可以非常大。以下启发式算法(heuristic)将问题的大小减小到(r+1)次迭代和最多((r+1)*s)次运算,其中r是R的大小,而s是S的大小。
放置控制器运行(r+1)次迭代,在这个过程中来检查从R停止应用程序并用来自S的应用程序替换它们的效果。在迭代描述中提到的开始与停止操作只是假设性的。放置控制器假定一系列开始与停止操作发生,然后它评估这些操作将对本地状态起的效果。
在第一次迭代中,控制器不停止任何运行的应用程序。如果本地节点有空闲CPU和存储器资源(Ωavailable>0且Γavailable>0),则控制器尝试开始一个或多个备用应用程序。
在迭代k中,控制器计算在停止运行应用程序{r1...rk-1}之后变得可用的存储器与CPU资源。然后,控制器向S中的应用程序分配可用的资源。最初,节点尝试(将来自S的第一应用程序)适配到可用存储器s1。如果这个操作成功(γs1≤Γavailable),则控制器尝试满足s1的全部未满足的CPU需求。结果,min((ωs1 req-ωs1 del),Ωavailable)CPU周期分配给s1。如果对s1没有足够的可用存储器,则控制器继续S中的下一个应用程序。当没有剩余的存储器或CPU可分配(Ωavailable==0或者Γavailable==0)或者当S中的所有应用程序都已经被考虑之后,迭代停止。
开始或停止应用程序消耗节点的CPU资源一定量时间。对于每种配置,改变成本从总的CPU使用率中减去。例如,如果开始应用程序消耗本地CPU资源15秒,且执行周期的长度是15分钟,则节点总处理功率的1.67%将分配给重新配置处理,而剩余的98.33%CPU可用于处理请求。
对于在迭代k结束时获得的每个集合Rk,控制器计算本地CPU使用率。最大化本地CPU使用率的集合Rk是优化配置,其在设置操作620给出。
提交并广告配置改变
图7中的流程图说明了放置算法最后阶段的逻辑。算法在确定操作702开始,在那里检查运行应用程序的集合。如果对集合没有改变,则处理结束。但是,如果放置控制器对本地配置进行了任何改变,则控制继续到计算操作704。在计算操作704,计算要停止和开始的应用程序集合。例如,令R为节点上当前活动应用程序的集合,令Rk为在算法的上一(重新配置)阶段由放置控制器计算出的优化配置。计算操作704计算要停止的应用程序集合(R\Rk)和要开始的应用程序集合(Rk\R)。在广告操作706,节点使用分散机制向系统中的所有节点或节点子集广告改变。
在确定操作708,检查要停止的结果应用程序集合。如果要停止的应用程序集合不空,则控制进行到停止操作710,在那里该应用程序集合停止。同样,在确定操作712,如果要开始的应用程序集合不空,则开始操作714开始该应用程序集合。
对于要变得有效的新配置,放置控制器需要停止R\Rk中的应用程序并开始Rk\R中的应用程序。开始或停止应用程序消耗大量的节点CPU功率一定量的时间。当采取重新配置决定的时刻和当改变变得有效且节点以全容量操作的时刻之间的延迟为:
tcommit=∑α∈R\Rkta stop+∑α∈Rk\Rta start
在tcommit时间间隔内,节点不能以其全容量操作,因为其大量CPU功率分配给了重新配置处理(停止和开始应用程序)。为了在成功完成放置算法时通知系统的剩余部分,放置控制器在广告操作716中向系统中所有节点或节点子集广告配置改变的完成。依赖于放置矩阵的使用,由放置控制器发布的每个广告消息都可以到达系统中的所有节点或者仅仅是系统中节点的子集。在一种实施方式中,放置改变被广告到系统中的所有节点。广告延迟tnotify表示广告到达系统中其它节点所需的时间。有多种方式(例如,广播)分散在节点发生的放置改变。在下一部分中,讨论本发明环境下的一种实现。
更新和维护全局放置矩阵
在本发明的一种特定实现中,节点使用杂谈协议分散放置改变并在全局放置矩阵的本地副本中维护更新的信息。图8中的流程图说明了用于将改变传播到放置矩阵的示例过程。每个节点聚合在预定义的聚合时间间隔(例如,1秒)内从其邻居接收到的所有消息,并将聚合消息的子集重新发送到其每个邻居。例如,假定节点108已经完成了运行放置算法并修改了其配置。节点108向其邻居(节点114和节点118)发送更新,由线802和804表示,将改变通知它们。
当接收到这些改变消息时,节点114和118不立即重新发送它们,而是等待聚合时间间隔到期。在聚合时间间隔结束之前由节点114和118接收或发起的任何其它消息都将与从节点108接收到的更新聚合。当它们各自的聚合时间间隔结束时,节点114和118分别向节点116和110发送聚合消息,包括从节点108接收到的更新(线806和808)。节点114和118将不向节点108重新发送从节点108接收到的更新,但是它们将向节点108发送在聚合时间间隔中从其它源收集到的消息。类似地,节点110和116向节点112发送由108发起的更新,由线810和812表示。由于引入聚合时间间隔限制了在聚合时间间隔中每个节点发起的消息数量,因此这个过程是高度可量测的。
在上一段中描述的杂谈过程以很高的概率确保所有节点将接收到每个广告的改变。但是,还是有可能某个节点将不会接收到特定的消息。因此,错误会随时间累计,导致全局放置矩阵的本地副本之间的不一致性。为了防止这种情况发生,每个节点使用上述相同的杂谈协议周期性地发送其活动应用程序的完整列表。接收到这个消息的节点相应地使用它更新放置矩阵的本地拷贝。放置矩阵中的每个项与定时器关联。如果项在预定义的时间阈值内没有更新,则项超时并从放置矩阵删除。
进一步提高系统的稳定性
以下所述的技术串行化在系统中发生的改变。它们帮助确保在放置过程中没有基于相同信息的同时改变发生。在作出影响相同资源或应用程序的其它决定之前系统组件观察并评估放置决定的影响的意义上,这种可选的处理稳定了系统。有两种类型的锁定请求:(a)用于在系统中已经运行的应用程序的锁,(b)用于在系统中任何地方都不运行的应用程序的锁。
图9中的示例流程图示出了节点获得已经在系统中运行的应用程序的锁的方式。假定节点118运行了放置算法并决定停止(或开始)应用程序A1902。还假定没有其它节点设置了用于这个应用程序的锁。节点118从其邻居节点108和110请求用于A1的锁,如在线904和906中所说明的。如果节点108和110还没有关于应用程序A1的锁,则它们向其邻居(节点114和112)转发对锁的请求,如分别由线908和910所表示的。如果节点112和114还没有关于应用程序A1的锁,则它们设置锁并分别应答来自节点108和110的请求(线908和910)。当接收到肯定的应答时,节点108和110设置其锁,并应答节点118(线904和906)。当接收到来自节点108和110的肯定应答时,节点118获得锁并进行放置改变。
对锁的请求从请求的源传播正好两个逻辑跳。锁对于应当由放置算法停止或开始的每个应用程序是必须获得的。如果在任何点对锁的请求失败,则锁预订重新进行,而请求该锁的节点等待并重新运行放置算法。如果对锁的请求成功,则节点进行放置改变,且一旦过程完成就解锁其邻居。为了处理在获得锁后节点可能的失败,锁具有超时时间,在该时间之后锁就过期了。
图10是说明获得用于激活不在系统中任何地方运行的应用程序的锁的处理的流程图。假定应用程序A1不在系统中任何节点运行,且就象使用散列函数确定的,用于A1的锁持有者是节点116。节点116从每个其它节点接收关于对应用程序A1需求的更新。例如,当运行放置算法时,节点108经历对应用程序A1的需求。如由箭头1002表示的,节点108向节点116发送需求。如由箭头1004表示的,节点116以(在前一个放置周期上计算的)对应用程序A1的全需求应答。节点108当建立其备用应用程序集合时,向应用程序A1分配从节点116接收到的需求。假定节点118遵循相同的过程并在放置算法后决定开始应用程序A1。如由箭头1006表示的,节点118从节点116请求对应用程序A1的锁。节点116检查锁的可用性,如果可用,则如由箭头1008表示的,向节点118发送锁。当接收到锁时,节点118使用上述杂谈协议通知其它节点它正开始应用程序A1。如由箭头1010表示的,在开始应用程序A1后,节点118释放来自节点116的锁。
参考图11,示出了根据本发明的网络节点1102的说明性实施方式。在其中本发明可能有用的一种网络节点1102包含通用计算机。这种计算机的例子包括Sun Microsystems,Inc.提供的SPARC(r)系统和可以从国际商用机器公司及其它各计算机制造商获得的基于Pentium(r)的计算机。SPARC是Sun Microsystems,Inc.的注册商标,而Pentium是Intel公司的注册商标。
网络节点1102包括处理单元1104、系统存储器1106及将系统存储器1106耦合到处理单元1104的系统总线1108。系统存储器1106包括只读存储器(ROM)1108和随机存取存储器(RAM)1110。包含帮助在例如启动过程中在网络节点1102的元素之间传输信息的基本例程的基本输入/输出系统(BIOS)1112存储在ROM 1108中。
网络节点1102还包括硬盘驱动器1114、磁盘驱动器1116(用于向可拆卸磁盘1118读/写)及光盘驱动器1120(用于读CD-ROM盘1122或/向从其它光介质读/写)。硬盘驱动器1114、磁盘驱动器1116和光盘驱动器1120分别由硬盘接口1124、磁盘接口1126和光盘接口1128连接到系统总线1108。驱动器及其关联的计算机可读介质为计算机104提供非易失贮存器。尽管计算机可读介质指硬盘、可拆卸磁介质和可拆卸光介质,但本领域技术人员应当理解可以由计算机读取的其它类型介质,例如闪存卡,也可以用在说明性节点1102中。
多个程序模块可以存储在驱动器与RAM 1110中,包括操作系统1130、分散放置应用程序1132、全局放置矩阵1134及其它程序模块与数据(未示出)。如上面所讨论的,节点1102配置成动态重新配置应用程序以分布方式的放置。
用户可以通过键盘1136和例如鼠标1138的定点设备将命令和信息输入到节点1102。其它输入设备(未示出)可以包括麦克风、调制解调器、操纵杆、游戏板、卫星反射器、扫描仪等。这些和其它输入设备常常通过耦合到系统总线1108的串行端口接口1140连接到处理单元。
监视器1142或其它类型的显示设备也通过例如视频适配器1144的接口连接到系统总线1108。除了监视器,节点1102还可以包括其它外围输出设备(未示出),例如扬声器和打印机。
节点1102使用到一个或多个远程设备的逻辑连接在联网环境中运行。远程设备可以是服务器、路由器、对等设备或其它公共的网络节点。节点1102当用在网络环境中时,一般通过网络接口1146连接到网络1148。在网络环境中,关于节点1102描述的程序模块或其部分可以存储在一个或多个远程存储器存储设备中。
转向图12,示出了如本发明一种实施方式预期的用于节点簇的分散应用程序资源分配的示例流程图。接收操作1202配置成在本地节点从节点簇中的节点子集接收应用程序的资源利用率数据。在本发明的特定实施方式中,每个节点从其每个邻居检索以下信息:
(a)活动(执行)应用程序的列表,
(b)这些活动应用程序中每一个的需求与提供,及
(c)对在系统中任何地方都没有提供的其邻居不能使用全局放置矩阵路由的应用程序的需求。
基于这种信息,节点本地建立两组应用程序:运行的应用程序和备用的应用程序。
本地节点包括其正执行的当前应用程序集合。用运行的应用程序集合和备用的应用程序集合,使用确定操作1204形成要在本地节点执行的新的应用程序集合(这种操作的细节在上面讨论过了)。该新的应用程序集合配置成优化由本地节点本地计算的目标函数并至少部分地基于使用率数据。在本发明的一种实施方式中,目标函数可以是最大化本地节点CPU使用率的函数。但是,预期其它的目标函数也可以由本发明使用。例如,目标函数可以是最小化功耗或者关于CPU需求的任何其它函数。
修改操作1206根据新的执行应用程序集合修改哪些应用程序在本地节点执行。发送操作1208从本地节点向节点簇中的所述节点子集广告本地节点上新应用程序集合和当前应用程序集合之间的应用程序执行改变。
本发明以上描述的提出是为了说明与描述。这不打算是穷尽的或者要将本发明限定到所公开的精确形式,鉴于以上教义,其它修改与变体也是可能的。因此,所公开实施方式的选择与描述是为了最好地解释本发明的原理及其实际应用,由此使本领域其它技术人员以适合于预期的特定使用的各种实施方式及各种修改最好地使用本发明。所附权利要求是要被解释成包括本发明的其它可选实施方式,除了由现有技术所限定的以外。
Claims (12)
1.一种用于节点簇的分散应用程序资源分配的方法,该方法包括:
在本地节点从节点簇中的节点子集接收应用程序的资源利用率数据,该本地节点包括在该本地节点执行的当前应用程序集合;
至少部分地基于该利用率数据确定要在该本地节点执行的新应用程序集合,该新应用程序集合优化由本地节点在本地计算的目标函数;
根据所述新的执行应用程序集合修改关于哪些应用程序在该本地节点执行的信息;及
从该本地节点向节点簇中的所述节点子集发送本地节点上所述新应用程序集合和所述当前应用程序集合之间的应用程序执行改变,其中确定要在本地节点执行的新应用程序集合的步骤还包括:
定义在本地节点执行的运行应用程序集合;
以交付密度的升序排序所述运行应用程序,其中交付密度定义为交付给应用程序的CPU量与应用程序所使用的存储器之比;
定义备用应用程序集合,所述备用应用程序包括在所述节点子集上执行但不在本地节点上执行的应用程序和不在节点簇中任何地方执行的应用程序;
通过从所述备用应用程序集合中除去对其没有未满足需求的应用程序来过滤所述备用应用程序集合,所述未满足需求定义为资源的需求与提供之间的差值;
以未满足密度的降序排序所述备用应用程序集合,所述未满足密度定义为所述未满足需求与应用程序所使用的存储器之比;
通过尝试从本地节点分配尽可能多的负载到所述节点子集来偏移负载;
通过用来自排序后的备用应用程序集合的应用程序连续代替来自排序后的运行应用程序集合的应用程序,建立多个本地配置;以及
从所述本地配置选择最大化本地节点上的CPU利用率的优化配置。
2.如权利要求1所述的方法,其中所述接收、确定、修改与发送操作是在节点簇中的每个节点独立、异步执行的。
3.如权利要求1所述的方法,还包括使用覆盖构造算法为该本地节点识别所述节点子集,该节点子集是该本地节点的逻辑邻居。
4.如权利要求1所述的方法,其中接收资源利用率数据的动作包括:
从所述节点子集中的每个节点接收活动应用程序列表;
接收用于列表中的每个活动应用程序的资源提供与需求;及
接收用于列表中的每个活动应用程序的资源利用率数据。
5.如权利要求1所述的方法,其中从本地节点向节点簇中的所述节点子集发送应用程序执行改变的步骤包括使用杂谈协议,在杂谈协议中每个节点聚合该节点在预定时间间隔内接收或发起的消息,然后在单个消息中向邻居节点发送聚合消息。
6.如权利要求1所述的方法,还包括:
对于本地节点开始和停止的每个应用程序,锁定离开两个逻辑跳远的所有节点并防止所述离开两个逻辑跳远的所有节点开始和停止该应用程序;及
从指定的节点获得防止其它节点开始当前未在节点簇中任何地方运行的应用程序的锁。
7.一种用于节点簇的分散应用程序资源分配的系统,该系统包括:
在本地节点从节点簇中的节点子集接收应用程序的资源利用率数据的装置,其中该本地节点包括在该本地节点执行的当前应用程序集合;
至少部分地基于该利用率数据确定要在该本地节点执行的新应用程序集合的装置,其中该新应用程序集合优化由本地节点在本地计算的目标函数;
根据所述新的执行应用程序集合修改关于哪些应用程序在该本地节点执行的信息的装置;以及
从该本地节点向节点簇中的所述节点子集发送本地节点上的所述新应用程序集合和所述当前应用程序集合之间的应用程序执行改变的装置,其中至少部分地基于该利用率数据确定要在该本地节点执行的新应用程序集合的装置被配置为:
定义在本地节点执行的运行应用程序集合;
以交付密度的升序排序运行应用程序,其中交付密度定义为交付给应用程序的CPU量与应用程序所使用的存储器之比;
定义备用应用程序集合,所述备用应用程序包括在所述节点子集上执行但不在本地节点上执行的应用程序和不在节点簇中任何地方执行的应用程序;
通过从所述备用应用程序集合中除去对其没有未满足需求的应用程序来过滤所述备用应用程序集合,所述未满足的需求定义为资源的需求与提供之间的差值;
以未满足密度的降序排序所述备用应用程序集合,所述未满足密度定义为未满足需求与应用程序所使用的存储器之比;
通过尝试从本地节点分配尽可能多的负载到所述节点子集来偏移负载;
通过用来自排序后的备用应用程序集合的应用程序连续代替来自排序后运行应用程序集合的应用程序,建立多个本地配置;及
从所述本地配置选择最大化本地节点上的CPU利用率的优化配置。
8.如权利要求7所述的系统,被配置为在节点簇中的每个节点独立、异步执行所述接收、确定、修改与发送操作。
9.如权利要求7所述的系统,还包括使用覆盖构造算法为本地节点识别所述节点子集的装置,其中所述节点子集是该本地节点的逻辑邻居。
10.如权利要求7所述的系统,其中在本地节点从节点簇中的节点子集接收应用程序的资源利用率数据的装置被配置为:
从节点子集中的每个节点接收活动应用程序列表;
接收用于列表中的每个活动应用程序的资源提供与需求;以及
接收用于列表中的每个活动应用程序的资源利用率数据。
11.如权利要求7所述的系统,其中从该本地节点向节点簇中的所述节点子集发送本地节点上的所述新应用程序集合和所述当前应用程序集合之间的应用程序执行改变的装置被配置为:在杂谈协议中每个节点聚合该节点在预定时间间隔内接收或发起的消息,然后在单个消息中向邻居节点发送聚合消息。
12.如权利要求7所述的系统,还包括:
对于本地节点开始和停止的每个应用程序,锁定离开两个逻辑跳远的所有节点并防止所述离开两个逻辑跳远的所有节点开始和停止该应用程序的装置;以及
从指定的节点获得防止其它节点开始当前未在节点簇中任何地方运行的应用程序的锁的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/344,606 | 2006-01-31 | ||
US11/344,606 US7496667B2 (en) | 2006-01-31 | 2006-01-31 | Decentralized application placement for web application middleware |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101014036A CN101014036A (zh) | 2007-08-08 |
CN101014036B true CN101014036B (zh) | 2010-08-04 |
Family
ID=38323417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100021510A Active CN101014036B (zh) | 2006-01-31 | 2007-01-04 | 用于节点簇的分散应用程序资源分配的方法与系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7496667B2 (zh) |
JP (1) | JP5254547B2 (zh) |
CN (1) | CN101014036B (zh) |
Families Citing this family (122)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7400878B2 (en) | 2004-02-26 | 2008-07-15 | Research In Motion Limited | Computing device with environment aware features |
US8954584B1 (en) * | 2004-08-18 | 2015-02-10 | Oracle America, Inc. | Policy engine for automating management of scalable distributed persistent applications in a grid |
US9110985B2 (en) * | 2005-05-10 | 2015-08-18 | Neetseer, Inc. | Generating a conceptual association graph from large-scale loosely-grouped content |
US7958120B2 (en) * | 2005-05-10 | 2011-06-07 | Netseer, Inc. | Method and apparatus for distributed community finding |
US7836452B2 (en) * | 2005-06-10 | 2010-11-16 | International Business Machines Corporation | System, method and program for estimating a requisite amount of server resources |
WO2007084616A2 (en) | 2006-01-18 | 2007-07-26 | Ilial, Inc. | System and method for context-based knowledge search, tagging, collaboration, management and advertisement |
WO2007084778A2 (en) | 2006-01-19 | 2007-07-26 | Llial, Inc. | Systems and methods for creating, navigating and searching informational web neighborhoods |
US8843434B2 (en) | 2006-02-28 | 2014-09-23 | Netseer, Inc. | Methods and apparatus for visualizing, managing, monetizing, and personalizing knowledge search results on a user interface |
US20070300239A1 (en) * | 2006-06-23 | 2007-12-27 | International Business Machines Corporation | Dynamic application instance placement in data center environments |
US9817902B2 (en) * | 2006-10-27 | 2017-11-14 | Netseer Acquisition, Inc. | Methods and apparatus for matching relevant content to user intention |
US9218213B2 (en) | 2006-10-31 | 2015-12-22 | International Business Machines Corporation | Dynamic placement of heterogeneous workloads |
US9405585B2 (en) * | 2007-04-30 | 2016-08-02 | International Business Machines Corporation | Management of heterogeneous workloads |
US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US7991910B2 (en) | 2008-11-17 | 2011-08-02 | Amazon Technologies, Inc. | Updating routing information based on client location |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US8601090B1 (en) | 2008-03-31 | 2013-12-03 | Amazon Technologies, Inc. | Network resource identification |
US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
US7970820B1 (en) | 2008-03-31 | 2011-06-28 | Amazon Technologies, Inc. | Locality based content distribution |
US8447831B1 (en) | 2008-03-31 | 2013-05-21 | Amazon Technologies, Inc. | Incentive driven content delivery |
US8533293B1 (en) | 2008-03-31 | 2013-09-10 | Amazon Technologies, Inc. | Client side cache management |
US20090248631A1 (en) * | 2008-03-31 | 2009-10-01 | International Business Machines Corporation | System and Method for Balancing Workload of a Database Based Application by Partitioning Database Queries |
US7962597B2 (en) | 2008-03-31 | 2011-06-14 | Amazon Technologies, Inc. | Request routing based on class |
US8161483B2 (en) * | 2008-04-24 | 2012-04-17 | International Business Machines Corporation | Configuring a parallel computer based on an interleave rate of an application containing serial and parallel segments |
US10387892B2 (en) * | 2008-05-06 | 2019-08-20 | Netseer, Inc. | Discovering relevant concept and context for content node |
US20090300009A1 (en) * | 2008-05-30 | 2009-12-03 | Netseer, Inc. | Behavioral Targeting For Tracking, Aggregating, And Predicting Online Behavior |
US9912740B2 (en) | 2008-06-30 | 2018-03-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US7925782B2 (en) | 2008-06-30 | 2011-04-12 | Amazon Technologies, Inc. | Request routing using network computing components |
US9407681B1 (en) | 2010-09-28 | 2016-08-02 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8417695B2 (en) * | 2008-10-30 | 2013-04-09 | Netseer, Inc. | Identifying related concepts of URLs and domain names |
KR101574603B1 (ko) | 2008-10-31 | 2015-12-04 | 삼성전자주식회사 | 컨디셔널 프로세싱 방법 및 장치 |
US8073940B1 (en) | 2008-11-17 | 2011-12-06 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8732309B1 (en) | 2008-11-17 | 2014-05-20 | Amazon Technologies, Inc. | Request routing utilizing cost information |
US8521880B1 (en) | 2008-11-17 | 2013-08-27 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8122098B1 (en) | 2008-11-17 | 2012-02-21 | Amazon Technologies, Inc. | Managing content delivery network service providers by a content broker |
US20100131943A1 (en) * | 2008-11-27 | 2010-05-27 | Samsung Electronics Co., Ltd. | Method and system for optimizing application deployment in open service gateway initiative framework |
US8756341B1 (en) | 2009-03-27 | 2014-06-17 | Amazon Technologies, Inc. | Request routing utilizing popularity information |
US8521851B1 (en) | 2009-03-27 | 2013-08-27 | Amazon Technologies, Inc. | DNS query processing using resource identifiers specifying an application broker |
US8688837B1 (en) | 2009-03-27 | 2014-04-01 | Amazon Technologies, Inc. | Dynamically translating resource identifiers for request routing using popularity information |
US8412823B1 (en) | 2009-03-27 | 2013-04-02 | Amazon Technologies, Inc. | Managing tracking information entries in resource cache components |
US8904394B2 (en) * | 2009-06-04 | 2014-12-02 | International Business Machines Corporation | System and method for controlling heat dissipation through service level agreement analysis by modifying scheduled processing jobs |
US8782236B1 (en) | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8433771B1 (en) | 2009-10-02 | 2013-04-30 | Amazon Technologies, Inc. | Distribution network with forward resource propagation |
US8589555B2 (en) * | 2010-01-11 | 2013-11-19 | Nec Laboratories America, Inc. | Virtualization and consolidation analysis engine for enterprise data centers |
US9277022B2 (en) | 2010-01-15 | 2016-03-01 | Endurance International Group, Inc. | Guided workflows for establishing a web presence |
US9883008B2 (en) | 2010-01-15 | 2018-01-30 | Endurance International Group, Inc. | Virtualization of multiple distinct website hosting architectures |
US8762484B2 (en) * | 2010-01-15 | 2014-06-24 | Endurance International Group, Inc. | Unaffiliated web domain hosting service based on a common service architecture |
US9495338B1 (en) | 2010-01-28 | 2016-11-15 | Amazon Technologies, Inc. | Content distribution network |
US8320274B2 (en) * | 2010-04-21 | 2012-11-27 | Telcordia Technologies, Inc. | Distributed method for equitable bandwidth allocation for content distribution in a network |
JP5422729B2 (ja) * | 2010-09-16 | 2014-02-19 | 株式会社日立製作所 | 情報処理システムの運用管理方法、運用管理プログラムおよび運用管理装置、ならびに情報処理システム |
CN103229182B (zh) | 2010-09-24 | 2016-05-25 | 黑莓有限公司 | 用于差异化的访问控制的方法和设备 |
WO2012037658A1 (en) | 2010-09-24 | 2012-03-29 | Research In Motion Limited | Method and apparatus for differentiated access control |
US8819283B2 (en) | 2010-09-28 | 2014-08-26 | Amazon Technologies, Inc. | Request routing in a networked environment |
US9003035B1 (en) | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US10097398B1 (en) | 2010-09-28 | 2018-10-09 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8468247B1 (en) | 2010-09-28 | 2013-06-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8577992B1 (en) | 2010-09-28 | 2013-11-05 | Amazon Technologies, Inc. | Request routing management based on network components |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US8452874B2 (en) | 2010-11-22 | 2013-05-28 | Amazon Technologies, Inc. | Request routing processing |
US10467042B1 (en) | 2011-04-27 | 2019-11-05 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
US9471389B2 (en) * | 2011-06-30 | 2016-10-18 | International Business Machines Corporation | Dynamically tuning server placement |
US9208007B2 (en) | 2012-01-18 | 2015-12-08 | International Business Machines Corporation | Open resilience framework for simplified and coordinated orchestration of multiple availability managers |
US8904009B1 (en) | 2012-02-10 | 2014-12-02 | Amazon Technologies, Inc. | Dynamic content delivery |
US10021179B1 (en) | 2012-02-21 | 2018-07-10 | Amazon Technologies, Inc. | Local resource delivery network |
US8943372B2 (en) | 2012-03-30 | 2015-01-27 | International Business Machines Corporation | Systems and methods for open and extensible integration of management domains in computation and orchestration of resource placement |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US20130326053A1 (en) * | 2012-06-04 | 2013-12-05 | Alcatel-Lucent Usa Inc. | Method And Apparatus For Single Point Of Failure Elimination For Cloud-Based Applications |
US9154551B1 (en) | 2012-06-11 | 2015-10-06 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US8972762B2 (en) | 2012-07-11 | 2015-03-03 | Blackberry Limited | Computing devices and methods for resetting inactivity timers on computing devices |
WO2014025584A1 (en) * | 2012-08-07 | 2014-02-13 | Advanced Micro Devices, Inc. | System and method for tuning a cloud computing system |
US10311085B2 (en) | 2012-08-31 | 2019-06-04 | Netseer, Inc. | Concept-level user intent profile extraction and applications |
US9525659B1 (en) | 2012-09-04 | 2016-12-20 | Amazon Technologies, Inc. | Request routing utilizing point of presence load information |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
US9628399B2 (en) * | 2013-03-14 | 2017-04-18 | International Business Machines Corporation | Software product instance placement |
US9294391B1 (en) | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
WO2015087384A1 (ja) * | 2013-12-09 | 2015-06-18 | 株式会社日立製作所 | 情報処理システム及び情報処理方法 |
US20150264117A1 (en) * | 2014-03-14 | 2015-09-17 | Avni Networks Inc. | Processes for a highly scalable, distributed, multi-cloud application deployment, orchestration and delivery fabric |
US9680708B2 (en) | 2014-03-14 | 2017-06-13 | Veritas Technologies | Method and apparatus for cloud resource delivery |
US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10742718B1 (en) | 2014-12-23 | 2020-08-11 | Amazon Technologies, Inc. | Distributed computing system node management |
US10826971B1 (en) * | 2014-12-23 | 2020-11-03 | Amazon Technologies, Inc. | Distributed computing system node management |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US9887932B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9887931B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US10635471B2 (en) | 2015-05-15 | 2020-04-28 | Joshua Paul Davis | System and method for an autonomous entity |
US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
US9742795B1 (en) | 2015-09-24 | 2017-08-22 | Amazon Technologies, Inc. | Mitigating network attacks |
US9794281B1 (en) | 2015-09-24 | 2017-10-17 | Amazon Technologies, Inc. | Identifying sources of network attacks |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
US10432707B2 (en) * | 2016-03-02 | 2019-10-01 | International Business Machines Corporation | Optimization of integration flows in cloud environments |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
US10616250B2 (en) | 2016-10-05 | 2020-04-07 | Amazon Technologies, Inc. | Network addresses with encoded DNS-level information |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
CN107395664B (zh) * | 2017-05-22 | 2019-09-03 | 阿里巴巴集团控股有限公司 | 一种业务执行的方法及装置 |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US10742593B1 (en) | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
GB201802347D0 (en) | 2018-02-13 | 2018-03-28 | Nchain Holdings Ltd | Computer-implemented system and method |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
US11568495B2 (en) | 2019-08-20 | 2023-01-31 | Joshua Paul Davis | Computer systems and software for self-executing code and distributed database |
US11620205B2 (en) * | 2020-10-19 | 2023-04-04 | International Business Machines Corporation | Determining influence of applications on system performance |
US11546422B2 (en) | 2021-01-08 | 2023-01-03 | Capital One Services, Llc | Dynamic management of locations of modules of a platform hosted by a distributed system |
WO2022254253A2 (en) * | 2021-05-31 | 2022-12-08 | Mellanox Technologies, Ltd. | Deadlock-resilient lock mechanism for reduction operations |
US11789792B1 (en) | 2022-05-26 | 2023-10-17 | Mellanox Technologies, Ltd. | Message passing interface (MPI) collectives using multi-allgather |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07152699A (ja) * | 1993-11-29 | 1995-06-16 | Canon Inc | 情報処理方法及び装置及びシステム |
JP3696901B2 (ja) * | 1994-07-19 | 2005-09-21 | キヤノン株式会社 | 負荷分散方法 |
US6976090B2 (en) * | 2000-04-20 | 2005-12-13 | Actona Technologies Ltd. | Differentiated content and application delivery via internet |
JP2002007364A (ja) * | 2000-06-22 | 2002-01-11 | Fujitsu Ltd | 並列計算機システムのジョブスケジューリングを行うスケジューリング装置 |
US6963537B2 (en) * | 2000-07-27 | 2005-11-08 | Corrigent Systems Ltd. | Resource reservation in a ring network |
US7596784B2 (en) * | 2000-09-12 | 2009-09-29 | Symantec Operating Corporation | Method system and apparatus for providing pay-per-use distributed computing resources |
US7822860B2 (en) * | 2001-12-11 | 2010-10-26 | International Business Machines Corporation | Method and apparatus for dynamic reconfiguration of web services infrastructure |
DE10229879A1 (de) * | 2002-04-29 | 2003-11-13 | Siemens Ag | Datenverarbeitungssystem mit Diensten zur Bereitstellung von Funktionalitäten |
US7263560B2 (en) * | 2002-08-30 | 2007-08-28 | Sun Microsystems, Inc. | Decentralized peer-to-peer advertisement |
US20040267897A1 (en) * | 2003-06-24 | 2004-12-30 | Sychron Inc. | Distributed System Providing Scalable Methodology for Real-Time Control of Server Pools and Data Centers |
US7574707B2 (en) * | 2003-07-28 | 2009-08-11 | Sap Ag | Install-run-remove mechanism |
JP2005107958A (ja) * | 2003-09-30 | 2005-04-21 | Fujitsu Ltd | ネットワークに接続されたコンピュータ間におけるプロセス分散システムのためのプログラム |
US20050188075A1 (en) * | 2004-01-22 | 2005-08-25 | International Business Machines Corporation | System and method for supporting transaction and parallel services in a clustered system based on a service level agreement |
JP4692774B2 (ja) * | 2004-09-14 | 2011-06-01 | 日本電気株式会社 | データ配信システム及びデータ配信方法 |
US7788671B2 (en) * | 2004-11-01 | 2010-08-31 | International Business Machines Corporation | On-demand application resource allocation through dynamic reconfiguration of application cluster size and placement |
US20060242647A1 (en) * | 2005-04-21 | 2006-10-26 | Kimbrel Tracy J | Dynamic application placement under service and memory constraints |
US7716180B2 (en) * | 2005-12-29 | 2010-05-11 | Amazon Technologies, Inc. | Distributed storage system with web services client interface |
-
2006
- 2006-01-31 US US11/344,606 patent/US7496667B2/en not_active Expired - Fee Related
- 2006-12-27 JP JP2006353212A patent/JP5254547B2/ja not_active Expired - Fee Related
-
2007
- 2007-01-04 CN CN2007100021510A patent/CN101014036B/zh active Active
-
2009
- 2009-02-21 US US12/390,417 patent/US8140681B2/en active Active
Non-Patent Citations (2)
Title |
---|
杨俊秀,王继曾,赵文来,王娜.一种改进的动态负载均衡算法.兰州理工大学学报30 1.2004,30(1),2. |
杨俊秀,王继曾,赵文来,王娜.一种改进的动态负载均衡算法.兰州理工大学学报30 1.2004,30(1),2. * |
Also Published As
Publication number | Publication date |
---|---|
US8140681B2 (en) | 2012-03-20 |
US7496667B2 (en) | 2009-02-24 |
JP5254547B2 (ja) | 2013-08-07 |
US20090157855A1 (en) | 2009-06-18 |
US20070180083A1 (en) | 2007-08-02 |
CN101014036A (zh) | 2007-08-08 |
JP2007207225A (ja) | 2007-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101014036B (zh) | 用于节点簇的分散应用程序资源分配的方法与系统 | |
US8380557B2 (en) | Multi-tenant database management for service level agreement (SLA) profit maximization | |
Liu et al. | Solving the multi-objective problem of IoT service placement in fog computing using cuckoo search algorithm | |
CN107273185B (zh) | 一种基于虚拟机的负载均衡控制方法 | |
US8510745B2 (en) | Dynamic application placement under service and memory constraints | |
Balasangameshwara et al. | A hybrid policy for fault tolerant load balancing in grid computing environments | |
US8566447B2 (en) | Virtual service switch | |
US7761557B2 (en) | Facilitating overall grid environment management by monitoring and distributing grid activity | |
US7533170B2 (en) | Coordinating the monitoring, management, and prediction of unintended changes within a grid environment | |
WO2006100752A1 (ja) | 分散処理管理装置、分散処理管理方法、分散処理管理プログラム | |
CN103534687A (zh) | 聚簇数据格网中的可扩展集中动态资源分配 | |
US20080059554A1 (en) | distributed computing environment | |
CN103098027A (zh) | 用于动态管理计算容量请求的方法和系统 | |
CN103581332A (zh) | HDFS架构及HDFS架构中NameNode节点的压力分解方法 | |
CN110914805A (zh) | 用于分层任务调度的计算系统 | |
US20130346360A1 (en) | Tenant placement in multitenant databases for profit maximization | |
US6622167B1 (en) | Document shadowing intranet server, memory medium and method | |
Kalayci et al. | Distributed and Adaptive Execution of Condor DAGMan Workflows. | |
Vashisht et al. | Efficient dynamic replication algorithm using agent for data grid | |
Ramezani et al. | Task Scheduling in cloud environments: a survey of population‐based evolutionary algorithms | |
CN116055499A (zh) | 基于redis的集群任务智能化调度方法、设备、介质 | |
CN100358289C (zh) | 一种综合网管系统及管理网元管理系统的方法 | |
US20080059553A1 (en) | Application structure for supporting partial functionality in a distributed computing infrastructure | |
Anan et al. | Optimization of power and migration cost in virtualized data centers | |
CN117149445B (zh) | 一种跨集群负载均衡方法及装置、设备及存储介质 |
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 |