CN104737132B - 用于按需服务环境中的消息队列的基于竞价的资源共享 - Google Patents
用于按需服务环境中的消息队列的基于竞价的资源共享 Download PDFInfo
- Publication number
- CN104737132B CN104737132B CN201380047246.8A CN201380047246A CN104737132B CN 104737132 B CN104737132 B CN 104737132B CN 201380047246 A CN201380047246 A CN 201380047246A CN 104737132 B CN104737132 B CN 104737132B
- Authority
- CN
- China
- Prior art keywords
- resource
- tenant
- bid
- client
- message
- 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
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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/40—User authentication by quorum, i.e. whereby two or more security principals are required
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/08—Auctions
-
- 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/30—Decision processes by autonomous network management units using voting and bidding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/83—Admission control; Resource allocation based on usage prediction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Hardware Design (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
按照实施例,提供了用于促进按需服务环境中根据一个实施例的用于用户消息的线程资源的基于竞价的公平分配和使用的机构和方法。在一个实施例中并且通过示例的方式,方法包括:在网络上从多个组织接收作业请求和出价,其中每个作业请求和对应的出价由与多租户数据库系统内具有资源货币价值的组织相关联的用户经由计算设备处的用户接口在网络上做出,确定与涉及该多个组织的未决作业相关联的资源货币价值,其中资源货币价值对应于专用于未决作业的资源,并且执行针对不是专用的并且仍然可购买的资源的所接收的出价的竞价,其中出价包括购买请求以购买可用资源。该方法可以进一步包括基于专用资源和可用资源的竞价来对作业请求排序,并且基于经排序的作业请求来处理作业请求。
Description
要求优先权
本申请要求由王肖丹(Xiaodan Wang)等于2012年10月1日提交的名为“在按需系统中分配资源的系统和方法(System and Method for Allocation of Resources in anOn-Demand System)”的美国临时专利申请号61/708,283(代理人案号:8956P114Z)、由王肖丹(Xiaodan Wang)于2012年10月10日提交的名为“用于基于竞价的多租户资源共享的系统和方法(System and Method for Auction-Based Multi-Tenant Resource Sharing)”的美国临时专利申请号61/711,837(代理人案号:8956115Z)、由王肖丹(Xiaodan Wang)等于2012年10月3日提交的名为“用于基于法定人数的经纪人健康协调的系统和方法(Systemand Method for Quorum-Based Coordination of Broker Health)”的美国临时专利申请号61/709,263(代理人案号:8956116Z)、由王肖丹(Xiaodan Wang)等于2012年9月12日提交的名为“用于工作量调度的适应、分层和多租户的路由框架(Adaptive,Tiered,and Multi-Tenant Routing Framework for Workload Scheduling)”的美国临时专利申请号61/700,032(代理人案号:8956117Z)、由王肖丹(Xiaodan Wang)等于2012年9月12日提交的名为“在消息队列中的滑动窗口资源跟踪(Sliding Window Resource Tracking in MessageQueue)”的美国临时专利申请号61/700,037(代理人案号:8956118Z)的权益,这里通过引用将其全部内容并入并且要求其优先权,这里通过引用将其全部内容并入并且要求其优先权。
著作权公告
本专利文献的部分公开内容包含受著作权保护的素材。著作权所有人不反对任何人对出现在专利商标局专利文件或记录中的专利文献或专利公开内容进行复制再现,但除此之外保留所有一切著作权权利。
技术领域
一个或多个实现总体上涉及数据管理,并且,更具体地,涉及用于促进用于按需服务环境中的消息队列的基于竞价的资源共享的机构。
背景技术
大规模云平台销售商和服务提供商每天接收数百万异步和资源-密集的客户请求,这些请求导致对服务提供商而言极其棘手的资源分配要求和可扩展性要求。大多数客户失意于等待他们的请求被履行,因为没有提供任何确保响应这样的请求的实时性的常用技术。此外,多个租赁意味着多个用户竞争有限的资源池,使得确保以与客户期望一致的方式来适当地调度资源更加复杂。
在不同类型的消息中公正地分发诸如为应用服务器线程时间的资源交割的分配点已经成为挑战,特别是在多租户按需系统中。消息指在应用服务器上执行的工作单元。能够将消息分组成任意数量的类型,诸如粗略地,300个类型,从诸如为刷新仪表盘上的报告的面向用户的工作到诸如为删除不使用的文件的内部工作的范围。同样地,消息显示了它们消耗的包括线程时间的资源数量上的宽可变性。这能够导致长运行消息带来的饥饿,其中长运行消息剥夺了短的消息接收它们的线程时间的公平的份额。当这影响诸如为仪表盘面向客户工作时,当面对性能降级时客户可能厌烦并且抱怨。
在背景技术小节讨论的主题不应该仅仅由于其在背景技术小节中的提及而被假定成现有技术。类似地,在背景技术小节中提及或与背景技术小节的主题相关联的问题不应该被假定成已经在现有技术中先前认识到。背景技术小节中的主题仅仅代表不同的方法。
在传统数据库系统中,用户在一个逻辑数据库中访问他们的数据资源。这样的传统系统的用户典型地使用用户自身的系统来从系统中检索数据以及存储数据于系统上。用户系统可以远程地访问可以依次访问数据库系统的多个服务器系统中的一个服务器系统。从系统中检索数据可以包括将查询从用户系统发布到数据库系统。数据库系统可以处理对在查询中接收到的信息的请求并且向用户系统发送与请求相关的信息。准确信息的安全和有效的检索以及随后将这一信息传递到用户系统已经并且继续是数据库系统的管理员的目标。不幸的是,传统数据库方法与各种限制相关联。
发明内容
按照实施例,提供了用于促进在按需服务环境中根据一个实施例的用于用户消息的线程资源的基于竞价的公平分配和使用的机构和方法。在一个实施例中并且通过示例的方式,提供一种方法,包括:在网络上从多个组织接收作业请求和出价,其中每个作业请求和对应的出价由与多租户数据库系统内具有资源货币价值的组织相关联的用户在网络上经由计算设备处的用户接口做出;确定与涉及该多个组织的未决作业相关联的资源货币价值,其中资源货币价值对应于专用于未决作业的资源;以及对所接收的用于非专用并且仍然可用于购买的资源的出价执行竞价,其中出价包括购买请求以购买所述可用资源。该方法可以进一步包括基于专用资源和可用资源的竞价来对作业请求排序,以及基于经排序的作业请求来处理作业请求。
总之,本发明的实施方案如下列第1项、第8项和第15项所述,其余各项为优选实施方案:
1.一种用于促进在按需服务环境中用于用户消息的线程资源的基于竞价的公平分配和使用的方法,该方法包括:
在多租户的环境中从多个租户的一组租户接收作业请求和出价,其中在网络上接收作业请求和出价;
确定为多个租户中的一个或多个的租户执行的与未决作业相关联的资源货币价值的平衡,其中所述资源货币价值的平衡指示租户容量以继续占用专用于执行未决作业的一部分资源,其中当平衡被消耗掉或未决作业被完成时,对于另一个作业放弃这一部分资源;
对所接收的用于购买一部分或多个部分资源的出价执行竞价,其中每个出价包括指示一组租户中的每个租户的购买能力的购买请求以购买一部分或多个部分的资源来执行在一个或多个的作业请求中所需要的一个或多个的作业,其中竞价要考虑一组租户的至少一个行为和作业请求的类型,其中竞价还要考虑之前专用于一个或多个未决作业的一部分或多个部分的被放弃的资源;
基于由竞价产生的资源分配决定来对作业请求排序以动态地调节资源分配来执行在作业请求中所需要的作业;以及
基于作业请求的排序来处理作业请求。
2.如上述1的方法,进一步包括如果租户的未决作业请求完成而未消耗掉其资源货币价值,则基于作业请求的排序将资源的余量分配给由所述租户做出的额外的作业请求。
3.如上述1的方法,进一步包括基于作业请求的排序,将一定数量的资源贡献给由所述多个租户的一组租户的子集租户所做出的一个或多个已接收的出价。
4.如上述3的方法,其中进一步包括基于所述子集租户购买一定量资源的购买能力将一定量的资源分配给所述子集租户,至少部分地基于与由所述子集租户做出的一个或多个已接收的出价或一个或多个已接收的出价的优势相关的一个或多个作业请求的每一个的大小来确定,其中优势基于货币价值。
5.如上述3的方法,进一步包括由于缺乏购买一定量资源的购买能力而将给所述子集租户的资源降低一定量。
6.如上述1的方法,进一步包括在与所述多个租户相关联的一个或多个竞价服务器中广播所述出价,其中响应于所述广播,而从所述多个租户中的一个或多个接收优势出价。
7.如上述1的方法,其中通过计算机设备处的用户接口做出作业请求或出价,其中所示用户接口由计算设备处的软件应用提供,软件应用包括商业软件应用、商业网络网站、以及社交网络网站中的一个或多个,其中计算设备包括客户端计算设备,所述客户端计算设备为进行通信的网络的部分,其中网络包括基于云的网络、局域网(LAN)、广域网(WAN)、城域网(MAN)、个域网(PAN)、内联网、外联网、以及因特网中的一个或多个。
8.一种用于促进在按需服务环境中用于用户消息的线程资源的基于竞价的公平分配和使用的系统,该系统包括:
具有用以存储指令的存储器以及用以执行指令的处理设备的计算设备,计算设备进一步具有机构,所述机构:
在多租户的环境中从多个租户的一组租户接收作业请求和出价,其中在网络上接收作业请求和出价;
确定为多个租户中的一个或多个的租户执行的与未决作业相关联的资源货币价值的平衡,其中资源货币价值的平衡指示租户容量以继续占用专用于执行未决作业的一部分资源,其中当平衡被消耗掉或未决作业被完成时,对于另一个作业放弃这一部分资源;
对所接收的用于购买一部分或多个部分资源的出价执行竞价,其中每个出价包括指示一组租户中的每个租户的购买能力的购买请求以购买一部分或多个部分的资源来执行在一个或多个的作业请求中所需要的一个或多个的作业,其中竞价要考虑一组租户的至少一个行为和作业请求的类型,其中竞价还要考虑之前专用于一个或多个未决作业的一部分或多个部分的被放弃的资源;
基于由竞价产生的资源分配决定来对作业请求排序以动态地调节资源分配来执行在作业请求中所需要的作业;以及
基于作业请求的排序来处理作业请求。
9.如上述8的系统,其中所述机构进一步包括如果租户的未决作业请求完成而未消耗其资源货币价值,则基于作业请求的排序将资源的余量分配给由租户做出的额外的作业请求。
10.如上述8的系统,其中所述机构进一步基于作业请求的排序,将一定量的资源贡献给由所述多个租户的一组租户的子集租户做出的所接收的出价中的一个或多个。
11.如上述10的系统,其中所述机构进一步基于所述子集租户购买一定量资源的购买能力,将一定量的资源分配给所述子集租户,至少部分地基于与由所述子集租户做出的一个或多个已接收的出价或一个或多个已接收的出价的优势相关的一个或多个作业请求的每一个的大小来确定,其中优势基于货币价值。
12.如上述10的系统,其中所述机构进一步由于缺乏购买一定量资源的购买能力而将给子集租户的资源降低一定量。
13.如上述8的系统,其中所述机构进一步在与所述多个租户相关联的一个或多个竞价服务器中广播出价,其中响应于广播,而从所述多个租户中的一个或多个接收优势出价。
14.如上述8的系统,其中通过计算机设备处的用户接口做出作业请求或出价,其中所述用户接口由计算设备处的软件应用提供,软件应用包括商业软件应用、商业网络网站、以及社交网络网站中的一个或多个,其中计算设备包括客户端计算设备,所述客户端计算设备为进行通信的网络的部分,其中网络包括基于云的网络、局域网(LAN)、广域网(WAN)、城域网(MAN)、个域网(PAN)、内联网、外联网、以及因特网中的一个或多个。
15.一种具有存储于其上的指令的计算机可读媒介,当其由处理器执行时使得处理器实施或执行如上述1-7中任一项所要求的方法。
虽然参照实施例描述了本发明,在实施例中,用于促进按需服务环境中的数据管理的技术实现在具有提供能够支持多个租户的按需数据库服务的前端的应用服务器的系统中,本发明不限于多租户数据库,也不限于应用服务器上的部署。实施例可以使用其它数据库架构来实施,如IBM(国际商业机器公司)的等等,而不脱离要求的实施例的范围。
以上实施例中的任意实施例可以单独使用或者以任意组合与另一实施例一起使用。本说明书内包括的发明还可以包括在本简要发明内容中或摘要中仅仅部分地提及或暗示或根本没有提及或暗示的实施例。尽管本发明的各种实施例可能已经由现有技术的各种缺陷所启示,这可能在说明书中的一个或多个地方讨论或暗示,但是,本发明的实施例不一定致力于这些缺陷中的任何缺陷。换而言之,本发明的不同的实施例可能致力于可能在说明书中讨论的不同的缺陷。某些实施例可能仅仅部分致力于可能在说明书中讨论的某些缺陷或仅一个缺陷,并且某些实施例可能不致力于这些缺陷中的任何缺陷。
附图说明
在以下附图中,相同的附图标记用于指代相同的要素。尽管以下的图描述了各种示例,但是,一个或多个实现不限于图中描述的示例。
图1图示了根据一个实施例的采用线程资源管理机构的计算设备;
图2图示了根据一个实施例的线程资源管理机构;
图3图示了根据一个实施例的用于促进用于如由图1的线程资源管理机构提供的消息队列的线程资源的基于竞价的公平分配的架构;
图4A图示了根据一个实施例的用于促进用于用户消息的线程资源的基于竞价的公平分配和使用的方法;
图4B-4C图示了根据一个实施例的用于促进用于用户消息的线程资源的基于竞价的公平分配和使用的事务序列;
图5图示了根据一个实施例的计算机系统;
图6图示了根据一个实施例的其中可以使用按需数据库服务的环境;以及
图7图示了根据一个实施例的图6的环境的要素和这些要素之间的各种可能的互连。
具体实施方式
提供了方法和系统以用于促进按需服务环境中根据一个实施例的用于用户消息的线程资源的基于竞价的公平分配和使用。在一个实施例中并且通过示例的方式,一种方法,包括:在网络上从多个组织接收作业请求和出价,其中每个作业请求和对应的出价由与多租户数据库系统内具有资源货币价值的组织相关联的用户在网络上经由计算设备处的用户接口来做出,确定与涉及该多个组织的未决作业相关联的资源货币价值,其中资源货币价值对应于专用于未决作业的资源,以及执行针对不是专用的并且仍然可购买的资源的所接收的出价的竞价,其中出价包括购买请求以购买可用资源。该方法可以进一步包括基于专用资源和可用资源的竞价来对作业请求排序,以及基于经排序的作业请求来处理作业请求。
大规模云平台销售商和服务供应商和服务提供商每天接收数百万的异步并且资源密集的客户请求,这些请求导致对服务提供商而言极其棘手的资源分配要求和可扩展性要求。此外,多租赁意味着多个用户竞争有限的资源池,使得确保以与客户期望一致的方式来适当地调度资源更加复杂。实施例提供了具有新颖的调度框架的新颖的机构,该调度框架用于:1)基于任务的延迟来差异化客户请求,使得低延迟任务在长运行背景任务之后执行;以及2)基于任务的资源要求和/或客户归属来分离任务,使得一个客户请求的任务不可以占用整个系统和使其他客户请求的其它任务饥饿。实施例进一步提供了机构以有效利用资源以即使当竞争高时也确保高的吞吐量,该竞争高诸如为如果任务正等待被调度,任何可用资源可能不保持空闲。
实施例允许基于竞价的方法以达到多租户环境中的资源的公平和有效的分配。当前,多租户环境中的大多数资源使用与为每个组织静态定义的限制相结合的测量框架来提供。作为例子,在短时间帧内超过它们的固定数量的应用程序接口(API)请求的组织能够被抑制。但是,手动指定这些限制能够是乏味和易于出错的处理。这样的刚性的限制还能够导致其中资源未充分利用的无效率。替代地,这里公开的技术能够构建围绕Salesforce.com(赛富时公司)的Point of Deployment(部署点)(POD)的分配的基于竞价的经济。POD可以指为提供商的客户(例如,Salesforce.com的客户)存储和处理数据的主机的集合。例如,属于提供商的每个物理数据中心可以具有多个POD,其中每个POD能够独立操作并且组成数据库、一组工作者主机、一组队列主机等,以及服务分派给此POD的客户的请求。接着,取决于来自组织的竞争请求的数量,这里公开的技术调整反过来确定每个组织接收的资源量的资源价格。
实施例采用和提供了基于竞价的方法以达到多租户环境中的公平和有效的资源分配。实施例提供了更丰富的队列语义并且使能有效的资源利用。实施例进一步提供了超过客户的资源的公平份额的客户的性能分离,并且通过基于客户负荷中的变化而动态地调整资源分配来确保可用资源不保持空闲,同时通过以分布式方式做出判定来促进到几十万客户的可扩展性。
如这里所使用的,术语多租户数据库指其中数据库系统的硬件和软件的各种要素可以由一个或多个客户共享的那些系统。例如,给定应用服务器可以同时处理大量客户的请求,并且给定数据库表格可以为潜在的更大量的客户存储多行。如这里所使用的,术语查询计划指用于访问数据库系统中的信息的步骤集。
参照其中将用于促进按需服务环境中的数据的管理的技术实现在具有提供能够支持多个租户的按需数据库服务的前端的应用服务器的系统中的实施例来描述实施例,实施例不限于多租户数据库,也不限于应用服务器上的部署。可以使用其它数据库架构来实践实施例-即IBM的等等,而不脱离要求的实施例的范围。这里公开的技术包括能够提供竞争组织中的POD资源的基于竞价的公平分配的消息队列中的资源供应的新颖的框架。方法能够应用于任意资源单元,诸如数据库、计算机、磁盘、网络带宽等。其还能够扩展到如为调度映射-化简(map-reduce)任务的其它领域。
接下来,将参照示例实施例来描述用于促进采用和提供基于竞价的方法以达到按需服务环境中的多租户环境中的公平和有效的资源分配的机构的机构和方法。
图1图示了根据一个实施例的采用线程资源管理机构110的计算设备100。在一个实施例中,计算设备100充当采用用于消息队列的线程资源管理机构(“资源机构”)110以促进促进线程资源和它们对应的消息的公平和有效的管理的应用服务器线程资源的动态管理的主机,包括它们的跟踪、分配、路由等,以提供系统资源的更好的管理并且促进用户(例如,公司、企业、组织、商业、机构、公共机构等)典型地期望或需要的各种服务的用户控制和定制。用户指在诸如为计算设备100的主机处提供和管理资源机构110的服务提供商(例如,Salesforce.com)的客户。
计算设备100可以包括服务器计算机(例如,云服务器计算机等)、台式计算机、集群计算机、机顶盒(例如,基于因特网的电缆电视机顶盒等)等等。计算设备100还可以包括更小的计算机,诸如移动计算设备,该移动计算设备诸如为包括智能电话(例如,的 (Research in)的等)的蜂窝电话、手持计算设备、个人数字助理(PDA)等,平板电脑(例如,的的等),膝上型计算机(例如,笔记本、网本、超级本TM等),电子书(例如,(Amazon.)的巴诺(Barnes)的以及等),基于全球定位系统(GPS)的导航系统等。
计算设备100包括充当计算设备100的任意硬件或物理资源与用户之间的接口的操作系统(OS)106。计算设备100进一步包括一个或多个处理器102、存储器设备104、网络设备、驱动等等,以及输入/输出(I/O)源108,诸如触摸屏、触感控制板、触控板、虚拟或常规键盘、虚拟或常规鼠标等。将注意到如“节点”、“计算节点”、“客户端”、“客户端设备”、“服务器”、“服务器设备”、“云计算机”、“云服务器”、“云服务器计算机”、“机器”、“主机”、“设备”、“计算设备”、“计算机”、“计算系统”、“多租户按需数据系统”等等的术语在通篇本文献中可以互换地使用。将进一步注意到如“应用”、“软件应用”、“程序”、“软件程序”、“包”、以及“软件包”的术语在通篇本文献中可以互换地使用。此外,如“作业”、“请求”以及“消息”的术语在通篇本文献中可以互换地使用。
图2图示了根据一个实施例的线程资源管理机构110。在一个实施例中,资源机构110提供了用于消息队列的基于竞价的资源共享以促进传递点处的竞争消息类型之间的线程资源的基于竞价的公平分配。
在所图示的实施例中,资源机构110可以包括各种组件,诸如管理框架200,该管理框架200包括请求接收和鉴权逻辑202、分析器204、通信/访问逻辑206、以及兼容性逻辑208。资源机构110进一步包括额外组件,诸如具有资源分配逻辑212、基于竞价的资源共享逻辑232、基于法定人数的经纪人健康状况逻辑252、工作负荷调度路由逻辑262、以及滑动窗口维持逻辑272的处理框架210。在一个实施例中,基于竞价的资源共享逻辑232可以包括消息和出价接收模块234、货币发布器235、货币储备244、实施模块246、基于竞价的作业调度器247、作业执行引擎248、以及包括平衡检查模块238、计算模块240、评估和能力模块242、以及计数器250的判决逻辑236。
预期到任意数量和类型的组件可以添加到资源机构110和/或从资源机构110中去除以促进包括添加、去除、和/或增强一定特征的各种实施例。为了简要、清楚、以及易于理解资源机构110,这里没有示出或讨论标准的和/或已知的组件中的众多者,诸如计算设备的那些。预期到实施例不限于任何特定的技术、拓扑、系统、架构、和/或标准,并且是足够动态的以采纳和适应任意未来的变化。
在某些实施例中,资源机构110可以与数据库280通信以存储涉及消息队列等的数据、元数据、表格、报告等。资源机构110可以进一步在网络上285与任意数量和类型的客户端计算设备通信,诸如客户端计算设备290。通篇本文献中,术语“逻辑”可以互换地称作“框架”或“组件”或“模块”并且通过示例的方式,可以包括软件、硬件、和/或软件和硬件的任意组合,诸如固件。通过资源机构110提供的组件的这一组合促进了将如用户期望或需要地以任意数量和类型的格式操纵、共享、通信、以及显示并且通过客户端计算设备292处的用户接口294和在网络290上通信的特定数据产品/软件应用(例如,社交网站、商业网站、字处理、电子制表软件、数据库产品等)的基于用户的控制和操纵。
预期到用户可以包括管理用户或终端用户。管理用户可以包括授权的和/或经训练的用户,诸如系统管理员、软件开发者、计算机程序员等。相反,终端用户可以为能够诸如经由软件应用或因特网浏览器来访问客户端计算设备的任意用户。在一个实施例中,用户经由客户端计算设备290处的用户接口294可以操纵或请求数据以及如用户期望或需要地查看特定格式(例如,表格、电子制表软件等)的数据和任意相关元数据。用户的示例可以包括但不限于涉及组织的客户(例如,终端用户)或雇员(例如,管理用户),诸如服务提供商(例如,Salesforece.com)的组织客户(例如,小的和大的商业、公司、企业、学术机构、政府机构、非盈利组织等)。将注意到如“用户”、“客户”、“组织”、“租户”、“商业”、“公司”等的术语可以在通篇本文献中互换地使用。
在一个实施例中,资源机构110可以在诸如为图1的计算设备100的服务器计算系统处采用,并且可以在诸如为网络285(例如,基于云的网络、因特网等)的网络上与诸如为客户端计算设备290的一个或多个客户端计算设备通信。如前述的,用户可以包括组织和组织客户,诸如为提供对资源机构110的访问(诸如经由客户端计算机290)的提供商(例如,Salesforce.com)的客户的公司、商业等。类似地,用户可以进一步包括为组织的客户/组织客户并且经由另一客户端计算设备来访问资源机构110的个人或小的商业等。客户端计算设备290可以与图1的计算设备100相同或相似并且包括移动计算设备(例如,智能电话、平板电脑等)或更大的计算机(例如,台式计算机、服务器计算机等)。
在一个实施例中,资源机构110促进了用于诸如为应用服务器等的系统资源的有效管理的消息路由和队列的公平和有效的管理,并且提供了更好的客户服务,其中用户可以经由通过采用社交和商业网络产品的任意数量和类型的软件应用(例如,网站等)提供的用户接口294来访问这些服务,该社交和商业网络产品诸如为Salesforce.com的 等。
在一个实施例中,请求接收和鉴权逻辑202可以用于接收由用户在网络285上经由客户端计算设备290做出的请求(例如,打印文件、移动文件、合并文件、运行报告、显示数据等)。进一步,请求接收和鉴权逻辑202可以用于鉴权所接收的请求以及用于在允许用户做出请求之前鉴权用户(和/或对应的客户)和/或计算设备290。预期到在某些实施例中,鉴权处理可以为当第一次允许计算设备290访问资源机构110时进行的一次性处理,或者,在某些实施例中,鉴权可以为每次经由网络285由基于云的服务器计算设备处的资源机构110处的请求接收和鉴权逻辑202接收到请求时执行的重复处理。
一旦鉴权处理结束,将请求发送到分析器204以分析和基于分析的结果,将请求前转到处理框架210以用于一个或多个组件212、232、252、262、272以及它们的子组件234-250的适当的处理。通信/访问逻辑206促进了拥有资源机构110的服务器计算设备与包括计算设备290和其它客户端计算设备(能够由任意数量的用户/客户访问)以及其它服务器计算设备的其它计算设备之间的通信。兼容性逻辑208促进了计算设备(例如,计算设备290)、网络(例如,网络285)、任意数量和类型的软件包(例如,网站、社交网络站点等)之间的动态兼容性。
在一个实施例中,资源机构110和其基于竞价的资源共享逻辑232允许基于竞价的方法以达到多租户环境中的资源的公平和有效的分配。在一个实施例中,这里公开的技术通过惩罚超过组织的公平的资源份额的组织以确保公平地分发资源并且资源不保持空闲来提供性能分离。分配可以基于来自竞争组织的业务量的变化来动态地调整。此外,这一模型通过允许判决做出在多个竞价服务器上分发来达到几十万个并发的组织的规模。这里公开的技术提供了用于解决提出的问题的一套算法和基于竞价的资源供应模型。其包括公平、多租户调度以确保组织之间的公平、适应工作负荷中的变化的有效的资源利用、用于捕获服务水平保证的丰富的排队语义和用于分发和向外扩展竞价判定的机构。
诸如为Salesforce.的大规模云平台销售商每天服务数百万异步、资源密集的客户请求以使得饥饿和资源利用为对持续的可扩展性的关键挑战。客户愿意等待这些请求,这不要求实时响应时间保证。这些包括例如轻量级仪表盘任务和作为背景任务执行的长运行Apex大负荷请求。此外,多租赁为多个用户竞争有限的资源池时。因而,使用实施例提供的新颖的技术,额外小心以确保以与客户期望一致的方式调度和执行请求。具体地,基于竞价的作业调度器(“调度器”)247可以差异化客户请求以使得低延迟任务比长运行背景任务更少地延迟,提供性能分离以使得单个客户不能占有整个系统和使其他客户饥饿。最后,即使当竞争高时,调度器247也能够有效地利用资源以确保高吞吐量;也就是,如果任务正等待调度,则资源不可以保持空闲。
例如,关于饥饿和资源利用,诸如为高级队列(“AQ”)的传统的队列限制了当前消息队列框架的灵活性。进一步,因为如为AQ的这些队列不是多租户感知的,所有的客户消息从单个表格中存储和处理,在该单个表格中,应用能够窥视队列中的前几百个消息(例如,在某些情况下,400)。这使得性能分离复杂,因为少数客户以他们的请求淹没前几百个消息并且使得剩余客户饥饿,导致超饥饿。此外,测量更丰富的排队语义是困难的并且有时是使用传统的技术不可行的,诸如以每客户为基础对消息类型排序。一个解决当前框架中的这些限制的方法是引入基于客户的并发限制以限制每个客户能够利用的最大资源量,这能够防止单个客户消耗所有的可用资源。折中是空闲资源,诸如如果工作负荷是向具有大量活动性的一个客户高度倾斜的,则队列中可能没有来自其他客户的足够的请求以消耗所有可用的资源。
在一个实施例中,资源机构110的基于竞价的资源共享逻辑232提供了新颖的技术以促进用于提供更丰富的排队语义并使能有效的资源利用的模型。进一步,这里公开的技术采用基于竞价的方法以达到多租户环境中的公平和有效的资源分配。特别地,这里公开的技术通过惩罚超过客户的公平的资源份额的客户来提供性能分离,并且通过基于客户负荷中的变化而动态地调整分配来确保资源不保持空闲。这里公开的技术通过在多租户环境中以分布式方式做出判定来达到到任意数量的(诸如几十万的)并发客户的规模,并且提供一定期望,诸如公平的多租户调度、基于客户的分配、以及基于市场的抑制等。
公平的多租户调度
在某些实施例中,基于竞价的资源共享逻辑232提供了用于多租户环境的公平性的严格的概念。多租户公平性不仅仅防止个体客户请求的饥饿;替代地,这里公开的技术定义了为公平的的资源分配的期望的水平并且确保在调度期间分配给客户的资源与我们的期限匹配。这里公开的技术通过测量离我们预定义的期望的偏差来提供公平的评估。
基于客户的分配
这里公开的实施例支持以每客户为基础的细粒度的资源分配。在一个实施例中,基于竞价的资源共享逻辑232提供了灵活的策略,在于,这里公开的技术能够采取一个保守的方法并且对所有的客户同等地考虑并且差异化重要的客户,诸如通过订户的数量或对服务提供商的总收入来考虑客户。例如,在运行时间,可以与客户的权重成比例地给客户分配资源,使得贡献总权重的一定比例(例如,5%)的客户可以平均上接收与贡献相同的部分资源。
基于市场的抑制
实施例经由资源机构110的基于竞价的资源共享逻辑232投资并且管理客户中的虚拟货币以确保公平;具体地,不频繁地提供请求的客户被回报,而持续提交长运行、面向批量的任务的客户在时间上受到惩罚。
有效的资源利用
实施例经由资源机构110的基于竞价的资源共享逻辑232来促进以每客户为基础的有效的资源利用。
自适应资源分配
在一个实施例中,基于竞价的资源共享逻辑232基于系统负荷中的变化来动态地调整分配给每个额客户的资源量,该系统负荷诸如为来自未决请求的对资源的竞争和资源量。这是为了确保分配保持公平并且不使个体客户饥饿。此外,不是依赖静态并发限制,这里公开的技术通过增加对特定客户的分配来适应系统负荷,以使得资源不保持空闲。
更丰富的排队语义
实施例促进了以每客户为基础或按照每客户服务水平保证的基于消息的优先权级者并且向着这一目标。在一个实施例中,组织可以诸如使用更高的货币价值来做出更高的或更高级的出价,以购买来自可用资源的额外资源量。例如,出价可以通过组织的对应的竞价服务器来广播各种组织以鼓励组织做出更高的或更高级的出价。可用资源指还没有专用于未决作业请求中的任何请求并且因而保持可利用以由最高出价者占据的资源。除了分配可用资源给出价者,还可以考虑作业请求的大小。例如,要求更大量的资源的大尺寸的可能不被接纳和/或可能要求更高级别的出价以被接受。类似地,如果未决作业请求完成而不使用所有的专用资源,则可以使专用资源的剩余部分对早地结束作业的组织可利用,以使用那些资源用于另一作业请求或交出资源以使得可用于出价。
实施例提供了(1)基于消息的优先级;(2)客户请求的可变定价;(3)服务保证的硬质量;以及(4)解决的研究问题。关于基于消息的优先级,实施例提供了:(1)在一个实施例中,基于竞价的资源共享逻辑232通过采用两级调度方案考虑客户和请求类型两者来采用判定逻辑236执行资源分配判定。例如,分布式的基于竞价的协议可以执行以判定从每个客户到服务的消息的数量。当客户的请求出队时,如由判定逻辑236的238-244的各种组件促进的细粒度选择处理接下来基于用户指定的策略来拾起客户的请求的哪个以评估。这些策略能够是局部的,诸如以每客户为基础的请求类型的优先级,或者能够是全局的,诸如由所有客户上的特殊请求类型的比例限制。
关于客户请求的可变定价,实施例进一步提供了:(2)使用实施模块246,通过指示客户愿意支付更多以确保他们的请求被快速地处理来允许客户差异化他们的消息的值。同样地,客户能够降低不是延迟敏感的消息的他们的出价。在客户端,客户可以通过简单地经由用户接口294访问系统来完成这点并且动态地调整例如确定他们愿意为资源支付多少钱的定价因子。
关于服务保证的硬质量,实施例提供了(3)硬服务质量保证:因为应用在完成时间上具有硬的、实时约束,基于竞价的资源共享逻辑232提供了允许用于这样的应用的部分资源的动态分配的有用的特征,由此客户能够预订服务的最低水平,诸如能够在给定时间周期上处理的请求数量的下限。
关于各种研究问题,实施例提供了(4)解决的研究问题包括:具有拒绝不满足已有的义务的服务水平保证的任何新的预订的能力、如果预订没有被使用则确保资源不保持空闲、以及允许客户预订最小的部分资源并且让市场确定他们支付的价格的稳健的允许策略。
分发和缩放
由判决逻辑236做出的资源分配判决被设计成快速的(例如,低开销的)和可扩展的(例如,并行分发和评估)。在一个实施例中,货币储备244维持货币储备244中每个客户拥有多少资源货币的平衡。货币储备244可以由平衡检查模块38来访问和如所期望或需要地由计算模块240计算以用于评估。容量模块242用于在对应的请求入队时基于所收集的或聚合的涉及每个客户的资源货币信息来确定每个客户的资源容量。这一信息接着可以使用实施模块240来划分和分发到多个应用或竞价服务器。
在一个实施例中,多个服务器计算系统(例如,应用服务器)可以置于与拥有资源机构110的服务器计算系统通信,或者,在另一实施例中,多个应用服务器中的每个可以拥有全部或部分资源机构110,诸如基于竞价的资源逻辑232,以具有基于竞价的判决做出能力以服务和负责客户集以及决定分配给该客户集的每个客户的资源量。因而,在某些实施例中,随着客户的数量增长,这里公开的技术可以在充当竞价服务器的更多的额外应用服务器上(水平地)缩放。
客户-特殊的模型指标
对客户而言完成请求的价值经常作为时间的函数而变化。例如,工业分析家理想地将希望尽可能快地接收公司盈利报告,并且如果报告传递晚了则报告的价值在时间上减少。由此,请求的准确的捕获模型或客户评价允许系统献出更多的资源以完成尽可能快地传递大部分值给客户的任务。客户可以以各种方式来选择指定他们的模型函数,从单个硬最后期限到更复杂的衰减函数,诸如线性、指数、分段的等。在一个实施例中,可以授权用户分派值给他们的请求以用于适当和有效的处理的能力;同时,在另一实施例中,货币储备244处的数据和判决逻辑236可用的其它信息(例如,请求或客户历史等)可用于自动分派值给用户请求,使用户免于分派值给每个请求的用户的负担。
上下文感知的调度
在资源约束环境中,调度器247能够避免调度争夺相同的磁盘、网络、数据库资源等的多个请求。在一个实施例中,调度中的资源障碍减少,从而增加并行性并且提高资源利用。例如,如果多个磁盘密集请求是未决的,则判决逻辑236可以首先选择中央处理单元(CPU)-重的请求以减少空闲CPU时间。完成此的一个方式包括捕获图解模型中的请求的资源要求,诸如类似于互排调度,并且拾起具有在共享资源的竞争中的最少的例如为障碍的冲突的请求。
性能指标
在一个实施例中,判决逻辑236可以使用标准的性能指标集来评估和比较包括基准各种排队算法。例如,值的指标可以包括公平性—诸如客户接收与他们的理想分配成比例的服务、效率(例如,系统吞吐量和资源保持空闲的时间量)、响应时间(例如,入队和出队之间的请求的最大或平均等待时间)等。
基于竞价的技术
在一个实施例中,基于竞价的资源逻辑232促进了多租户环境中的消息队列线程的基于竞价的分配,同时允许用户为相同的资源做出不同的出价。例如,通过默认,所有的客户可以被以每消耗的资源单元相同的价格来收费,但是可变的定价确保了客户展现他们对资源的真实评价并且帮助维持和保存资源。例如,资源信用可以被认为是能够由客户使用以购买资源的虚拟货币(存储在货币储备244处);例如,信用能够按照能够购买的资源单元来查看,诸如转换成单个MQ线程上的1000秒的时间或者10个MQ线程上的100秒等的1000的信用。
存储在货币储备244处的这些货币信用可以由判决逻辑236和实施模块246以若干方式来采用和使用,诸如信用可以用于实施基于客户的资源供应,其中如果客户拥有总未偿信用的一比例(例如,20%),则客户可以最低接收总资源的此百分比,诸如20%。这被认为是最低的,因为其他客户可以选择不提交任何请求,让更多的资源可利用。信用还能够用于由限制一定客户的速率来实施公平。具体地,以连续为基础提交请求并且淹没队列的客户更可能以更快的速率耗尽信用。另一方面,不频繁地请求入队的客户可以在它们运行时接收更大的部分资源。进一步,这些信用在初始化时分派,其中根据例如信用资金策略(例如,用于外部资金信用或者多频繁地补充资金的选项)来分配信用数量给客户。
资源分配的原子单元可以被认为是单个MQ线程上的一个执行时间单元。例如,资源可以是工作者主机上的机器时间,其中资源分配的原子单元可以是花费在单个作业者主机上的一个机器时间单元。按照MQ线程对资源命名是整体系统资源利用的好的近似;但是,在一个实施例中,采用CPU、数据库、磁盘、或网络资源等的更加细粒度的供应。将消息或作业认为是与客户相关联的用于提交到队列的个体的任务。与每个消息相关联可以是成本,其可以代表评估给定消息所要求的资源单元,并且这能够被视为在MQ线程上运行消息的时间(例如,秒数)的替代。进一步,各种字母可以与客户出价处理相关联,诸如“O”代表客户提交出价、“C”代表信用量、“M”代表来自客户的所有的消息的总成本、“N”代表来自客户的不同的消息的总数量等。信用可以捕获客户能够预订的资源量,而所有消息的总成本可以捕获客户实际需要的资源。为了跟踪总消息成本,未决消息的运行计数器可以在消息入队到MQ以及从MQ出队时以每客户为基础来更新。例如,对于出队并且执行的每个消息,来自客户的耗尽的信用的数量可以与消息成本成比例。由于消息成本是执行时间的替代,任何轻量级的消息可以以少于任何长运行消息、面向批量的消息等地计费。
预期到可以为客户而采用任何形式的定价并且实施例不限于或取决于任何特定形式的定价。在一个实施例中,可以引入均一定价以便定价可以保持均一,以使得每个客户为每消耗的资源单元支付相同的信用数量。在另一实施例中,可以引入指定可变定价以使得客户能够差异化他们的消息的重要性并且对应地设置值/出价。这些出价能够基于相对于客户的剩余的信用量的新消息的到达速率来明确地获得(例如,当消息入队时由客户供应的,或隐含的)。
供应技术
在一个实施例中,评估和能力模块242提供了基于竞价的框架以评估客户出价,从而以公平和有效的方式来分配资源。在一个实施例中,判决量表可以提供在充当竞价服务器上的多个应用服务器上并且研究方法从而以每客户为基础提供消息类型的服务水平保证。
分配场景
这里所讨论的技术能够首先使用涉及三个客户(O1、O2、以及O3)的示例来阐述多租户资源分配中的各种考虑;为了简单,这里公开的技术能够具有单个消息类型,其中,每个消息精确地要求每MQ一个执行时间单元以完成。例如,每消息一个资源单元的成本。这里公开的技术能够以1000信用来初始化系统,其中这里公开的技术能够分派给客户O1、O2、以及O3的量分别为700、200、以及100并且因而,客户O1平均上能够接收70%的资源。
高竞争
例如,调度器247具有100个所有MQ线程上可利用的执行时间单元,诸如其中每个用于25个MQ线程的4个执行时间单元。此外,队列的初始状态为高竞争,其中所有的客户具有足够的消息以消耗他们的资源分配并且对应的出价可以如下:<O1,700,300,300>、<O2,200,42,42>、以及<O3,100,12,12>。消息的数量和消息的总成本对于每个客户是相同的并且因为可能有每个消息一个资源单元的成本。
在这一示例中并且在一个实施例中,分配公平可以基于信用量。具有更多信用的客户可以指示客户为以更高速率使消息入队的大的组织或者指示客户几乎不提交消息并且当他们提交时能够接收高的分配。在一个实施例中,判决逻辑236可以使用货币储备244处的信用作为用于公平性的替代;换句话说,大客户可以初始地接收更高的资源分配并且随着他们的信用耗尽,他们的分配可以逐渐减少,使得在平均上、客户接收的资源量可以与初始分派给他们的信用量成比例。继续以上示例,基于初始分派的信用量,评估和能力模块可以促进实施模块246以分配70个执行时间单元给O1、20个给O2、以及10个给O3。因而,来自客户O1、O2、以及O3的70、20、以及10个消息被处理并且相当量的信用从每个客户中扣除。
媒介竞争
一旦额外的100个执行时间单元可利用,每个客户基于剩余的消息和信用的数量来提供以下修正的出价:<O1,630,230,230>、<O2,180,22,22>、以及<O3,90,2,2>。在这一情况下,竞争的是媒介,因为客户O3没有足够的消息以消耗其分配的10个执行时间单元。因而,为了防止将导致空闲MQ线程的对O3的资源的过分配,分配2个单元。剩余98个执行时间单元可以按照与O1和O2具有的剩余信用的数量成比例地分派给O1和O2,这转化成分别用于O1和O2的粗略的76和22个单元。
低竞争
在下一轮分配中,客户O1提交出价,因为来自客户O2和O3的消息被耗尽:<O1,554,154,154>。由于没有来自其他客户的竞争,O1接收分配的整个份额,使得没有MQ线程保持空闲。以上三个场景阐述了当竞争高时,可以基于分派给客户的信用的数量来成比例地分发资源。当竞争低时,在活动客户中满满地和成比例地分配资源以确保MQ线程不保持空闲。
出价评估
在一个实施例中,评估和能力模块242评估来自各种客户的出价,从而实现前述调度策略,诸如分配R个给定资源单元(例如,线程或数据库连接池)并且让竞价服务器A负责分配这些资源给客户O1并且类似地,客户可以使用早前描述的格式来提交包括出价的矢量,其中Csum可以定义为来自所有的客户的总剩余信用或C1+...+Cn。进一步,竞价服务器可以首先通过每个客户迭代并且计算描述客户Oi想购买的资源的实际数量的他们的出价b(i)。通过默认,这是来自入队的客户的所有的消息的总成本;但是,客户可能没有足够的信用以获得满足所有他的消息所需的资源,客户Oi的出价可以定义为:b(i)=min{M(Oi),Ci*R/Csum}。
M(O1)捕获来自Oi的消息的总成本,而Ci*R/Csum描述了Oi能够基于其剩余信用而预订的期望的当前的分配量R。竞价服务器接着将来自所有的客户的出价加和,表示为b(sum)并且最后,分配给客户Oi的实际资源量计算为:r(i)=min{M(Oi),b(i)*R/b(sum)},其中M(Oi)防止比客户需要的资源更多的资源分配。由基于竞价的资源逻辑232实施的出价评估算法是公平的,在于每个客户平均上消耗可用的总资源的部分,该部分与分派给他们的信用量成比例。进一步,基于竞价的资源逻辑232有效地利用资源,因为其基于系统负荷动态地调整分派的该部分资源;例如,b(i)作为来自Oi的消息的实际成本的函数。
最优性
实施例提供了部分消息的最优性,其中如果已经超过分配给Oi的资源,能够抢占来自Oi的消息的执行。对于部分消息处理,最优性可以通过映射到部分背包问题来示出。例如,如果将Ci信用分配给客户Oi,则这里公开的技术能够期望Ci*R/Csum个资源单元分配给Oi。但是,如果Oi提交的总的消息数量(M(Oi))少于此数量,评估和能力模块242可以分配不超过M(Oi)个资源单元并且对于部分消息,将r(i)=min{M(Oi),Ci*R/Csum}个资源分配给Oi。
分布式出价评估
如前述的,可以采用多个应用服务器,以充当竞价服务器,并且在此情况下,多个竞价服务器可以并行评价他们的出价,使得竞价能够形成几十万客户的规模。为了使能分布式出价评估,额外的网络往返可以用于在多个竞价服务器之间分发出价信息。具体地并且在一个实施例中,给个体竞价服务器分派客户集,在该个体竞价服务器上计算他们的局部出价,其中接着在多个竞价服务器之间分发局部出价,使得每个服务器能够到达全局优化分配判决。
初始地,例如,可以采用k个竞价服务器A1和Ak,其中每个竞价服务器负责分配总可用资源R的子集给客户的子集。服务器Ai可以负责分配Ri给其客户,其中R=R1+...+Rk,并且客户能够同等地在竞价服务器之间划分(例如,负荷倾斜不是主要关心的,因为出价矢量是固定大小的)。为了达到全局优化分配,每个竞价服务器首先从分配给它的客户的子集中收集出价。竞价服务器接着如早前所述地计算每个客户的个体出价b(i)(使用R和Csum的全局值。接下来,每个服务器对来自客户的它的局部子集的出价加和,其中bi(sum)代表来自竞价服务器Ai的客户出价的和。向参与判决的所有竞价服务器广播局部和。一旦收集到,每个竞价服务器计算负责分配到其客户的部分资源:Ri=bi(sum)*R/(b1(sum)+...+bk(sum))。
此外,每个出价服务器A使用Ri和局部计算的Csum来i为其客户子集运行早前描述的出价评估算法。例如,任何额外的网络往返以在竞价服务器之间分发中间出价值的成本可以通过使用关于队列大小和总剩余信用的全局、聚合的统计来消除,以达到R1,...,Rk的合理地好的近似。
可变定价
在某些例子中,客户可能愿意花费更多的信用以确保他们的消息被快速地处理。作为例子,客户可能非频繁地提交消息,并且结果,累积大量的剩余信用。客户可以简单地想要增加分配给一组延迟敏感消息的资源量。在一个实施例中,可以通过指定定价倍率p来允许客户差异化他们的资源评价。倍率p允许客户-作为例子-在他们的消息不是延迟-敏感的时减少其中消耗信用的倍率,或者当他们能够以更快的速率花费信用时增加分配的资源量。
当p的值为0<p<1时,则客户支付少于每消耗的资源单元一个信用的标准倍率。对于p>1,客户愿意过值资源并且支付标准倍率以上的若干因子。例如,使p(i)为客户Oi的倍率,则p(i)如下地影响客户的出价:b(i)=min{M(Oi),Ci*R*p(i)/Csum,Ci/p(i)},Ci*R*p(i)/Csum允许客户减少或增加相对于他们的剩余信用而接收的部分资源,诸如如果p(i)>1,则客户愿意过支付每资源单元以处理他们的消息。最后,Ci/p(i)基于p(i)和剩余信用来限定Oi能够预订的最大资源量。这建立了平衡检查模块238的检查以防止具有少量信用的客户预订比其能够支付的更多的资源。进一步,来自其它客户的系统竞争或竞赛可以规定在出价处理期间客户实际接收了多少资源,并且这能够被阐述以用于来自我们的早前示例的高和低竞争场景两者。
高竞争
考虑来自早前示例的以下高竞争场景。例如,针对每个客户在出价矢量的末尾将定价因子p(i)附上,其中客户O2愿意为资源支付三倍标准倍率:<O1,700,300,300,1>、<O2,200,42,42,3>、以及<O3,100,12,12,1>。分别针对每个客户将这些出价转化成以下b(i):70、42、以及10(例如,注意客户O2的出价从20增加到42)。反过来,资源以如下比例分配给客户:57(O1)、35(O2)、以及8(O3)。客户O2能够在单轮中完成其消息的绝大部分,但是以比其他客户快得多的速率耗尽信用。在第一轮之后,来自每个客户的剩余信用和消息的数量如下所示:客户O1具有243个消息和643(700-57)剩余信用、O2具有7个消息和126(200-35*2.1)剩余信用、以及O3具有4个消息和92(100-8)剩余信用。
进一步注意到针对客户O2计费的实际定价因子为与3相对比的2.1,并且这是因为如果O2将其出价增加因子3,则其实际出价将是60。但是,基于竞价的资源逻辑232的评估和能力模块242使用M(Oi)和Ci*R*p(i)/Csum的最小值以防止给O2分配比O2实际需要的资源更多的资源,并且因而O2被分派比其允许的最大出价更少的资源。进一步,在一个实施例中,评估和能力模块242具有逆动地向下调整定价以反映O2需要提交以获得35个资源单元(例如,其实际消耗的对象)的实际定价倍率p(i):修正的p(i)=b(i)*Csum/(Ci*R)。以上等式的解(42*1000)/(200*100))得到出价倍率2.1,其意味着O2需要以2.1倍标准价格出价以获得其实际消耗的35个资源单元。
现在,考虑来自早前示例的低竞争,其中O1的消息保持在队列中。如果客户的消息不是延迟-敏感的,他们可以减少他们的定价因子以为之后保存他们的信用。尽管当竞争高时他们可以接收更小部分的资源,但是当竞争低时,他们可以以更慢的速率耗尽他们的信用以预订相同数量的资源。考虑来自O1的以下出价:O1:<O1,554,154,154,0.5>。这一出价指示O1愿意为每两个接收的资源单元支付一个信用;但是,由于O1是正在出价的客户,其接收分配的全部份额。最终,期望O1拥有54个仍然在队列中的消息和504信用(554-100*0.5)。
服务保证
例如,具有延迟-敏感应用的某些客户可能希望预定部分资源以确保最低水平的服务。这能够例如通过允许客户指定固定的部分来完成,其中他们希望支付的定价因子p(i)可以在出价处理期间由市场确定。出价处理可以由基于竞价的资源共享逻辑232来执行,其中不要求服务水平保证的客户可以提交出价,其中这样的出价接着用于为愿意预订可用资源的特殊部分的客户计算出价量。一旦第二出价阶段完成,全局资源分配判决由判决逻辑236做出。例如,除了p(i),附加到每个客户的出价矢量为他们的期望的预订资源f(i),其中f(i)捕获客户想要获得的部分资源。
注意客户指定p(i)或f(i),但是不可以指定两者,并且这是因为定价和预订是彼此一对,诸如固定价格确定了客户能够预订多少资源,而固定预订确定了客户支付多少:<O1,700,300,300,1>、<O2,200,42,42,35%>、以及<O3,100,12,12,1>。进一步注意客户O1和O3将他们的定价p(i)固定在1,而O2将期望的预订固定在可用资源的35%。为了防止空闲资源,判决逻辑236判定预订不多于队列中的未决的来自O2的消息的数量,诸如如果O2具有10个消息在队列中,则资源的10%可以预订并且这样,可以经由对应的条目在货币储备244中记录。
在第一出价阶段,竞价服务器标记来自所有的其对应的客户的总预定量。在这一情况下,O2预订资源的35%(或35个单元),表示为Rf,其中留给剩余客户的资源可以表示为Rp(R-Rf)。因而,在一个实施例中,客户可以划分成两个种类:1)最努力地竞争Rp个资源分配的那些;以及2)想要预订特殊量的资源Rf的那些。在一个实施例中,判定逻辑236的计算模块240可以为最努力的客户中的每个客户计算出价,其加和成bp(sum)(例如,最努力的组的出价的和)。为了预订特殊部分的资源,客户可以提交出价,该出价的值是b(sum)的相同的分式,其中bf(sum)为O2提交的出价(未知),其中这一出价满足以下分式使得Rf个资源能够被预订:bf(sum)/(bf(sum)+bp(sum))=Rf/R,并且以上等式中的bf(sum)的解得到:bf(sum)=(Rf*bp(sum))/(R-Rf)。
分布式预订
为了防止可能来自在多个竞价服务器之间分发资源分配判决的任何预定的复杂化使得预定变得复杂,每个竞价服务器可以设置成广播额外的标量值而不招致额外的网络往返。回忆k个竞价服务器A1,...,Ak之间的分发的竞价,其中每个竞价服务器Ai计算局部出价值b1(sum)的和并且广播此和到所有其它的竞价服务器。反过来,每个服务器Ai计算所有出价上的全局和并且确定其能够分配给客户的资源量Ri。
使用预留,可以给竞价服务器分配需要最小部分资源的客户,其中他们的出价是初始地未知的。让Rfi代表分配给竞价服务器Ai的客户预留的资源量,并且让bpi(sum)代表来自没有预留的资源并且可能需要最努力的调度的客户的出价的和。因而,Ai可以广播以下局部向量到所有的其他竞价服务器:<Rfi,bpi(sum)>。一旦收集局部向量,每个竞价服务器可以计算来自所有其对应的客户的全局和,其具有如下的预留的资源:bf(sum)=((Rf1+...+Rfk)*(bp1(sum)+...+bpk(sum)))/(R-(Rf1+...+Rfk)),Rf1+...+Rfk代表预留资源的总量,并且bp1(sum)+...+bpk(sum)代表来自所有的最努力的客户的出价的和。使用这一信息,每个竞价服务器Ai接着能够计算具有预留的资源的其客户中的每个的出价量。调用在规定小节中的内容,注意到分配给客户的资源量可以直接与他们的出价成比例。假设客户Oi预留r(i)个资源,接着出价量计算为:b(i)=r(i)*(bp(sum)+bf(sum))/R。
如之前提及的,在一个实施例中,每个竞价服务器可以单独地装配以利用资源机构110的组件的任意数量和组合以执行通篇本文件中讨论的各种处理。在另一实施例中,服务器计算设备可以利用资源机构110以执行所有的处理或者在某些情况下大部分处理,而选择性地将剩余的处理委托给予服务器计算设备通信的各种竞价服务器。
为了使得示例具体,让我们考虑高竞争场景,其中两个竞价服务器达到全局优化判决并且让客户O1、O2、O3提交以下出价向量:<O1,700,300,300,1>、<O2,200,42,42,35%>、以及<O3,100,12,12,1>。作为示例并且在一个实施例中,可以在两个竞价服务器上裁剪出价处理,其中A1负责O1和O2,而A2负责O3。O2和O3的出价值可以是未知的并且以分发方式后续计算。这里,每个竞价服务器可以首先计算和广播以下局部向量(其中局部出价bpi(sum)的和伴随的预留的资源量Rfi):A1:<35,70>以及A2:<12,0>。接下来,每个竞价服务器计算来自具有预留的资源的所有的客户(例如,O2和O3)的出价的和:bf(sum)=((Rf1+Rf2)*(bp1(sum)+bp2(sum)))/(R-Rf1-Rf2)=((35+12)*(70+0))/(100-35-12)=62。最终以及后续地,服务器A1计算O2能够提交以预留35%的可用资源的出价:b(2)=r(2)*(bp(sum)+bf(sum))/R=35*(70+62)/100=46.2。类似地,A2将O3的出价计算为15.8。这些出价匹配已经由单个竞价服务器处的判定逻辑236判定的值。
资金策略和抑制
在一个实施例中,基于竞价的资源共享逻辑232进一步提供促进经由判定逻辑236做出的判决,以解决1)客户接收信用资源并且以正在进行的基础购买资源的方式,以及2)因非频繁地提交请求而回报“良好表现”的客户与惩罚以连续为基础泛滥队列的客户之间的平衡。
信用资金频率和数量
在一个实施例中,判决逻辑236可以用于解决和确定客户信用如何补充并且随后,实施模块246可以用于实施由判定逻辑236达到的信用判定。客户信用如何补充可以涉及各种成分,诸如1)源,2)量,以及3)频率。例如,源成分处理信用如何发起,其中属性选项用于实现基于开放市场的系统,由此信用能够由客户通过外部源来渐增地建立,诸如添加现金到他们的账户。这允许我们直接将信用映射到处理消息的操作成本并且对应地基于使用来对客户计费。开放系统还提供客户更大的消息处理上的控制,其中他们能够添加资金,当他们期盼大量的低延迟消息时。但是,为了降低记帐的复杂性和成本,可选的和方法包括闭合系统,其中以连续基础来内部地建立信用。尽管实施例支持闭合和开放信用/账户系统两者以及任意其它可用信用/账户系统,但是为了简要和促进理解,对于剩余的讨论内容,假定和讨论闭合系统。
数量成分可以包括信用的初始数量以提供每个客户,其中信用量能够是足够大的使得客户不太可能在一天之内花去这些信用。进一步,整体信用部分可以考虑以使得将它们分配给每个客户,其中让fe(i)代表能够分配给相对于其它客户的客户Oi的资源的期望的和公平的部分并且这一部分能够由计算模块240来以若干方式来计算,诸如通过订户的数量(收入),客户数据的大小(使用)等。订户和数据大小两者是公平的好的近似,其中让Ci为给客户Oi的初始信用量并且Csum代表给所有客户的信用之和。照此,以下等式可以由判决逻辑236来使用并且能够保持以确保正确地分配资源:fe(i)=Ci/Csum。
额外地,考虑频率成分,其中补充信用以确保客户能够以正在进行为基础为资源出价并且允许提供算法以调整分配判定,随着我们的公平性的定义在时间上变化。客户信用补充的速率可以与可用资源的量成比例地做出;例如,让资源分配单元例如为每线程一秒的执行时间并且30个MQ线程可以期望对下一个时间周期可用,诸如五分钟。
继续示例,1800个信用(30×60个资源单元)可以分发,例如,每分钟给五分钟的客户。1800个分发的信用中,客户Oi接收的数量可以与fe(i)成比例,诸如如果这里公开的技术能够期望Oi的公平分配是fe(i)=0.3,则Oi每分钟接收540个额外的信用。信用的补充还可以在资源可利用但是用户由于缺乏信用而不可以执行其消息时触发。考虑极端示例,其中队列上的所有的消息属于单个客户并且客户已经花去其共享的信用;在这一情况下,触发到所有客户的成比例的信用分发以使得资源不保持空闲。
进一步,判决逻辑236可以智能地揪住信用在时间上的分发以维持线程资源的分配中的公平。例如,考虑已经终结他们的订阅的客户或者在时间上逐渐增加他们的订阅的客户。对于大量的原因,资源分配判决可以变化并且任何过量的信用能够在剩余客户之间重分发。为了揪住信用的分发,在一个实施例中,公平分数fe(i)可以手动或自动地用于每个客户(例如,以比例方式重分发终结的客户的信用到一个或多个剩余客户等)。为了简化和促进理解,通篇剩余文件中,可以分发给客户Oi的任何新的信用可以与更新的fe(i)成比例并且在时间上,客户之间信用的分发可以反映能够期望分配到每个客户Oi的资源的分数fe(i)。
平衡重和不频繁的用户
关于以消息持续泛滥队列的重用户和非频繁地提交消息的“良好表现”的客户之间的平衡,持续提交消耗大部分可用资源的长运行消息的客户可能以更快的速率耗尽他们的信用。在一个实施例中,这可以惩罚客户,随着所分配的资源的一部分和他们的耗尽的信用减少并且那些客户可能没有足够的信用来调度长运行消息。相反地,在一个实施例中,非频繁地提交消息的客户可以出于预留MQ资源而受到回报。这些客户可以累积大的信用预留,使得当他们提交消息时,他们可以接收如由规定算法支配的更大的资源部分。
为了平衡之前提及的惩罚和回报,为这两组客户,判决逻辑236的计算模块240可以采用盖和借资金策略使得以快速速率花掉信用的客户能够借信用以调度消息,如果过量的容量是可利用的。为了发生借,两个条件可能需要满足:1)确定有未使用的资源伴随出价处理;以及2)一定的客户可能没有足够的信用来调度他们的未决的消息。当这点发生时,判决逻辑236可以发起额外轮的到某些或所有的客户的信用分发(如在本文件的信用资金小节中所描述的),使得更多的消息能够调度并且使得可用资源不保持空闲。这确保了持续泛滥队列的客户被惩罚(例如,缺少信用以运行他们的消息),当对MQ资源的竞争高时,但是如果MQ消息是富裕的,允许重用户借附加的信用以运行他们的消息并且利用额外的系统容量的优点。
为了出于不频繁地预留MQ资源和提交消息而回报客户,在一个实施例中,判决逻辑236允许他们累积任何未使用的信用,并且,在处理中,增加分配的部分资源(例如,优先级),当它们实际运行时。但是,如果客户有时保持几周非活动,他们能够累积大的信用预留,当他们实际提交消息时,他们主导出价处理并且使其他客户饥饿。例如并且在一个实施例中,计算模块240可以考虑和提议以任意一个客户能够累积的最大资源量为边界的顶;例如,任何未使用的信用在它们被注资24小时后过期。这一技术回报非频繁的客户,而不不公平地惩罚处于它们的预算的信用量内的其他客户。将注意到之前提及的顶和借的方案不要求人工干预或处理并且实施例提供顶和借方案以由基于竞价的资源共享逻辑232自动地执行,在于客户负荷以惩罚客户的方式来适应,如果他们太快花掉他们的信用。
出价频率
作业负荷访问图案在时间上快速演进,使得资源分配判决不能保持静态并且对应地适应。考虑其中客户O1、O2、以及O2完成一轮出价并且第四个客户O4立刻以其消息泛滥队列的之前的示例。资源分配判决能够通过减少分配给O1、O2、以及O3的资源并且将它们分配给O4来更新以反映O4消息。进一步,更新可以周期地触发(例如,当到达1000个新消息时或者每分钟)以确保运行资源提供算法的开销在多个消息上被分摊并且保持低并且资源的公平分配可以即使在低颗粒水平下也可以达到。
孤立资源:过分配以及分配不足
在一个实施例中,基于竞价的资源共享逻辑232提供了技术以避免或防止给用户的资源的任何过分配和分配不足,资源的公平分配可以维持。例如,调用客户的出价可以由计算模块240计算为b(i)=min{M(Oi),Ci*R/Csum},以及通过客户O1需要以处理其10个消息的精确的部分资源(例如,预留在10%),确保支付不多于标准比例,因为新的出价被确保低于,O1精确地抓住了其需要什么,而剩余的90个资源单元分配给O2。换而言之,通过将O1的出价重写为SLAN预留防止了资源分配。
相反,为了避免资源的分配之下,孤立的资源可以一起成池并且可以采用随机以选择被执行的客户消息。例如,资源可以成池并且随机处理可以采用以选择执行的客户消息,其中对资源成池允许具有少的信用或长运行消息的客户能够运行他们不能单独支付的消息,并且最大地利用孤立资源。进一步,使用这一技术和给定这些作为输入,函数ProvisionOrphanedResources可以分配资源给客户,如下:
ProvisionOrphanedResources(Customers(O1-On),概率(p(1)-p(n)),Ro),其中Ro>0并且existMessage(Customers,Ro),随机从客户选择C(以概率p(i)选择Oi),M=getNextMessage(C),如果(Cost(M)<Ro),Ro=Ro–Cost(M),并且allocate(C)=allocate(C)+cost(M)。使用这一技术,当拾起下一客户时,每个客户Oi具有概率p(i)被选择(例如,以上的C选择),其中用于客户的下一个消息被评估(例如,getNextMessage)并且如果消息利用少于Ro的资源,则资源可以从Ro中扣除并且分配给客户。
估计消息成本
在一个实施例中,计算模块240精确估计消息成本以辅助评估和能力模块242以确保如由实施模块246实施和由作业执行引擎248处理的精确的资源分配判决。例如,对于MQ,这可能意味着能够为每个消息类型和客户组合快速确定期望的运行时间,通过,例如并且在一个实施例中,依赖构件每个消息类型和客户组合的运行时间历史的已有的方法。接着,相同类型的估计消息可以基于现有运行来计算。在另一实施例中,应用机器学习可以应用以估计运行时间-使用描述消息类型和当前的系统状态的元数据。机器学习方案可以使用来自之前运行的训练数据,其能够从数据库280中提取。但是,一旦计算模块240具有足够经验的消息,其能够以合理的精度通过比较他们与相似类型的消息来估计性的消息类型。
对于机器学习有用的特征能够宽泛地分类成系统相关的特征和特定于消息的特征。特定于消息的特征可以包括:是否消息CPU重,消息利用数据库280,为消息定义的资源受限滤波器,并且其中生成消息之处,客户的大小是什么等。对于系统状态,好的候选者可以包括多个失败的/重试的处理机,队列中的总消息,入队和出队速率,竞争客户的数量,持有的数据库连接的数量,如CPU、盘、网络、数据库280的资源利用、队列处理器的数量以及簇中的从县城,以及由MQ监视线程触发的业务亮度,等。
此外,机器学习还可以用于基于为应用服务器和数据库和CPU设置的资源门限来确定接下来运行哪些消息。例如,计算模块240与评估和能力242,使用由货币储备244从数据库280提取的信息,可以估计给定当前系统状态下的消息的CPU利用。进一步,可以允许客户防止消息压倒CPU资源,防止由于高资源利用而触发MQ警报,以及移动消息抑制逻辑,诸如以循环方式由CPU使用和调度消息的消息的以匹配学习,其更容易维持。
基于消息的排队策略
多租赁可以要求每个客户具有能够与其他客户分开管理的他们自身的虚拟队列。作为例子,客户能够定制他们自身的队列内的消息优先级。在一个实施例中,为了防止涉及这样的要求的任何可能的问题,可以采用虚拟队列,并且,使用基于竞价的资源共享逻辑232,可以按照每客户和每消息类型为基础来提供虚拟队列。例如,每个客户接收他们接着能够管理的虚拟队列集(例如,每消息类型一个)。此外,可以采用全局和POD-范围的排队策略。作为例子,可以采用倍率-限制策略以防止长运行消息类型占用MQ线程的大部分并且使得后续消息饥饿。
在一个实施例中,额外的基于用户的控制可以提供给客户,由此他们能够查看队列状态和未决请求的数量和估计的等待时间。进一步,可以允许客户调整消息优先级以加速或抑制特殊消息类型并且因而通过给出MQ上的用户增加的客户可见度和控制来促进最努力的分配。
消息类型的优先级
为了由消息类型维持优先级,在一个实施例中,计数器250可以作为判决逻辑236的一部分被采用以按照每消息类型来跟踪每个客户的队列中的消息的数量。例如,计数器250可以用于为每个客户和消息类型组合在入队和出队期间增加量和/或减少量。此外,还可以给客户提供定制的消息优先级以使得两个客户能够具有用于不同的消息类型的相对的重要性的不同的等级。考虑客户O1和O2的以下队列状态,其中信用/消息代表每消息要求的资源量。每个客户可以提供优先级偏好,该优先级偏好定义了每个消息类型的优先级;例如,高优先级消息可以先于更低优先级的低优先级消息被处理。
在一个实施例中,判决逻辑236可以基于粗略级的客户利用多少资源来使用两级调度来选择为每个用户运行哪些消息。例如,在精细级,计入队列状态和客户的优先级偏好以为每个客户确定接下来运行哪个消息类型以及每个类型中的多少。这通过经由计数器250来按照递减的优先级顺序迭代客户的消息以及调度额外的消息来完成,只要资源还没有耗尽。如果消息类型要求比所分配的更多的资源,则计数器250跳到能够在所分配的资源量内调度的下一消息类型。此外,使用他们的资源分配来调度高数量的低优先级消息,而高优先级消息可以忽略以确保以最大方式利用客户资源并且客户资源不保持空闲。注意如果两个消息类型具有相同的优先级,在一个实施例中,这两个消息中的一个消息可以以循环方式来选择。
全局策略
类似地,在某些实施例中,可以接纳全局倍率限制策略以限制消息的数量和类型,诸如如果应用/竞价服务器CPU利用超过例如65%则阻止CPU-重消息。例如,可以有两个策略类型,包括1)基于系统负荷中的变化来阻止或允许一定类型的消息,以及2)限制给定类型的消息的数量的预定并发限制。前一策略判决可以分发给每个竞价服务器以独立地应用,然而,当消息出队时可以考虑和决定后者。在一个实施例中,已有的出队逻辑可以由基于竞价的资源共享逻辑232来促进以实施全局的、基于消息类型的并发限制。
用于新传输的队列的可扩展性
在某些实施例中,资源机构110支持创立新传输上的基于组织的队列(例如,每个组织一个队列)、基于消息/集群的队列(例如,每个消息类型一个队列或数据库节点组合)、基于组织/消息的队列(例如,每组织/消息类型组合一个队列)等。集群或节点组合指多个数据库(“数据库节点”或者,简单地,“节点”)的合并,诸如的真正应用集群(RealApplication Clusters)RAC可以提供用于缩放数据库的数据库技术,其中RAC节点可以包括处理来自各种工作者主机的数据库查询的数据库计算主机。例如并且在一个实施例中,在生产中,集群250可以计数或者计算模块240可以测量新传输将需要以支持的非空队列的数量。进一步,具有大于10个消息的队列的数量可以测量以促进结合具有少量消息的队列到单个物理队列中并且如果有足够的消息则在新的传输中提供新的物理队列以调整开销。额外地,基于组织的队列的开销可以通过允许一定的组织(具有较少的消息)共享相同的物理队列来减少,并且,在一个实施例中,如果一个组织变得太大或接合具有更少消息的其它组织,则队列可以分解。
图示这里公开的技术的使用的示例不应该被当作是限制或优选的。这一示例充分地图示了公开的技术,而不是过度复杂的。不意图阐述所有公开的技术。
具有本领域普通技术的人员将意识到对于本公开内容的一个或多个实现存在众多可能的应用,并且由此,这里公开的实现不意图以任何方式限制本公开内容。
图3图示了根据一个实施例的用于促进如由图1的线程资源管理机构110提供的消息的线程资源的基于竞价的公平分配的架构300。将注意到为了简洁合易于理解,参照图2描述的处理和组件中的大部分在这里没有在图3中或者参照后续图中的任意图来重复。在所图示的实施例中,租户302(例如,客户,诸如与客户相关联的用户),经由客户端计算设备,提交未决消息/作业和出价矢量,并且经由网络上的客户端计算设备处的用户接口,诸如图2的网络285上的客户端计算设备290的用户接口294。如参照图2广泛描述的,所提交的用户作业和出价矢量由图2的基于竞价的资源共享逻辑232的各种组件处理,在提供其以由所图示的实施例的基于竞价的作业调度器247来处理时。
在一个实施例中,货币发行商235可以基于如参照图2描述的基于竞价的资源共享逻辑232的各种组件执行的执行的处理来提供货币储备244中的租户302的发行或基金额外的资源货币。租户302的资源流通平衡被收集或采集并且提供给调度器247以用于其适当的应用。这些资源分配判决前转到作业执行引擎248,其接着提交用户请求的作业以用于在一个或多个作业主机304(例如,服务器或计算设备)处执行。进一步,如所图示的,作业执行引擎248可以处于与调度器247通信以访问作业主机304上的可用的资源容量。
图4A图示了根据一个实施例的用于促进用于用户消息的线程资源的基于竞价的公平分配和使用的方法400。方法400可以由可以包括硬件(例如,电路、专用逻辑、可编程逻辑等)、软件(诸如运行在处理设备上的指令)、或其组合的处理逻辑来执行。在一个实施例中,方法400可以由图1的线程资源管理机构110来执行。
方法400涉及并且描述了关于图2的基于竞价的作业调度器247的基于竞价的作业调度其事务。方法400在块402处以从租户(例如,客户)接收出价矢量和未决作业开始。在块404处,从具有未决作业的每个租户收集剩余货币的平衡。在块406,做出关于特别的租户是否具有足够的资金的确定。如果否,对于不具有足够的资金的那些租户,他们的作业的处理在块408处被阻止。如果是,在块410处,为每个租户计算出价以确定能够购买的总资源的一部分。在块412处,收集来自作业者主机簇的可用容量以确定作业者主机的数量以在下一拾起分配给每个租户。时期指时间周期或时间间隔。进一步,时期可以通过竞价是多频繁地进行或运行或再运行来确定,并且在此情况下,时期可以指两个连续的竞价之间的时间。例如,时期可以预定义并且设置成10分钟以使得每次达到10分钟标记之后,有机会再运行竞价以评价如何将资源分配给不同的客户。时期还可以由每个租户的购买力来确定,诸如使用各种租户的可用资金或剩余信用,时期可以分配用于一定作业的执行。在块414处,基于由图2的基于竞价的资源共享逻辑232所给出的资源分配判决来提交所请求的作业以用于执行。
图4B图示了根据一个实施例的用于促进用于用户消息的线程资源的基于竞价的公平分配和使用的事务序列420。事务序列420可以由可以包括硬件(例如,电路、专用逻辑、可编程逻辑等)、软件(诸如运行在处理设备上的指令)、或其组合的处理逻辑来执行。在一个实施例中,事务序列420可以由图1的线程资源管理机构110来执行。
事务序列420涉及并且描述了关于图2的基于竞价的作业调度器247的基于竞价的作业调度器事务。在一个实施例中,竞价服务器422从租户302接收出价向量和未决作业424。另一方面,剩余资源货币资金在竞价服务器422处从货币服务器244收集426。接着,计算出价以确定在竞价服务器422的每个租户428的购买力,而在竞价服务器422处从作业执行引擎248接收430涉及作业者主机的任何可用容量。
在一个实施例中,将涉及每个租户的任意未决作业和资源分配判决从竞价服务器422发送432到作业执行引擎248。进一步,在作业执行引擎248处,提交未决作业以用于在下一时期434执行。在货币储备244处,涉及在时期期间完成的作业的任何资金被扣除434,然而在时期结束时的任何未完成的作业和来自完成的作业的结果被收集438和从作业执行引擎248通信到租户302。
图4C图示了根据一个实施例的用于促进用于用户消息的线程资源的基于竞价的公平分配和使用的事务序列440。事务序列440可以由可以包括硬件(例如,电路、专用逻辑、可编程逻辑等)、软件(诸如运行在处理设备上的指令)、或其组合的处理逻辑来执行。在一个实施例中,事务序列440可以由图1的线程资源管理机构110来执行。
事务序列440涉及并且描述了关于图2的基于竞价的作业调度器247的具有分发的出价的基于竞价的作业调度器事务。在图示的实施例中,多个竞价服务器444从他们的对应的多个租户(例如,客户)442接收出价向量和作业454。在多个竞价服务器444中的每个处,为租户456的本地子集计算出价。接着在所有的竞价服务器458之间广播本地出价并且接着,在竞价服务器444处计算每个租户的购买力。作业者节点上的可用容量被收集462并且从作业执行引擎248向该多个竞价服务器444通信,然而将作业和资源分配判决从竞价服务器444发送464到作业执行引擎248。在作业执行引擎248处,提交作业以用于在时期466期间执行,然而未结束的作业和已完成的作业的结果被收集468和从作业执行引擎248通信到多个租户442。
图5图示了按照一个实施例的计算机系统的示例性形式的机器500的图解标识,其中,用于使得机器500执行这里所讨论的方法中的任意一个或多个的指令集可以被执行。机器500分别与图1和图2的计算设备100和计算设备290相同或相似。在可选的实施例中,机器可以连接(例如,组网)到网络中的其它机器(诸如连接到图2的网络285上的客户端机器290的图1的主机100),诸如基于云的网络、局域网(LAN)、广域网(WAN)、城域网(MAN)、个域网(PAN)、内联网、外联网、或因特网。机器可以操作在客户端-服务器网络环境中的服务器或客户端机器的容量中,或者作为对等节点(或分布式)网络环境中的节点机器或作为按需服务环境内的服务器或系列服务器,包括提供多租户数据库存贮服务的按需环境。机器的一定实施例可以是以下形式:个人电脑(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、环球网设备、服务器、网络路由器、开关或桥、计算系统、或能够执行规定将由此机器采取的动作的指令集(顺序地或者其它的)的任意机器。进一步,虽然仅仅图示了单个机器,术语“机器”应该被认为包括单独地或联合地执行指令集(或多个集)以执行这里所讨论的方法中的任意一个或多个的机器的任意集合。
示例性计算机系统500包括处理器502、主存储器504(例如,只读存储器(ROM)、诸如为异步DRAM(SDRAM)或存储器总线DRAM
(RDRAM)等的动态随机访问存储器(DRAM)、诸如为闪存、静态随机访问存储器(SRAM)、易失但高数据速率RAN等的静态存储器)、以及辅助存储器518(例如,永久存贮器设备,包括硬盘驱动和永久多租户数据库实现),其经由总线530彼此通信。主存储器504包括发出的执行数据524(例如,由联机框架发出的数据)以及一个或多个轨迹偏好523,其与处理逻辑526和处理器502结合操作以执行这里所描述的方法。
处理器502代表诸如为微处理器、中央处理单元等等的一个或多个通用处理设备。更特别地,处理器502可以是复杂指令集计算(CISC)微处理器、减少指令集计算(RISC)微处理器、非常长指令字(VLIW)微处理器、实现其它指令集的处理器、或实现指令集的组合的处理器。处理器502还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等等。处理器502配置成执行处理逻辑526以用于执行如结合这里所讨论的图1和其它图来描述的线程资源管理机构110的操作和功能性。
计算机系统500可以进一步包括网络接口卡508。计算机系统500还可以包括用户接口510(诸如视频显示单元、液晶显示器(LCD)、或阴极射线管(CRT))、字母数字输入设备512(例如,键盘)、光标控制设备514(例如,鼠标)、以及信号生成设备516(例如,集成扬声器)。计算机系统500可以进一步包括外围设备(例如,无线或有线通信设备、存储器设备、存贮器设备、音频处理设备、视频处理设备等)。计算机系统500可以进一步包括基于硬件的API联机框架534,其能够执行到来的服务请求并且响应于履行这样的到来的请求而发出执行数据。
辅助存储器518可以包括其上存储了一个或多个指令集(例如,软件522)的机器可读存贮媒介(或者更具体地,机器可访问存贮媒介)531,其体现如参照图1和这里所描述的其它图所描述的线程资源管理机构110的方法或功能中的任意一个或多个。软件522还可以完全或部分驻留在主存储器504内和/或在由计算机系统500执行期间处理器502内,主存储器504和处理器502还构成机器可读存贮介质。软件522可以进一步在网络520上经由网络接口卡508发送或接收。机器可读存贮媒介531可以包括暂时或非暂时机器可读存贮介质。
各种实施例的一部分可以提供作为计算机程序产品,其可以包括具有存储在其上的计算机程序指令的计算机-可读媒介,其可以用于对计算机(或其它电子设备)编程以执行根据实施例的处理。机器-可读媒介可以包括但不限于软盘、光盘、压缩盘只读存储器(CD-ROM)、以及磁光盘、ROM、RAM、可擦写可编程只读存储器(EPROM)、电EPROM(EEPROM)、磁或光卡、闪存、或适于存储电指令的其它类型的介质/机器可读媒介。
图中所示的技术能够使用在一个或多个电子设备(例如,终端站、网络元件)上存储和执行的代码和数据来实现。这样的电子设备使用计算机可读介质来存储和通信(内部地和/或与网络上的其它电子设备)代码和数据,诸如非暂时计算机可读存贮介质(例如,磁盘;光盘;随机访问存储器;只读存储器;闪存设备;相变存储器)以及暂时计算机可读传输介质(例如,电的、光的、声的或其它形式的传播信号-诸如载波、红外信号、数字信号)、除此之外,这样的电子设备典型地包括耦合到一个或多个其它组件的一个或多个处理器的集合,诸如一个或多个存贮设备(非暂时机器可读存贮介质)、用户输入/输出设备(例如,键盘、触摸屏、和/或显示器)、以及网络连接。该处理器和其它组件的集合的耦合为典型地通过一个或多个总线和桥(还被术语为总线控制器)。因而,给定电子设备的存贮设备典型地存储代码和/或数据以用于在该一个或多个此电子设备的处理器的集合上执行。当然,实施例的一个或多个部分可以使用软件、固件、和/或硬件的不同的组合来实现。
图6图示了其中可以使用按需数据库服务的环境610的框图。环境610可以包括用户系统612、网络614、租户数据存贮器622、系统数据存贮器624、程序代码626、以及处理空间628。在其他实施例中,环境610可以没有全部列出的组件和/或可以具有其它组件以替代以上列出的那些,或除了以上列出的那些之外。
环境610为其中存在按需数据库服务的环境。用户系统612可以是由用户使用的任意机器或系统以访问数据库用户系统。例如,用户系统612中的任意系统能够是手持计算设备、移动电话、膝上型计算机、作业站、和/或计算设备的网络。如这里图6中图示的(以及更具体地在图7中),用户系统612可以经由网络614与按需数据库服务交互,其为系统616。
诸如为系统616的按需数据库服务为对不需要一定与建立和/或维持数据库系统相关的外部用户可用的数据库系统。,但是,替代地,可以是对他们的使用可利用的,当用户需要数据库系统时(例如,在用户请求之上)。某些按需数据库服务可以存储来自一个或多个租户的信息到常见数据库镜像的表格中以形成多租户数据库系统(MTS)。对应地,“按需数据库服务616”和“系统616”将在这里互换地使用。数据库镜像可以包括一个或多个数据库对象。有关的数据库管理系统(RDMS)或等价物可以针对(多个)数据库对象执行信息的存储和检索。应用平台618可以为允许运行系统616的应用的框架,诸如硬件和/或软件,例如,操作系统。在实施例中,按需数据库服务616可以包括应用平台618,其使能由按需数据库服务的提供商开发的一个或多个应用的创建、管理以及执行,用户经由用户系统612来访问按需数据库服务,或第三方应用开发商经由用户系统612来访问按需数据库服务。
用户系统612的用户可以在他们相应的容量上不同,并且特定用户系统612的容量可以通过授权(授权级)当前用户来完全确定。例如,销售员在使用特别的用户系统612以与系统616交互之处,此用户系统具有分配给此销售员的容量。但是,虽然管理员在使用此用户系统与系统616交互,此用户系统具有分配给此管理员的容量。在具有分层作用模型的系统中,一个授权级上的用户可以具有对由更低授权级用户可访问的应用、数据、以及数据库信息的访问,但是不可以有对有更高授权级处的用户可访问的一定应用、数据库信息、以及数据的访问。因而,不同的用户将具有关于访问和修改应用和数据库信息的不同的能力,取决于用户的安全或授权级别。
网络614为彼此通信的设备的任意网络或网络的组合。例如,网络614能够是以下中的任意一个或任意组合:LAN(局域网)、WAN(广域网)、电话网络、无线网络、点对点网络、星形网络、令牌环网络、集线器网络、或其它合适的配置。作为当前使用的最常见类型的计算机网络为TCP/IP(传输控制协议和因特网协议)网络,诸如网络的全球互联网络经常称作“因特网”用大写字母“I”,在这里的众多示例中将使用的网络。但是,应该理解到一个或多个实现可以使用的网络不是如此有限的,尽管TCP/IP为频繁实现的协议。
用户系统612可以使用TCP/IP来与系统616通信,并且在高网络级别处,使用其它常见因特网协议来通信,诸如HTTP、FTP、AFS、WAP等。在其中使用HTTP的示例中,用户系统612可以包括通常称作用于发送和接收HTTP消息到和从系统616处的HTTP服务器的“浏览器”。这样的HTTP服务器可以实现为系统616和网络614之间的唯一的接口,但是还可以使用其它技术或者以其它技术来替代。在某些实现中,系统616和网络614之间的接口包括负荷共享功能性,诸如循环HTTP请求分发者以平衡负荷和在多个服务器上均匀地分发到来的HTTP请求。至少至于在访问此服务器的用户,该多个服务器中的每个具有对MTS的数据的访问;但是,可以使用其它可选的配置来替代。
在一个实施例中,图6中所示的系统616实现了基于网页的客户关系管理(CRM)系统。例如,在一个实施例中,系统616包括应用服务器,配置成实现并执行CRM软件应用以及提供相关的数据、代码、表格、网页以及其它信息到和从用户系统612以及存储到和从中检索涉及数据、对象、以及网页内容的数据库系统。使用多租户系统,用于多租户的数据可以存储在相同的物理数据库对象中,但是,租户数据典型地安排以使得一个租户的数据逻辑上保持与其他租户的数据分离,以使得一个租户没有对另一租户的数据的访问,除非这样的数据是明确共享的。在一定实施例中,系统616实现非CRM应用或除了CRM应用之外的应用。例如,系统616可以提供租户对多个拥有的(标准的或定制的)应用的访问,包括CRM应用。可以或可以不包括CRM的用户(或第三方开发者)应用可以由应用平台618支持,其管理应用到一个或多个数据库对象的存储以及应用在系统616的处理空间中的虚拟机中的执行。
系统616的元件的一个安排在图6中示出,包括网络接口620、应用平台618、用于租户数据623的租户数据存贮器622、系统616以及可能地多个租户可访问的用于系统数据625的系统数据存贮器624、用于实现系统616的各种功能的程序代码626、以及用于执行MTS系统处理和租户-特殊处理的处理空间628,诸如作为应用主机服务的一部分的运行应用。可以在系统616上执行的额外的处理包括数据库索引处理。
图6中示出的系统中的若干元件包括这里仅仅简要解释的传统的、众所周知的元件。例如,每个用户系统612能够包括台式个人电脑、作业站、膝上型电脑、PDA、蜂窝电话、移动设备、或任意无线接入协议(WAP)使能的设备或能够直接或间接地接口到因特网或其它网络连接的任意其它计算设备。用户系统612典型地运行HTTP客户端,例如,浏览程序,诸如的微软的因特网浏览器、网景公司的导航浏览器、Opera的浏览器、或在蜂窝电话、PDA或其它无线设备情况下的WAP使能的浏览器等等,允许用户系统612的用户(例如,多租户数据库系统的订户)在网络上614从系统612访问、处理和查看对其可利用的信息、网页和应用。用户系统612进一步包括移动OS(例如,的的等)。每个用户系统612还典型地包括一个或多个用户接口设备,诸如键盘、鼠标、轨迹球、触控板、触摸屏、笔等等,以用于结合系统616或其它系统或服务器提供的网页、表格、应用和其它信息来与显示器(例如,监视屏、LCD显示器等)上的浏览器提供的图形用户接口(GUI)交互。例如,用户接口设备能够用于访问由系统616持有的数据和应用,以及用于执行所存储的数据的搜索,或者允许用户与可以呈现给用户的各种GUI网页交互的其它情况。如以上所讨论的,实施例适于与因特网使用,该因特网指网络的特殊全球互联网络。但是,应该注意到其它网络能够使用以替代互联网,诸如内联网、外联网、虚拟私网(VPN)、非基于TCP/IP的网络、任意LAN或WAN等等。
根据一个实施例,每个用户系统612和其所有的组件为运营商使用应用可配置的,该应用诸如浏览器,包括诸如为Intel处理器等等的使用中央处理单元运行的计算机代码。类似地,系统616(以及MTS的附加的例子,其中给出了多于一个)以及它们的所有的组件可以是运营商使用(多个)应用可配置的,包括使用诸如为处理器系统617的中央处理单元运行的计算机代码,其可以包括Intel处理器等等、和/或多个处理器单元。计算机程序产品实施例包括具有存储在其上/其中的能够用于编程计算机以执行这里所描述的实施例的处理中的任意处理的指令的机器可读存储媒介(介质)。用于操作和配置系统616以互通并且以处理如这里所描述的网页、应用和其它数据和介质内容的计算机代码优选地下载和存储在硬盘上,但是整个程序代码或其一部分还可以存储在如众所周知的任意其它易失或非易失存储器媒介或设备中,诸如ROM或RAM,或提供在能够存储程序代码的任意介质上,诸如任意类型的旋转介质,包括软盘、光盘、数字致密盘(DVD)、压缩盘(CD)、微驱动、以及磁光盘、以及磁卡或光卡、NANO系统(包括分子存储器IC)、或适于存储指令和/或数据的任意类型的介质或设备。额外地,如众所周知的,整个程序代码或其一部分可以在传输媒介例如在因特网上从软件源或者从另一服务器发送和下载,或在如众所周知的任意其它传统网络连接(例如,外联网、VPN、LAN等)上发送使用如众所周知的任意通信媒介和协议(例如,TCP/IP、HTTP、HTTPS、以太网等)。还将意识到用于实现实施例的计算机代码能够以任意编程语言来实现,该任意编程语言能够在客户端系统和/或服务器或服务器系统上执行,诸如,例如,C、C++、HTML、任意其它标记语言、JavaTM、JavaScript、ActiveX、任意其它脚本语言,诸如VBScript,以及如众所周知的众多其它编程语言可以使用。(JavaTM是SumMicrosystems有限公司的商标)
根据一个实施例,每个系统616配置成提供网页、表格、应用、数据和媒体内容给用户(客户端)系统612以支持作为系统616的租户的用户系统612的访问。照此,系统616提供了安全机构以保持每个租户的数据分开,除非数据是共享的。如果多于一个MTS被使用,它们可以位于另一个附近(例如,在位于单个建筑或校园中的服务器农场中),或者它们可以分发在远离另一个的位置处(例如,位于城市A的一个或多个服务器以及位于城市B的一个或多个服务器)。如这里所使用的,每个MTS能够包括本地或在一个或多个地理位置上分布的一个或多个逻辑和/或物理连接服务器。额外地,术语“服务器”意指包括计算机系统,包括处理硬件和(多个)处理空间,以及关联的存贮器系统和数据库应用(例如,OODBMS和RDBMS),如本领域中众所周知的。还应该理解到这里经常互换地使用“服务器系统”和“服务器”。类似地,这里所描述的数据库对象能够实现为单个数据库、分布式数据库、分布式数据库的集合、具有冗余在线或离线备份或其它冗余的数据库等,并且可以包括分布式数据库或存贮器网络以及相关联的处理智能。
图7还图示了环境610。但是,在图7中,进一步图示实施例中的系统616的元件和各种互联。图7示出了用户系统612可以包括处理器系统612A、存储器系统612B、输入系统612C、以及输出系统612D。图7示出了网络614和系统616。图7还示出了系统616可以包括租户数据存贮器622、租户数据623、系统数据存贮器624、系统数据625、用户接口(UI)730、应用程序接口(API)732、PL/SOQL 734、保存例程736、应用建立机构738、应用服务器7001-700N、系统处理空间702、租户处理空间704、租户管理处理空间710、租户存贮器区域712、用户存贮器714、以及应用元数据716。在其他实施例中,环境610可以没有与以上列出的元件相同的元件和/或可以具有其它元件以替代以上列出的那些或除了以上列出的那些之外。
以上在图6中讨论了用户系统612、系统616、租户数据存贮器622、以及系统数据存贮器624。关于系统612,处理器系统612A可以是一个或多个处理器的任意组合。存储器系统612B可以是一个或多个存储器设备、短期、和/或长期存储器的任意组合。输入系统612C可以是输入设备的任意组合,诸如一个或多个键盘、鼠标、轨迹球、扫描仪、摄像机、和/或到网络的接口。输出系统612D可以是输出设备的任意组合,诸如一个或多个监视器、打印机、和/或到网络的接口。如由图7所示,系统616可以包括实现为HTTP应用服务器700、应用平台618、租户数据存贮器622、以及系统数据存贮器624的集合的网络接口620(图6的)。还示出了系统处理空间702,包括单个租户处理空间704和租户管理处理空间710。每个应用服务器700可以配置成租户数据存贮器622和其中的租户数据623、以及系统数据存贮器624和其中的系统数据625,以服务用户系统612的请求。租户数据623可以划分成单个租户存贮区域712,其能够是数据的物理安排和/或逻辑安排。在每个租户存贮区域712内,用户存贮器714和应用元数据716可以类似地为每个用户分配。例如,用户的最近使用的(MRU)项的副本可以存储到用户存贮器714。类似地,用于为租户的整个组织的MRU项的副本可以存储到租户存贮器区域712。UI 730提供用户接口并且API 732提供应用编程接口到系统616驻留处理给用户系统612处的用户和/或开发者。租户数据和系统数据可以存储在各种数据库中,诸如一个或多个OracleTM数据库。
应用平台618包括支持应用开发商的应用的创建和管理的应用建立机构738,例如,应用可以由保存例程736作为元数据保存在租户数据存贮器622中以由订户作为由租户执行为管理处理710管理的一个或多个租户处理空间704。这样的应用的调用可以使用提供对API 732的编程语言样式接口扩展的PL/SOQL 734来编码。某些PL/SOQL语言实施例的详细描述在共同拥有的2010年6月1日发布的、Craig Weissman的名为“Method and Systemfor Allowing Access to Developed Applicants via a Multi-Tenant Database On-Demand Database Service”的美国专利号7,730,478中讨论,这里为所有目的将其整体并入。对应用的调用可以由一个或多个系统处理来检测,其管理检索应用元数据716以用于订户做出调用和将元数据执行为虚拟机中的应用。
每个应用服务器700可以可通信地耦合到数据库系统,例如,具有经由不同的网络连接对系统数据625和租户数据623的访问。例如,一个应用服务器7001可以经由网络614(例如,因特网)来耦合,另一应用服务器700N+1可以经由直接网络链路来耦合,以及另一应用服务器700N可以由又一不同的网络连接来耦合。传输控制协议和因特网协议(TCP/IP)为用于在应用服务器700与数据库系统之间通信的典型的协议。但是,将对本领域技术人员显而易见的,取决于使用的网络互联,其它的传输协议可以用于优化系统。
在一定实施例中,每个应用服务器700配置成为与为租户的任意组织相关联的任意用户处理请求。因为期望能够在任意时间出于任何原因而从服务器池中添加和去除应用服务器,优选对用户/组织而言没有对于特殊应用服务器700的服务器亲密关系。因此,在一个实施例中,实现负载平衡功能的接口系统(例如,F5Big-IP负荷平衡器)可通信地耦合在应用服务器700与用户系统612之间以分发请求到应用服务器700。在一个实施例中,负荷平衡器使用最少的连接算法来路由用户请求到应用服务器700。还能够使用负荷平衡算法的其他示例,诸如循环和观测响应时间。例如,在一定实施例中,来自相同用户的三个连续的请求能够命中三个不同的应用服务器700,并且来自不同的用户的三个请求能够命中相同的应用服务器700。以这一方式,系统616是多租户的,其中系统616处理对相异用户和组织上的不同的对象、数据和应用的存贮和访问。
作为存贮器的示例,一个租户可以是采用其中每个销售员使用系统616来管理他们的销售处理的销售力量的公司。因而,用户可以维持联系数据、导入数据、客户随访数据、性能数据、目标和进步数据等,所有的可应用于此用户的个人销售处理(例如,租户数据存贮器622中的)。在MTS安排的示例中,由于访问、查看、修改、报告、发送、计算等的所有的数据和应用能够由仅仅具有网络访问的用户系统维持和访问,用户能够从众多不同的用户系统中的任意系统中管理他的或她的销售努力和周期。例如,如果销售员正访问客户并且客户在他们的大厅中具有因特网访问,销售员能够在等待客户到达大厅的同时获得关于客户的关键的更新。
虽然每个用户的数据可以与其他用户的数据分开而不论每个用户的雇主,但是,某些数据可以是为租户的给定组织的多个用户或所有用户共享或可访问的宽-组织数据。因而,可以有在租户级分配的由系统616管理的某些数据结构,而其它数据结构可以在用户级管理。因为MTS可以指示包括可能的竞争者的多个租户,MTS应该具有分开保存数据、应用、以及应用用途的安全协议。此外,因为众多租户可以选择访问MTS,而不是维持他们自身的系统,冗余、正常运行时间、以及备份是可以在MTS中实现的额外的功能。除了用户特殊数据和租户特殊数据之外,系统616还可以维持多个租户可使用的系统级数据或其它数据。这样的系统级数据可以包括可以在租户中间可共享的工业报告、新闻、帖子等等。
在一定实施例中,用户系统612(其可以为客户端系统)与应用服务器700通信以请求和更新来自系统616的系统级和租户级数据,该系统616可以要求发送一个或多个查询到租户数据存贮器622和/或系统数据存贮器624。系统616(例如,系统616中的应用服务器700)自动生成设计以访问期望的信息的一个或多个SQL语句(例如,一个或多个SQL查询)。系统数据存贮器624可以生成查询计划以从数据库访问所请求的数据。
每个数据库总体上能够视作诸如为逻辑表格集的对象的集合,包含填入预定义类型的数据。“表格”为数据对象的一个代表,并且这里可以用于简化对象和定制对象的概念描述。将注意到这里“表格”和“对象”可以互换地使用。每个表格总体上包含逻辑上设置为可视图表中的列或域的一个或多个数据类型。表格的每行或记录包含由域定义的每个类型的数据的例子。例如,CRM数据库可以包括使用用于基本联系信息的域来描述客户的表格,该基本联系信息诸如为姓名、地址、电话号码、传真号码等。另一表格可以描述购买顺序,包括用于诸如为客户、产品、销售价格、日期等的信息的域。在某些多租户数据库系统中,可以提供标准实体表格以由所有的租户使用。对于CRM数据库应用,这样的标准实体可以包括用于账户、联系、导入、以及机会数据的表格,每个表格包含预定义的域。将理解到这里字“实体”还可以与“对象”以及“表格”互换地使用。
在某些多租户数据库系统中,可以允许租户创建和存储定制对象,或者可以允许他们定制标准的实体或对象,例如通过创建用于标准对象的定制域,包括定制索引域。这里由此通过引用并入的2004年4月2日提交的、名为“Custom Entities and Fields in aMulti-Tenant Database System”的美国专利申请序号10/817,161教导了用于在多租户数据库系统中创建定制对象和定制标准对象的系统和方法。在一定实施例中,例如,所有的定制实体数据行存储在单个多租户物理表格中,其可以包含每个组织多个逻辑表格。客户的多个“表格”实际上存储在一个大表格中或者他们的数据可以存储在与其他客户的数据相同的表格中,这对客户是透明的。
以上实施例中的任意实施例可以单独使用或以任意组合与另一实施例一起使用。包括在本说明书内的实施例还可以包括在本简要发明内容中或在摘要中仅仅部分提及或暗示或根本没有提及或暗示的实施例。尽管各种实施例可能已经由现有技术的各种缺陷所启示,其可能在说明书中的一个或多个地方讨论或暗示,但是,实施例不一定会解决这些缺陷中的任意者。换而言之,不同的实施例可以解决可能在说明书中讨论的不同的缺陷。某些实施例可以仅仅部分地解决可能在说明书中讨论的某些缺陷或者仅仅一个缺陷,并且某些实施例可以不解决这些缺陷中的任何缺陷。
虽然一个或多个实现已经通过示例的方式以及按照特殊实施例进行了描述,将理解到一个或多个实现不限于所公开的实施例。相反,如将对那些本领域技术人员显而易见的,意图覆盖各种修改和类似的安排。因此,所附权利要求的范围应该给予最宽的解释以包括所有这样的修改和类似的安排。将理解到以上描述意图为说明性的并且非限制性的。
Claims (15)
1.一种用于促进在按需服务环境中用于用户消息的线程资源的基于竞价的公平分配和使用的方法,该方法包括:
在多租户的环境中从多个租户的一组租户接收作业请求和出价,其中在网络上接收作业请求和出价;
确定为多个租户中的一个或多个的租户执行的与未决作业相关联的资源货币价值的平衡,其中所述资源货币价值的平衡指示租户容量以继续占用专用于执行未决作业的一部分资源,其中当平衡被消耗掉或未决作业被完成时,对于另一个作业放弃这一部分资源;
对所接收的用于购买一部分或多个部分资源的出价执行竞价,其中每个出价包括指示一组租户中的每个租户的购买能力的购买请求以购买一部分或多个部分的资源来执行在一个或多个的作业请求中所需要的一个或多个的作业,其中竞价要考虑一组租户的至少一个行为和作业请求的类型,其中竞价还要考虑之前专用于一个或多个未决作业的一部分或多个部分的被放弃的资源;
基于由竞价产生的资源分配决定来对作业请求排序以动态地调节资源分配来执行在作业请求中所需要的作业;以及
基于作业请求的排序来处理作业请求。
2.如权利要求1的方法,进一步包括如果租户的未决作业请求完成而未消耗掉其资源货币价值,则基于作业请求的排序将资源的余量分配给由所述租户做出的额外的作业请求。
3.如权利要求1的方法,进一步包括基于作业请求的排序,将一定数量的资源贡献给由所述多个租户的一组租户的子集租户所做出的一个或多个已接收的出价。
4.如权利要求3的方法,其中进一步包括基于所述子集租户购买一定量资源的购买能力将一定量的资源分配给所述子集租户,至少部分地基于与由所述子集租户做出的一个或多个已接收的出价或一个或多个已接收的出价的优势相关的一个或多个作业请求的每一个的大小来确定,其中优势基于货币价值。
5.如权利要求3的方法,进一步包括由于缺乏购买一定量资源的购买能力而将给所述子集租户的资源降低一定量。
6.如权利要求1的方法,进一步包括在与所述多个租户相关联的一个或多个竞价服务器中广播所述出价,其中响应于所述广播,而从所述多个租户中的一个或多个接收优势出价。
7.如权利要求1的方法,其中通过计算机设备处的用户接口做出作业请求或出价,其中所示用户接口由计算设备处的软件应用提供,软件应用包括商业软件应用、商业网络网站、以及社交网络网站中的一个或多个,其中计算设备包括客户端计算设备,所述客户端计算设备为进行通信的网络的部分,其中网络包括基于云的网络、局域网(LAN)、广域网(WAN)、城域网(MAN)、个域网(PAN)、内联网、外联网、以及因特网中的一个或多个。
8.一种用于促进在按需服务环境中用于用户消息的线程资源的基于竞价的公平分配和使用的系统,该系统包括:
具有用以存储指令的存储器以及用以执行指令的处理设备的计算设备,计算设备进一步具有机构,所述机构:
在多租户的环境中从多个租户的一组租户接收作业请求和出价,其中在网络上接收作业请求和出价;
确定为多个租户中的一个或多个的租户执行的与未决作业相关联的资源货币价值的平衡,其中资源货币价值的平衡指示租户容量以继续占用专用于执行未决作业的一部分资源,其中当平衡被消耗掉或未决作业被完成时,对于另一个作业放弃这一部分资源;
对所接收的用于购买一部分或多个部分资源的出价执行竞价,其中每个出价包括指示一组租户中的每个租户的购买能力的购买请求以购买一部分或多个部分的资源来执行在一个或多个的作业请求中所需要的一个或多个的作业,其中竞价要考虑一组租户的至少一个行为和作业请求的类型,其中竞价还要考虑之前专用于一个或多个未决作业的一部分或多个部分的被放弃的资源;
基于由竞价产生的资源分配决定来对作业请求排序以动态地调节资源分配来执行在作业请求中所需要的作业;以及
基于作业请求的排序来处理作业请求。
9.如权利要求8的系统,其中所述机构进一步包括如果租户的未决作业请求完成而未消耗其资源货币价值,则基于作业请求的排序将资源的余量分配给由租户做出的额外的作业请求。
10.如权利要求8的系统,其中所述机构进一步基于作业请求的排序,将一定量的资源贡献给由所述多个租户的一组租户的子集租户做出的所接收的出价中的一个或多个。
11.如权利要求10的系统,其中所述机构进一步基于所述子集租户购买一定量资源的购买能力,将一定量的资源分配给所述子集租户,至少部分地基于与由所述子集租户做出的一个或多个已接收的出价或一个或多个已接收的出价的优势相关的一个或多个作业请求的每一个的大小来确定,其中优势基于货币价值。
12.如权利要求10的系统,其中所述机构进一步由于缺乏购买一定量资源的购买能力而将给子集租户的资源降低一定量。
13.如权利要求8的系统,其中所述机构进一步在与所述多个租户相关联的一个或多个竞价服务器中广播出价,其中响应于广播,而从所述多个租户中的一个或多个接收优势出价。
14.如权利要求8的系统,其中通过计算机设备处的用户接口做出作业请求或出价,其中所述用户接口由计算设备处的软件应用提供,软件应用包括商业软件应用、商业网络网站、以及社交网络网站中的一个或多个,其中计算设备包括客户端计算设备,所述客户端计算设备为进行通信的网络的部分,其中网络包括基于云的网络、局域网(LAN)、广域网(WAN)、城域网(MAN)、个域网(PAN)、内联网、外联网、以及因特网中的一个或多个。
15.一种具有存储于其上的指令的计算机可读媒介,当其由处理器执行时使得处理器实施或执行如权利要求1-7中任一项所要求的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811091855.4A CN109324900B (zh) | 2012-09-12 | 2013-06-12 | 用于按需服务环境中的消息队列的基于竞价的资源共享 |
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261700032P | 2012-09-12 | 2012-09-12 | |
US201261700037P | 2012-09-12 | 2012-09-12 | |
US61/700,032 | 2012-09-12 | ||
US61/700,037 | 2012-09-12 | ||
US201261708283P | 2012-10-01 | 2012-10-01 | |
US61/708,283 | 2012-10-01 | ||
US201261709263P | 2012-10-03 | 2012-10-03 | |
US61/709,263 | 2012-10-03 | ||
US201261711837P | 2012-10-10 | 2012-10-10 | |
US61/711,837 | 2012-10-10 | ||
US13/841,489 US10140153B2 (en) | 2012-09-12 | 2013-03-15 | System, method, and medium for facilitating auction-based resource sharing for message queues in an on-demand services environment |
US13/841,489 | 2013-03-15 | ||
PCT/US2013/045509 WO2014042729A1 (en) | 2012-09-12 | 2013-06-12 | Auction-based resource sharing for message queues in an on-demand services environment |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811091855.4A Division CN109324900B (zh) | 2012-09-12 | 2013-06-12 | 用于按需服务环境中的消息队列的基于竞价的资源共享 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104737132A CN104737132A (zh) | 2015-06-24 |
CN104737132B true CN104737132B (zh) | 2018-10-30 |
Family
ID=50234309
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811091855.4A Active CN109324900B (zh) | 2012-09-12 | 2013-06-12 | 用于按需服务环境中的消息队列的基于竞价的资源共享 |
CN201380047246.8A Active CN104737132B (zh) | 2012-09-12 | 2013-06-12 | 用于按需服务环境中的消息队列的基于竞价的资源共享 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811091855.4A Active CN109324900B (zh) | 2012-09-12 | 2013-06-12 | 用于按需服务环境中的消息队列的基于竞价的资源共享 |
Country Status (6)
Country | Link |
---|---|
US (6) | US9268605B2 (zh) |
EP (1) | EP2895954B1 (zh) |
JP (2) | JP6423344B2 (zh) |
CN (2) | CN109324900B (zh) |
CA (1) | CA2883883C (zh) |
WO (2) | WO2014042730A1 (zh) |
Families Citing this family (127)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10169090B2 (en) | 2012-09-12 | 2019-01-01 | Salesforce.Com, Inc. | Facilitating tiered service model-based fair allocation of resources for application servers in multi-tenant environments |
US9268605B2 (en) | 2012-09-12 | 2016-02-23 | Salesforce.Com, Inc. | Mechanism for facilitating sliding window resource tracking in message queues for fair management of resources for application servers in an on-demand services environment |
US9188644B1 (en) | 2012-09-25 | 2015-11-17 | The Boeing Company | Latency measurement system and method |
US9514664B2 (en) * | 2012-09-25 | 2016-12-06 | The Boeing Company | Measuring latency in a test system using captured images |
US9270621B1 (en) * | 2013-02-25 | 2016-02-23 | Ca, Inc. | Securely providing messages from the cloud |
US9772835B1 (en) * | 2013-03-13 | 2017-09-26 | Amazon Technologies, Inc. | Modification of program code for execution in a multi-tenant or distributed computing environment |
US9602426B2 (en) | 2013-06-21 | 2017-03-21 | Microsoft Technology Licensing, Llc | Dynamic allocation of resources while considering resource reservations |
US9678497B2 (en) * | 2013-08-30 | 2017-06-13 | Regents Of The University Of Minnesota | Parallel processing with cooperative multitasking |
US9262192B2 (en) * | 2013-12-16 | 2016-02-16 | Vmware, Inc. | Virtual machine data store queue allocation |
CN105900059B (zh) | 2014-01-21 | 2019-06-07 | 甲骨文国际公司 | 用于在应用服务器、云或其它环境中支持多租户的系统和方法 |
US9397905B1 (en) * | 2014-01-24 | 2016-07-19 | Amazon Technologies, Inc. | Aggregated health check of a multi-tenant service container |
US9813516B2 (en) | 2014-02-18 | 2017-11-07 | Salesforce.Com, Inc. | Transparent sharding of traffic across messaging brokers |
US10366102B2 (en) | 2014-02-19 | 2019-07-30 | Snowflake Inc. | Resource management systems and methods |
CN104901978A (zh) * | 2014-03-04 | 2015-09-09 | 腾讯科技(北京)有限公司 | 网络媒介信息的发布控制方法、装置及系统 |
US10084783B2 (en) | 2014-06-23 | 2018-09-25 | Google Llc | Selectively restricting communications from third party applications/devices to electronic devices |
JP6542810B2 (ja) * | 2014-06-23 | 2019-07-10 | オラクル・インターナショナル・コーポレイション | マルチテナントアプリケーションサーバ環境におけるワークマネージャを提供するためのシステムおよび方法 |
US9660948B2 (en) * | 2014-06-23 | 2017-05-23 | Google Inc. | Rule-based rate limiting |
US10606652B2 (en) | 2014-07-28 | 2020-03-31 | Micro Focus Llc | Determining tenant priority based on resource utilization in separate time intervals and selecting requests from a particular tenant based on the priority |
US20160086270A1 (en) * | 2014-09-24 | 2016-03-24 | International Business Machines Corporation | Dynamic storage bandwidth allocation |
EP3198431A1 (en) | 2014-09-24 | 2017-08-02 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US10318280B2 (en) | 2014-09-24 | 2019-06-11 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US10148738B2 (en) * | 2014-11-12 | 2018-12-04 | Zuora, Inc. | System and method for equitable processing of asynchronous messages in a multi-tenant platform |
US9424077B2 (en) | 2014-11-14 | 2016-08-23 | Successfactors, Inc. | Throttle control on cloud-based computing tasks utilizing enqueue and dequeue counters |
CN105700949A (zh) * | 2014-11-24 | 2016-06-22 | 中兴通讯股份有限公司 | 一种多核处理器下的数据处理方法及装置 |
EP3227801B1 (en) * | 2014-12-01 | 2020-01-08 | Informatica LLC | Message broker system with parallel persistence |
US10250512B2 (en) | 2015-01-21 | 2019-04-02 | Oracle International Corporation | System and method for traffic director support in a multitenant application server environment |
US20160217410A1 (en) * | 2015-01-23 | 2016-07-28 | Hewlett-Packard Development Company, L.P. | Worker Task Assignment Based on Correlation and Capacity Information |
US10037432B2 (en) * | 2015-02-27 | 2018-07-31 | Lenovo (Singapore) Pte. Ltd. | Implementing file security settings based on context |
US10432551B1 (en) * | 2015-03-23 | 2019-10-01 | Amazon Technologies, Inc. | Network request throttling |
US9755922B2 (en) * | 2015-03-26 | 2017-09-05 | Ca, Inc. | Minimized installation of point of presence software agents by use of pre-installed browser |
US10410155B2 (en) | 2015-05-01 | 2019-09-10 | Microsoft Technology Licensing, Llc | Automatic demand-driven resource scaling for relational database-as-a-service |
EP3329437A4 (en) * | 2015-07-28 | 2018-06-06 | Razer (Asia-Pacific) Pte Ltd. | Servers for a reward-generating distributed digital resource farm and methods for controlling a server for a reward-generating distributed digital resource farm |
US20170034011A1 (en) * | 2015-07-31 | 2017-02-02 | Comcast Cable Communications, Llc | Management Of Resources For Content Assets |
US10326702B2 (en) * | 2015-09-17 | 2019-06-18 | Facebook, Inc. | Data service levels |
CN106557366B (zh) * | 2015-09-28 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 任务分发方法、装置及系统 |
US20170104683A1 (en) * | 2015-10-08 | 2017-04-13 | Samsung Sds America, Inc. | Dynamically segmenting traffic for a/b testing in a distributed computing environment |
US11025706B2 (en) * | 2015-10-16 | 2021-06-01 | Atos Digital Health Solutions, Inc. | Load-balancing server for data transformation modules |
CN107231283B (zh) * | 2016-03-23 | 2020-12-18 | 阿里巴巴集团控股有限公司 | 消息管理方法及装置、消息预读方法及装置 |
US10003549B2 (en) * | 2016-04-21 | 2018-06-19 | Google Llc | System for allocating sensor network resources |
US10027596B1 (en) * | 2016-04-27 | 2018-07-17 | EMC IP Holding Company LLC | Hierarchical mapping of applications, services and resources for enhanced orchestration in converged infrastructure |
US10223179B2 (en) * | 2016-05-17 | 2019-03-05 | International Business Machines Corporation | Timeout processing for messages |
US10275325B2 (en) * | 2016-06-17 | 2019-04-30 | Weixu Technology Co., Ltd. | Method of site isolation protection, electronic device and system using the same method |
US10462070B1 (en) * | 2016-06-30 | 2019-10-29 | EMC IP Holding Company LLC | Service level based priority scheduler for multi-tenancy computing systems |
US10467045B1 (en) * | 2016-07-07 | 2019-11-05 | Binaris Inc | On-demand isolated execution of specific tasks |
US10412158B2 (en) * | 2016-07-27 | 2019-09-10 | Salesforce.Com, Inc. | Dynamic allocation of stateful nodes for healing and load balancing |
US10481955B2 (en) | 2016-09-18 | 2019-11-19 | International Business Machines Corporation | Optimizing tail latency via workload and resource redundancy in cloud |
US10417012B2 (en) | 2016-09-21 | 2019-09-17 | International Business Machines Corporation | Reprogramming a field programmable device on-demand |
US10599479B2 (en) | 2016-09-21 | 2020-03-24 | International Business Machines Corporation | Resource sharing management of a field programmable device |
US10355945B2 (en) | 2016-09-21 | 2019-07-16 | International Business Machines Corporation | Service level management of a workload defined environment |
US10572310B2 (en) | 2016-09-21 | 2020-02-25 | International Business Machines Corporation | Deploying and utilizing a software library and corresponding field programmable device binary |
US10701176B1 (en) * | 2016-09-23 | 2020-06-30 | Amazon Technologies, Inc. | Messaging using a hash ring with host groups |
CN109791505A (zh) * | 2016-10-05 | 2019-05-21 | 瑞典爱立信有限公司 | 控制在数据中心中的资源分配 |
CN106453557B (zh) * | 2016-10-13 | 2019-04-09 | 内蒙古工业大学 | 一种IaaS服务中的双时间尺度用户动态竞价和资源管理算法 |
CN106777309A (zh) * | 2016-12-30 | 2017-05-31 | 中国民航信息网络股份有限公司 | 非正常航班旅客通知数据的处理方法及系统 |
US10218813B2 (en) * | 2017-01-31 | 2019-02-26 | Salesforce.Com, Inc. | Automatic surge protection of system resources |
EP3358511A1 (en) * | 2017-02-01 | 2018-08-08 | Deutsche Telekom AG | Network resources brokering system and brokering entity |
KR20180090658A (ko) | 2017-02-03 | 2018-08-13 | 삼성전자주식회사 | 이동통신 시스템에서 다중 연결을 사용한 핸드오버 시 보안 키를 처리하는 방법 및 장치 |
US10424040B2 (en) * | 2017-04-21 | 2019-09-24 | Intel Corporation | Dynamic allocation of cache based on instantaneous bandwidth consumption at computing devices |
US10635561B2 (en) * | 2017-05-11 | 2020-04-28 | Salesforce.Com, Inc. | Techniques and architectures for managing database failure in a single-node database architecture |
US10425274B2 (en) | 2017-05-11 | 2019-09-24 | Salesforce.Com, Inc. | Techniques and architectures for recovering from a service disruption in a multi-server environment |
US10621001B1 (en) | 2017-07-06 | 2020-04-14 | Binaris Inc | Systems and methods for efficiently expediting execution of tasks in isolated environments |
US10567213B1 (en) | 2017-07-06 | 2020-02-18 | Binaris Inc | Systems and methods for selecting specific code segments in conjunction with executing requested tasks |
US11100058B2 (en) * | 2017-09-06 | 2021-08-24 | Oracle International Corporation | System and method for connection concentration in a database environment |
CN107633087A (zh) * | 2017-09-29 | 2018-01-26 | 南威软件股份有限公司 | 一种基于数据库的数据存储方法 |
US10467107B1 (en) * | 2017-11-01 | 2019-11-05 | Pure Storage, Inc. | Maintaining metadata resiliency among storage device failures |
US10817392B1 (en) | 2017-11-01 | 2020-10-27 | Pure Storage, Inc. | Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices |
US10404565B2 (en) * | 2017-12-13 | 2019-09-03 | Ford Global Technologies, Llc | Simulation latency indication |
CN108881150B (zh) * | 2017-12-29 | 2021-03-23 | 北京安天网络安全技术有限公司 | 一种检测任务的处理方法、装置、电子设备及存储介质 |
FR3076370B1 (fr) * | 2017-12-30 | 2020-11-27 | Bull Sas | Procede et systeme pour l'optimisation de l'ordonnancement de traitements par lot |
US11681976B2 (en) * | 2018-01-29 | 2023-06-20 | Walmart Apollo, Llc | Automated exception event handler for resolving shipping exceptions |
CN110297707A (zh) * | 2018-03-22 | 2019-10-01 | 香港乐蜜有限公司 | 一种消息传输方法及装置 |
CN108459829B (zh) * | 2018-04-12 | 2021-11-12 | 厦门集微科技有限公司 | 一种数据存储方法、装置及计算机存储介质 |
US11061896B2 (en) * | 2018-06-19 | 2021-07-13 | Salesforce.Com, Inc. | Maximizing operator parallelism |
US10613998B2 (en) * | 2018-07-30 | 2020-04-07 | EMC IP Holding Company LLC | Multi-level time decay storage queue |
CN109600414B (zh) * | 2018-08-13 | 2020-04-10 | 北京字节跳动网络技术有限公司 | 一种资源分配方法、装置、设备及存储介质 |
CN110896531B (zh) * | 2018-09-13 | 2020-12-29 | 上海朗帛通信技术有限公司 | 一种被用于无线通信的节点中的方法和装置 |
CN111240811A (zh) * | 2018-11-28 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 集群调度方法、装置和系统以及电子设备 |
US11824765B2 (en) * | 2018-12-19 | 2023-11-21 | Cisco Technology, Inc. | Fast redirect of traffic when pods fail |
US11188593B1 (en) * | 2018-12-28 | 2021-11-30 | Pivotal Software, Inc. | Reactive programming database interface |
US11003434B2 (en) | 2019-01-29 | 2021-05-11 | Salesforce.Com, Inc. | Cloud services release orchestration with a reusable deployment pipeline |
US10776099B2 (en) | 2019-01-29 | 2020-09-15 | Salesforce.Com, Inc. | Release orchestration for cloud services |
US10768923B2 (en) | 2019-01-29 | 2020-09-08 | Salesforce.Com, Inc. | Release orchestration for performing pre release, version specific testing to validate application versions |
JP2020154391A (ja) * | 2019-03-18 | 2020-09-24 | 富士ゼロックス株式会社 | 情報処理システムおよびプログラム |
JP7031630B2 (ja) * | 2019-03-20 | 2022-03-08 | オムロン株式会社 | パイプライン演算装置、プログラマブルロジックコントローラ、及び、パイプライン処理の実行方法 |
US11392843B2 (en) * | 2019-04-01 | 2022-07-19 | Accenture Global Solutions Limited | Utilizing a machine learning model to predict a quantity of cloud resources to allocate to a customer |
CN112136109B (zh) * | 2019-04-24 | 2024-04-09 | 创新先进技术有限公司 | 分布式资源分配 |
WO2020219040A1 (en) * | 2019-04-24 | 2020-10-29 | Alibaba Group Holding Limited | Distributed resource allocation |
WO2020219041A1 (en) * | 2019-04-24 | 2020-10-29 | Alibaba Group Holding Limited | Distributed resource allocation |
US11175958B2 (en) * | 2019-05-01 | 2021-11-16 | International Business Machines Corporation | Determine a load balancing mechanism for allocation of shared resources in a storage system using a machine learning module based on number of I/O operations |
CN110134520A (zh) * | 2019-05-27 | 2019-08-16 | 眸芯科技(上海)有限公司 | 基于排队的集成电路稀缺资源的使用方法及系统 |
CN110362391B (zh) * | 2019-06-12 | 2021-08-13 | 北京达佳互联信息技术有限公司 | 资源调度方法、装置、电子设备及存储介质 |
US11063882B2 (en) * | 2019-08-07 | 2021-07-13 | International Business Machines Corporation | Resource allocation for data integration |
US11093485B2 (en) | 2019-08-27 | 2021-08-17 | Salesforce.Com, Inc. | Branch-based recovery in a database system |
EP3997568B1 (en) * | 2019-08-27 | 2024-02-28 | Microsoft Technology Licensing, LLC | Workflow-based scheduling and batching in multi-tenant distributed systems |
US11494408B2 (en) | 2019-09-24 | 2022-11-08 | Salesforce.Com, Inc. | Asynchronous row to object enrichment of database change streams |
CN112783613B (zh) * | 2019-11-07 | 2024-03-01 | 北京沃东天骏信息技术有限公司 | 一种单元调度的方法和装置 |
US11308043B2 (en) | 2019-11-13 | 2022-04-19 | Salesforce.Com, Inc. | Distributed database replication |
CN112953982B (zh) * | 2019-11-26 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 一种服务处理的方法、服务配置的方法以及相关装置 |
US11368549B2 (en) | 2019-12-05 | 2022-06-21 | Microsoft Technology Licensing, Llc | Platform for multi-stream sampling and visualization |
CN110941681B (zh) * | 2019-12-11 | 2021-02-23 | 南方电网数字电网研究院有限公司 | 电力系统的多租户数据处理系统、方法和装置 |
CN111190738B (zh) * | 2019-12-31 | 2023-09-08 | 北京仁科互动网络技术有限公司 | 多租户体系下的用户镜像方法、装置及系统 |
CN111210312B (zh) * | 2020-01-08 | 2023-12-05 | 山东汇贸电子口岸有限公司 | 一种应用于中介选取的分布式在线实时竞价装置及方法 |
US11093294B2 (en) | 2020-01-22 | 2021-08-17 | Salesforce.Com, Inc. | Load balancing through autonomous organization migration |
US11354153B2 (en) | 2020-01-22 | 2022-06-07 | Salesforce.Com, Inc. | Load balancing through autonomous organization migration |
US11895201B2 (en) * | 2020-03-27 | 2024-02-06 | Intel Corporation | Programmable integrated circuit configured as a remote trust anchor to support multitenancy |
CN111405319B (zh) * | 2020-03-31 | 2021-07-23 | 北京达佳互联信息技术有限公司 | 带宽确定方法、装置、电子设备和存储介质 |
US11126483B1 (en) | 2020-04-17 | 2021-09-21 | Oracle International Corporation | Direct message retrieval in distributed messaging systems |
US11030021B1 (en) * | 2020-07-16 | 2021-06-08 | Tracelink, Inc. | Variable selection of different versions of an event handler |
US11915114B2 (en) | 2020-07-31 | 2024-02-27 | Yahoo Assets Llc | System and method for ensemble expert diversification |
US11823021B2 (en) | 2020-07-31 | 2023-11-21 | Yahoo Assets Llc | System and method for ensemble expert diversification via bidding |
US20220036249A1 (en) * | 2020-07-31 | 2022-02-03 | Oath Inc. | System and Method for Ensemble Expert Diversification and Control Thereof |
US20220058727A1 (en) * | 2020-08-18 | 2022-02-24 | Core Scientific, Inc. | Job based bidding |
US11397632B2 (en) * | 2020-10-30 | 2022-07-26 | Red Hat, Inc. | Safely recovering workloads within a finite timeframe from unhealthy cluster nodes |
US20220164221A1 (en) * | 2020-11-23 | 2022-05-26 | Motorola Solutions, Inc. | Preserving persistent link connections during a cloud-based service system upgrade |
US11336739B1 (en) | 2020-12-23 | 2022-05-17 | Salesforce.Com, Inc. | Intent-based allocation of database connections |
JP7001847B1 (ja) | 2021-01-06 | 2022-01-20 | 株式会社日立製作所 | 情報処理システムおよびバースティング制御方法 |
US11816076B2 (en) | 2021-01-14 | 2023-11-14 | Salesforce, Inc. | Declarative data evacuation for distributed systems |
US20220321396A1 (en) * | 2021-03-30 | 2022-10-06 | Johnson Controls Tyco IP Holdings LLP | System and methods for accurately synchronizing an event monitoring applicaton and a cloud-based event monitoring service |
US11733767B2 (en) * | 2021-06-25 | 2023-08-22 | Qualcomm Incorporated | Power management for multiple-chiplet systems |
CN113504988A (zh) * | 2021-07-07 | 2021-10-15 | 江苏云从曦和人工智能有限公司 | 系统算力资源调度的控制方法、系统、介质及装置 |
US11323339B1 (en) * | 2021-08-27 | 2022-05-03 | Juniper Networks, Inc. | Service placement assistance |
US11855848B2 (en) | 2021-08-27 | 2023-12-26 | Juniper Networks, Inc. | Model-based service placement |
US20230141570A1 (en) * | 2021-11-08 | 2023-05-11 | Microsoft Technology Licensing, Llc | Query admission control for online data systems based on response time objectives |
US20230155991A1 (en) * | 2021-11-12 | 2023-05-18 | At&T Intellectual Property I, L.P. | Apparatuses and methods to facilitate notifications in relation to data from multiple sources |
US11704043B1 (en) | 2022-01-31 | 2023-07-18 | Salesforce, Inc. | Backup and/or restore as a service |
CN115118508B (zh) * | 2022-06-28 | 2023-09-19 | 平安银行股份有限公司 | 数据管理方法、装置、电子设备及存储介质 |
CN117950888A (zh) * | 2024-03-25 | 2024-04-30 | 民航成都电子技术有限责任公司 | 机场消息管理方法、装置、介质及计算设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060122927A1 (en) * | 2004-12-06 | 2006-06-08 | Bernardo Huberman | System and method for allocating resources in a distributed computational system using proportional share auctions |
US20090164635A1 (en) * | 2007-08-07 | 2009-06-25 | Dennis Denker | Systems and methods for providing resource allocation in a networked environment |
US20090265205A1 (en) * | 2008-03-11 | 2009-10-22 | Incentalign, Inc. | Pricing, Allocating, accounting and distributing internal resources using a market mechanism |
CN101573691A (zh) * | 2006-12-28 | 2009-11-04 | 微软公司 | 基于时间的许可 |
Family Cites Families (169)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0816410B2 (ja) | 1990-02-22 | 1996-02-21 | 株式会社大林組 | 空気噴射式除雪装置 |
US5432926A (en) | 1992-12-04 | 1995-07-11 | International Business Machines Corporation | Method and apparatus for improving database reliability and response time in a distributed transaction processing system |
US5608872A (en) | 1993-03-19 | 1997-03-04 | Ncr Corporation | System for allowing all remote computers to perform annotation on an image and replicating the annotated image on the respective displays of other comuters |
US5649104A (en) | 1993-03-19 | 1997-07-15 | Ncr Corporation | System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers |
US5577188A (en) | 1994-05-31 | 1996-11-19 | Future Labs, Inc. | Method to provide for virtual screen overlay |
JP3215264B2 (ja) * | 1994-06-29 | 2001-10-02 | 科学技術庁航空宇宙技術研究所長 | スケジュール制御装置とその方法 |
GB2300991B (en) | 1995-05-15 | 1997-11-05 | Andrew Macgregor Ritchie | Serving signals to browsing clients |
US5715450A (en) | 1995-09-27 | 1998-02-03 | Siebel Systems, Inc. | Method of selecting and presenting data from a database using a query language to a user of a computer system |
US5937205A (en) | 1995-12-06 | 1999-08-10 | International Business Machines Corporation | Dynamic queue prioritization by modifying priority value based on queue's level and serving less than a maximum number of requests per queue |
US5831610A (en) | 1996-02-23 | 1998-11-03 | Netsuite Development L.P. | Designing networks |
US5821937A (en) | 1996-02-23 | 1998-10-13 | Netsuite Development, L.P. | Computer method for updating a network design |
US5873096A (en) | 1997-10-08 | 1999-02-16 | Siebel Systems, Inc. | Method of maintaining a network of partially replicated database system |
US6604117B2 (en) | 1996-03-19 | 2003-08-05 | Siebel Systems, Inc. | Method of maintaining a network of partially replicated database system |
US5909540A (en) | 1996-11-22 | 1999-06-01 | Mangosoft Corporation | System and method for providing highly available data storage using globally addressable memory |
WO1998038586A1 (en) | 1997-02-26 | 1998-09-03 | Siebel Systems, Inc. | Method of determining the visibility to a remote databaseclient of a plurality of database transactions using simplified visibility rules |
WO1998040804A2 (en) | 1997-02-26 | 1998-09-17 | Siebel Systems, Inc. | Distributed relational database |
AU6440398A (en) | 1997-02-26 | 1998-09-18 | Siebel Systems, Inc. | Method of using a cache to determine the visibility to a remote database client of a plurality of database transactions |
WO1998038762A2 (en) | 1997-02-26 | 1998-09-03 | Siebel Systems, Inc. | Determining visibility to a remote database client |
AU6183698A (en) | 1997-02-26 | 1998-09-18 | Siebel Systems, Inc. | Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths |
AU6183798A (en) | 1997-02-27 | 1998-09-29 | Siebel Systems, Inc. | Method of migrating to a successive level of a software distribution incorporating local modifications |
WO1998040805A2 (en) | 1997-02-27 | 1998-09-17 | Siebel Systems, Inc. | Method of synchronizing independently distributed software and database schema |
JP2001513926A (ja) | 1997-02-28 | 2001-09-04 | シーベル システムズ,インコーポレイティド | 複数レベルのリモート・クライアントを持つ部分的複製分散データベース |
US6263359B1 (en) | 1997-05-22 | 2001-07-17 | International Business Machines Corporation | Computer resource proportional utilization and response time scheduling |
US6169534B1 (en) | 1997-06-26 | 2001-01-02 | Upshot.Com | Graphical user interface for customer information management |
US6560461B1 (en) | 1997-08-04 | 2003-05-06 | Mundi Fomukong | Authorized location reporting paging system |
US5918159A (en) | 1997-08-04 | 1999-06-29 | Fomukong; Mundi | Location reporting satellite paging system with optional blocking of location reporting |
US20020059095A1 (en) | 1998-02-26 | 2002-05-16 | Cook Rachael Linette | System and method for generating, capturing, and managing customer lead information over a computer network |
US6732111B2 (en) | 1998-03-03 | 2004-05-04 | Siebel Systems, Inc. | Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database |
US5963953A (en) | 1998-03-30 | 1999-10-05 | Siebel Systems, Inc. | Method, and system for product configuration |
CA2341871A1 (en) | 1998-08-27 | 2000-03-09 | Upshot Corporation | A method and apparatus for network-based sales force management |
US6601087B1 (en) | 1998-11-18 | 2003-07-29 | Webex Communications, Inc. | Instant document sharing |
US6728960B1 (en) | 1998-11-18 | 2004-04-27 | Siebel Systems, Inc. | Techniques for managing multiple threads in a browser environment |
US6549908B1 (en) | 1998-11-18 | 2003-04-15 | Siebel Systems, Inc. | Methods and apparatus for interpreting user selections in the context of a relation distributed as a set of orthogonalized sub-relations |
EP1135723A4 (en) | 1998-11-30 | 2005-02-16 | Siebel Systems Inc | DEVELOPMENT TOOL, METHOD AND SYSTEM FOR CUSTOMER SERVICE APPLICATIONS |
AU1838300A (en) | 1998-11-30 | 2000-06-19 | Siebel Systems, Inc. | Smart scripting call centers |
JP2002531899A (ja) | 1998-11-30 | 2002-09-24 | シーベル システムズ,インコーポレイティド | プロセス監視用の状態モデル |
JP2002531900A (ja) | 1998-11-30 | 2002-09-24 | シーベル システムズ,インコーポレイティド | 割り当てマネージャ |
US20020072951A1 (en) | 1999-03-03 | 2002-06-13 | Michael Lee | Marketing support database management method, system and program product |
US6574635B2 (en) | 1999-03-03 | 2003-06-03 | Siebel Systems, Inc. | Application instantiation based upon attributes and values stored in a meta data repository, including tiering of application layers objects and components |
US8050198B2 (en) * | 1999-05-24 | 2011-11-01 | Qualcomm Incorporated | Method and system for scheduling data transmission in communication systems |
DE60045327D1 (de) * | 1999-06-17 | 2011-01-20 | Level 3 Communications Inc | System und Verfahren zur integrierter Lastverteilung und Betriebsmittelverwaltung in einer Internet-Umgebung |
US6621834B1 (en) | 1999-11-05 | 2003-09-16 | Raindance Communications, Inc. | System and method for voice transmission over network protocols |
US6535909B1 (en) | 1999-11-18 | 2003-03-18 | Contigo Software, Inc. | System and method for record and playback of collaborative Web browsing session |
US6324568B1 (en) | 1999-11-30 | 2001-11-27 | Siebel Systems, Inc. | Method and system for distributing objects over a network |
US6654032B1 (en) | 1999-12-23 | 2003-11-25 | Webex Communications, Inc. | Instant sharing of documents on a remote server |
US7649901B2 (en) | 2000-02-08 | 2010-01-19 | Mips Technologies, Inc. | Method and apparatus for optimizing selection of available contexts for packet processing in multi-stream packet processing |
US20010051890A1 (en) | 2000-03-17 | 2001-12-13 | Raleigh Burgess | Systems and methods for providing remote support via productivity centers |
US7266502B2 (en) | 2000-03-31 | 2007-09-04 | Siebel Systems, Inc. | Feature centric release manager method and system |
US6577726B1 (en) | 2000-03-31 | 2003-06-10 | Siebel Systems, Inc. | Computer telephony integration hotelling method and system |
US6732100B1 (en) | 2000-03-31 | 2004-05-04 | Siebel Systems, Inc. | Database access method and system for user role defined access |
US6336137B1 (en) | 2000-03-31 | 2002-01-01 | Siebel Systems, Inc. | Web client-server system and method for incompatible page markup and presentation languages |
US7730072B2 (en) | 2000-04-14 | 2010-06-01 | Rightnow Technologies, Inc. | Automated adaptive classification system for knowledge networks |
US6665655B1 (en) | 2000-04-14 | 2003-12-16 | Rightnow Technologies, Inc. | Implicit rating of retrieved information in an information search system |
US6842748B1 (en) | 2000-04-14 | 2005-01-11 | Rightnow Technologies, Inc. | Usage based strength between related information in an information retrieval system |
US6434550B1 (en) | 2000-04-14 | 2002-08-13 | Rightnow Technologies, Inc. | Temporal updates of relevancy rating of retrieved information in an information search system |
US6763501B1 (en) | 2000-06-09 | 2004-07-13 | Webex Communications, Inc. | Remote document serving |
US20030033191A1 (en) | 2000-06-15 | 2003-02-13 | Xis Incorporated | Method and apparatus for a product lifecycle management process |
EP2259493B1 (en) * | 2000-07-31 | 2012-01-25 | The Boeing Company | Distributed game system |
KR100365357B1 (ko) | 2000-10-11 | 2002-12-18 | 엘지전자 주식회사 | 무선통신 단말기의 데이터 통신 방법 |
US7581230B2 (en) | 2001-02-06 | 2009-08-25 | Siebel Systems, Inc. | Adaptive communication application programming interface |
USD454139S1 (en) | 2001-02-20 | 2002-03-05 | Rightnow Technologies | Display screen for a computer |
US7363388B2 (en) | 2001-03-28 | 2008-04-22 | Siebel Systems, Inc. | Method and system for direct server synchronization with a computing device |
US6829655B1 (en) | 2001-03-28 | 2004-12-07 | Siebel Systems, Inc. | Method and system for server synchronization with a computing device via a companion device |
US7174514B2 (en) | 2001-03-28 | 2007-02-06 | Siebel Systems, Inc. | Engine to present a user interface based on a logical structure, such as one for a customer relationship management system, across a web site |
US20030206192A1 (en) | 2001-03-31 | 2003-11-06 | Mingte Chen | Asynchronous message push to web browser |
US20030018705A1 (en) | 2001-03-31 | 2003-01-23 | Mingte Chen | Media-independent communication server |
US6732095B1 (en) | 2001-04-13 | 2004-05-04 | Siebel Systems, Inc. | Method and apparatus for mapping between XML and relational representations |
US7761288B2 (en) | 2001-04-30 | 2010-07-20 | Siebel Systems, Inc. | Polylingual simultaneous shipping of software |
US6728702B1 (en) | 2001-06-18 | 2004-04-27 | Siebel Systems, Inc. | System and method to implement an integrated search center supporting a full-text search and query on a database |
US6711565B1 (en) | 2001-06-18 | 2004-03-23 | Siebel Systems, Inc. | Method, apparatus, and system for previewing search results |
US6763351B1 (en) | 2001-06-18 | 2004-07-13 | Siebel Systems, Inc. | Method, apparatus, and system for attaching search results |
US6782383B2 (en) | 2001-06-18 | 2004-08-24 | Siebel Systems, Inc. | System and method to implement a persistent and dismissible search center frame |
US20030004971A1 (en) | 2001-06-29 | 2003-01-02 | Gong Wen G. | Automatic generation of data models and accompanying user interfaces |
US7761535B2 (en) | 2001-09-28 | 2010-07-20 | Siebel Systems, Inc. | Method and system for server synchronization with a computing device |
US6993712B2 (en) | 2001-09-28 | 2006-01-31 | Siebel Systems, Inc. | System and method for facilitating user interaction in a browser environment |
US6826582B1 (en) | 2001-09-28 | 2004-11-30 | Emc Corporation | Method and system for using file systems for content management |
US6724399B1 (en) | 2001-09-28 | 2004-04-20 | Siebel Systems, Inc. | Methods and apparatus for enabling keyboard accelerators in applications implemented via a browser |
US6978445B2 (en) | 2001-09-28 | 2005-12-20 | Siebel Systems, Inc. | Method and system for supporting user navigation in a browser environment |
US7146617B2 (en) | 2001-09-29 | 2006-12-05 | Siebel Systems, Inc. | Method, apparatus, and system for implementing view caching in a framework to support web-based applications |
US6901595B2 (en) | 2001-09-29 | 2005-05-31 | Siebel Systems, Inc. | Method, apparatus, and system for implementing a framework to support a web-based application |
US8359335B2 (en) | 2001-09-29 | 2013-01-22 | Siebel Systems, Inc. | Computing system and method to implicitly commit unsaved data for a world wide web application |
US7962565B2 (en) | 2001-09-29 | 2011-06-14 | Siebel Systems, Inc. | Method, apparatus and system for a mobile web client |
US7289949B2 (en) | 2001-10-09 | 2007-10-30 | Right Now Technologies, Inc. | Method for routing electronic correspondence based on the level and type of emotion contained therein |
US6804330B1 (en) | 2002-01-04 | 2004-10-12 | Siebel Systems, Inc. | Method and system for accessing CRM data via voice |
US7058890B2 (en) | 2002-02-13 | 2006-06-06 | Siebel Systems, Inc. | Method and system for enabling connectivity to a data system |
US7131071B2 (en) | 2002-03-29 | 2006-10-31 | Siebel Systems, Inc. | Defining an approval process for requests for approval |
US7672853B2 (en) | 2002-03-29 | 2010-03-02 | Siebel Systems, Inc. | User interface for processing requests for approval |
EP1510917A1 (fr) | 2003-08-27 | 2005-03-02 | France Telecom | Procédé pour allouer en temps réel une ressource entre plusieurs utilisateurs au moyen d'un mécanisme d'enchères |
US6850949B2 (en) | 2002-06-03 | 2005-02-01 | Right Now Technologies, Inc. | System and method for generating a dynamic interface via a communications network |
US8639542B2 (en) | 2002-06-27 | 2014-01-28 | Siebel Systems, Inc. | Method and apparatus to facilitate development of a customer-specific business process model |
US7594181B2 (en) | 2002-06-27 | 2009-09-22 | Siebel Systems, Inc. | Prototyping graphical user interfaces |
US7437720B2 (en) | 2002-06-27 | 2008-10-14 | Siebel Systems, Inc. | Efficient high-interactivity user interface for client-server applications |
US20040010489A1 (en) | 2002-07-12 | 2004-01-15 | Rightnow Technologies, Inc. | Method for providing search-specific web pages in a network computing environment |
JP2004050550A (ja) | 2002-07-18 | 2004-02-19 | Fuji Xerox Co Ltd | プリンタ装置 |
US7251787B2 (en) | 2002-08-28 | 2007-07-31 | Siebel Systems, Inc. | Method and apparatus for an integrated process modeller |
US7363346B2 (en) | 2002-09-07 | 2008-04-22 | Appistry, Inc. | Reliably storing information across multiple computers such as in a hive of computers |
US9448860B2 (en) | 2003-03-21 | 2016-09-20 | Oracle America, Inc. | Method and architecture for providing data-change alerts to external applications via a push service |
EP1606739A4 (en) | 2003-03-24 | 2007-10-17 | Siebel Systems Inc | CUSTOMIZED JOINT OBJECT |
US7904340B2 (en) | 2003-03-24 | 2011-03-08 | Siebel Systems, Inc. | Methods and computer-readable medium for defining a product model |
WO2004086198A2 (en) | 2003-03-24 | 2004-10-07 | Siebel Systems, Inc. | Common common object |
US8762415B2 (en) | 2003-03-25 | 2014-06-24 | Siebel Systems, Inc. | Modeling of order data |
US7685515B2 (en) | 2003-04-04 | 2010-03-23 | Netsuite, Inc. | Facilitating data manipulation in a browser-based user interface of an enterprise business application |
US7299229B2 (en) * | 2003-04-25 | 2007-11-20 | International Business Machines Corporation | Grid quorum |
US7620655B2 (en) | 2003-05-07 | 2009-11-17 | Enecto Ab | Method, device and computer program product for identifying visitors of websites |
AU2003240249A1 (en) * | 2003-05-15 | 2004-12-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for the distribution of a network traffic according to sla and qos parameters |
US7409336B2 (en) | 2003-06-19 | 2008-08-05 | Siebel Systems, Inc. | Method and system for searching data based on identified subset of categories and relevance-scored text representation-category combinations |
US20040260659A1 (en) | 2003-06-23 | 2004-12-23 | Len Chan | Function space reservation system |
US7237227B2 (en) | 2003-06-30 | 2007-06-26 | Siebel Systems, Inc. | Application user interface template with free-form layout |
US7694314B2 (en) | 2003-08-28 | 2010-04-06 | Siebel Systems, Inc. | Universal application network architecture |
US7779039B2 (en) | 2004-04-02 | 2010-08-17 | Salesforce.Com, Inc. | Custom entities and fields in a multi-tenant database system |
US7260589B2 (en) | 2003-12-04 | 2007-08-21 | International Business Machines Corporation | High performance support for XA protocols in a clustered shared database |
US7703101B2 (en) | 2004-02-13 | 2010-04-20 | International Business Machines Corporation | Autonomic workload classification using predictive assertion for wait queue and thread pool selection |
US7421402B2 (en) * | 2004-08-19 | 2008-09-02 | International Business Machines Corp. | Tier-based dynamic incentive arbitration in an on-demand computing environment |
WO2006026392A2 (en) * | 2004-08-27 | 2006-03-09 | Gray Leonard J | Computational simulation systems and methods using boundary integral equations |
US7289976B2 (en) | 2004-12-23 | 2007-10-30 | Microsoft Corporation | Easy-to-use data report specification |
US7640339B1 (en) | 2005-02-14 | 2009-12-29 | Sun Microsystems, Inc. | Method and apparatus for monitoring a node in a distributed system |
US7706895B2 (en) * | 2005-02-25 | 2010-04-27 | Rockwell Automation Technologies, Inc. | Reliable messaging instruction |
EP1866885A4 (en) * | 2005-03-22 | 2011-12-21 | Ticketmaster | APPARATUS AND METHODS FOR PROVIDING MESSAGING OF QUEUE WAITING ON A NETWORK |
US7827262B2 (en) * | 2005-07-14 | 2010-11-02 | Cisco Technology, Inc. | Approach for managing state information by a group of servers that services a group of clients |
US8527473B1 (en) | 2005-10-20 | 2013-09-03 | Teradata Us, Inc. | Identifying database request sources in multi-database systems |
US8046441B2 (en) * | 2006-02-13 | 2011-10-25 | Infosys Limited | Business to business integration software as a service |
US8087026B2 (en) | 2006-04-27 | 2011-12-27 | International Business Machines Corporation | Fair share scheduling based on an individual user's resource usage and the tracking of that usage |
US20070254628A1 (en) | 2006-04-27 | 2007-11-01 | Research In Motion Limited | Method, apparatus and system for monitoring and controlling wireless resource usage |
WO2008005102A2 (en) | 2006-05-13 | 2008-01-10 | Sap Ag | Consistent set of interfaces derived from a business object model |
US7730478B2 (en) | 2006-10-04 | 2010-06-01 | Salesforce.Com, Inc. | Method and system for allowing access to developed applications via a multi-tenant on-demand database service |
US8954500B2 (en) | 2008-01-04 | 2015-02-10 | Yahoo! Inc. | Identifying and employing social network relationships |
US8028291B2 (en) | 2007-01-22 | 2011-09-27 | International Business Machines Corporation | Method and computer program product for job selection and resource allocation of a massively parallel processor |
JP2008204243A (ja) | 2007-02-21 | 2008-09-04 | Hitachi Software Eng Co Ltd | ジョブ実行制御方法およびシステム |
US8458715B1 (en) * | 2007-02-23 | 2013-06-04 | Hrl Laboratories, Llc | System for allocating resources to optimize transition from a current state to a desired state |
US20080244607A1 (en) | 2007-03-27 | 2008-10-02 | Vladislav Rysin | Economic allocation and management of resources via a virtual resource market |
WO2009040901A1 (ja) | 2007-09-26 | 2009-04-02 | Fujitsu Limited | リソース割当管理プログラム、リソース割当管理装置およびリソース割当管理方法 |
US8082234B2 (en) * | 2007-11-19 | 2011-12-20 | Teradata Us, Inc. | Closed-loop system management method and process capable of managing workloads in a multi-system database environment |
US20090172149A1 (en) | 2007-12-28 | 2009-07-02 | International Business Machines Corporation | Real-time information technology environments |
US8260487B2 (en) | 2008-01-08 | 2012-09-04 | General Electric Company | Methods and systems for vital bus architecture |
US9596324B2 (en) | 2008-02-08 | 2017-03-14 | Broadcom Corporation | System and method for parsing and allocating a plurality of packets to processor core threads |
US20090287592A1 (en) | 2008-05-15 | 2009-11-19 | Worthybids Llc | System and method for conferring a benefit to a thrid party from the sale of leads |
CN101656657A (zh) * | 2008-08-19 | 2010-02-24 | 国际商业机器公司 | 在多租户架构中确定每个租户的资源使用率的方法和系统 |
US8065395B2 (en) | 2009-03-13 | 2011-11-22 | Novell, Inc. | System and method for queuing to a cloud via a queuing proxy |
US8392312B2 (en) | 2008-09-24 | 2013-03-05 | Netapp, Inc. | Adaptive scheduling of storage operations based on utilization of a multiple client and server resources in a distributed network storage system |
US20100229218A1 (en) * | 2009-03-05 | 2010-09-09 | Microsoft Corporation | Quota management for network services |
US8321558B1 (en) | 2009-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Dynamically monitoring and modifying distributed execution of programs |
US8341722B2 (en) | 2009-11-30 | 2012-12-25 | Unisys Corporation | Load balancing and failover of gateway devices |
GB2475897A (en) | 2009-12-04 | 2011-06-08 | Creme Software Ltd | Resource allocation using estimated time to complete jobs in a grid or cloud computing environment |
US20110231457A1 (en) | 2010-03-16 | 2011-09-22 | Salesforce.Com, Inc. | Monitoring and managing job resources for database tasks |
US8631482B2 (en) | 2010-05-28 | 2014-01-14 | Apple Inc. | Method for managing computer resources accessed by a program operating in a restricted environment |
US8539078B2 (en) | 2010-07-08 | 2013-09-17 | International Business Machines Corporation | Isolating resources between tenants in a software-as-a-service system using the estimated costs of service requests |
US20120016721A1 (en) * | 2010-07-15 | 2012-01-19 | Joseph Weinman | Price and Utility Optimization for Cloud Computing Resources |
US8612330B1 (en) * | 2010-09-14 | 2013-12-17 | Amazon Technologies, Inc. | Managing bandwidth for shared resources |
US9292466B1 (en) * | 2010-12-28 | 2016-03-22 | Amazon Technologies, Inc. | Traffic control for prioritized virtual machines |
US8504691B1 (en) | 2010-12-29 | 2013-08-06 | Amazon Technologies, Inc. | System and method for allocating resources for heterogeneous service requests |
US9342379B2 (en) * | 2011-01-21 | 2016-05-17 | Wind River Systems, Inc. | Lock free acquisition and release of a semaphore in a multi-core processor environment |
CN102185708B (zh) * | 2011-04-18 | 2014-06-18 | 武汉理工大学 | 基于纳什均衡的网格资源分配方法 |
US8910182B2 (en) * | 2011-05-27 | 2014-12-09 | Microsoft Corporation | Managing and simplifying distributed applications |
US8782192B2 (en) * | 2011-05-31 | 2014-07-15 | Red Hat, Inc. | Detecting resource consumption events over sliding intervals in cloud-based network |
US8838526B2 (en) * | 2011-06-24 | 2014-09-16 | Salesforce.Com, Inc. | Systems and methods for supporting transactional message handling |
US8954568B2 (en) | 2011-07-21 | 2015-02-10 | Yahoo! Inc. | Method and system for building an elastic cloud web server farm |
EP2551781A1 (en) * | 2011-07-29 | 2013-01-30 | British Telecommunications Public Limited Company | Data analysis system |
US20130060834A1 (en) | 2011-09-07 | 2013-03-07 | Microsoft Corportion | Distributed messaging system connectivity and resource management |
US9203900B2 (en) * | 2011-09-23 | 2015-12-01 | Netapp, Inc. | Storage area network attached clustered storage system |
CN103959242A (zh) | 2011-10-10 | 2014-07-30 | 惠普发展公司,有限责任合伙企业 | 用于在云计算系统中规划应用的执行的方法和系统 |
US8850022B2 (en) * | 2011-10-26 | 2014-09-30 | Sag Ag | Adjustment of end user response times according to user expectations for server applications under load |
US8914663B2 (en) * | 2012-03-28 | 2014-12-16 | Hewlett-Packard Development Company, L.P. | Rescheduling failed backup jobs |
US9009683B2 (en) | 2012-03-28 | 2015-04-14 | Software Ag | Systems and/or methods for testing client reactions to simulated disruptions |
US8949839B2 (en) | 2012-07-26 | 2015-02-03 | Centurylink Intellectual Property Llc | Method and system for controlling work request queue in a multi-tenant cloud computing environment |
US9251103B2 (en) * | 2012-08-08 | 2016-02-02 | Vmware, Inc. | Memory-access-resource management |
US9223626B2 (en) | 2012-08-30 | 2015-12-29 | International Business Machines Corporation | Task execution and management in a clustered computing environment |
US9268605B2 (en) | 2012-09-12 | 2016-02-23 | Salesforce.Com, Inc. | Mechanism for facilitating sliding window resource tracking in message queues for fair management of resources for application servers in an on-demand services environment |
US20150066587A1 (en) | 2013-08-30 | 2015-03-05 | Tealium Inc. | Content site visitor processing system |
DE102014107325B4 (de) * | 2014-05-23 | 2023-08-10 | Infineon Technologies Ag | Halbleiterbauelement und verfahren zum herstellen eines halbleiterbauelements |
-
2013
- 2013-03-15 US US13/841,713 patent/US9268605B2/en active Active
- 2013-03-15 US US13/841,649 patent/US9348648B2/en active Active
- 2013-03-15 US US13/841,417 patent/US9529626B2/en active Active
- 2013-03-15 US US13/841,588 patent/US10768983B2/en active Active
- 2013-03-15 US US13/841,489 patent/US10140153B2/en active Active
- 2013-06-12 CN CN201811091855.4A patent/CN109324900B/zh active Active
- 2013-06-12 CN CN201380047246.8A patent/CN104737132B/zh active Active
- 2013-06-12 CA CA2883883A patent/CA2883883C/en active Active
- 2013-06-12 WO PCT/US2013/045511 patent/WO2014042730A1/en active Application Filing
- 2013-06-12 EP EP13731595.8A patent/EP2895954B1/en active Active
- 2013-06-12 WO PCT/US2013/045509 patent/WO2014042729A1/en unknown
- 2013-06-12 JP JP2015531916A patent/JP6423344B2/ja active Active
-
2018
- 2018-10-18 JP JP2018196455A patent/JP6672423B2/ja active Active
- 2018-10-30 US US16/175,132 patent/US20190095249A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060122927A1 (en) * | 2004-12-06 | 2006-06-08 | Bernardo Huberman | System and method for allocating resources in a distributed computational system using proportional share auctions |
CN101573691A (zh) * | 2006-12-28 | 2009-11-04 | 微软公司 | 基于时间的许可 |
US20090164635A1 (en) * | 2007-08-07 | 2009-06-25 | Dennis Denker | Systems and methods for providing resource allocation in a networked environment |
US20090265205A1 (en) * | 2008-03-11 | 2009-10-22 | Incentalign, Inc. | Pricing, Allocating, accounting and distributing internal resources using a market mechanism |
Also Published As
Publication number | Publication date |
---|---|
US9268605B2 (en) | 2016-02-23 |
JP2019040613A (ja) | 2019-03-14 |
WO2014042730A1 (en) | 2014-03-20 |
CN109324900A (zh) | 2019-02-12 |
US10768983B2 (en) | 2020-09-08 |
US20140074641A1 (en) | 2014-03-13 |
US20140075445A1 (en) | 2014-03-13 |
EP2895954B1 (en) | 2023-11-29 |
CN109324900B (zh) | 2022-03-04 |
JP6423344B2 (ja) | 2018-11-14 |
US20140075030A1 (en) | 2014-03-13 |
US9348648B2 (en) | 2016-05-24 |
CN104737132A (zh) | 2015-06-24 |
US9529626B2 (en) | 2016-12-27 |
CA2883883C (en) | 2019-09-24 |
US20140075017A1 (en) | 2014-03-13 |
CA2883883A1 (en) | 2014-03-20 |
JP2015535975A (ja) | 2015-12-17 |
US20190095249A1 (en) | 2019-03-28 |
US10140153B2 (en) | 2018-11-27 |
US20140075446A1 (en) | 2014-03-13 |
WO2014042729A1 (en) | 2014-03-20 |
JP6672423B2 (ja) | 2020-03-25 |
EP2895954A1 (en) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104737132B (zh) | 用于按需服务环境中的消息队列的基于竞价的资源共享 | |
Chen et al. | An energy sharing game with generalized demand bidding: Model and properties | |
Kumar et al. | A systematic study of double auction mechanisms in cloud computing | |
Wang et al. | An intelligent economic approach for dynamic resource allocation in cloud services | |
US8589206B2 (en) | Service requests for multiple service level characteristics | |
US7899697B2 (en) | Application of brokering methods to security characteristics | |
US7899696B2 (en) | Application of brokering methods to recoverability characteristics | |
Dastjerdi et al. | An autonomous time-dependent SLA negotiation strategy for cloud computing | |
CN108090225A (zh) | 数据库实例的运行方法、装置、系统及计算机可读存储介质 | |
CN106020928A (zh) | 用专用实施资源进行虚拟资源成本追踪 | |
CN103064744B (zh) | 一种基于SLA的面向多层Web应用的资源优化方法 | |
Sharghivand et al. | A comprehensive survey on auction mechanism design for cloud/edge resource management and pricing | |
US8032407B2 (en) | Application of brokering methods to scalability characteristics | |
CN103562940A (zh) | 根据计算环境权利合约管理组织的计算资源 | |
US20140279353A1 (en) | C2EX Compute Commodities Exchange | |
CN110111214A (zh) | 一种基于优先级的用户用能管理方法及系统 | |
TW200532518A (en) | Methods and apparatus for managing computing resources based on yield management framework | |
Rodero-Merino et al. | Using clouds to scale grid resources: An economic model | |
Li et al. | A price-incentive resource auction mechanism balancing the interests between users and cloud service provider | |
Jain et al. | Auction based cost‐efficient resource allocation by utilizing blockchain in fog computing | |
Li et al. | A survey of resource provisioning problem in cloud brokers | |
US20080300948A1 (en) | Application of brokering methods to operational support characteristics | |
Zhu et al. | SAAS parallel task scheduling based on cloud service flow load algorithm | |
Ranjan et al. | SLA-based coordinated superscheduling scheme for computational Grids | |
Zhang et al. | Real option valuation on grid computing |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: California, USA Patentee after: Shuo Power Co. Address before: California, USA Patentee before: SALESFORCE.COM. Inc. |
|
CP01 | Change in the name or title of a patent holder |