CN112272823A - 管理分布式计算系统中的共享资源 - Google Patents
管理分布式计算系统中的共享资源 Download PDFInfo
- Publication number
- CN112272823A CN112272823A CN201880094512.5A CN201880094512A CN112272823A CN 112272823 A CN112272823 A CN 112272823A CN 201880094512 A CN201880094512 A CN 201880094512A CN 112272823 A CN112272823 A CN 112272823A
- Authority
- CN
- China
- Prior art keywords
- transaction
- behavior
- state
- resource
- shared resource
- 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.)
- Granted
Links
- 238000005192 partition Methods 0.000 claims abstract description 43
- 230000009471 action Effects 0.000 claims abstract description 35
- 238000012986 modification Methods 0.000 claims abstract description 13
- 230000004048 modification Effects 0.000 claims abstract description 13
- 238000000034 method Methods 0.000 claims description 43
- 238000013515 script Methods 0.000 claims description 40
- 230000004044 response Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 230000003542 behavioural effect Effects 0.000 claims description 2
- 230000006399 behavior Effects 0.000 abstract description 200
- 238000005096 rolling process Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 14
- 238000011084 recovery Methods 0.000 description 11
- 238000012217 deletion Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001960 triggered effect Effects 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/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- 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
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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/466—Transaction processing
- G06F9/467—Transactional 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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
Abstract
一种分布式计算系统,其包括若干分区,每个分区包含共享资源的分离的副本,共享资源经由由用户指定的行为和事务来接收修改。如由资源ID指示的,事务管理器对共享资源的每个副本并行地执行所请求的行为或事务。这允许分布式计算系统并行操作,而无需竞争相同的共享资源,从而避免了死锁和竞争状况。如果在修改共享资源的副本时,行为或事务失败,则事务管理器将防止该行为或事务修改其余副本,并且抢占来自失败的行为或事务的结果。事务管理器通过回滚失败的行为或事务来重新建立跨共享资源的一致状态,将共享资源的每个副本还原到其在执行该行为或事务之前的状态。
Description
技术领域
本公开涉及管理跨分布式计算系统的分离的分区的共享资源的领域。
背景技术
并行计算允许计算机系统通过将过程划分为在计算系统内的分离的处理器上同时执行的部分来优化其性能。通常,并行计算环境中的子任务由多个线程执行,该多个线程经常需要使用或更新它们之间共享的变量。因为这些变量在执行子任务的所有线程之中共享,所以可以使用锁来确保竞争(compete)线程不重写或以其他方式修改每个子任务所需的公共数据。然而,锁的使用可能会带来与每个子任务的执行相关联的若干挑战,包括死锁和竞争(race)状况。通常,当出现死锁时,竞争子任务被中止,导致工作丢失和效率低下,因为子任务必须重新开始。
发明内容
所描述的实施例包括用于管理分布式计算系统中的共享资源的事务管理器。分布式计算系统包括若干分区,每个分区包含共享资源的分离的副本,共享资源可以经由由用户指定的行为和事务来接收修改。每个行为一次可以修改一个共享资源,并且包括指示要修改哪个资源的资源ID。事务管理器对分区中的每个分区中的共享资源的每个副本并行执行所请求的行为或事务,以跨分区维持一致的状态。附加地,使用资源ID来指定哪些共享资源将被行为和事务修改,允许分布式计算系统并行地编排每个资源的修改,使得行为不竞争相同的共享资源,从而避免了死锁和竞争状况。
在行为或事务在修改共享资源的副本时失败的情况下,事务管理器防止行为或事务修改其余副本,并且抢占来自失败的行为或事务的结果。附加地,事务管理器通过回滚失败的行为或事务来重新建立跨共享资源的一致状态,从而将共享资源的每个副本还原到其在执行该行为或事务之前的状态。
本发明内容和以下具体实施方式中描述的特征和优点不是全部的。鉴于附图、说明书和权利要求,许多附加特征和优点对于本领域技术人员将是明显的。
附图说明
图1是图示根据一个实施例的分布式计算系统的框图。
图2是图示根据一个实施例的事务管理器的框图。
图3A和图3B图示了根据一个实施例的用于管理事务的示例过程。
图4A和图4B是图示根据一个实施例的用户请求、事务管理器、和状态管理器之间的交互的关系图。
图5A是图示根据一个实施例的用于提交行为句柄的过程的图。
图5B是图示根据一个实施例的用于裁剪行为栈的过程的图。
图6是图示根据一个实施例的回滚操作的图。
图7是图示根据一个实施例的用于在分布式计算系统上管理事务的过程的流程图。
图8是图示根据一个实施例的管理计算机的框图。
附图和以下描述仅通过说明的方式描述了某些实施例。本领域技术人员从以下描述中将容易地认识到,在不脱离本文描述的原理的情况下,可以采用本文说明的结构和方法的备选实施例。现在将详细参考几个实施例,其示例在附图中被图示。注意,在可行的地方,相似或相同的附图标记可以被用在附图中,并且可以指示相似或相同的功能。
具体实施方式
本文描述的方法解决了对分布式计算系统内的共享资源执行操作的技术挑战。利用共享资源执行操作可能会引入不正确的数据,因为分布式计算系统的多个组件会竞争相同的资源,并且可能修改资源,使得它们处于不一致状态。因为资源被共享,所以这些不一致的状态可能贯穿整个分布式计算系统传播不正确的数据,该不正确的数据要在后续过程中被使用。此外,竞争共享资源的多个组件可能经常导致死锁场景,这阻碍整个系统的进展。所公开的方法提供了一种事务管理器框架,其允许用户修改跨多个分区分布的共享资源的分离的副本,同时维持一致的状态。此外,使用包含相同共享资源的副本的多个分区可以负担复杂的事务,这些事务能够跨分区并发执行,同时避免死锁。
分布式计算系统
图1是图示分布式计算系统100的实施例的框图。分布式计算系统100包括多个分区102A-C(在本文中被分别地称为“分区102”)、管理计算机128、和网络126。除了跨分区102A-C中的每个分区分布的共享资源108A-C(在本文中被分别地称为“共享资源108”)的若干副本之外,每个分区102还包括计算104A-C的分离的集合和派发引擎106A-C(在本文中各自被分别地称为“计算104”和“派发引擎106”)。管理计算机128包括事务管理器130,事务管理器130接收由分布式计算系统100的用户生成的一个或多个用户请求132。
在一个实施例中,分区102A-C是服务器,每个服务器执行包括分布式载荷的一部分的单独的计算104A-C。分布式计算系统100的每个分区102包括其自身的共享资源108A-C的副本。分区102A-C使用共享资源108A-C以用于执行计算104A-C。例如,如果用户希望执行计算以确定1000辆卡车的车队的维护日程,则每个分区102A-C可以使用共享资源108A-C来引用每个卡车的实例并且相应地划分计算102A-C。因为每个分区包括相同共享资源108A-C的副本,所以由用户请求的、以创建资源的新实例、读取资源、更新现有资源、和/或删除现有资源的任何操作(在本文中被称为“CRUD操作”)必须对跨所有其他分区102A-C的共享资源的副本中的每个副本被另外地进行。分区102A-C由事务管理器130管理,以确保在一个分区102上所执行的任何CRUD操作都类似地被应用于其余分区102A-C上的共享资源108A-C的每个副本,以便在共享资源108A-C的所有副本之中维持一致的状态。
共享资源108A-C是可以通过由用户经由用户请求132来请求的CRUD操作接收修改的对象,或者被用于特定于由派发引擎106触发的给定分区102的单独计算104A-C。在图1中图示的示例实施例中,共享资源108A-C包括资源1-3,其中资源1是脚本,资源2是模板,资源3是日程。一些其他实施例可以包括与本文指定的资源相比附加地或更少的共享资源、和/或不同的资源。
针对该示例的目的,假设脚本是由用户定义的代码的块(例如,JavaScript),该代码的块指导每个分区102如何执行计算104A-C和/或通过CRUD操作来修改共享资源。例如,可以由用户通过指导事务管理器130“创建”脚本的用户请求132来创建脚本的新实例。类似地,响应于向事务管理器130提供“更新”脚本的用户请求132,脚本可以被更新为新状态。附加地,脚本可以经由“删除”用户请求132而被删除。但是,如果脚本的任何副本未能完成修改,则事务管理器跨所有分区102A-C将每个脚本的状态还原为接收失败的CRUD指令之前的脚本的状态。
模板是元数据对象,除了由脚本使用的别名之外,模板还包含脚本,该别名允许用户定义通用应用脚本,而不是生成针对每个计算104的新脚本。例如,如果用户想要确定卡车车队中的某辆卡车的里程,则用户可以定义一个模板,该模板使用别名(例如“里程”)来计算针对单个卡车的里程,并且创建针对每个卡车的该模板的实例(例如,计算)。模板可以处于活动状态或非活动状态。因为模板包含由脚本使用的别名,所以在对它们执行CRUD操作之前,它们必须处于非活动状态。
日程指示要何时由分区102A-C执行计算104A-C(例如,基于天、基于小时、基于周等)。每个分区102基于其被指定的日程执行其自身的计算104A-C的集合。为了使用户按日程执行CRUD操作,也必须将修改操作应用于模板。
可以通过被称为“行为”的CRUD操作来修改共享资源108A-C。例如,行为是用户希望使用单个共享资源来执行的工作的单位,诸如更新脚本或删除模板。每个行为一次仅修改一个共享资源108A-C,并且包括指示其修改哪个资源的资源ID。此外,每个行为被指派行为ID,该行为ID用作由事务管理器130接收的针对每个行为的唯一标识符。由于共享资源108A-C能够返回接收修改之前的先前状态,因此行为也支持“执行动作”和“撤消动作”。执行动作指示行为要执行的CRUD操作,例如,诸如创建脚本、更新模板或删除日程。撤消动作将共享资源108A-C的状态还原为执行动作的执行之前的状态,诸如在创建操作之后的删除操作。以该方式,如果给定行为未能成功修改共享资源108A-C,则其可以回滚。
可以一次被应用于若干共享资源108A-C的CRUD操作被称为“事务”。事务是表示工作的逻辑单元的行为的收集。如果事务的一个行为未能成功修改共享资源108,则事务管理器130防止事务的其余行为执行。例如,如果包括“更新模板”和“删除脚本”指令的事务最初未能更新模板,则事务管理器130抢占失败的事务防止其删除脚本。在该情况下,在失败的事务中已经执行的任何行为被回滚,以将共享资源108还原到事务的执行之前的先前状态。
分区102A-C和管理计算机128被配置为经由图1中所示的网络126进行通信,网络126可以包括使用有线和/或无线通信系统的局域网和/或广域网的任何组合。在一个实施例中,网络126使用标准通信技术和/或协议。例如,网络126包括使用诸如以太网、802.11、全球微波接入互操作性(WiMAX)、3G、4G、码分多址(CDMA)、数字用户线(DSL)等技术的通信链路。用于经由网络126进行通信的网络协议的示例包括多协议标签交换(MPLS)、传输控制协议/因特网协议(TCP/IP)、超文本传输协议(HTTP)、简单邮件传输协议(SMTP)、和文件传输协议(FTP)。在网络126上交换的数据可以使用任何适当的格式被表示,诸如超文本标记语言(HTML)或可扩展标记语言(XML)。在一些实施例中,可以使用任何合适的一种或多种技术来加密网络126的通信链路的全部或一些通信链路。
用户请求132是由管理计算机128的用户生成的请求,其指导事务管理器对共享资源108A-C执行行为、事务或计算104。对于所接收的每个用户请求132,事务管理器130创建行为、事务或计算104的新实例。例如,如果事务管理器130接收到以供更新脚本的两个连续的用户请求132,则事务管理器130为每个请求指派分离的行为ID,使得每个行为的生命周期可以被对应地监控。
事务管理器130接收请求,以修改被存储在分布式计算系统100的分区102A-C中的共享资源,并且基于所接收的请求指导每个分区102修改其自身的共享资源108的副本。每个分区102并行地对共享资源108A-C操作。因为将接收修改的共享资源108A-C在行为和/或事务被执行之前被标识,所以事务管理器130可以跨分区102A-C编排每个资源的修改,使得行为和/或事务不竞争相同的共享资源108。以该方式协调行为和事务允许并行执行,同时避免死锁和竞争状况。在行为或事务没能使用给定的共享资源108正确执行的情况下,事务管理器130将资源的状态还原为执行该行为或事务之前的状态。
事务管理器框架
图2是示出根据一个实施例的事务管理器130的框图。在图2中图示的实施例中,事务管理器130包括状态管理器200、状态存储202、资源句柄存储204、行为句柄存储206、回滚模块208、和恢复模块210。在一些其他实施例中,事务管理器130可以包括针对各种应用的附加的、更少的、或不同的组件。诸如网络接口、安全功能、载荷平衡器、故障转移服务器、管理和网络操作控制台等常规组件未被示出,以免模糊系统架构的细节。
状态管理器200向事务管理器130提供对共享资源108A-C的访问,使得它们可以通过事务和行为被修改。状态管理器200通过生成资源句柄来提供该访问。每个资源句柄用作被存储在分布式计算系统100的分区102A-C中的共享资源108的表示,并且包括用于修改共享资源108的行为栈。每个资源句柄具有其自身的资源锁。在获得对与共享资源相关联的行为栈的访问之前,事务管理器130必须录入资源锁,以防止在资源正在被修改时其他行为进入行为栈。在一个实施例中,行为栈作为后进先出(LIFO)栈操作,以LIFO顺序向行为栈添加、执行或回滚行为。共享资源108中的每个共享资源只有一个行为栈。然而,事务可以在给定的时间对多个行为栈操作,以协调行为的集体事务。当事务管理器130完成与给定行为栈相关联的每个事务或行为时,事务管理器130释放资源锁,并且状态管理器200从存储器释放资源句柄,从而有效地结束事务。当资源句柄在使用中时,状态管理器200将它们存储在资源句柄存储204中。
状态存储202由事务管理器130使用,以维持贯穿给定事务的共享资源108A-C的各种状态的清单(inventory)。状态存储202保留描述行为的执行的信息,事务管理器130可以使用该信息来确定由该行为修改的共享资源108A-C的稳定性。例如,如果在回滚操作失败之后,行为被设置以用于恢复,则事务管理器130将该行为标记为不稳定,并且状态存储202维持该行为不稳定的记录。在一个实施例中,状态存储202由用户定义和实施。在一些其他实施例中,状态存储202由事务管理器130维持和实施。
行为句柄存储206被用于存储由事务管理器130生成的行为句柄。行为句柄存储206中的每个行为句柄用作由事务管理器130在用户请求132中接收的行为的表示。行为句柄与资源句柄一起被使用,以修改被存储在分区102A-C中的共享资源108A-C。事务管理器130通过将对应的行为句柄添加到将要修改的资源句柄的行为栈,来对共享资源108A-C执行行为。一旦被执行,存储在分区102A-C中的与资源句柄相对应的共享资源108就被修改,并且行为句柄以LIFO顺序从行为栈被移除。仅在由用户提交了行为句柄、行为句柄被无效、或行为句柄被回滚模块208回滚之后,才可以从栈移除行为句柄。
事务管理器130可以基于行为的行为句柄,来标识关于行为的状态的细节。例如,行为句柄可以指示:行为是否已经被请求进行回滚、回滚是否已经被尝试、回滚或恢复操作是否已经被成功完成、行为是否已经被提交、行为是否已经被无效、行为是否正在从失败的回滚恢复、行为的生命周期是否已经完成、以及行为是否稳定。在一个实施例中,仅在行为尚未执行失败的回滚或者行为已经从失败的回滚恢复时,行为才可以符合稳定。将在下面的部分中详细讨论行为的回滚和恢复。
回滚模块208标识未能在给定资源句柄的行为栈上成功执行的行为句柄,并且尝试将资源句柄恢复到失败的执行之前的状态。为回滚指定的行为句柄不被回滚模块208移除,直到回滚被成功处理或行为句柄被无效(参考图5B进一步讨论)。回滚模块208仅可以对位于行为栈顶部的稳定行为句柄执行回滚操作。因为事务管理器130在对资源进行修改之前录入资源锁,所以回滚模块208在行为栈上处理回滚,以保证对相同共享资源108A-C操作的其他行为进入死锁、竞争状况,或者干扰分布式计算系统100的所预期的状态。回滚模块208向事务管理器130发送信号,该信号指示回滚是成功还是失败。如果回滚模块208未能正确地回滚失败的行为句柄,则事务管理器130必须尝试恢复操作。
恢复模块210管理未能正确地回滚并且以不一致状态被留在行为栈上的行为句柄的恢复。恢复模块210监控恢复任务是否已成功完成,从而将行为句柄还原回一致状态,并且返回指示成功恢复或恢复失败的信号。在成功恢复的情况下,不一致行为句柄的生命周期将以其从行为栈被移除而结束。不成功的恢复可能需要来自用户的手动干预。
用于执行事务的过程
图3A图示了根据一个实施例的用于管理分布式计算系统100中的事务的示例过程。通常在每个分区102A-C上执行修改共享资源108A-C的事务,以在由事务修改的共享资源108的每个副本中实现一致的状态。然而,在图3A中所示的示例中,为清楚起见仅示出了一个分区。在该示例中,事务管理器接收用户请求132以删除脚本。鉴于模板资源包含脚本以及由脚本使用的别名,事务管理器还必须在删除脚本之前将模板资源设置为非活动状态。这样做是为了保证在模板被修改时,没有其他脚本资源正在使用该模板。事务管理器获取针对模板和脚本资源的资源句柄,模板和脚本资源分别包括模板行为栈300和脚本行为栈302。模板行为栈300和脚本行为栈302允许事务管理器130访问模板和脚本资源,并且根据所请求的事务修改两个资源。
事务管理器130生成两个行为句柄:用于修改模板以使其不活动的第一行为句柄(例如,更新操作)、以及用于删除脚本的第二行为句柄。这些行为句柄在图3A中被示为“更新A1”行为句柄和“删除A1”行为句柄,其中下标指示它们在事务A内执行的顺序。在执行事务A之前,事务管理器130记录每个资源的状态,以便在失败的事务的情况下回滚到当前状态。例如,如果通过有效地去激活模板成功地执行了更新A1行为句柄,但删除A2行为句柄失败,则事务A将作为集体事务失败。在该示例中,回滚模块208可以使用在事务A的失败执行之前的所记录的状态信息,来将模板和脚本资源恢复到其先前状态。
图3B是图示根据一个实施例的用于执行图3A中所示的事务的示例执行顺序的流程图。在图3B中图示的实施例中,由于事务A和C位于它们相应的行为栈的底部,所以它们首先开始执行。通常,位于其行为栈底部的行为句柄如果在相同事务内没有相互依赖关系,则可以并发执行。此外,相同行为栈上的行为句柄必须顺序执行,从位于行为栈底部的行为句柄开始,并且依次处理上方的行为句柄,直到到达行为栈的顶部。这在图3B中被示出,其中事务通过执行更新A1和删除C1而开始306。尽管行为句柄更新A1和删除A2位于它们相应的行为栈的底部,但是行为句柄删除A2依赖于行为句柄更新A1,并且在执行前必须等待其完成。然而,日程行为栈304上的行为句柄删除C1不依赖于脚本行为栈302上的删除C2,并且可以开始执行。然而,即使日程行为栈304上的删除C1在事务A和B完成其相应的执行之前成功地完成了其执行,脚本行为栈302上的删除C2也必须等待执行,直到事务A和B成功地完成为止,因为删除A2必须等待更新A1并且删除B2必须等待更新B1。
用于执行行为的过程
图4A是图示根据一个实施例的用于修改共享资源108的过程的关系图。在图4A中图示的实施例中,事务管理器从用户请求接收用以执行行为400的指令,并且向状态管理器发送资源句柄请求402,以获取对将被修改的共享资源108的访问。状态管理器创建300针对所请求的共享资源的资源句柄,并且向事务管理器发送406资源句柄。事务管理器录入408针对资源句柄的行为锁,并且创建410表示所请求的行为的行为句柄。事务管理器将行为句柄放在412与将要修改的共享资源相对应的行为栈上。事务管理器执行414该行为。如果该行为具有成功416的执行,则事务管理器向生成了用户请求的用户发送结果418,并且通知420状态管理器它不再需要资源句柄。在从存储器释放资源句柄之前,状态管理器等待428用户提交行为句柄。然而,如果所执行的行为不成功416,则回滚模块尝试回滚422该行为。如果回滚成功,则事务管理器完成,不成功的行为句柄从行为栈被移除,并且共享资源恢复它在行为句柄的执行之前所保持的状态。如果回滚不成功,则恢复模块必须在所请求的行为被执行之前尝试恢复426共享资源的先前状态。
图4B是图示根据一个实施例的用于在行为栈上提交成功地被执行的行为句柄的过程的关系图。在图4B中图示的实施例中,事务管理器从用户请求接收提交行为426指令,并且再次向状态管理器发送资源句柄请求432,以重新获取之前被用于访问共享资源的资源句柄。状态管理器向事务管理器发送434资源句柄,并且事务管理器指导436资源句柄提交成功的行为句柄。在提交之后,状态管理器就从行为栈移除438行为句柄,并且标识行为句柄是否正在裁剪调用(clip-invoking)440。如果行为句柄正在裁剪调用,则下面的行为句柄的先前状态被无效,并且从行为栈被裁剪442。如果行为句柄不裁剪调用,则其被简单地从行为栈的顶部移除。事务管理器再次通知444状态管理器它不再需要资源句柄。状态管理器确定446行为栈是否是空的。如果任何行为句柄保留在行为栈上,则状态管理器不会从存储器释放资源句柄,直到每个行为句柄已经被成功地执行、已经被回滚、或从行为栈被裁剪为止。如果行为栈是空的,则状态管理器释放448资源句柄并且等待下一个请求。
用于管理行为栈的过程
图5A、图5B和图6图示了与管理资源行为栈相关联的若干过程,该资源行为栈与分布式计算系统100的每个分区102中的共享资源108相对应。在以下示例中,为简单起见,仅在一个分区上示出了资源行为栈。但是,在以下示例中所执行的行为将应用于跨分布式计算系统100中的所有分区的共享资源的每个副本。在每个示例中,资源行为栈500可以对应于脚本行为栈、模板行为栈或日程行为栈。
用于提交行为句柄的过程
图5A图示了根据一个实施例的用于在资源行为栈500上提交成功的行为句柄的过程。如图5中所示,在步骤A中,资源行为栈500是空的(即,没有行为句柄修改对应的共享资源),并且其初始状态是空的。在步骤B中,资源行为栈500接收请求创建资源的实例的行为句柄,并且将资源行为栈500的状态更新为状态1。在一个或多个实施例中,该行为可以对应于在脚本行为栈中创建脚本、在模板行为栈中创建模板、或在日程行为栈中创建日程。在步骤C中,行为句柄已经被成功地执行、已经由用户提交、并且被设置为从资源行为栈500被移除(如由虚线所指示的)。最后,在步骤D中,成功的行为句柄从资源行为栈500被移除,并且当前状态保持在状态1。
用于裁剪行为栈的过程
图5B图示了根据一个实施例的用于裁剪资源行为栈500的过程。如图5B中的步骤A所示,资源行为栈500已经接收到指导该行为栈更新为状态3的行为句柄,并且该资源行为栈因此具有3的当前状态。在一个或多个实施例中,该行为可以对应于更新脚本行为栈中的脚本、更新模板行为栈中的模板、或更新日程行为栈中的日程。然而,在行为句柄从资源行为栈500被移除之前,另一行为句柄到达以被执行。在步骤B中,资源行为栈500接收第二行为句柄,该第二行为句柄指导行为栈再次对与资源行为栈500相对应的共享资源执行更新。在步骤C中,第二行为句柄成功地执行,将资源行为栈更新为状态4,并且被设置为从资源行为栈500被移除(如由虚线所指示的)。因为第二更新行为句柄成功,所以它被提交并且从资源行为栈500被移除。然而,由于共享资源当前处于状态4,因此它可以被视为好像将资源行为栈更新为状态3的行为句柄从来没有被执行一样。如此,事务管理器130使第一更新行为句柄无效,并且在第二行为句柄被移除时将其从行为栈裁剪。这在步骤D中被图示,其中资源行为栈500再次是空的,并且具有4的当前状态。
用于回滚不成功的行为的过程
图6图示了根据一个实施例的用于回滚不成功的行为句柄的过程。在图6中图示的实施例的步骤A中,资源行为栈500最初具有与创建行为相对应的行为句柄,并且具有1的当前状态。在步骤B中,初始创建行为句柄已经执行,并且附加的创建行为句柄被添加到资源行为栈500。在该步骤中,没有创建行为句柄被提交或回滚,并且第二创建行为句柄尚未完成执行,使资源行为栈500处于1的当前状态而不是2。在步骤C中,第二创建行为句柄执行失败,因为由资源行为栈500引用的共享资源已经被第一创建行为句柄创建。第二创建行为句柄被标记用于回滚(如由虚线所指示的),并且当前状态保持为1。资源行为栈500由回滚模块208处理。因为第二创建行为句柄位于资源行为栈500的顶部,并且被标记用于回滚,因此它可以被立即回滚。回滚模块208对第二创建行为句柄执行回滚操作并且将其从资源行为栈500移除。在步骤D中,第一创建行为句柄被提交(如由虚线所指示的),并且后续从资源行为栈500被移除,留下1的当前状态。
用于管理事务的流程
图7图示了根据一个实施例的用于管理事务的过程。在图7中图示的实施例中,事务管理器从用户请求接收700对共享资源执行事务的请求,并且对共享资源执行710事务。如果事务成功,则它向事务管理器指示720成功的事务、提交730该事务、并且将结果返回740给分布式计算系统的用户。相反,如果事务失败,则指示720失败的事务,并且回滚模块回滚750该失败的事务。
示例管理计算机
图8是图示根据一个实施例的管理计算机800的示例的高级框图。所图示的是被耦合到芯片组804的至少一个处理器802。芯片组804包括存储器控制器集线器820和输入/输出(I/O)控制器集线器822。存储器806和图形适配器812被耦合到存储器控制器集线器820,并且显示设备818被耦合到图形适配器812。存储设备808、键盘810、指点设备814、和网络适配器816被耦合到I/O控制器集线器822。管理计算机800的其他实施例具有不同的架构。例如,在一些实施例中,存储器806被直接耦合到处理器802。
存储设备808包括一个或多个非瞬态计算机可读存储介质,诸如硬盘驱动器、压缩盘只读存储器(CD-ROM)、DVD、或固态存储器设备。存储器806保持由处理器802使用的指令和数据。指点设备814与键盘810结合使用,以将数据输入到管理计算机800中。图形适配器812在显示设备818上显示图像和其他信息。在一些实施例中,显示设备818包括用于接收用户输入和选择的触摸屏能力。网络适配器816将管理计算机800耦合到网络126。管理计算机800的一些实施例具有与图8中所示的那些相比不同的和/或其他的组件。
管理计算机800适于执行计算机程序模块,以用于提供本文所描述的功能性。如本文所使用的,术语“模块”是指被用于提供指定功能性的计算机程序指令和/或其他逻辑。因此,可以以硬件、固件、和/或软件来实施模块。在一个实施例中,由可执行计算机程序指令形成的程序模块被存储在存储设备808上、被加载到存储器806中、并且由处理器802执行。
附加考虑
以上描述的一些部分从算法过程或操作方面描述了实施例。这些算法描述和表示通常被数据处理领域的技术人员用来将其工作的实质有效地传达给本领域的其他技术人员。这些操作虽然在功能性上、计算性上、或逻辑上进行了描述,但应当理解为由计算机程序实施,计算机程序包括用于由处理器或等效电路执行的指令、微代码等。此外,在不失一般性的情况下,有时将功能操作的这些布置称为模块也是方便的。所描述的操作及其相关联的模块可以以软件、固件、硬件、或其任何组合而被实施。
如本文所使用的,对“一个实施例”或“实施例”的任何引用意指结合该实施例描述的具体元件、特征、结构、或特性被包括在至少一个实施例中。说明书中各个地方出现的短语“在一个实施例中”不一定全部指代相同的实施例。
可以使用表达“耦合”和“连接”及其派生词来描述一些实施例。应当理解的是,这些术语并不旨在彼此等同。例如,可以使用术语“连接”来描述一些实施例,以指示两个或更多的元件彼此直接物理或电接触。在另一个示例中,可以使用术语“耦合”来描述一些实施例,以指示两个或更多的元件直接物理或电接触。然而,术语“耦合”还可以意指两个或更多的元件不彼此直接接触,但是仍然彼此协作或交互。
如本文所使用的,术语“包括”、“包含”、“含有”、“具有”、“带有”或其任何其他变型旨在覆盖非排他性包括。例如,包括元素的列表的过程、方法、物品或装置不一定仅限于那些元素,而是可以包括未被明确列出或这样的过程、方法、物品或装置固有的其他元素。此外,除非明确相反地指出,否则“或”是指包括性“或”而不是排他性“或”。例如,条件A或B被以下中的任一个满足:A为真(或存在)并且B为假(或不存在),A为假(或不存在)并且B为真(或存在),以及A和B都为真(或存在)。
另外,“一”或“一个”的使用被用来描述本文中的实施例的元件和组件。这样做仅仅是为了方便并且给出本公开的一般意义。该描述应当被理解为包括一个或至少一个,并且单数也包括复数,除非明显地意指另外的意思。
在阅读本公开时,本领域技术人员将理解用于生成消息传递目录和那些目录的消息传递成员的系统和过程的另外的备选结构和功能设计。因此,尽管已经说明和描述了特定的实施例和应用,但是应当理解,所描述的主题不限于本文所公开的精确构造和组件,并且可以在本文公开的方法和装置的布置、操作和细节中做出对本领域技术人员而言明显的各种修改、改变和变化。
Claims (20)
1.一种用于使用分布式计算机系统来防止死锁的方法,所述方法包括:
由事务管理器接收对共享资源执行事务的请求,所述共享资源具有多个副本,所述多个副本中的每个副本位于一个或多个分区中;
基于所请求的所述事务,由所述事务管理器修改所述共享资源的状态,所述修改将所述共享资源的所述状态从第一状态改变为第二状态;
由所述事务管理器指示成功的事务或失败的事务,所述指示基于所述共享资源的所述状态;
响应于指示所述成功的事务:
由所述事务管理器将所述事务应用于所述多个副本;
由所述事务管理器提交所述共享资源和所述多个副本;以及
由所述事务管理器返回与经修改的所述共享资源相关联的结果;
响应于指示所述失败的事务:
由所述事务管理器防止所述事务修改所述多个副本;
由回滚模块将回滚应用于经修改的所述共享资源,所述回滚将所述共享资源的所述状态从所述第二状态还原为所述第一状态;
由所述回滚模块将所述回滚应用于所述副本;以及
由所述回滚模块指示成功的回滚或者失败的回滚。
2.根据权利要求1所述的方法,其中所述分区允许多个事务在每个副本上被并行地执行。
3.根据权利要求1所述的方法,其中所述修改包括:
由状态管理器生成一个或多个资源句柄,所述一个或多个资源句柄表示所述共享资源;
由所述事务管理器生成一个或多个行为句柄,所述一个或多个行为句柄中的每个行为句柄描述行为,所述行为将共享资源的状态从第一状态改变为第二状态;以及
由所述事务管理器将所述一个或多个行为句柄添加到一个或多个行为栈,所述一个或多个行为栈位于所述一个或多个资源句柄中。
4.根据权利要求1所述的方法,其中所述共享资源是脚本资源、模板资源、或者日程资源中的至少一项。
5.根据权利要求3所述的方法,其中所述行为在处理周期中修改一个共享资源。
6.根据权利要求1所述的方法,其中所述事务在处理周期中修改多个共享资源。
7.根据权利要求1所述的方法,其中指示所述失败的事务还包括:
由所述事务管理器防止对所述多个副本的修改;以及
由所述事务管理器抢占与所述共享资源相关联的结果。
8.根据权利要求3所述的方法,还包括:
由所述事务管理器从所述行为栈裁剪一个或多个行为句柄,所述一个或多个行为句柄具有无效,所述无效基于最近的行为句柄。
9.根据权利要求3所述的方法,其中所述行为栈是LIFO数据结构。
10.一种非瞬态计算机可读存储介质,具有被编码在其上的指令,所述指令在由处理器执行时,使所述处理器执行步骤,所述步骤包括:
由事务管理器接收对共享资源执行事务的请求,所述共享资源具有多个副本,所述多个副本中的每个副本位于一个或多个分区中;
基于所请求的所述事务,由所述事务管理器修改所述共享资源的状态,所述修改将所述共享资源的所述状态从第一状态改变为第二状态;
由所述事务管理器指示成功的事务或失败的事务,所述指示基于所述共享资源的所述状态;
响应于指示所述成功的事务:
由所述事务管理器将所述事务应用于所述多个副本;
由所述事务管理器提交所述共享资源和所述多个副本;以及
由所述事务管理器返回与经修改的所述共享资源相关联的结果;
响应于指示所述失败的事务:
由所述事务管理器防止所述事务修改所述多个副本;
由回滚模块将回滚应用于经修改的所述共享资源,所述回滚将所述共享资源的所述状态从所述第二状态还原为所述第一状态;
由所述回滚模块将所述回滚应用于所述副本;以及
由所述回滚模块指示成功的回滚或者失败的回滚。
11.根据权利要求10所述的非瞬态计算机可读存储介质,其中所述分区允许多个事务在每个副本上被并行地执行。
12.根据权利要求10所述的非瞬态计算机可读存储介质,其中所述修改包括:
由状态管理器生成一个或多个资源句柄,所述一个或多个资源句柄表示所述共享资源;
由所述事务管理器生成一个或多个行为句柄,所述一个或多个行为句柄中的每个行为句柄描述行为,所述行为将共享资源的状态从第一状态改变为第二状态;以及
由所述事务管理器将所述一个或多个行为句柄添加到一个或多个行为栈,所述一个或多个行为栈位于所述一个或多个资源句柄中。
13.根据权利要求10所述的非瞬态计算机可读存储介质,其中所述共享资源是脚本资源、模板资源、或者日程资源中的至少一项。
14.根据权利要求12所述的非瞬态计算机可读存储介质,其中所述行为在处理周期中修改一个共享资源。
15.根据权利要求10所述的非瞬态计算机可读存储介质,其中所述事务在处理周期中修改多个共享资源。
16.根据权利要求10所述的非瞬态计算机可读存储介质,其中指示所述失败的事务还包括:
由所述事务管理器防止对所述多个副本的修改;以及
由所述事务管理器抢占与所述共享资源相关联的结果。
17.根据权利要求12所述的非瞬态计算机可读存储介质,还包括:
由所述事务管理器从所述行为栈裁剪一个或多个行为句柄,所述一个或多个行为句柄具有无效,所述无效基于最近的行为句柄。
18.根据权利要求12所述的非瞬态计算机可读存储介质,其中所述行为栈是LIFO数据结构。
19.一种系统,包括:
计算机处理器;以及
被耦合到所述计算机处理器的计算机可读存储介质,所述计算机可读存储介质存储可执行代码,所述代码在由所述计算机处理器执行时执行步骤,所述步骤包括:
由事务管理器接收对共享资源执行事务的请求,所述共享资源具有多个副本,所述多个副本中的每个副本位于一个或多个分区中;
基于所请求的所述事务,由所述事务管理器修改所述共享资源的状态,所述修改将所述共享资源的所述状态从第一状态改变为第二状态;
由所述事务管理器指示成功的事务或失败的事务,所述指示基于所述共享资源的所述状态;
响应于指示所述成功的事务:
由所述事务管理器将所述事务应用于所述多个副本;
由所述事务管理器提交所述共享资源和所述多个副本;以及
由所述事务管理器返回与经修改的所述共享资源相关联的结果;
响应于指示所述失败的事务:
由所述事务管理器防止所述事务修改所述多个副本;
由回滚模块将回滚应用于经修改的所述共享资源,所述回滚将所述共享资源的所述状态从所述第二状态还原为所述第一状态;
由所述回滚模块将所述回滚应用于所述副本;以及
由所述回滚模块指示成功的回滚或者失败的回滚。
20.根据权利要求19所述的系统,其中所述修改包括:
由状态管理器生成一个或多个资源句柄,所述一个或多个资源句柄表示所述共享资源;
由所述事务管理器生成一个或多个行为句柄,所述一个或多个行为句柄中的每个行为句柄描述行为,所述行为将共享资源的状态从第一状态改变为第二状态;以及
由所述事务管理器将所述一个或多个行为句柄添加到一个或多个行为栈,所述一个或多个行为栈位于所述一个或多个资源句柄中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/950,031 | 2018-04-10 | ||
US15/950,031 US10698724B2 (en) | 2018-04-10 | 2018-04-10 | Managing shared resources in a distributed computing system |
PCT/IB2018/055020 WO2019197887A1 (en) | 2018-04-10 | 2018-07-06 | Managing shared resources in a distributed computing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112272823A true CN112272823A (zh) | 2021-01-26 |
CN112272823B CN112272823B (zh) | 2024-04-23 |
Family
ID=68096528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880094512.5A Active CN112272823B (zh) | 2018-04-10 | 2018-07-06 | 管理分布式计算系统中的共享资源 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10698724B2 (zh) |
JP (1) | JP7183384B2 (zh) |
CN (1) | CN112272823B (zh) |
AU (2) | AU2018418837A1 (zh) |
CA (1) | CA3096915C (zh) |
MX (1) | MX2020010647A (zh) |
WO (1) | WO2019197887A1 (zh) |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000045257A2 (en) * | 1999-01-28 | 2000-08-03 | Ati International Srl | Executing programs for a first computer architecture on a computer of a second architecture |
US20050091668A1 (en) * | 2003-10-23 | 2005-04-28 | Jon Cargille | Kernel-level transactions |
US20080154980A1 (en) * | 2006-12-21 | 2008-06-26 | International Business Machines Corporation | Rollback support in distributed data management systems |
US20090204785A1 (en) * | 1999-01-28 | 2009-08-13 | Ati International Srl | Computer with two execution modes |
US20100100689A1 (en) * | 2008-10-20 | 2010-04-22 | Microsoft Corporation | Transaction processing in transactional memory |
US20100274972A1 (en) * | 2008-11-24 | 2010-10-28 | Boris Babayan | Systems, methods, and apparatuses for parallel computing |
US20110145204A1 (en) * | 2009-12-11 | 2011-06-16 | International Business Machines Corporation | Transaction Recovery in a Transaction Processing Computer System Employing Multiple Transaction Managers |
CN102103518A (zh) * | 2011-02-23 | 2011-06-22 | 运软网络科技(上海)有限公司 | 一种在虚拟化环境中管理资源的系统及其实现方法 |
CN102521028A (zh) * | 2011-12-02 | 2012-06-27 | 华中科技大学 | 一种分布式环境下的事务内存系统 |
US20130151791A1 (en) * | 2011-12-13 | 2013-06-13 | Advanced Micro Devices, Inc. | Transactional memory conflict management |
WO2014003974A1 (en) * | 2012-06-26 | 2014-01-03 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
CN103995868A (zh) * | 2014-05-20 | 2014-08-20 | 科大国创软件股份有限公司 | 面向分布式系统的全局事务管理器及事务处理方法 |
CN105874435A (zh) * | 2013-10-31 | 2016-08-17 | 慧与发展有限责任合伙企业 | 分布式事务中的非阻塞注册 |
US20160328488A1 (en) * | 2015-05-08 | 2016-11-10 | Seth Lytle | Structure linked native query database management system and methods |
CN106254466A (zh) * | 2016-08-05 | 2016-12-21 | 河海大学常州校区 | 基于局域网的hdfs分布式文件共享方法 |
CN106776052A (zh) * | 2016-12-07 | 2017-05-31 | 金蝶软件(中国)有限公司 | 共享资源访问方法和装置 |
US20170161095A1 (en) * | 2014-07-15 | 2017-06-08 | Arm Limited | Call stack maintenance for a transactional data processing execution mode |
CN106874074A (zh) * | 2016-12-26 | 2017-06-20 | 哈尔滨工业大学 | 一种基于软件事务内存的并发缺陷规避系统及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7730286B2 (en) | 2005-12-30 | 2010-06-01 | Intel Corporation | Software assisted nested hardware transactions |
US20090064141A1 (en) | 2007-08-29 | 2009-03-05 | Microsoft Corporation | Efficient utilization of transactions in computing tasks |
US8275815B2 (en) | 2008-08-25 | 2012-09-25 | International Business Machines Corporation | Transactional processing for clustered file systems |
JP6248747B2 (ja) | 2014-03-28 | 2017-12-20 | 富士通株式会社 | 情報処理装置、制御方法および制御プログラム |
US10819756B2 (en) * | 2017-04-10 | 2020-10-27 | OpenLegacy Technologies Ltd. | Atomic transaction over non-persistent protocol(s) |
US10268502B2 (en) * | 2017-06-29 | 2019-04-23 | Intel Corporation | Methods and apparatus to perform atomic transactions in nonvolatile memory under hardware transactional memory |
-
2018
- 2018-04-10 US US15/950,031 patent/US10698724B2/en active Active
- 2018-07-06 AU AU2018418837A patent/AU2018418837A1/en not_active Abandoned
- 2018-07-06 JP JP2021504583A patent/JP7183384B2/ja active Active
- 2018-07-06 CA CA3096915A patent/CA3096915C/en active Active
- 2018-07-06 MX MX2020010647A patent/MX2020010647A/es unknown
- 2018-07-06 CN CN201880094512.5A patent/CN112272823B/zh active Active
- 2018-07-06 WO PCT/IB2018/055020 patent/WO2019197887A1/en unknown
-
2022
- 2022-04-28 AU AU2022202804A patent/AU2022202804B2/en active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000045257A2 (en) * | 1999-01-28 | 2000-08-03 | Ati International Srl | Executing programs for a first computer architecture on a computer of a second architecture |
US20090204785A1 (en) * | 1999-01-28 | 2009-08-13 | Ati International Srl | Computer with two execution modes |
US20050091668A1 (en) * | 2003-10-23 | 2005-04-28 | Jon Cargille | Kernel-level transactions |
US20080154980A1 (en) * | 2006-12-21 | 2008-06-26 | International Business Machines Corporation | Rollback support in distributed data management systems |
US20100100689A1 (en) * | 2008-10-20 | 2010-04-22 | Microsoft Corporation | Transaction processing in transactional memory |
US20100274972A1 (en) * | 2008-11-24 | 2010-10-28 | Boris Babayan | Systems, methods, and apparatuses for parallel computing |
US20110145204A1 (en) * | 2009-12-11 | 2011-06-16 | International Business Machines Corporation | Transaction Recovery in a Transaction Processing Computer System Employing Multiple Transaction Managers |
CN102103518A (zh) * | 2011-02-23 | 2011-06-22 | 运软网络科技(上海)有限公司 | 一种在虚拟化环境中管理资源的系统及其实现方法 |
CN102521028A (zh) * | 2011-12-02 | 2012-06-27 | 华中科技大学 | 一种分布式环境下的事务内存系统 |
US20130151791A1 (en) * | 2011-12-13 | 2013-06-13 | Advanced Micro Devices, Inc. | Transactional memory conflict management |
WO2014003974A1 (en) * | 2012-06-26 | 2014-01-03 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
CN105874435A (zh) * | 2013-10-31 | 2016-08-17 | 慧与发展有限责任合伙企业 | 分布式事务中的非阻塞注册 |
CN103995868A (zh) * | 2014-05-20 | 2014-08-20 | 科大国创软件股份有限公司 | 面向分布式系统的全局事务管理器及事务处理方法 |
US20170161095A1 (en) * | 2014-07-15 | 2017-06-08 | Arm Limited | Call stack maintenance for a transactional data processing execution mode |
US20160328488A1 (en) * | 2015-05-08 | 2016-11-10 | Seth Lytle | Structure linked native query database management system and methods |
CN106254466A (zh) * | 2016-08-05 | 2016-12-21 | 河海大学常州校区 | 基于局域网的hdfs分布式文件共享方法 |
CN106776052A (zh) * | 2016-12-07 | 2017-05-31 | 金蝶软件(中国)有限公司 | 共享资源访问方法和装置 |
CN106874074A (zh) * | 2016-12-26 | 2017-06-20 | 哈尔滨工业大学 | 一种基于软件事务内存的并发缺陷规避系统及方法 |
Non-Patent Citations (1)
Title |
---|
龙志平等: ""基于SIP 协议的网络用具设计和实现"", 《计 算 机 工 程》, vol. 33, no. 1 * |
Also Published As
Publication number | Publication date |
---|---|
JP2021521570A (ja) | 2021-08-26 |
WO2019197887A1 (en) | 2019-10-17 |
CA3096915C (en) | 2023-07-25 |
CN112272823B (zh) | 2024-04-23 |
US10698724B2 (en) | 2020-06-30 |
US20190310877A1 (en) | 2019-10-10 |
CA3096915A1 (en) | 2019-10-17 |
EP3776201A1 (en) | 2021-02-17 |
MX2020010647A (es) | 2021-01-15 |
AU2022202804A1 (en) | 2022-05-19 |
JP7183384B2 (ja) | 2022-12-05 |
AU2022202804B2 (en) | 2023-05-04 |
AU2018418837A1 (en) | 2020-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7760743B2 (en) | Effective high availability cluster management and effective state propagation for failure recovery in high availability clusters | |
US9740582B2 (en) | System and method of failover recovery | |
US10942823B2 (en) | Transaction processing system, recovery subsystem and method for operating a recovery subsystem | |
US8473783B2 (en) | Fault tolerance in distributed systems | |
EP0772136B1 (en) | Method of commitment in a distributed database transaction | |
US8185499B2 (en) | System and method for transactional session management | |
US8364643B2 (en) | Method and system thereof for restoring virtual desktops | |
CN112668386A (zh) | 使用机器人过程自动化用于文档处理的长时间运行工作流 | |
US20120047140A1 (en) | Cluster-Wide Read-Copy Update System And Method | |
US8863131B2 (en) | Transaction load reduction for process completion | |
US9553951B1 (en) | Semaphores in distributed computing environments | |
US9652491B2 (en) | Out-of-order execution of strictly-ordered transactional workloads | |
US20100262972A1 (en) | Deadlock avoidance | |
Memishi et al. | Fault tolerance in MapReduce: A survey | |
US6178429B1 (en) | Mechanism for ensuring SCM database consistency on multi-part operation boundaries | |
JP2000194678A (ja) | クラスタコンピュ―タシステムにおける高度に利用可能な非同期i/o | |
US11893041B2 (en) | Data synchronization between a source database system and target database system | |
US20150220517A1 (en) | Efficient conflict resolution among stateless processes | |
US11449241B2 (en) | Customizable lock management for distributed resources | |
US9063777B2 (en) | Consistent undeployment support as part of lifecycle management for business processes in a cluster-enabled BPM runtime | |
CN112272823B (zh) | 管理分布式计算系统中的共享资源 | |
González-Aparicio et al. | A transaction platform for microservices-based big data systems | |
US20120331148A1 (en) | Infrastructure management operational workflows | |
Albassam et al. | Model-Based Recovery and Adaptation Connectors: Design and Experimentation | |
US12003590B2 (en) | Performance-enhancing cross-system request handling via shared memory cache |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Aoshi Software Co.,Ltd. Address before: California, USA Applicant before: OSI Software Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |