CN111209084B - 一种faas分布式计算方法和装置 - Google Patents
一种faas分布式计算方法和装置 Download PDFInfo
- Publication number
- CN111209084B CN111209084B CN202010029037.2A CN202010029037A CN111209084B CN 111209084 B CN111209084 B CN 111209084B CN 202010029037 A CN202010029037 A CN 202010029037A CN 111209084 B CN111209084 B CN 111209084B
- Authority
- CN
- China
- Prior art keywords
- response
- methods
- container
- group
- data
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 24
- 238000000705 flame atomic absorption spectrometry Methods 0.000 title abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 431
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000012544 monitoring process Methods 0.000 claims abstract description 36
- 230000008569 process Effects 0.000 claims abstract description 27
- 230000004044 response Effects 0.000 claims description 88
- 230000008859 change Effects 0.000 claims description 9
- 238000011068 loading method Methods 0.000 abstract 1
- 238000003672 processing method Methods 0.000 description 7
- 238000011084 recovery Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011550 data transformation method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/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
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- 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/5017—Task decomposition
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种FAAS分布式计算方法和装置,方法包括:将计算任务拆解为具有关联性和执行顺序的多个环节,并分别构建多个镜像和多个方法组;在进程中创建多个容器并分配硬件资源,同时将被创建的多个容器作为多个方法加入与特定环节对应的方法组中;将数据处理结果根据所在方法组的动态指针传递到与下一个环节对应的方法组,同时将产生的中间结果存储到分布式内存文件系统;实时修改多个方法组的动态指针以动态调整多个环节的关联性和执行顺序;来监控多个方法组中各方法的运行状态,并重启方法的容器或加载方法的最近容器快照和为方法组扩容或缩容。本发明能够体现出极强的伸缩性和灵活性。
Description
技术领域
本发明涉及分布式计算领域,更具体地,特别是指一种FAAS分布式计算方法和装置。
背景技术
传统的内存计算系统一旦作业提交之后,数据的流向图和其中的变换过程会被固定,无法实时更改。而这对于当前的业务需要而言十分不便,架构笨重并且难以调整。
针对现有技术中内存计算架构笨重并且难以调整的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种FAAS分布式计算方法和装置,能够缩小监控故障和恢复的尺度,动态调整数据流向,体现出极强的伸缩性和灵活性。
基于上述目的,本发明实施例的第一方面提供了一种FAAS分布式计算方法,包括执行以下步骤:
将计算任务拆解为具有关联性和执行顺序的多个环节,并分别构建与多个环节一一对应的多个镜像和多个方法组;
响应于需要执行特定环节,而根据与特定环节对应的镜像在进程中创建多个容器并分配硬件资源,同时将被创建的多个容器加入与特定环节对应的方法组中;
响应于方法完成特定环节的数据处理,而将数据处理结果根据所在方法组的动态指针传递到与下一个环节对应的方法组并使其执行下一个环节,同时将产生的中间结果存储到分布式内存文件系统供其它方法读取;
响应于计算任务发生变化而实时修改多个方法组的动态指针以动态调整多个环节的关联性和执行顺序;
使用容器编排工具来监控多个方法组中各方法的运行状态,并响应于存在方法运行出错或失去响应而重启方法的容器或加载方法的最近容器快照;
使用容器编排工具来监控多个方法组中各方法的资源占用情况,并响应于有方法组中的方法平均占用资源过高或过低而为方法组扩容或缩容。
在一些实施方式中,还包括:响应于方法组接收到数据处理任务而以负载均衡的方式轮询方法组中的方法执行所属任务、或将数据的摘要信息相同的数据处理任务分配到同一方法中;多个方法所占用的硬件资源分别由设置在分布式系统中的不同硬件设备提供。
在一些实施方式中,容器编排工具配置为在每个方法生成时均生成一个对应的监控模块,并通过监控模块来监控方法是否运行出错、容器是否失去响应、和资源占用情况;容器编排工具还配置为在每个方法关闭时均销毁其对应的监控模块。
在一些实施方式中,数据处理包括数据批量处理和数据流处理;
方法还包括:响应于方法组完成与数据批量处理的特定环节的任务,而直接关闭方法组所有方法的容器;响应于方法组持续处理数据流处理的特定环节的任务,而根据资源占用情况来在方法组中选择性地动态开启新方法的容器或关闭已有方法的容器。
在一些实施方式中,方法包括有状态方法和无状态方法;响应于无状态方法运行出错或失去响应而重启方法的容器,并且响应于有状态方法运行出错或失去响应而加载方法的最近容器快照。
本发明实施例的第二方面提供了一种FAAS分布式计算装置,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时依次执行以下步骤:
将计算任务拆解为具有关联性和执行顺序的多个环节,并分别构建与多个环节一一对应的多个镜像和多个方法组;
响应于需要执行特定环节,而根据与特定环节对应的镜像在进程中创建多个容器并分配硬件资源,同时将被创建的多个容器加入与特定环节对应的方法组中;
响应于方法完成特定环节的数据处理,而将数据处理结果根据所在方法组的动态指针传递到与下一个环节对应的方法组并使其执行下一个环节,同时将产生的中间结果存储到分布式内存文件系统供其它方法读取;
响应于计算任务发生变化而实时修改多个方法组的动态指针以动态调整多个环节的关联性和执行顺序;
使用容器编排工具来监控多个方法组中各方法的运行状态,并响应于存在方法运行出错或失去响应而重启方法的容器或加载方法的最近容器快照;
使用容器编排工具来监控多个方法组中各方法的资源占用情况,并响应于有方法组中的方法平均占用资源过高或过低而为方法组扩容或缩容。
在一些实施方式中,步骤还包括:响应于方法组接收到数据处理任务而以负载均衡的方式轮询方法组中的方法执行所属任务、或将数据的摘要信息相同的数据处理任务分配到同一方法中;多个方法所占用的硬件资源分别由设置在分布式系统中的不同硬件设备提供。
在一些实施方式中,容器编排工具配置为在每个方法生成时均生成一个对应的监控模块,并通过监控模块来监控方法是否运行出错、容器是否失去响应、和资源占用情况;容器编排工具还配置为在每个方法关闭时均销毁其对应的监控模块。
在一些实施方式中,数据处理包括数据批量处理和数据流处理;
步骤还包括:响应于方法组完成与数据批量处理的特定环节的任务,而直接关闭方法组所有方法的容器;响应于方法组持续处理数据流处理的特定环节的任务,而根据资源占用情况来在方法组中选择性地动态开启新方法的容器或关闭已有方法的容器。
在一些实施方式中,方法包括有状态方法和无状态方法;
步骤还包括:响应于无状态方法运行出错或失去响应而重启方法的容器,并且响应于有状态方法运行出错或失去响应而加载方法的最近容器快照。
本发明具有以下有益技术效果:本发明实施例提供的FAAS分布式计算方法和装置,通过将计算任务拆解为具有关联性和执行顺序的多个环节,并分别构建与多个环节一一对应的多个镜像和多个方法组;响应于需要执行特定环节,而根据与特定环节对应的镜像在进程中创建多个容器并分配硬件资源,同时将被创建的多个容器加入与特定环节对应的方法组中;响应于方法完成特定环节的数据处理,而将数据处理结果根据所在方法组的动态指针传递到与下一个环节对应的方法组并使其执行下一个环节,同时将产生的中间结果存储到分布式内存文件系统供其它方法读取;响应于计算任务发生变化而实时修改多个方法组的动态指针以动态调整多个环节的关联性和执行顺序;使用容器编排工具来监控多个方法组中各方法的运行状态,并响应于存在方法运行出错或失去响应而重启方法的容器或加载方法的最近容器快照;使用容器编排工具来监控多个方法组中各方法的资源占用情况,并响应于有方法组中的方法平均占用资源过高或过低而为方法组扩容或缩容的技术方案,能够缩小监控故障和恢复的尺度,动态调整数据流向,体现出极强的伸缩性和灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的FAAS分布式计算方法的流程示意图;
图2为本发明提供的FAAS分布式计算方法的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种能够缩小监控故障和恢复的尺度,动态调整数据流向,体现出极强的伸缩性和灵活性的FAAS分布式计算方法的一个实施例。图1示出的是本发明提供的FAAS分布式计算方法的流程示意图。
所述FAAS分布式计算方法,如图1所示,包括执行以下步骤:
步骤S101:将计算任务拆解为具有关联性和执行顺序的多个环节,并分别构建与多个环节一一对应的多个镜像和多个方法组;
步骤S103:响应于需要执行特定环节,而根据与特定环节对应的镜像在进程中创建多个容器并分配硬件资源,同时将被创建的多个容器作为多个方法加入与特定环节对应的方法组中;
步骤S105:响应于方法完成特定环节的数据处理,而将数据处理结果根据所在方法组的动态指针传递到与下一个环节对应的方法组并使其执行下一个环节,同时将产生的中间结果存储到分布式内存文件系统供其它方法读取;
步骤S107:响应于计算任务发生变化而实时修改多个方法组的动态指针以动态调整多个环节的关联性和执行顺序;
步骤S109:使用容器编排工具来监控多个方法组中各方法的运行状态,并响应于存在方法运行出错或失去响应而重启方法的容器或加载方法的最近容器快照;
步骤S111:使用容器编排工具来监控多个方法组中各方法的资源占用情况,并响应于有方法组中的方法平均占用资源过高或过低而为方法组扩容或缩容。
本发明使用FAAS(方法作为服务)的思想,将传统内存计算数据流向图的各个变换环节解耦为多个变换方法。这些方法位于不同的进程中运行,统一使用容器化技术(Docker)部署。多个相同方法运行实例构成一个方法组,对应数据流向图中的一个处理环节,每个方法组都保存了指向下游方法组的指针,基于这种结构,数据的流向可以被确定。因为指针可以根据业务需要动态修改,所以说这种流向图是可以实时修改的。同一方法组中的方法可以部署一个或多个。通过增减组中的方法数可以实现动态调整流向图中特定环节的计算能力和吞吐量。这些方法容器使用容器编排工具Kubernetes来统一管理。Kubernetes负责维护集群中各个方法容器的数量和监控健康状态。
本发明中的监控系统实时监测流向图各个环节的数据处理压力,如果出现部分环节压力过大的情况,会自动进行扩容操作。相反,如果系统检测到部分方法大量时间空闲,会将它们停止,释放出占用的资源。不少计算环节会产生中间计算结果。这些中间结果使用分布式内存文件系统存放。相比基于磁盘的分布式文件系统来说,基于内存的文件系统可以实现更为快速的数据交换。需要全局广播的数据,使用分布式内存数据库存放。因为全局广播数据的特点为数据量小,写入环节少但是读取环节多,放入内存数据库可以极大的提高检索速度。本发明还使用容器快照技术周期性保存容器的检查点。一旦出现崩溃,可以立即终止进程并使用之前的快照重新的启动恢复运行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,还包括:响应于方法组接收到数据处理任务而以负载均衡的方式轮询方法组中的方法执行所属任务、或将数据的摘要信息相同的数据处理任务分配到同一方法中;多个方法所占用的硬件资源分别由设置在分布式系统中的不同硬件设备提供。
在一些实施方式中,容器编排工具配置为在每个方法生成时均生成一个对应的监控模块,并通过监控模块来监控方法是否运行出错、容器是否失去响应、和资源占用情况;容器编排工具还配置为在每个方法关闭时均销毁其对应的监控模块。
在一些实施方式中,数据处理包括数据批量处理和数据流处理;方法还包括:响应于方法组完成与数据批量处理的特定环节的任务,而直接关闭方法组所有方法的容器;响应于方法组持续处理数据流处理的特定环节的任务,而根据资源占用情况来在方法组中选择性地动态开启新方法的容器或关闭已有方法的容器。
在一些实施方式中,方法包括有状态方法和无状态方法;响应于无状态方法运行出错或失去响应而重启方法的容器,并且响应于有状态方法运行出错或失去响应而加载方法的最近容器快照。
根据本发明实施例公开的方法还可以被实现为由CPU(中央处理器)执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
下面根据图2所示的具体实施例进一步阐述本发明的具体实施方式。
如图2所示,数据处理流程,即多个数据处理环节以及他们之间的前后连接关系形成了数据流向。在本发明中,每一个数据处理环节为多个相同数据变换方法运行实例组成的方法组。每一个方法组中的方法均为同一个处理逻辑(同一方法)的多个运行实例。他们独立运行于不同进程。同一个方法组内的各个方法实例分散在集群的各个节点中,可以充分利用集群各个节点的资源,且组内多个方法可以实现负载均衡和高可用。这些方法运行在容器化环境。使用容器编排工具Kubernetes对方法容器的健康(是否出现故障崩溃)和运行的实例数进行管理。方法组在Kubernetes中的概念对应为服务(Service),从而可以通过Kubernetes网络代理的方式实现这些方法的统一调用入口。
多个数据处理环节(方法组)之间需要会产生中间结果,因此系统中各个相邻方法组之间增加了中间数据存储模块。本发明的中间结果存储在分布式内存文件系统中。数据由于分布在集群各个节点中,因此可以被下游方法组中的各个方法快速获取到。对于一般方法组,在统一入口接收到数据之后,采用轮询的方式发送到组内各个方法实现负载均衡。但是对于数据分组环节方法,要求分组依据(称为数据的键)相同的数据必须到达下游方法组的同一个处理方法内。此时需要使用一致性hash算法。在数据分组环节方法组内方法实例个数发生变化的时候,键相同的数据仍会到达同一个处理方法内。
每个方法容器都附有一个监控模块(运行在同一个kubernetes的pod中),该监控模块和方法容器为一一对应关系,全程跟随方法容器的创建,销毁和迁移,自己也做出同样操。该监控模块负责如下内容:
(1)方法运行是否出错,方法容器是否存活。
(2)方法运行时的资源占用情况,包括CPU,内存和网络的占用情况。
其中(1)指标用于系统的故障恢复,(2)用于系统的动态扩容/缩容以及针对不同数据处理场景的优化。
首先对于数据批量处理,数据是集中在一起,从数据流向上游流向下游。系统会尽可能在每个方法组中运行更多方法实例,提高系统的并行度和吞吐量(不会运行过多导致每个方法容器的资源占用过小,造成资源浪费)。除此之外,数据计算进行到图中某个处理环节,其对应环节的方法组(包含的所有方法容器)才会被创建出来,进行本环节数据的处理工作。同时当本环节的数据处理过程结束的时候,由于这些方法在此次批量数据计算中不会被再次用到,所以这些方法容器会被销毁,释放出占用的资源。下一个环节的方法组会被创建出来,开始后续的计算流程。
假设具有两个数据源,分别使用数据加工方法组1和2进行处理,然后使用join方法组队两组数据进行join操作。最后使用数据加工方法组3队join的结果进行处理,输出结果储存到数据落地端。执行流程和方法组构建完毕之后交给系统运行。首先系统创建出数据加工方法组1和数据加工方法组2的容器(一个方法对应一个容器,那么一组方法对应一组容器)。这两组容器开始运行,分别读取并处理数据源1和数据源2的数据,同时将计算结果存储到前文所述的分布式内存文件系统中。等到方法组1和方法组2执行完毕之后,这两个方法组对应的所有容器会被销毁,Join方法组的容器启动,读取上一步骤的中间结果开始进行join操作。同理,join操作结束之后,它对应的容器也会被销毁,系统创建出数据加工方法组3的容器,并开始执行。最后方法组3容器被销毁。数据最终存入落地端。批处理执行过程结束。
其次对于数据流的处理,由于数据是源源不断从数据源进入系统。在同一时刻数据流向图的每个节环节都有数据在处理,所以无法采用批量处理的这种销毁已处理环节的优化方式。需要根据数据流的特点,动态进行各个环节吞吐量的调整。对于不同的业务,或者同一业务在不同的时间段,数据流量是不同的。在本系统各个方法中均有监控模块,能够根据数据处理负载,动态创建和销毁各个方法组中的方法容器,做到实时以最小资源消耗来满足业务处理的需求。从上面的描述可以总结出,数据流处理场景下,整个数据流各个环节的方法组是必须同时运行的(各个环节的方法组对应的容器在数据流处理任务提交时都会创建出来)。数据流处理的优化主要体现在方法组的扩容和缩容(动态增加和减少方法组内方法运行的数量)。
例如方法组内启动的3个方法运行实例。加入某一时刻,流入该方法组的数据量过大,导致每个方法的资源占用率过高。监控系统及时发现后会陆续启动更多的方法容器,让新的方法分担运算任务,直到各个方法容器的资源占用降低到正常范围内。例如系统多创建了两个方法容器,此时一共有5个方法在运行。同理,如果某一时段数据流入量比较小,导致方法组内的各个方法负载很低,监控到这一状况后系统会停止掉方法组内部分方法容器,减少同时运行的方法个数。直到剩余运行中的方法容器的资源占用提高到正常范围。最后需要说明,这种方法组的扩容和缩容的优化方式不仅仅在数据流处理场景下启用。第一部分数据批量处理的场景下,如果某方法组中各个方法容器的负载过大或者过小,系统也会使用上述扩容/缩容的方法调整方法组内的方法数到适应业务数据量的合理范围。
另外本系统的方法分为两种,有状态和无状态方法。有些方法的计算逻辑和先前到来的数据没有关系,例如map操作。这种方法无需保存运行状态,如果运行中出现错误,只需重启方法容器即可。
还有一种有状态的方法,例如数据源方法,需要存储读取到了第几条数据(偏移量)。或者说计算逻辑对前后处理的数据有以来的方法,例如统计已处理的数据条数的方法。这些都是有状态的方法。有状态的方法需要使用容器快照,定期将运行状态保存,如果遇到故障,可以从上一个保存的快照恢复运行。故障的检测方法通过使用Kubernetes的liveness probe(存活探针)功能。这个探针定期在方法容器内运行命令,检测方法进程是否异常。同时也对容器内部的指定端口(数据流入监听端口)是否开放进行检查。通过这两种方式,能够第一时间发现方法容器运行时的异常,及时采取恢复措施。
从上述实施例可以看出,本发明实施例提供的FAAS分布式计算方法,通过将计算任务拆解为具有关联性和执行顺序的多个环节,并分别构建与多个环节一一对应的多个镜像和多个方法组;响应于需要执行特定环节,而根据与特定环节对应的镜像在进程中创建多个容器并分配硬件资源,同时将被创建的多个容器作为多个方法加入与特定环节对应的方法组中;响应于方法完成特定环节的数据处理,而将数据处理结果根据所在方法组的动态指针传递到与下一个环节对应的方法组并使其执行下一个环节,同时将产生的中间结果存储到分布式内存文件系统供其它方法读取;响应于计算任务发生变化而实时修改多个方法组的动态指针以动态调整多个环节的关联性和执行顺序;使用容器编排工具来监控多个方法组中各方法的运行状态,并响应于存在方法运行出错或失去响应而重启方法的容器或加载方法的最近容器快照;使用容器编排工具来监控多个方法组中各方法的资源占用情况,并响应于有方法组中的方法平均占用资源过高或过低而为方法组扩容或缩容的技术方案,能够缩小监控故障和恢复的尺度,动态调整数据流向,体现出极强的伸缩性和灵活性。
需要特别指出的是,上述FAAS分布式计算方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于FAAS分布式计算方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种能够缩小监控故障和恢复的尺度,动态调整数据流向,体现出极强的伸缩性和灵活性的FAAS分布式计算装置的一个实施例。FAAS分布式计算装置包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时依次执行以下步骤:
将计算任务拆解为具有关联性和执行顺序的多个环节,并分别构建与多个环节一一对应的多个镜像和多个方法组;
响应于需要执行特定环节,而根据与特定环节对应的镜像在进程中创建多个容器并分配硬件资源,同时将被创建的多个容器作为多个方法加入与特定环节对应的方法组中;
响应于方法完成特定环节的数据处理,而将数据处理结果根据所在方法组的动态指针传递到与下一个环节对应的方法组并使其执行下一个环节,同时将产生的中间结果存储到分布式内存文件系统供其它方法读取;
响应于计算任务发生变化而实时修改多个方法组的动态指针以动态调整多个环节的关联性和执行顺序;
使用容器编排工具来监控多个方法组中各方法的运行状态,并响应于存在方法运行出错或失去响应而重启方法的容器或加载方法的最近容器快照;
使用容器编排工具来监控多个方法组中各方法的资源占用情况,并响应于有方法组中的方法平均占用资源过高或过低而为方法组扩容或缩容。
在一些实施方式中,步骤还包括:响应于方法组接收到数据处理任务而以负载均衡的方式轮询方法组中的方法执行所属任务、或将数据的摘要信息相同的数据处理任务分配到同一方法中;多个方法所占用的硬件资源分别由设置在分布式系统中的不同硬件设备提供。
在一些实施方式中,容器编排工具配置为在每个方法生成时均生成一个对应的监控模块,并通过监控模块来监控方法是否运行出错、容器是否失去响应、和资源占用情况;容器编排工具还配置为在每个方法关闭时均销毁其对应的监控模块。
在一些实施方式中,数据处理包括数据批量处理和数据流处理;步骤还包括:响应于方法组完成与数据批量处理的特定环节的任务,而直接关闭方法组所有方法的容器;响应于方法组持续处理数据流处理的特定环节的任务,而根据资源占用情况来在方法组中选择性地动态开启新方法的容器或关闭已有方法的容器。
在一些实施方式中,方法包括有状态方法和无状态方法;步骤还包括:响应于无状态方法运行出错或失去响应而重启方法的容器,并且响应于有状态方法运行出错或失去响应而加载方法的最近容器快照。
从上述实施例可以看出,本发明实施例提供的FAAS分布式计算装置,通过将计算任务拆解为具有关联性和执行顺序的多个环节,并分别构建与多个环节一一对应的多个镜像和多个方法组;响应于需要执行特定环节,而根据与特定环节对应的镜像在进程中创建多个容器并分配硬件资源,同时将被创建的多个容器作为多个方法加入与特定环节对应的方法组中;响应于方法完成特定环节的数据处理,而将数据处理结果根据所在方法组的动态指针传递到与下一个环节对应的方法组并使其执行下一个环节,同时将产生的中间结果存储到分布式内存文件系统供其它方法读取;响应于计算任务发生变化而实时修改多个方法组的动态指针以动态调整多个环节的关联性和执行顺序;使用容器编排工具来监控多个方法组中各方法的运行状态,并响应于存在方法运行出错或失去响应而重启方法的容器或加载方法的最近容器快照;使用容器编排工具来监控多个方法组中各方法的资源占用情况,并响应于有方法组中的方法平均占用资源过高或过低而为方法组扩容或缩容的技术方案,能够缩小监控故障和恢复的尺度,动态调整数据流向,体现出极强的伸缩性和灵活性。
需要特别指出的是,上述FAAS分布式计算装置的实施例采用了所述FAAS分布式计算方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述FAAS分布式计算方法的其他实施例中。当然,由于所述FAAS分布式计算方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述FAAS分布式计算装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种FAAS分布式计算方法,其特征在于,包括执行以下步骤:
将计算任务拆解为具有关联性和执行顺序的多个环节,并分别构建与所述多个环节一一对应的多个镜像和多个方法组;
响应于需要执行指定环节,而根据与所述指定环节对应的镜像在进程中创建多个容器并分配硬件资源,同时将被创建的所述多个容器中的多个方法加入与所述指定环节对应的方法组中;
响应于方法完成指定环节的数据处理,而将数据处理结果根据所在方法组的动态指针传递到与下一个环节对应的方法组并使其执行下一个环节,同时将产生的中间结果存储到分布式内存文件系统供其它方法读取;
响应于计算任务发生变化而实时修改所述多个方法组的所述动态指针以动态调整所述多个环节的关联性和执行顺序;
使用容器编排工具来监控所述多个方法组中各方法的运行状态,并响应于存在方法运行出错或失去响应而重启所述方法的容器或加载所述方法的最新容器快照;
使用所述容器编排工具来监控所述多个方法组中各方法的资源占用情况,并响应于有方法组中的方法平均占用资源过高或过低而为所述方法组扩容或缩容;
其中,每一个方法组中的多个方法均为同一个处理逻辑的多个运行实例。
2.根据权利要求1所述的方法,其特征在于,还包括:响应于所述方法组接收到数据处理任务而以负载均衡的方式轮询所述方法组中的方法执行所属任务、或将数据的摘要信息相同的数据处理任务分配到同一方法中;
所述多个方法所占用的硬件资源分别由设置在分布式系统中的不同硬件设备提供。
3.根据权利要求1所述的方法,其特征在于,所述容器编排工具配置为在每个所述方法生成时均生成一个对应的监控模块,并通过所述监控模块来监控所述方法是否运行出错、容器是否失去响应、和资源占用情况;所述容器编排工具还配置为在每个所述方法关闭时均销毁其对应的所述监控模块。
4.根据权利要求1所述的方法,其特征在于,所述数据处理包括数据批量处理和数据流处理;
所述方法还包括:响应于所述方法组完成与所述数据批量处理的指定环节的任务,而直接关闭所述方法组所有方法的容器;响应于所述方法组持续处理所述数据流处理的指定环节的任务,而根据所述资源占用情况来在所述方法组中选择性地动态开启新方法的容器或关闭已有方法的容器。
5.根据权利要求1所述的方法,其特征在于,所述方法包括有状态方法和无状态方法;响应于无状态方法运行出错或失去响应而重启所述方法的容器,并且响应于有状态方法运行出错或失去响应而加载所述方法的最新容器快照。
6.一种FAAS分布式计算装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时依次执行以下步骤:
将计算任务拆解为具有关联性和执行顺序的多个环节,并分别构建与所述多个环节一一对应的多个镜像和多个方法组;
响应于需要执行指定环节,而根据与所述指定环节对应的镜像在进程中创建多个容器并分配硬件资源,同时将被创建的所述多个容器中的多个方法加入与所述指定环节对应的方法组中;
响应于方法完成指定环节的数据处理,而将数据处理结果根据所在方法组的动态指针传递到与下一个环节对应的方法组并使其执行下一个环节,同时将产生的中间结果存储到分布式内存文件系统供其它方法读取;
响应于计算任务发生变化而实时修改所述多个方法组的所述动态指针以动态调整所述多个环节的关联性和执行顺序;
使用容器编排工具来监控所述多个方法组中各方法的运行状态,并响应于存在方法运行出错或失去响应而重启所述方法的容器或加载所述方法的最新容器快照;
使用所述容器编排工具来监控所述多个方法组中各方法的资源占用情况,并响应于有方法组中的方法平均占用资源过高或过低而为所述方法组扩容或缩容;
其中,每一个方法组中的多个方法均为同一个处理逻辑的多个运行实例。
7.根据权利要求6所述的装置,其特征在于,所述步骤还包括:响应于所述方法组接收到数据处理任务而以负载均衡的方式轮询所述方法组中的方法执行所属任务、或将数据的摘要信息相同的数据处理任务分配到同一方法中;所述多个方法所占用的硬件资源分别由设置在分布式系统中的不同硬件设备提供。
8.根据权利要求6所述的装置,其特征在于,所述容器编排工具配置为在每个所述方法生成时均生成一个对应的监控模块,并通过所述监控模块来监控所述方法是否运行出错、容器是否失去响应、和资源占用情况;所述容器编排工具还配置为在每个所述方法关闭时均销毁其对应的所述监控模块。
9.根据权利要求6所述的装置,其特征在于,所述数据处理包括数据批量处理和数据流处理;
所述步骤还包括:响应于所述方法组完成与所述数据批量处理的指定环节的任务,而直接关闭所述方法组所有方法的容器;响应于所述方法组持续处理所述数据流处理的指定环节的任务,而根据所述资源占用情况来在所述方法组中选择性地动态开启新方法的容器或关闭已有方法的容器。
10.根据权利要求6所述的装置,其特征在于,所述方法包括有状态方法和无状态方法;
所述步骤还包括:响应于无状态方法运行出错或失去响应而重启所述方法的容器,并且响应于有状态方法运行出错或失去响应而加载所述方法的最新容器快照。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010029037.2A CN111209084B (zh) | 2020-01-12 | 2020-01-12 | 一种faas分布式计算方法和装置 |
PCT/CN2020/111394 WO2021139174A1 (zh) | 2020-01-12 | 2020-08-26 | 一种faas分布式计算方法和装置 |
US17/792,252 US11748164B2 (en) | 2020-01-12 | 2020-08-26 | FAAS distributed computing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010029037.2A CN111209084B (zh) | 2020-01-12 | 2020-01-12 | 一种faas分布式计算方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111209084A CN111209084A (zh) | 2020-05-29 |
CN111209084B true CN111209084B (zh) | 2022-11-15 |
Family
ID=70787832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010029037.2A Active CN111209084B (zh) | 2020-01-12 | 2020-01-12 | 一种faas分布式计算方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11748164B2 (zh) |
CN (1) | CN111209084B (zh) |
WO (1) | WO2021139174A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12106085B2 (en) * | 2019-12-19 | 2024-10-01 | Koninklijke Philips N.V. | Dynamic personalized platform generation based on on-the-fly requirements |
CN111209084B (zh) * | 2020-01-12 | 2022-11-15 | 苏州浪潮智能科技有限公司 | 一种faas分布式计算方法和装置 |
US11995473B2 (en) | 2021-07-28 | 2024-05-28 | International Business Machines Corporation | System and apparatus for FaaS business goals optimization |
CN115086189B (zh) * | 2022-05-20 | 2023-11-07 | 中国科学院软件研究所 | 一种面向无服务器计算的服务资源弹性伸缩方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550130A (zh) * | 2015-12-14 | 2016-05-04 | 中电科华云信息技术有限公司 | 基于容器的应用环境动态编排的方法及其应用系统 |
CN108616398A (zh) * | 2018-05-08 | 2018-10-02 | 深圳大学 | 一种基于dns负载均衡技术的容器动态缩容方法 |
US20190220361A1 (en) * | 2018-01-12 | 2019-07-18 | Robin Systems, Inc. | Monitoring Containers In A Distributed Computing System |
CN110442446A (zh) * | 2019-06-29 | 2019-11-12 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 实时处理高速数字信号数据流的方法 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7073174B2 (en) * | 2001-06-05 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Use of job tickets to secure resource access |
US8255915B1 (en) * | 2006-10-31 | 2012-08-28 | Hewlett-Packard Development Company, L.P. | Workload management for computer system with container hierarchy and workload-group policies |
US8869164B2 (en) * | 2010-09-02 | 2014-10-21 | International Business Machines Corporation | Scheduling a parallel job in a system of virtual containers |
CN103034475B (zh) * | 2011-10-08 | 2015-11-25 | 中国移动通信集团四川有限公司 | 分布式并行计算方法、装置及系统 |
US9674249B1 (en) | 2013-03-11 | 2017-06-06 | DataTorrent, Inc. | Distributed streaming platform for real-time applications |
US9104456B2 (en) * | 2013-03-14 | 2015-08-11 | Joyent, Inc. | Zone management of compute-centric object stores |
US9860569B1 (en) * | 2015-10-05 | 2018-01-02 | Amazon Technologies, Inc. | Video file processing |
US9772878B2 (en) * | 2015-11-09 | 2017-09-26 | Unity IPR ApS | Determining a job group status based on a relationship between a generation counter value and a ticket value for scheduling the job group for execution |
US10409863B2 (en) * | 2016-02-05 | 2019-09-10 | Sas Institute Inc. | Verification and export of federated areas and job flow objects within federated areas |
US10650046B2 (en) * | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Many task computing with distributed file system |
US10572306B2 (en) * | 2016-09-14 | 2020-02-25 | Cloudera, Inc. | Utilization-aware resource scheduling in a distributed computing cluster |
US10572226B2 (en) * | 2016-12-21 | 2020-02-25 | Aon Global Operations Ltd (Singapore Branch) | Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment |
US11023215B2 (en) * | 2016-12-21 | 2021-06-01 | Aon Global Operations Se, Singapore Branch | Methods, systems, and portal for accelerating aspects of data analytics application development and deployment |
US10387199B2 (en) * | 2017-03-31 | 2019-08-20 | International Business Machines Corporation | Container chaining for automated process completion |
US10705868B2 (en) | 2017-08-07 | 2020-07-07 | Modelop, Inc. | Dynamically configurable microservice model for data analysis using sensors |
US10877798B2 (en) * | 2017-08-31 | 2020-12-29 | Netflix, Inc. | Scalable techniques for executing custom algorithms on media items |
US11030016B2 (en) * | 2017-12-07 | 2021-06-08 | International Business Machines Corporation | Computer server application execution scheduling latency reduction |
US11010185B2 (en) * | 2018-01-30 | 2021-05-18 | Vmware, Inc. | Monitoring applications running on containers |
US11106492B2 (en) * | 2018-04-27 | 2021-08-31 | EMC IP Holding Company LLC | Workflow service for a cloud foundry platform |
SG11202011209XA (en) * | 2018-05-11 | 2020-12-30 | Jpmorgan Chase Bank Na | Function as a service gateway |
US11334815B1 (en) * | 2018-09-28 | 2022-05-17 | Snap Inc. | Cloud based machine learning |
KR20210076882A (ko) * | 2018-11-08 | 2021-06-24 | 인텔 코포레이션 | 서비스형 함수(faas) 시스템 향상 |
CN110110520A (zh) | 2019-03-22 | 2019-08-09 | 珠海高凌信息科技股份有限公司 | 一种入侵容忍的云工作流实现方法及系统 |
EP3953812A1 (en) * | 2019-04-12 | 2022-02-16 | Telefonaktiebolaget LM Ericsson (publ) | Technique for determining cloud computing deployment modifications for serverless applications |
CN110502340A (zh) * | 2019-08-09 | 2019-11-26 | 广东浪潮大数据研究有限公司 | 一种资源动态调整方法、装置、设备及存储介质 |
US11341179B1 (en) * | 2019-09-30 | 2022-05-24 | Amazon Technologies, Inc. | Media authenticity analysis service |
US11392422B1 (en) * | 2019-11-27 | 2022-07-19 | Amazon Technologies, Inc. | Service-managed containers for container orchestration service |
US11132226B2 (en) * | 2020-01-03 | 2021-09-28 | International Business Machines Corporation | Parallel resource provisioning |
CN111209084B (zh) | 2020-01-12 | 2022-11-15 | 苏州浪潮智能科技有限公司 | 一种faas分布式计算方法和装置 |
US11573816B1 (en) * | 2020-06-26 | 2023-02-07 | Amazon Technologies, Inc. | Prefetching and managing container images using cluster manifest |
-
2020
- 2020-01-12 CN CN202010029037.2A patent/CN111209084B/zh active Active
- 2020-08-26 WO PCT/CN2020/111394 patent/WO2021139174A1/zh active Application Filing
- 2020-08-26 US US17/792,252 patent/US11748164B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550130A (zh) * | 2015-12-14 | 2016-05-04 | 中电科华云信息技术有限公司 | 基于容器的应用环境动态编排的方法及其应用系统 |
US20190220361A1 (en) * | 2018-01-12 | 2019-07-18 | Robin Systems, Inc. | Monitoring Containers In A Distributed Computing System |
CN108616398A (zh) * | 2018-05-08 | 2018-10-02 | 深圳大学 | 一种基于dns负载均衡技术的容器动态缩容方法 |
CN110442446A (zh) * | 2019-06-29 | 2019-11-12 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 实时处理高速数字信号数据流的方法 |
Also Published As
Publication number | Publication date |
---|---|
US11748164B2 (en) | 2023-09-05 |
WO2021139174A1 (zh) | 2021-07-15 |
CN111209084A (zh) | 2020-05-29 |
US20230078739A1 (en) | 2023-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111209084B (zh) | 一种faas分布式计算方法和装置 | |
CN109347675B (zh) | 服务器配置方法、装置以及电子设备 | |
US6625639B1 (en) | Apparatus and method for processing a task in a clustered computing environment | |
JP4405511B2 (ja) | 複数のサービス・ポイントを有する自律コンピューティングにおける動的に構成可能な耐障害性 | |
CN104618153A (zh) | 分布式并行图处理中基于p2p的动态容错方法及系统 | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、系统、装置和存储介质 | |
WO2021136335A1 (zh) | 一种控制边缘节点的方法、节点及边缘计算系统 | |
US9754032B2 (en) | Distributed multi-system management | |
CN115297124B (zh) | 一种系统运维管理方法、装置及电子设备 | |
JP2009129409A (ja) | 障害回復方法、計算機、クラスタシステム、管理計算機及び障害回復プログラム | |
CN113489149B (zh) | 基于实时状态感知的电网监控系统业务主节点选取方法 | |
CN117632444A (zh) | 一种计算机集群的npu容错调度系统 | |
CN109725916B (zh) | 流处理的拓扑结构更新系统和方法 | |
US11888708B1 (en) | System and method for auto-determining solutions for dynamic issues in a distributed network | |
CN112131201B (zh) | 一种网络附加存储高可用性的方法、系统、设备及介质 | |
CN115426356A (zh) | 一种分布式定时任务锁更新控制执行方法和装置 | |
CN112202601B (zh) | 副本集模式运行的两物理节点mongo集群的应用方法 | |
CN112187542A (zh) | 数据通信的集群方法及系统 | |
CN112306664B (zh) | 一种服务重启方法、系统、设备以及介质 | |
US20240267280A1 (en) | System and method for implementing auto-correction to solve dynamic issues in a distributed network | |
US20240264897A1 (en) | Intelligent issue identifier for auto-detecting dynamic issue changes in a distributed network | |
CN113032131B (zh) | 基于Redis的分布式定时调度系统和方法 | |
US11972124B1 (en) | Using dynamic capabilities of cluster nodes to schedule services in a storage cluster | |
CN111143475B (zh) | 一种用于Storm的数据分析的状态管理的方法及装置 | |
Cermak et al. | Achieving high availability in D-Bobox |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |