一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多租户提取变换加载资源共享的制作方法

2022-07-10 19:20:41 来源:中国专利 TAG:

多租户提取变换加载资源共享


背景技术:

1.本发明总体上涉及多租户(multi-tenant)系统中的处理的领域,并且更具体地涉及用于多租户提取变换加载(extract transform load,etl)系统的处理资源共享的方法。
2.本发明还涉及一种计算机程序产品,该计算机程序产品包括计算机可读程序代码,该计算机可读程序代码使得系统的处理器或网络的多个处理器能够实现该方法。
3.本发明还涉及一种用于共享多租户etl系统的处理资源的系统。
4.在多租户etl系统中,大量数据以高度并行的方式从多个不同的租户异步提取和处理。数据被逐页提取并被排队以供共享处理引擎(或集群)处理。
5.多个租户可提交大量工作,并且该工作随后被排队以供在共享处理引擎中处理。因此,一个租户的工作可以利用大量数据来垄断系统并且延迟另一个租户的工作的处理。这对应接收相同服务级别的其他租户(例如,相同类别内的租户)是不公平的。尽管特定类别的租户可能比另一类别的租户获得更好的服务质量(例如,系统可被配置为向付费或高级顾客提供比未付费或标准顾客更高的服务等级),但是同一类别中的租户将全部期望接收同一服务等级。换言之,典型的期望是多租户etl系统对于相同类别内的所有租户应当是公平的。


技术实现要素:

6.根据本发明的一个实施例,一种用于共享多租户提取变换加载系统的处理资源的计算机实现的方法,方法包括:由一个或多个处理器确定多租户etl系统的总工作量;由一个或多个处理器确定与租户相关联的排队的工作量;以及由一个或多个处理器基于总工作量和排队的工作量来延迟将由租户所请求的工作添加到多租户etl系统的工作量。
7.根据本发明的另一实施例,一种计算机程序产品包括计算机可读存储介质,计算机可读存储介质具有随其体现的程序指令,程序指令可由处理单元执行以使处理单元在计算机网络上运行时执行一种用于共享多租户提取变换加载(etl)系统的处理资源的方法,其中方法包括:确定多租户etl系统的总工作量;确定与租户相关联的排队的工作量;以及基于总工作量和排队的工作量,延迟将租户所请求的工作添加到etl系统的工作量。
8.根据本发明的另一实施例,一种用于共享多租户提取变换加载(etl)系统的处理资源的系统,该系统包括:工作量组件,被配置为确定多租户etl系统的总工作量;分析组件,被配置为确定与租户相关联的排队的工作量;以及延迟组件,被配置为基于总工作量和排队的工作量来延迟将租户所请求的工作添加到多租户etl系统的工作量。
附图说明
9.现在将参考以下附图仅通过示例的方式来描述本发明的优选实施例,在附图中:
10.图1描绘了可实现说明性实施例的方面的示例分布式系统的图形表示;
11.图2描绘了根据实施例的所提出的分布式通信系统的示意图;
12.图3描绘了根据实施例的用于共享etl系统的资源的方法的流程图;以及
13.图4描绘了根据本发明的实施例的服务器和/或客户端的组件的框图。
具体实施方式
14.应当理解,附图仅是示意性的并且不是按比例绘制的。还应当理解的是,在整个附图中使用相同的参考标号表示相同或相似的部件。
15.在本技术的上下文中,当本发明的实施例构成方法时,应当理解的是,该方法可以是用于由计算机执行的过程,即,可以是计算机可实现的方法。因此,该方法的各个步骤可反映计算机程序的各个部分,例如,一个或多个算法的各个部分。
16.而且,在本技术的上下文中,系统可以是被适配成执行本发明的方法的一个或多个实施例的单个设备或分布式设备的集合。例如,系统可以是个人计算机(pc)、服务器或经由诸如局域网、互联网等的网络连接的pc和/或服务器的集合,以协作地执行本发明的方法的至少一个实施例。进一步,组件可以是由一个或多个处理单元执行的集成流程。
17.所提出的是用于共享多租户提取变换加载(etl)系统的处理资源的概念。在该概念中,考虑多租户etl系统的总工作量以及租户的排队的工作量,以便控制排队的工作量到系统的递送。例如,通过延迟租户的工作来进行这种控制。因此,所提出的实施例寻求设计以实现租户之间的公平性的策略。
18.因此,实施例可被视为被配置为减慢在给定时间提供给系统的工作。建议这可以通过测量租户的活动工作的并发流的数量来完成。例如,具有大量并发活动工作流的租户可使此类工作的添加被本文描述的实施例延迟。这可以防止租户用高数据量垄断(即,过载)系统,否则这将延迟另一租户的工作的处理。
19.因此,所提出的实施例可以考虑到系统的总工作量而自动和动态地控制租户的工作量的添加。例如,基于系统的总工作量和与租户相关联的排队的工作量,可延迟/推迟由该租户请求的工作的添加。这样可以实现公平共享系统的处理资源。可提供用于实现租户的类别(例如,已付费、未付费、高级、白金等)的公平性的概念。
20.所提出的概念对于etl系统可能是特别有价值的和/或有利的,因为它们可利用与etl系统相关联的增加的可预测性水平(由于它们的提取请求链)来实现跨多个租户的公平性。
21.因为数据提取耗费时间,所以并行执行三个提取变换加载阶段是常见的。随着数据被提取,另一个变换处理在处理已经接收的数据并且准备它用于加载的同时执行,同时数据加载开始而不等待先前阶段的完成。所提出的实施例利用这一点,并且集中于通过控制向工作量延迟添加租户所请求的工作来实现租户的公平性。
22.具体地,提出了基于etl系统中当前排队的总工作量的测量来延迟租户的工作到etl系统工作量的添加。在系统中待处理的工作量的这种测量可以例如由系统中的滞后来指示。
23.所提出的实施例可以通过监测系统内的总负载和与租户相关联的工作并且在过载的情况下通过在提取页中引入延迟来寻求促进类别(即,组、集合、类、类型、类别等)的租户之间的公平性。延迟可与由每个租户生成的工作成比例。这可以被称为“起搏(pacing)”。
24.作为示例,实施例可通过测量已为所有租户排队的工作量来监测总负载。该实施例然后可以减慢每个租户的新工作的添加。例如,“起博”延迟可以基于总工作队列深度(例
如,滞后)并且还基于来自每个租户的工作量(例如,运行的etl批的数量)来计算。
25.通过确定何时需要起搏,可由所提出的实施例计算和应用个性化起搏因子。这可以提供实施所提出的实施例的产品的改善的用户体验和感知。
26.作为示例,所提议的实施例可提供共享多租户etl系统的处理资源。该实施例可包括确定多租户etl系统的总工作量。对于使用多租户etl系统的每个租户,随后可确定相关联的排队的工作量。基于所确定的总工作量和与租户相关联的排队的工作量,可随后延迟租户所请求的工作到多租户etl系统的工作量的添加。
27.一些实施例还可包括针对使用多租户etl系统的每个租户基于与该租户相关联的排队的工作量来计算相关联的延迟系数。进一步,通过基于与租户相关联的延迟系数向租户所请求的工作引入延迟,来延迟租户所请求的工作对系统的工作量的添加。
28.进一步,基于与租户相关联的排队的工作量来计算相关联的延迟系数可以包括:如果与租户相关联的排队的工作量小于预定阈值,则将延迟系数计算为等于预定默认值。
29.基于与租户相关联的排队的工作量计算相关联的延迟系数可以包括计算延迟系数以与和租户相关联的排队的工作量成正比。
30.作为进一步的示例,实施例可进一步包括:监测多租户etl系统的总工作量以检测总工作量的变化;以及响应于总工作量的所检测的变化来修改延迟系数。
31.确定多租户etl系统的总工作量可包括测量以下中的至少一个:针对多租户etl系统的所有租户的排队的工作的总量;以及多租户etl系统中当前延迟的值。
32.而且,确定与租户相关联的排队的工作量可以包括测量以下中的至少一个:针对租户运行的进程的数量;针对租户排队的工作量;针对租户的活动的工作的并发流的数量;以及针对租户当前注册的处理请求的数量。
33.实施例可结合现有etl系统来实施。以此方式,可通过并入所提出的实施例来改进多租户etl系统的功能和/或实用性。
34.图1描绘了其中可以实施说明性实施例的方面的示例性分布式系统的图形表示。分布式系统100可包括其中可实现说明性实施例的方面的计算机网络。分布式系统100包括至少一个网络102,网络102是用于在分布式数据处理系统100内连接在一起的各种设备和计算机之间提供通信链接的介质。网络102可以包括诸如有线、无线通信链接或光纤电缆的连接。
35.在所描绘的示例中,第一服务器104和第二服务器106与存储单元108一起被连接到网络102。此外,客户端110、112和114也连接到网络102。客户端110、112和114可以是边缘设备,例如个人计算机、网络计算机、iot设备等。在所描绘的示例中,第一服务器104向客户端110、112和114提供诸如引导文件、操作系统映像和应用的数据。在所描绘的示例中,客户端110、112和114是第一服务器104的客户端。分布式处理系统100可包括额外的服务器、客户端和未示出的其他设备。
36.在所描绘的示例中,分布式系统100可以是互联网,其中网络102表示使用传输控制协议/互联网协议(tcp/ip)协议组来彼此通信的网络和网关的全球集合。互联网的核心是主节点或主计算机之间的高速数据通信线路的主干,包括数千个路由数据和消息的商业、政府、教育和其他计算机系统。当然,分布式系统100还可被实现为包括多个不同类型的网络,诸如例如内联网、局域网(lan)、广域网(wan)等。如上所述,图1旨在作为示例,而不是
作为对本发明的不同实施例的架构限制,并且因此,图1中所示的特定元件不应当被认为是关于其中可以实现本发明的说明性实施例的环境的限制。
37.本领域普通技术人员将理解,图1中的架构和/或硬件可以取决于实现方式而变化。此外,说明性实施例的过程可以应用于多处理器数据处理系统,而不脱离本发明的范围。
38.如上所述,所提出的实施例提供了一种用于共享多租户etl系统的处理资源的方法和系统。通过进一步解释,现在将相对于包括迎合多个租户的etl系统的分布式通信系统来描述所提议的实施例。
39.参见图2,描绘了根据实施例的分布式通信系统的示意图。分布式通信系统包括etl系统300、会话存储器395以及用于共享etl系统300的处理资源的系统305。这里,值得注意的是,etl系统300包括对etl批的处理有贡献的不同组件,etl批可包括非常大量的数据(例如,数百万记录)。这些组件可包括控制器系统(例如,批控制器)、控制器从其提取数据的系统、saas应用或企业系统、以及处理所提取的记录的处理引擎。任何或所有这些组件可以潜在地经由通信网络310(例如,互联网)与其他外部系统交互。
40.etl系统300可由多个租户320经由通信网络310(例如,互联网)来访问。这里,多个租户包括第一租户至第三租户。
41.在图2的所描绘示例中,用于共享etl系统300的处理资源的系统305被示出为在etl系统300外部。然而,这仅是为了帮助说明系统305及其各个组件。因此,应当理解,实施例可以针对控制etl系统300的提取阶段,并且系统305可以因此形成etl系统300本身的一部分,因为提取过程可以是一系列拉取操作并且可以从etl系统300内发起。
42.用于共享处理资源的系统305包括被配置为确定etl系统300的总工作量的工作量组件330。在该示例中,工作量组件330被配置为测量以下中的至少一个:针对多租户etl系统300的所有租户320排队的工作的总量;以及多租户etl系统300中的当前延迟的值。该测量可表示etl系统300的总工作量。
43.用于共享处理资源的系统305还包括分析组件340。分析组件340被配置为使用多租户etl系统300来确定每个租户320的排队的工作量。更具体地,该示范性实施例的分析组件340被配置为测量以下中的至少一个:针对租户320运行的进程的数量;针对租户320排队的工作量;租户320活动的并发工作流的数量;以及当前针对租户320注册的处理请求的数量。
44.用于共享处理资源的系统305的延迟组件350被配置为基于所确定的总工作量以及与该租户320相关联的排队的工作量来延迟租户320所请求的工作向多租户etl系统300的工作量的添加。就这一点而言,应注意,该示例性实施例的系统305还包括处理器360,该处理器360被配置为对于使用多租户etl系统300的租户320基于与租户320相关联的排队的工作量来计算相关联的延迟系数。该示例性实施例的延迟组件350随后可基于与租户320相关联的延迟系数向租户320所请求的工作引入延迟。
45.在该实施例中,并且仅仅通过示例的方式,处理器360可以被配置为:如果与租户320相关联的排队的工作量小于预定的阈值,则将延迟系数计算为等于预定的默认值。此外,处理器360可被配置为将延迟系数计算为与和租户320相关联的排队的工作量成正比。以这种方式,租户320的排队的工作量越高/越大,延迟系数越大/越大,从而根据租户320的
排队的工作量调整租户320所请求的工作的延迟的控制。
46.本实施例中的用于共享处理资源的系统305还包括监测组件370。监测组件370可被配置为监测多租户etl系统300的总工作量以检测总工作量的变化。响应于所检测的总工作量的变化,处理器360可以修改延迟系数。这样,总工作量越高/越大,延迟系数越大/越大,从而根据系统305的工作量来调整应用于工作的延迟的控制。
47.作为进一步的示例,我们现在可以考虑另一个示例性实施例。
48.如上所述,etl系统300可包括有助于处理etl批的不同组件。这些组件包括控制器系统(例如,批量控制器)、控制器从其提取数据的系统、saas应用或企业系统、以及处理所提取的记录的处理引擎。这些部件中的任一个或全部可以潜在地与其他外部系统交互。
49.etl系统的组件可使用高吞吐量、低等待时间消息传送系统(诸如kafka)在它们之间通信和传递数据。作为示例,kafka定义具有消息的多个分区、生产者和消费者组的主题。
50.重要的考虑是消费者滞后。这是写入多少消息和读取多少消息之间的差。消费者滞后因此可被用作消息的消费者群组与消息的生产者相比相差多远的度量。例如,大/高消费者迟滞值意味着新etl批的所提取的数据将花费很长时间来处理并且系统将对一些租户320表现为无响应的。
51.为了简洁,可假设所有租户320都在一个类别中(例如,以相同费率付费用户)。如果存在若干类别,则可以认为所提议的概念在单个类别的边界内应用,并且然后单独地应用于其他类别。
52.控制器系统(例如,批控制器)收集大量etl批,并且然后由通过消息传送系统(例如,kafka)接收工作的其他处理组件(例如,流引擎)来处理大量etl批。每一etl批可通过提取请求链来提取记录的有序列表(例如,页)。
53.所提出的实施例可以使用会话存储设备395和像kafka的消息传送系统的组合来实现以确保租户320具有总体系统资源的公平共享并且租户有机会看到他们的工作进程的方式将工作(例如,etl批)分发到外部系统(saas或企业应用)的策略。
54.举例来讲,当控制器系统获得etl批时,它将没有任何延迟地将链中的第一请求(例如,页)发布到队列上以确保所有工作项被启动。其还将在会话存储395中注册etl批。然后监测处理队列的消费者滞后,并且当处理队列的消费者滞后超过阈值时,系统可以从链的第二请求向前注入延迟(例如,设置起搏)。
55.实施例可以采用以下信息来确定特定租户320的下一请求应当被延迟多久:消息传送系统的队列的总深度(即,系统中的总工作);在会话存储395中当前注册多少etl批(即,并发etl批);以及整体延迟系数的预先配置的初始值。基于该信息,实施例可以计算特定于租户320并控制引入延迟(如果有的话)的延迟系数。
56.在延迟之后,随后的提取请求将被放入队列中,并且将利用其在链中的新位置来更新会话存储器395中的注册信息。
57.现在参见图3,现在将描述根据实施例的方法。具体地,图3示出根据所提出的实施例的用于共享etl系统300的资源的方法的流程图。
58.首先,利用初始值设置全局延迟系数。
59.当接收到新的提取页请求(例如,处理链中的下一请求)400时,该方法开始并且前进至步骤410。在步骤410中,确定是否需要发送所提取的数据的新页。如果否,该方法简单
地继续进行到步骤415结束。相反,如果在步骤410中确定需要将所提取的数据的新页发送至处理引擎,则该方法进行至步骤420,其中,重新计算并更新全局延迟系数。此处,这包括计算来自处理队列的当前滞后并且将其与(从会话存储器395取得的)旧滞后进行比较以增加或减小全局系数。
60.基于被更新的全局延迟系数,在步骤430中计算当前租户320的延迟系数。此处,这包括从会话存储395收集针对当前租户320运行的etl批的数量,并随后通过将全局延迟系数乘以当前租户320所拥有的etl批的数量来计算要用于当前租户320的延迟系数,即,租户延迟系数=全局系数*租户所拥有的etl批的数量。
61.接下来,在步骤440中,引入延迟或等待。这里,通过将滞后乘以租户延迟系数来确定延迟或等待。换言之,延迟或等待可表示为等待=(滞后*租户延迟系数)。
62.在延迟/等待确定的时间量之后,控制器系统在步骤450中发送新的提取请求并且该方法然后返回步骤400。
63.由此,将理解,租户320开始的etl批数越多,系数就越大并且延迟/等待就越大。
64.实施例可包括计算机系统70,计算机系统70可形成图4所示的联网系统7的一部分。例如,根据实施例的被配置为延迟向多租户etl系统300的工作量添加由租户320所请求的工作的延迟组件可在计算机系统70(例如,处理单元71)中实现。计算机系统/服务器70的组件可以包括但不限于一个或多个处理布置,例如包括处理器或处理单元71、系统存储器74和将不同系统组件(包括系统存储器74)耦合到处理单元71的总线90。
65.系统存储器74可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(ram)75和/或高速缓存存储器76。计算机系统/服务器70还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。在这样的情况下,每一个可以通过一个或多个数据介质接口连接到总线90。存储器74可以包括至少一个程序产品,该程序产品具有被配置为执行所提出的实施例的功能的一组(例如,至少一个)程序模块。例如,存储器74可包括计算机程序产品,该计算机程序产品具有可由处理单元71执行以使得输入/输出(i/o)接口72执行根据提议实施例的用于共享多租户etl系统300的处理资源的方法的程序。具有一组(至少一个)程序模块79的程序/实用程序78可以存储在存储器74中。程序模块79通常执行所提议实施例的用于共享多租户etl系统300的处理资源的功能和/或方法。
66.计算机系统/服务器70还可以与一个或多个外部设备80(例如键盘、指向设备、显示器85等);使用户能够与计算系统/服务器70交互的一个或多个设备;和/或使计算机系统/服务器70能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)通信。这种通信可经由输入/输出(i/o)接口72发生。此外,计算机系统/服务器70可经由网络适配器73与诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,互联网)的一个或多个网络通信(例如,以将所确定的开发规则传达给分布式网络的设备)。
67.在本技术的上下文中,当本发明的实施例构成方法时,可理解的是,该方法是用于由计算机执行的过程,即,是计算机可实现的方法。因此,该方法的步骤反映计算机程序的各个部分,例如,一个或多个算法的部分。
68.本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
69.计算机可读存储介质可以是可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体的示例的非穷尽列表包括以下:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom),可擦可编程只读存储器(eprom或闪存)、存储级内存(scm)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom),数字通用盘(dvd)、记忆棒、软盘、具有记录在其上的指令的诸如穿孔卡或凹槽中的凸出结构的机械编码设备、以及上述的任何合适的组合。如本文所使用的计算机可读存储媒体不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
70.本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
71.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如smalltalk、python、c 等)、以及常规的过程式程序设计语言(诸如“c”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。
72.在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
73.下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。可理解,流程图和/或框图的每个框图以及流程图和/或框图中各方框的组合可以由计算机可读程序指令实现。这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以将这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制品。
74.也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机
实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
75.附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些可替换实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
76.已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的或者限于所公开的实施方式。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解本文公开的实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献