CN112860422B - 用于作业处理的方法、设备和计算机程序产品 - Google Patents
用于作业处理的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN112860422B CN112860422B CN201911187925.0A CN201911187925A CN112860422B CN 112860422 B CN112860422 B CN 112860422B CN 201911187925 A CN201911187925 A CN 201911187925A CN 112860422 B CN112860422 B CN 112860422B
- Authority
- CN
- China
- Prior art keywords
- processing
- task
- tasks
- job
- processing devices
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 543
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000004590 computer program Methods 0.000 title abstract description 16
- 238000003860 storage Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 32
- 238000005192 partition Methods 0.000 claims description 31
- 230000009471 action Effects 0.000 claims description 10
- 238000010200 validation analysis Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 26
- 238000012795 verification Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 239000003999 initiator Substances 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000009420 retrofitting Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
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/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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- 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/506—Constraint
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及用于处理作业的方法、设备和计算机程序产品。在一种方法中,基于来自客户端的针对作业的作业描述,获取作业中的第一部分中的第一组任务。分别向分布式处理***中的第一组处理设备分配第一组任务,使得第一组处理设备分别生成针对第一组任务的第一组任务结果,第一组处理设备分别位于基于云的第一处理***以及基于区块链的第二处理***中。分别接收来自第一组处理设备的针对第一组任务的第一组任务结果。至少部分地基于第一组任务结果,生成针对作业的作业结果。利用上述方法,可以充分利用分布式处理***中的多种类型的处理设备,以便提高处理作业的效率。根据本公开的示例性实现方式,提供了相应的设备和计算机程序产品。
Description
技术领域
本公开的各实现方式涉及作业(job)处理,更具体地,涉及用于以分布式方式来处理作业的方法、设备和计算机程序产品。
背景技术
随着分布式处理技术的发展,目前已经出现了提供分布式处理能力的云服务架构。云服务架构可以由云服务提供商来提供,以便处理来自客户端的作业。根据作业的描述,作业可以被划分为一个或多个部分,并且每个部分可以被划分为多个任务(task)。在此多个任务可以以并行方式运行于云架构中的多个处理设备中。多个处理设备可以分别返回各自的处理结果,以便用于生成针对作业的最终作业结果。
通常而言,云服务提供商拥有大量的处理设备、可以提供强大的处理能力,并且在安全性和处理速度方面可以提供可靠的服务。目前,在网络环境中还存在具有空闲处理设备的大量个人和/或小型组织等。这些空闲处理设备可以被连接至网络环境被向用户提供处理服务。然而,由于个人和/或小型组织不具有构建云服务架构的能力,并且广大用户可能并不信任他们所提供的处理设备,这导致并不能有效地利用网络环境中的空闲处理能力。因而,如何以更为可靠并且有效的方式管理处理设备以便提供处理作业的能力,成为一个研究热点。
发明内容
因而,期望能够开发并实现一种以更为有效的方式来处理作业的技术方案。期望该技术方案能够与现有的用于分布式处理的技术方案相兼容,并且通过改造现有的分布式处理***的各种配置,来以更为有效的方式处理作业。
根据本公开的第一方面,提供了一种用于处理作业的方法。在该方法中,基于来自客户端的针对作业的作业描述,获取作业中的第一部分中的第一组任务。分别向分布式处理***中的第一组处理设备分配第一组任务,使得第一组处理设备分别生成针对第一组任务的第一组任务结果,第一组处理设备分别位于基于云的第一处理***以及基于区块链的第二处理***中。分别接收来自第一组处理设备的针对第一组任务的第一组任务结果。至少部分地基于第一组任务结果,生成针对作业的作业结果。
根据本公开的第二方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行用于处理作业的动作。该动作包括:基于来自客户端的针对作业的作业描述,获取作业中的第一部分中的第一组任务;分别向分布式处理***中的第一组处理设备分配第一组任务,使得第一组处理设备分别生成针对第一组任务的第一组任务结果,第一组处理设备分别位于基于云的第一处理***以及基于区块链的第二处理***中;分别接收来自第一组处理设备的针对第一组任务的第一组任务结果;以及至少部分地基于第一组任务结果,生成针对作业的作业结果。
根据本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的第一方面的方法。
附图说明
结合附图并参考以下详细说明,本公开各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实现方式。在附图中:
图1示意性示出了根据一个技术方案的用于处理作业的应用环境的框图;
图2示意性示出了其中可以实现本公开的示例性实现方式的应用环境的框图;
图3示意性示出了根据本公开的示例性实现方式的用于处理作业的过程的框图;
图4示意性示出了根据本公开的示例性实现方式的用于处理作业的方法的流程图;
图5示意性示出了根据本公开的示例性实现方式的作业描述的数据结构的框图;
图6示意性示出了根据本公开的示例性实现方式的用于处理被拒绝的任务的方法的流程图;
图7示意性示出了根据本公开的示例性实现方式的用于获取待处理的原始数据的框图;
图8示意性示出了根据本公开的示例性实现方式的用于验证任务结果的方法的流程图;
图9示意性示出了根据本公开的示例性实现方式的用于存储任务结果的框图;
图10示意性示出了根据本公开的示例性实现方式的用于存储任务结果的框图;以及
图11示意性示出了根据本公开的示例性实现的用于处理作业的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
目前已经出现了提供基于云服务的处理***,在下文中将参见图1概要描述基于云服务的处理***。图1示意性示出了根据一个技术方案的用于处理作业的应用环境100的框图。客户端110可以利用基于云服务的处理***120中的计算能力来处理任务。通常而言,云服务提供商可以提供基于云服务的处理***120。该处理***120可以包括多个处理设备122、…、124。由于云服务提供商具有较强的技术实力和经济实力,因而可以自己构建单独的处理***。
客户端110可以经由网络130来使用处理***120中的各个处理设备中的处理能力。例如,客户端110可以向处理***120发送将要被处理的作业的作业描述,以便调用多个处理设备122、…、124的处理能力来执行作业。目前已经提供了用于实现分布式处理的多种引擎。这些引擎可以被部署在处理***120中,并且用于将接收到的作业划分为以并行或者串行方式执行的多个任务。
除了由云服务提供商提供的大型处理***以外,在网络环境中还存在具有空闲处理设备的大量个人和/或小型组织等。这些空闲处理设备可以被连接至网络环境以便向用户提供处理服务。然而,由于个人和/或小型组织不具有构建云服务架构的能力,并且广大用户可能并不信任他们所提供的处理设备,这导致并不能有效地利用网络环境中的空闲处理能力。期望可以以更为可靠并且有效的方式管理网络环境中的各种处理设备以便提供处理作业的能力。
图2示意性示出了其中可以实现本公开的示例性实现方式的应用环境200的框图。网络环境中还可以存在处理设备212、…、以及214等,这些处理设备可以来自个人和/或小型组织。在图2中,处理设备212、…、以及214可以加入基于区块链的处理***210以形成处理***210中的计算节点。由于广大用户对于处理设备212、…、以及214等并不信任,因而造成难以利用这些处理设备中的空闲处理能力。
为了解决上述缺陷,本公开的实现方式提供了一种用于处理作业的方法。该方法可以利用多个处理***中的处理设备来处理作业,以此方式,可以更为充分地利用来自云服务提供商以及来自其他个人和/或小型组织的空闲处理资源。
首先参见图3描述根据本公开的示例性实现方式的概要。图3示意性示出了根据本公开的示例性实现方式的用于处理作业的过程的框图300。如图3所示,可以从客户端接收作业描述310,在此的作业描述310定义了有关作业的多方面的信息,例如,需要执行的操作、将被处理的数据等等。可以基于作业描述310中定义的信息,获取作业320中的一个或多个部分(图3中仅示出了第一部分330,还可以存在第二部分等)。进一步,可以获取第一部分330中的一组任务332、…、以及334。将会理解,在此的一组任务332、…、以及334是可以并行地执行的一组任务。假设作业描述310定义期望计算某产品一年的销售收入,则此时可以获得12个任务,并且每个任务涉及计算该产品在每个月的销售收入。将会理解,在此并不限定以何种方式来获取一组任务,而是可以基于作业描述310来直接执行划分以获得一组任务,还可以从已有的引擎来获取一组任务。
为了并行地执行一组任务,可以向分布式处理***中的一组处理设备分配一组任务,使得一组处理设备生成针对一组任务的一组任务结果。在此的一组处理设备分别位于基于云的第一处理***(例如,处理***120)以及基于区块链的第二处理***(例如,处理***210)中。如图3所示,在此的一组处理设备可以包括处理设备122、…以及处理设备212,并且处理设备122可以位于处理***120中,而处理设备212可以位于处理***210中。
将会理解,一组处理设备122、…以及212可以并行地处理被分配的任务,并且返回处理任务的任务结果。继而,可以分别接收来自一组处理设备的针对一组任务的一组任务结果,并且至少部分地基于一组任务结果,生成针对作业的作业结果。利用本公开的示例性实现方式,可以充分利用多个不同处理***中的可用计算资源。在下文中,将参见图4详细描述有关处理作业的更多细节。
图4示意性示出了根据本公开的示例性实现方式的用于处理作业的方法400的流程图。根据本公开的示例性实现方式,可以建立作业管理器来执行方法400。在此,作业管理器可以运行程序以便执行方法400中所示的各个步骤。将会理解,在此并不限制在分布式处理***中的何处执行方法400。根据本公开的示例性实现方式,可以将作业管理器部署在基于云的处理***120中以便执行方法400中的各个步骤。由于该处理***120具有较高可靠性并且具有充足的处理资源,在处理***120处运行作业管理器可以确保以可靠并且高效的方式管理作业处理。
根据本公开的示例性实现方式,可以将作业管理器部署在基于区块链的处理***210中以便执行方法400中的各个步骤。将作业管理器部署在处理***210中可以尽量利用处理***210中的空闲资源,降低作业管理器与处理***210中的各个处理设备之间的通信开销,进而提高处理作业的性能。
在图4中的框410处,可以基于来自客户端的针对所述作业320的作业描述310,获取所述作业320中的第一部分330中的第一组任务322、…、以及334。可以通过分析作业描述310,来将该作业320划分为多个部分,并且针对每个部分进行进一步划分。具体地,图5示意性示出了根据本公开的示例性实现方式的作业描述310的数据结构的框图500。
如图5所示,作业描述310可以包括可执行文件510以用于定义将要执行的操作集合。通过分析可执行文件510,可以将必须串行执行的内容作为一个部分。将会理解,在下文中将仅以作业中的第一部分330为示例进行描述,并且针对其他部分的操作可以是类似的。可以针对第一部分330进行划分,以便获取可以并行执行的第一组任务。根据本公开的示例性实现方式,还可以以有向无环图(Directed Acyclic Graph)的方式来描述将要执行的操作,并且可以基于该图中描述的时间关系确定第一组任务。
如图5所示,作业描述310还可以进一步包括:数据大小512,用于指示将要被处理的数据量;奖励514,用于指示给予执行与作业相关的任务的处理设备的奖励;以及时间限制516,用于指示期望获取作业结果的时间。
根据本公开的示例性实现方式,客户端110可以通过发布新的话题(topic)的方式,来提出处理作业的请求。可以设置处理设备的列表,列表中的各个处理设备可以订阅作业处理相关的话题,并且感兴趣的处理设备可以参与处理第一组任务中的任务。在此的第一组任务可以被分配至处理***120和210两者中的一组处理设备。具体地,在框420处,分别向分布式处理***中的第一组处理设备分配所述第一组任务,使得所述第一组处理设备分别生成针对所述第一组任务的第一组任务结果,所述第一组处理设备分别位于基于云的第一处理***以及基于区块链的第二处理***中。返回图3,在此的第一组处理设备可以包括处理设备122、…以及处理设备212,并且处理设备122可以位于处理***120中,而处理设备212可以位于处理***210中。
将会理解,由于基于云服务的处理***120已经具备用于分配和处理任务的完善功能,在下文中将重点描述在基于区块链的处理***210中执行的操作的更多细节。根据本公开的示例性实现方式,可以向处理***210中的各个处理设备展示可以被并行处理的第一组任务。感兴趣的处理设备可以接受任务并且执行任务。
根据本公开的示例性实现方式,在分配第一组任务的过程中,可能会出现任务被拒绝的情况,此时需要重新分配被拒绝的任务。将会理解,可能存在多种原因导致任务被拒绝。例如,在作业描述310所指定的时间期限之内,可能并不存在空闲处理设备;又例如,处理设备的所有者对于完成任务的奖励可能并不满意,等等。此时,需要将任务被拒绝的情况通知客户端,以便作业的发起者可以调整作业描述310中的相关内容。在下文中,可以参见图6描述有关处理被拒绝任务的更多细节。
图6示意性示出了根据本公开的示例性实现方式的用于处理被拒绝的任务的方法600的流程图。可以首先确定任务是否被拒绝,在框610处,如果确定任务被拒绝,则方法600前进至框620处,可以通知客户端110以更新作业描述310。在此的作业描述310可以包括与执行作业的相关任务的处理设备的协议。例如,协议可以包括上文参见图5描述的各项内容:将要被处理的数据的大小、针对作业的奖励以及期待作业被完成的时间等。根据本公开的示例性实现方式,在此的协议可以是与整个作业相关的协议。
例如,假设的作业发起者指定需要在1小时内获得结果,然而当前没有空闲处理设备,这导致任务被拒绝。作业的发起者可以更新作业描述310的内容,例如,可以将时间限制从1小时修改为2小时。又例如,假设处理设备的所有者认为发起者给予的奖励过低,则发起者可以提高奖励。继而,在框630处,可以基于来自客户端110的更新的作业描述,向分布式处理***中的处理设备重新分配被拒绝的任务。继续上文示例,由于发起者已经更新了时间限制和/或提高了奖励,当再次分配被拒绝的任务时,如果存在处理设备认为可以接受更新的时间限制和/或奖励,则该处理设备可以接受被重新分配的任务。
根据本公开的示例性实现方式,可以为基于区块链的处理***210中的各个处理设备设置优先级。可以基于优先级来选择哪个/哪些处理设备来执行任务。根据本公开的示例性实现方式,可以基于处理设备承诺服务于作业的时间长度来确定优先级。例如,第一优先级可以指示处理设备不能拒绝执行与作业相关联的任一任务。换言之,如果处理设备具有第一优先级,则要求该处理设备在作业被执行期间(即,在与作业的每个部分中的各个任务被执行期间),不能停止对于作业的服务。只要向该处理设备分配任务,则该处理设备必须接受。此时,具有第一优先级的处理设备与作业之间建立长期服务协议。
根据本公开的示例性实现方式,由于具有第一优先级的处理设备始终服务于该作业,可以将作业管理器部署在具有第一优先级的处理设备上。以此方式,可以在长期服务于作业的处理设备上运行方法400,进而确保负责处理作业的方法400不会被中断。
第二优先级可以指示处理设备必须执行与作业相关联的至少两个任务。此时,具有第二优先级的处理设备与作业之间建立短期服务协议。当处理设备已经处理了两个任务之后,可以选择继续服务或者退出服务。第三优先级可以指示处理设备仅执行与作业相关联的一个任务。此时,具有第三优先级的处理设备与作业之间建立一次***合同。一旦该处理设备已经处理了一个任务,则该处理设备可以不再接受与作业相关的任何任务。
在作业启动的初始阶段,可以询问处理***210中的各个处理设备选择哪种类型的优先级。假设处理设备212长期空闲,则可以向该处理设备212赋予第一优先级;假设处理设备214的工作负载较重,则可以向该处理设备214赋予第三优先级;假设处理设备的工作负载中等,则可以向该处理设备赋予第二优先级。根据本公开的示例性实现方式,可以基于各个处理设备的优先级,来选择用于处理第一组任务的第一组处理设备。
具体地,可以优先选择具有第一优先级的处理设备。由于此类处理设备不能拒绝与作业相关的任何任务,可以确保向此类处理设备分配任务时不会出现被拒绝的情况。进一步,在具有第一优先级的处理设备的数量不足的情况下,还可以优先选择具有第二优先级的处理设备。在具有第一优先级或者第二优先级的处理设备的数量均不足的情况下,可以选择具有第二优先级的处理设备。由于与处理设备进行沟通并且协商是否接受任务将会导致额外的时间开销和处理资源的开销。利用本公开的示例性实现方式,优先地向具有较高优先级的处理设备分配任务,这可以降低处理任务相关的开销进而提高效率。
将会理解,在此的优先级是与处理作业时间段相关联的,一旦已经完成了作业,则不再需要处理设备来执行与作业相关的任务。根据本公开的示例性实现方式,如果确定已经完成了与作业相关联的全部任务,则可以通知具有第一优先级和第二优先级的处理设备退出。此时,处理设备对于作业的服务期结束。
假设处理***210中的处理设备212接受了任务,则该处理设备212可以基于被分配的任务来执行处理。将会理解,任务是与特定的待处理数据相关联的。假设任务为计算产品在一个月中的销售收入,则待处理的原始数据例如可以是各个商店在1月、2月、…、12月的销售输入。根据本公开的示例性实现方式,可以基于与作业相关联的原始数据,分别生成与第一组任务相关联的第一组数据划分(partition)。将会理解,一组数据划分中的一个数据划分可以对应于被分配给一个处理设备的一个任务。换言之,处理设备可以针对数据划分来执行被分配的任务。继而,每个处理设备可以分别处理一个月的销售收入。
为了确保各个处理设备可以获取各自的待处理的原始数据,可以将第一组数据划分存储至可以由处理设备访问的存储空间中。由于基于云服务的处理***120具有较高的稳定性和可靠性并且具有大量存储空间,可以将将要由第一组处理设备处理的第一组数据划分存储在处理***120中的存储空间。此时,向分布式处理***中的第一组处理设备分配第一组任务期间,可以指示第一组处理设备从存储空间中获取第一组数据划分。具体地,可以向处理设备通知数据划分被存储的地址(例如用于访问数据划分的路径),以便获取数据划分。在下文中,将参见图7描述有关获取数据划分的更多细节。
图7示意性示出了根据本公开的示例性实现方式的用于获取待处理的原始数据的框图700。如图7所示,假设一组任务分别被分配给处理***210中的处理设备212、…、214,并且与一组任务相对应的一组数据划分710、…、712被存储至处理***120中。此时,可以通知处理设备212、…、214来基于数据划分710、…、712在处理***120中的一组地址,来获取相应的数据划分。在已经获取了待处理的数据划分的地址的情况下,处理设备可以基于上述地址获取待处理的数据划分,并且针对该数据划分执行被分配的任务以便生成相应的任务结果。
将会理解,由于来自个人和/或小型组织的处理设备的安全性较低并且可能易于受到黑客或者恶意程序的攻击,因而这些处理设备的可信程度可能较低。因而,并不能完全相信来自这些处理设备的任务结果,而是需要提供附加的验证方式,以确保处理设备提供的任务结果是真正针对数据划分执行了任务后获得的结果。
根据本公开的示例性实现方式,针对来自基于区块链的处理***210中的处理设备的任务结果,提供了双重验证方式。首先,在第一验证过程中,可以基于计算验证(computation verification)规则来确定任务结果是否可信。如果任务结果通过了第一层验证,则表示该任务结果是可信的。如果任务结果未通过第一层验证,则可以将可以启动投票过程,以针对未通过第一验证的任务结果进行投票。如果投票结果满足预定条件,则可以确认任务结果为可信,否则可以将任务结果标记为不可信。在下文中,将参见图8描述有关验证操作的更多细节。
图8示意性示出了根据本公开的示例性实现方式的用于验证任务结果的方法800的流程图。可以针对从基于区块链的处理***210中的处理设备获取的每个任务结果执行方法800。如图8所示,在框810处,可以基于计算验证规则,确定任务结果是否可信。在此的计算验证规则是目前已经提出的一种用于验证计算结果是否可信的技术方案,本公开的上下文中将省略有关计算验证规则的具体描述。在框820处,如果任务结果通过验证,则表示该任务结果是可信的,并且方法800可以前进至框860处。如果任务结果未通过验证,则表示该任务结果不可信并且方法800可以前进至框830以便启动第二层验证。
在框830处,可以向多个处理设备发送用于确认任务结果是否可信的投票的请求。例如,可以向基于区块链的处理***210中的多个处理设备发送投票的请求。此时,多个处理设备可以基于预定算法判断任务结果是否是针对数据划分执行所分配的任务而获得的结果,并且多个处理设备可以基于自身的判断来返回投票结果。如果来自多个处理设备的多个投票满足预定条件(例如,超过50%的投票结果为肯定),则可以确定任务结果为可信。
在框840处,可以基于框830处的输出来确定任务结果是否可信,如果任务结果通过验证,则表示该任务结果是可信的,并且方法800可以前进至框860处。如果任务结果未通过验证,则表示该任务结果不可信并且方法800可以前进至框850,以便向分布式处理***中的处理设备重新分配与不可信的任务结果相关联的任务。此时,可以从基于云服务的处理***120中选择处理设备,以确保可以获得可信的任务结果。根据本公开的示例性实现方式,还可以再次向处理***210中的处理设备分配任务。
利用本公开的示例性实现方式,通过双重验证方式可以确保来自个人和/或小型组织的处理设备的任务结果是可信的。进一步,在确认任务结果不可信的情况下,还可以重新选择处理设备来处理任务,以便确保作业处理的顺利执行。
根据本公开的示例性实现方式,可以向生成可信任务结果的处理设备提供奖励。例如,可以在处理设备接收任务时承诺向处理设备基于奖励,例如可以将奖励设置为锁定状态。一旦验证处理设备提供的任务结果为可信,则将奖励解锁。
在已经确认任务结果可信的情况下,处理设备可以将任务结果写入预定的存储空间,并且返回任务结果在存储空间中的地址。根据本公开的示例性实现方式,可以将任务结果写入多种位置。例如,可以将任务结果写入至基于云服务的处理***120中的存储空间。备选地和/或附加地,还可以将任务结果写入处理设备的本地存储空间。在此的本地存储空间可以是处理设备的存储器中的空间。由于任务结果还将作为输入数据而被后续部分中的任务来读取,将任务结果驻留在本地存储器中可以降低读取输入数据的时间开销。
图9示意性示出了根据本公开的示例性实现方式的用于存储任务结果的框图900。如图9所示,基于数据划分610的地址,处理设备212可以获取数据划分610并且执行任务,以便获得任务结果。由于基于云服务的处理***120具有较高的可靠性和充足的存储空间,处理设备212可以将获得的任务结果910存储至处理***120中。类似地,处理设备214可以获取数据划分612并且执行任务,继而将任务结果912存储至处理***120中。
图10示意性示出了根据本公开的示例性实现方式的用于存储任务结果的框图1000。如图10所示,基于数据划分610的地址,处理设备212可以获取数据划分610并且执行任务,以便获得任务结果。由于生成的任务结果可能会作为后续任务的待处理数据,并且后续任务有可能被处理***210中的处理设备212或者其他处理设备来执行,因而处理设备212可以将获得的任务结果1010存储至本地存储空间中。利用本公开的示例性实现方式,可以有效地避免在两个处理***之间频繁传输任务结果和待处理数据的情况。一方面可以降低对于带宽的需求,另一方面还可以降低数据传输占用的时间进而提高处理作业的性能。
进一步,处理设备214可以获取数据划分612并且执行任务。处理设备214可以将获得的任务结果1012存储至处理***120中,以便充分利用基于云服务的处理***120中的充足的存储空间。
根据本公开的示例性实现方式,可以基于优先级来确定将任务结果存储至何处。概括而言,由于具有较高优先级的处理设备之后可能还会被分配任务,因而可以将由这种处理设备生成的任务结果存储至处理设备本地的存储空间中。由于具有较低优先级的处理设备之后可能不会被分配任务,因而可以将由这种处理设备生成的任务结果存储至基于云服务的处理***120中。
根据本公开的示例性实现方式,如果确定第一组处理设备中的处理设备具有第一优先级和第二优先级中的任一优先级,可以指示处理设备将由处理设备生成的任务结果存储至处理设备的存储空间中。利用本公开的示例性实现方式,即使后续的任务被分配给其他处理设备,由于其他处理设备和后续任务的待处理数据均位于处理***210中,可以避免在两个处理***120和210之间频繁传输任务结果和待处理的数据划分的情况。
根据本公开的示例性实现方式,如果确定第一组处理设备中的处理设备具有第三优先级,指示处理设备将由处理设备生成的任务结果存储至处理***120中的存储空间。利用本公开的示例性实现方式,可以充分利用处理***120的高度可靠性和丰富的存储空间。
无论将任务结果存储在何处,可以利用结果地址来指示用于访问任务结果的路径。处理设备可以返回指向生成的任务结果的地址,以便使得后续的操作流程可以访问任务结果。返回图4,在框430处可以分别接收来自所述第一组处理设备的针对所述第一组任务的第一组任务结果。在此,可以基于任务结果的地址来获取相关的任务结果。
在框440处,至少部分地基于所述第一组任务结果,可以生成针对所述作业的作业结果。将会理解,由于作业可以涉及一个或多个部分,如果作业仅涉及上文描述的第一部分,则可以基于获得的第一组任务结果,即可生成针对整个作业的作业结果。如果作业涉及多个部分,则可以以类似方式来针对后续的第二部分、第三部分等进行处理。
根据本公开的示例性实现方式,可以基于作业描述310,获取作业中的第二部分中的第二组任务。可以分别向分布式处理***中的第二组处理设备分配第二组任务,以便使得第二组处理设备分别生成针对所述第二组任务的第二组任务结果。可以分别接收来自第二组处理设备的针对第二组任务的第二组任务结果。继而,可以至少部分地基于第二组任务结果,生成作业结果。
将会理解,第二组任务的待处理数据是基于第一组任务结果形成的。此时,可以基于第一组任务结果的第一组结果地址,确定将要由第二组处理设备处理的第二组数据划分的第二组地址。
通常而言,对于第二组任务中的每个任务,需要接收来自第一组任务的多个任务结果。假设第一组任务结果被存储在处理设备的本地,可以尽量分配由与第一组处理设备相同的处理设备来执行第二组任务中的任务。此时处理设备可以从自身本地的存储空间中快速读取待处理数据中的一部分,处理设备还可以从其他处理设备的本地存储空间中读取待处理数据中的其他部分。利用本公开的示例性实现方式,可以尽可能地利用处理设备本地的存储空间,以避免在两个处理***中频繁地写入和/或读取数据的情况。
具体而言,可以基于作业描述310来生成将要由第二组处理设备处理的第二组数据划分。例如,可以将来自第一组处理设备的多个任务结果的多个地址传输至用于执行第二组任务中的一个任务的处理设备。继而,该处理设备可以基于多个地址来获取待处理的数据划分,进而针对获得的数据划分执行任务并且生成任务结果。
利用本公开的示例性实现方式,一方面可以尽量利用基于区块链的处理***210中的处理设备的处理能力,另一方面还可以尽量利用这些处理设备中的存储空间,进而降低数据传输的各项开销并且提高处理作业的效率。
在上文中已经参见图2至图10详细描述了根据本公开的方法的示例,在下文中将描述相应的装置的实现。根据本公开的示例性实现,提供了一种用于处理作业的装置。该装置包括:获取模块,配置用于基于来自客户端的针对作业的作业描述,获取作业中的第一部分中的第一组任务;分配模块,配置用于分别向分布式处理***中的第一组处理设备分配第一组任务,使得第一组处理设备分别生成针对第一组任务的第一组任务结果,第一组处理设备分别位于基于云的第一处理***以及基于区块链的第二处理***中;接收模块,配置用于分别接收来自第一组处理设备的针对第一组任务的第一组任务结果;以及生成模块,配置用于至少部分地基于第一组任务结果,生成针对作业的作业结果。
根据本公开的示例性实现方式,接收模块包括:验证模块,配置用于根据确定第一组任务结果中的任务结果来自位于第二处理***中的处理设备,基于计算验证规则,确定任务结果是否可信;以及结果接收模块,配置用于根据确定任务结果为可信,接收任务结果。
根据本公开的示例性实现方式,接收模块进一步包括:投票模块,配置用于根据确定任务结果为不可信,通知位于第二处理***中的多个处理设备发送用于确认任务结果是否可信的投票的请求;以及投票处理模块,配置用于根据确定来自多个处理设备的多个投票满足预定条件,确定任务结果为可信。
根据本公开的示例性实现方式,该装置进一步包括:重新分配模块,配置用于根据确定任务结果为不可信,向分布式处理***中的处理设备重新分配与不可信的任务结果相关联的任务。
根据本公开的示例性实现方式,该装置包括通知模块,配置用于根据确定第一组任务中的任务被拒绝,通知客户端以更新作业描述,作业描述包括与执行作业的相关任务的处理设备的协议;以及重新分配模块,配置用于基于来自客户端的更新的作业描述,向分布式处理***中的处理设备分配被拒绝的任务。
根据本公开的示例性实现方式,该装置进一步包括:数据划分模块,配置用于基于与作业相关联的原始数据,分别生成与第一组任务相关联的第一组数据划分;以及存储模块,配置用于将第一组数据划分存储至第一处理***中的存储空间。
根据本公开的示例性实现方式,分配模块包括:指示模块,配置用于指示第一组处理设备分别从存储空间中获取第一组数据划分。
根据本公开的示例性实现方式,接收模块包括:地址模块,配置用于针对第一组任务中的任务,接收来自第一组处理设备的与任务的任务结果相关联的一组结果地址;以及结果获取模块,配置用于基于一组结果地址获取任务结果。
根据本公开的示例性实现方式,该装置进一步包括设置模块,配置用于:针对位于第二处理***中的处理设备设置优先级。
根据本公开的示例性实现方式,优先级包括以下中的至少任一项:第一优先级,用于指示处理设备不能拒绝处理与作业相关联的任一任务;第二优先级,用于指示处理设备必须处理与作业相关联的至少两个任务;以及第三优先级,用于指示处理设备仅处理与作业相关联的一个任务。
根据本公开的示例性实现方式,分配模块包括:选择模块,配置用于基于位于第二处理***中的各个处理设备的优先级,选择第一组处理设备。
根据本公开的示例性实现方式,该装置包括:第一指示模块,配置用于根据确定第一组处理设备中的处理设备具有第一优先级和第二优先级中的任一优先级,指示处理设备将由处理设备生成的任务结果存储至处理设备的存储空间中;以及
根据本公开的示例性实现方式,该装置包括:第二指示模块,配置用于根据确定第一组处理设备中的处理设备具有第三优先级,指示处理设备将由处理设备生成的任务结果存储至第一处理***中的存储空间。
根据本公开的示例性实现方式,获取模块进一步配置用于基于作业描述,获取作业中的第二部分中的第二组任务;分配模块进一步配置用于向分布式处理***中的第二组处理设备分配第二组任务;接收模块进一步配置用于分别接收来自第二组处理设备的针对第二组任务的第二组任务结果;以及生成模块进一步配置用于至少部分地基于第二组任务结果,生成作业结果。
根据本公开的示例性实现方式,该装置进一步包括:地址生成模块,配置用于基于第一组任务结果的第一组结果地址,确定将要由第二组处理设备处理的第二组数据划分的第二组地址;以及地址指示模块,配置用于分别指示第二组处理设备基于第二组地址执行第二组任务。
根据本公开的示例性实现方式,该装置在第二处理***中的处理设备上实现。
根据本公开的示例性实现方式,该装置在具有第一优先级的处理设备上实现。
图11示意性示出了根据本公开的示例性实现的用于管理应用***的设备1100的框图。如图所示,设备1100包括中央处理单元(CPU)1101,其可以根据存储在只读存储器(ROM)1102中的计算机程序指令或者从存储单元1108加载到随机访问存储器(RAM)1103中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1103中,还可存储设备1100操作所需的各种程序和数据。CPU 1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
设备1100中的多个部件连接至I/O接口1105,包括:输入单元1106,例如键盘、鼠标等;输出单元1107,例如各种类型的显示器、扬声器等;存储单元1108,例如磁盘、光盘等;以及通信单元1109,例如网卡、调制解调器、无线通信收发机等。通信单元1109允许设备1100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法400、600和800,可由处理单元1101执行。例如,在一些实现中,方法400、600和800可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1108。在一些实现中,计算机程序的部分或者全部可以经由ROM1102和/或通信单元1109而被载入和/或安装到设备1100上。当计算机程序被加载到RAM1103并由CPU 1101执行时,可以执行上文描述的方法400、600和800的一个或多个步骤。备选地,在其他实现中,CPU 1101也可以以其他任何适当的方式被配置以实现上述过程/方法。
根据本公开的示例性实现,提供了一种电子设备包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行用于处理作业的动作。该动作包括:基于来自客户端的针对作业的作业描述,获取作业中的第一部分中的第一组任务;分别向分布式处理***中的第一组处理设备分配第一组任务,使得第一组处理设备分别生成针对第一组任务的第一组任务结果,第一组处理设备分别位于基于云的第一处理***以及基于区块链的第二处理***中;分别接收来自第一组处理设备的针对第一组任务的第一组任务结果;以及至少部分地基于第一组任务结果,生成针对作业的作业结果。
根据本公开的示例性实现方式,分别接收来自第一组处理设备的针对第一组任务的第一组任务结果包括:根据确定第一组任务结果中的任务结果来自位于第二处理***中的处理设备,基于计算验证规则,确定任务结果是否可信;以及根据确定任务结果为可信,接收任务结果。
根据本公开的示例性实现方式,该动作进一步包括:根据确定任务结果为不可信,通知位于第二处理***中的多个处理设备发送用于确认任务结果是否可信的投票的请求;以及根据确定来自多个处理设备的多个投票满足预定条件,确定任务结果为可信。
根据本公开的示例性实现方式,该动作进一步包括:根据确定任务结果为不可信,向分布式处理***中的处理设备重新分配与不可信的任务结果相关联的任务。
根据本公开的示例性实现方式,该动作进一步包括:根据确定第一组任务中的任务被拒绝,通知客户端以更新作业描述,作业描述包括与执行作业的相关任务的处理设备的协议;以及基于来自客户端的更新的作业描述,向分布式处理***中的处理设备分配被拒绝的任务。
根据本公开的示例性实现方式,该动作进一步包括:基于与作业相关联的原始数据,分别生成与第一组任务相关联的第一组数据划分;以及将第一组数据划分存储至第一处理***中的存储空间。
根据本公开的示例性实现方式,分别向分布式处理***中的第一组处理设备分配第一组任务包括:指示第一组处理设备分别从存储空间中获取第一组数据划分。
根据本公开的示例性实现方式,分别接收来自第一组处理设备的针对第一组任务的第一组任务结果包括:针对第一组任务中的任务,
接收来自第一组处理设备的与任务的任务结果相关联的一组结果地址;以及基于一组结果地址获取任务结果。
根据本公开的示例性实现方式,该动作进一步包括:针对位于第二处理***中的处理设备设置优先级。
根据本公开的示例性实现方式,优先级包括以下中的至少任一项:第一优先级,用于指示处理设备不能拒绝处理与作业相关联的任一任务;第二优先级,用于指示处理设备必须处理与作业相关联的至少两个任务;以及第三优先级,用于指示处理设备仅处理与作业相关联的一个任务。
根据本公开的示例性实现方式,分别向分布式处理***中的第一组处理设备分配第一组任务包括:基于位于第二处理***中的各个处理设备的优先级,选择第一组处理设备。
根据本公开的示例性实现方式,该动作进一步包括以下中的至少任一项:根据确定第一组处理设备中的处理设备具有第一优先级和第二优先级中的任一优先级,指示处理设备将由处理设备生成的任务结果存储至处理设备的存储空间中;以及根据确定第一组处理设备中的处理设备具有第三优先级,指示处理设备将由处理设备生成的任务结果存储至第一处理***中的存储空间。
根据本公开的示例性实现方式,至少部分地基于第一组任务结果,生成针对作业的作业结果包括:基于作业描述,获取作业中的第二部分中的第二组任务;向分布式处理***中的第二组处理设备分配第二组任务;分别接收来自第二组处理设备的针对第二组任务的第二组任务结果;以及至少部分地基于第二组任务结果,生成作业结果。
根据本公开的示例性实现方式,该动作进一步包括:基于第一组任务结果的第一组结果地址,确定将要由第二组处理设备处理的第二组数据划分的第二组地址;以及分别指示第二组处理设备基于第二组地址执行第二组任务。
根据本公开的示例性实现方式,该动作在第二处理***中的处理设备上实现。
根据本公开的示例性实现方式,该动作在具有第一优先级的处理设备上实现。
根据本公开的示例性实现,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的方法。
根据本公开的示例性实现,提供了一种计算机可读介质。计算机可读介质上存储有机器可执行指令,当机器可执行指令在被至少一个处理器执行时,使得至少一个处理器实现根据本公开方法。
本公开可以是方法、设备、***和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实现中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实现的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。
Claims (20)
1.一种用于处理作业的方法,包括:
基于来自客户端的针对所述作业的作业描述,获取所述作业中的第一部分中的第一组任务;
分别向分布式处理***中的第一组处理设备分配所述第一组任务,使得所述第一组处理设备分别生成针对所述第一组任务的第一组任务结果,所述第一组处理设备分别位于基于云的第一处理***以及基于区块链的第二处理***中;
分别接收来自所述第一组处理设备的针对所述第一组任务的第一组任务结果;以及
至少部分地基于所述第一组任务结果,生成针对所述作业的作业结果;
其中分别向所述分布式处理***中的所述第一组处理设备分配所述第一组任务包括:
基于所述第二处理***中的各个处理设备的优先级,选择位于所述第二处理***中的所述第一组处理设备中的给定数量的处理设备,以分配所述第一组任务的至少一部分;以及
其中所述第二处理***中的各个处理设备的所述优先级包括:
第一优先级,用于指示所述处理设备不能拒绝处理与所述作业相关联的任一任务;以及
第二优先级,用于指示所述处理设备必须处理与所述作业相关联的至少两个任务。
2.根据权利要求1所述的方法,其中分别接收来自所述第一组处理设备的针对所述第一组任务的所述第一组任务结果包括:根据确定所述第一组任务结果中的任务结果来自位于所述第二处理***中的处理设备,
基于计算验证规则,确定所述任务结果是否可信;以及
根据确定所述任务结果为可信,接收所述任务结果。
3.根据权利要求2所述的方法,进一步包括:
根据确定所述任务结果为不可信,通知位于所述第二处理***中的多个处理设备发送用于确认所述任务结果是否可信的投票的请求;以及
根据确定来自所述多个处理设备的多个投票满足预定条件,确定所述任务结果为可信。
4.根据权利要求2所述的方法,进一步包括:
根据确定所述任务结果为不可信,向所述分布式处理***中的处理设备重新分配与不可信的任务结果相关联的任务。
5.根据权利要求1所述的方法,进一步包括:根据确定所述第一组任务中的任务被拒绝,
通知所述客户端以更新所述作业描述,所述作业描述包括与执行所述作业的相关任务的处理设备的协议;以及
基于来自所述客户端的更新的所述作业描述,向所述分布式处理***中的处理设备分配被拒绝的所述任务。
6.根据权利要求1所述的方法,进一步包括:
基于与所述作业相关联的原始数据,分别生成与所述第一组任务相关联的第一组数据划分;以及
将所述第一组数据划分存储至所述第一处理***中的存储空间。
7.根据权利要求6所述的方法,其中分别向所述分布式处理***中的所述第一组处理设备分配所述第一组任务包括:指示所述第一组处理设备分别从所述存储空间中获取所述第一组数据划分。
8.根据权利要求7所述的方法,其中分别接收来自所述第一组处理设备的针对所述第一组任务的所述第一组任务结果包括:针对所述第一组任务中的任务,
接收来自所述第一组处理设备的与所述任务的任务结果相关联的一组结果地址;以及
基于所述一组结果地址获取所述任务结果。
9.根据权利要求1所述的方法,其中所述第二处理***中的各个处理设备的所述优先级还包括第三优先级,用于指示所述处理设备仅处理与所述作业相关联的一个任务。
10.根据权利要求9所述的方法,进一步包括以下中的至少任一项:
根据确定所述第一组处理设备中的处理设备具有所述第一优先级和所述第二优先级中的任一优先级,指示所述处理设备将由所述处理设备生成的任务结果存储至所述处理设备的存储空间中;以及
根据确定所述第一组处理设备中的处理设备具有第三优先级,指示所述处理设备将由所述处理设备生成的任务结果存储至所述第一处理***中的存储空间。
11.根据权利要求10所述的方法,其中至少部分地基于所述第一组任务结果,生成针对所述作业的所述作业结果包括:
基于所述作业描述,获取所述作业中的第二部分中的第二组任务;
向所述分布式处理***中的第二组处理设备分配所述第二组任务;
分别接收来自所述第二组处理设备的针对所述第二组任务的第二组任务结果;以及
至少部分地基于所述第二组任务结果,生成所述作业结果。
12.根据权利要求11所述的方法,进一步包括:
基于所述第一组任务结果的第一组结果地址,确定将要由所述第二组处理设备处理的第二组数据划分的第二组地址;以及
分别指示所述第二组处理设备基于所述第二组地址执行所述第二组任务。
13.根据权利要求1所述的方法,其中所述方法在具有所述第一优先级的处理设备上实现。
14.根据权利要求1所述的方法,其中所述方法在所述第二处理***中的处理设备上实现。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述电子设备执行用于处理作业的动作,所述动作包括:
基于来自客户端的针对作业的作业描述,获取所述作业中的第一部分中的第一组任务;
分别向分布式处理***中的第一组处理设备分配所述第一组任务,使得所述第一组处理设备分别生成针对所述第一组任务的第一组任务结果,所述第一组处理设备分别位于基于云的第一处理***以及基于区块链的第二处理***中;
分别接收来自所述第一组处理设备的针对所述第一组任务的第一组任务结果;以及
至少部分地基于所述第一组任务结果,生成针对所述作业的作业结果;
其中分别向所述分布式处理***中的所述第一组处理设备分配所述第一组任务包括:
基于所述第二处理***中的各个处理设备的优先级,选择位于所述第二处理***中的所述第一组处理设备中的给定数量的处理设备,以分配所述第一组任务的至少一部分;以及
其中所述第二处理***中的各个处理设备的所述优先级包括:
第一优先级,用于指示所述处理设备不能拒绝处理与所述作业相关联的任一任务;以及
第二优先级,用于指示所述处理设备必须处理与所述作业相关联的至少两个任务。
16.根据权利要求15所述的电子设备,其中分别接收来自所述第一组处理设备的针对所述第一组任务的所述第一组任务结果包括:根据确定所述第一组任务结果中的任务结果来自位于所述第二处理***中的处理设备,
基于计算验证规则,确定所述任务结果是否可信;以及
根据确定所述任务结果为可信,接收所述任务结果。
17.根据权利要求16所述的电子设备,进一步包括:
根据确定所述任务结果为不可信,通知位于所述第二处理***中的多个处理设备发送用于确认所述任务结果是否可信的投票的请求;以及
根据确定来自所述多个处理设备的多个投票满足预定条件,确定所述任务结果为可信。
18.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质包括机器可执行指令,所述机器可执行指令在被电子设备的处理器执行时,使所述电子设备执行步骤,包括:
基于来自客户端的针对作业的作业描述,获取所述作业中的第一部分中的第一组任务;
分别向分布式处理***中的第一组处理设备分配所述第一组任务,使得所述第一组处理设备分别生成针对所述第一组任务的第一组任务结果,所述第一组处理设备分别位于基于云的第一处理***以及基于区块链的第二处理***中;
分别接收来自所述第一组处理设备的针对所述第一组任务的第一组任务结果;以及
至少部分地基于所述第一组任务结果,生成针对所述作业的作业结果;
其中分别向所述分布式处理***中的所述第一组处理设备分配所述第一组任务包括:
基于所述第二处理***中的各个处理设备的优先级,选择位于所述第二处理***中的所述第一组处理设备中的给定数量的处理设备,以分配所述第一组任务的至少一部分;以及
其中所述第二处理***中的各个处理设备的所述优先级包括:
第一优先级,用于指示所述处理设备不能拒绝处理与所述作业相关联的任一任务;以及
第二优先级,用于指示所述处理设备必须处理与所述作业相关联的至少两个任务。
19.根据权利要求18所述的非瞬态计算机可读介质,其中分别接收来自所述第一组处理设备的针对所述第一组任务的所述第一组任务结果包括:根据确定所述第一组任务结果中的任务结果来自位于所述第二处理***中的处理设备,
基于计算验证规则,确定所述任务结果是否可信;以及
根据确定所述任务结果为可信,接收所述任务结果。
20.根据权利要求18所述的非瞬态计算机可读介质,其中:
所述第一组处理设备包括位于基于云的所述第一处理***中的第一多个处理设备和位于基于区块链的所述第二处理***中的第二多个处理设备,所述第二处理***不同于所述第一处理***;并且
所述第一组任务结果至少包括来自位于所述第一处理***中的所述第一多个处理设备中的至少一个处理设备的第一任务结果和来自位于所述第二处理***中的所述第二多个处理设备中的至少一个处理设备的第二任务结果。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911187925.0A CN112860422B (zh) | 2019-11-28 | 2019-11-28 | 用于作业处理的方法、设备和计算机程序产品 |
US16/797,794 US11650846B2 (en) | 2019-11-28 | 2020-02-21 | Method, device, and computer program product for job processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911187925.0A CN112860422B (zh) | 2019-11-28 | 2019-11-28 | 用于作业处理的方法、设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112860422A CN112860422A (zh) | 2021-05-28 |
CN112860422B true CN112860422B (zh) | 2024-04-26 |
Family
ID=75985361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911187925.0A Active CN112860422B (zh) | 2019-11-28 | 2019-11-28 | 用于作业处理的方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11650846B2 (zh) |
CN (1) | CN112860422B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048018B (zh) * | 2022-01-14 | 2022-04-15 | 北京大学深圳研究生院 | 基于区块链的云原生任务分配***、方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164189A (zh) * | 2011-12-16 | 2013-06-19 | 伊姆西公司 | 用于实时数据处理的方法和设备 |
US8843929B1 (en) * | 2008-07-15 | 2014-09-23 | Google Inc. | Scheduling in computer clusters |
CN104252391A (zh) * | 2013-06-28 | 2014-12-31 | 国际商业机器公司 | 用于在分布式计算***中管理多个作业的方法和装置 |
CN104731642A (zh) * | 2013-12-23 | 2015-06-24 | 国际商业机器公司 | 用于高度并行作业的回填调度方法和*** |
CN106548262A (zh) * | 2015-09-21 | 2017-03-29 | 阿里巴巴集团控股有限公司 | 用于处理任务的资源的调度方法、装置和*** |
CN109729106A (zh) * | 2017-10-27 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 处理计算任务的方法、***和计算机程序产品 |
CN109859041A (zh) * | 2019-01-09 | 2019-06-07 | 平安科技(深圳)有限公司 | 基于区块链的基金交易实时更新方法及***、电子设备 |
CN110119311A (zh) * | 2019-04-12 | 2019-08-13 | 华中科技大学 | 一种基于fpga的分布式流计算***加速方法 |
CN110502343A (zh) * | 2019-08-23 | 2019-11-26 | 深圳市新系区块链技术有限公司 | 一种资源分配方法、***、装置及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9465653B2 (en) * | 2013-12-11 | 2016-10-11 | Dropbox, Inc. | Automated invalidation of job output data in a job-processing system |
US10768980B2 (en) * | 2018-05-29 | 2020-09-08 | American Express Travel Related Services Company, Inc. | Automated execution of a batch job workflows |
US11108856B2 (en) * | 2018-08-31 | 2021-08-31 | Nakamoto & Turing Labs Inc | Methods and apparatus for performing distributed computing using blockchain |
US11281967B1 (en) * | 2018-12-11 | 2022-03-22 | Amazon Technologies, Inc. | Event-based device performance monitoring |
US10970180B2 (en) * | 2019-03-29 | 2021-04-06 | Nakamoto & Turing Labs Inc | Methods and apparatus for verifying processing results and/or taking corrective actions in response to a detected invalid result |
-
2019
- 2019-11-28 CN CN201911187925.0A patent/CN112860422B/zh active Active
-
2020
- 2020-02-21 US US16/797,794 patent/US11650846B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8843929B1 (en) * | 2008-07-15 | 2014-09-23 | Google Inc. | Scheduling in computer clusters |
CN103164189A (zh) * | 2011-12-16 | 2013-06-19 | 伊姆西公司 | 用于实时数据处理的方法和设备 |
CN104252391A (zh) * | 2013-06-28 | 2014-12-31 | 国际商业机器公司 | 用于在分布式计算***中管理多个作业的方法和装置 |
CN104731642A (zh) * | 2013-12-23 | 2015-06-24 | 国际商业机器公司 | 用于高度并行作业的回填调度方法和*** |
CN106548262A (zh) * | 2015-09-21 | 2017-03-29 | 阿里巴巴集团控股有限公司 | 用于处理任务的资源的调度方法、装置和*** |
CN109729106A (zh) * | 2017-10-27 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 处理计算任务的方法、***和计算机程序产品 |
CN109859041A (zh) * | 2019-01-09 | 2019-06-07 | 平安科技(深圳)有限公司 | 基于区块链的基金交易实时更新方法及***、电子设备 |
CN110119311A (zh) * | 2019-04-12 | 2019-08-13 | 华中科技大学 | 一种基于fpga的分布式流计算***加速方法 |
CN110502343A (zh) * | 2019-08-23 | 2019-11-26 | 深圳市新系区块链技术有限公司 | 一种资源分配方法、***、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20210165684A1 (en) | 2021-06-03 |
CN112860422A (zh) | 2021-05-28 |
US11650846B2 (en) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10198297B1 (en) | Provisioning virtual resource on a server based on label associated with virtual resource and servers | |
CN110896355B (zh) | 一种网络切片的选择方法及装置 | |
US10116507B2 (en) | Method of and system for managing computing resources | |
US11106479B2 (en) | Virtual provisioning with implementation resource boundary awareness | |
CA2811020C (en) | Virtual resource cost tracking with dedicated implementation resources | |
US10013662B2 (en) | Virtual resource cost tracking with dedicated implementation resources | |
US20180183862A1 (en) | Apparatus and method for logically grouping client nodes in an iot environment using client identifiers | |
US11102196B2 (en) | Authenticating API service invocations | |
CN109729106B (zh) | 处理计算任务的方法、***和计算机程序产品 | |
US9590873B2 (en) | Composite service pre-provisioning | |
CN111722933B (zh) | 分布式进程之间的死锁解决 | |
US20150067159A1 (en) | Hosted network management | |
CN106533961B (zh) | 一种流量控制方法及装置 | |
CN112860421B (zh) | 用于作业处理的方法、设备和计算机程序产品 | |
CN114979286B (zh) | 容器服务的访问控制方法、装置、设备及计算机存储介质 | |
KR102389334B1 (ko) | 클라우드 서비스를 위한 가상 머신 프로비저닝 시스템 및 방법 | |
CN112860422B (zh) | 用于作业处理的方法、设备和计算机程序产品 | |
US8019871B2 (en) | Federation of grids using rings of trust | |
US11381665B2 (en) | Tracking client sessions in publish and subscribe systems using a shared repository | |
CN111694670A (zh) | 资源分配方法、装置、设备和计算机可读介质 | |
US9628401B2 (en) | Software product instance placement | |
US20230161634A1 (en) | Mapping an application signature to designated cloud resources | |
CN114429403A (zh) | 在误报内容减轻方面在社交网络和付费策展内容制作者之间调解 | |
EP3659033B1 (en) | Connector leasing for long-running software operations | |
US10990429B2 (en) | Rule-based reallocation of hosted compute resources |
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 |