CN102187321A - 对事务存储器中的副作用动作的事务处理 - Google Patents

对事务存储器中的副作用动作的事务处理 Download PDF

Info

Publication number
CN102187321A
CN102187321A CN2009801424164A CN200980142416A CN102187321A CN 102187321 A CN102187321 A CN 102187321A CN 2009801424164 A CN2009801424164 A CN 2009801424164A CN 200980142416 A CN200980142416 A CN 200980142416A CN 102187321 A CN102187321 A CN 102187321A
Authority
CN
China
Prior art keywords
affairs
action
spinoff
explorer
transaction
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
Application number
CN2009801424164A
Other languages
English (en)
Other versions
CN102187321B (zh
Inventor
D·格罗夫
A·达迪欧莫夫
Y·莱瓦诺尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102187321A publication Critical patent/CN102187321A/zh
Application granted granted Critical
Publication of CN102187321B publication Critical patent/CN102187321B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

一种处理系统包括事务存储器、第一和第二资源管理器和用于并行程序的事务管理器,该并行程序具有包括具有副作用动作的原子事务的线程。该第一资源管理器被配置成加入该原子事务并且管理与该副作用动作相关的资源。该第二资源管理器被配置成加入该原子事务并且管理该事务存储器。该事务管理器耦合到第一和第二资源管理器并且管理器被配置成从第一和第二资源管理接收关于是否提交该事务的投票。该副作用动作被延迟直至该事务提交之后或与针对该副作用动作的补偿动作一起应用。

Description

对事务存储器中的副作用动作的事务处理
背景
用于共享存储器多处理器的并发编程可以包括供多个线程访问相同数据的能力。该多个线程在多个处理器、多个处理器核心或附连到在处理器之间共享的存储器的其他种类的并行性上执行。共享存储器模型是最常部署的多线程通信方法。它允许以与顺序编程大致相同的方式创建多线程程序,这是有益的,因为并发编程本身是出了名地困难。为了实现共享存储器模型,并发编程小心地避免可能造成诸如竞争等不合需要的情形的并发访问和使用共享数据。
锁是避免并发访问共享数据问题的一种常见解决方案。锁是以下面的前提为中心的:由一个线程访问的变量将也可由其他线程访问,并且由此变量一次次只能由一个线程使用。锁允许一个线程控制变量而防止其他线程改变该变量直至它被解锁。虽然基于锁的协议是流行的,但是通常认为它们是难以使用的。以粗粒度的方式使用锁保护了相对较大量的数据,但是一般而言它们的使用不伸缩。线程即使在它们在不干涉时也彼此阻塞,并且锁成为争用源。或者,以更精细粒度的方式使用锁而同时缓解伸缩性问题引入了其他问题,因为用于确保正确性并避免死锁的锁约定变得复杂且易于出错。
另一解决方案是使用诸如软件事务存储器等事务存储器和/或使用编译器来实现应用程序,软件事务存储器提供软件运行时程序库和/或运行时执行环境中的语义。事务存储器是用于基于以下前提来控制对共享存储器的访问的并发控制机制:由一个线程使用的变量将不太可能被其他线程访问,且由此该变量可以在不对程序的可伸缩性造成恶劣结果的情况下。
基于粗糙锁的协议上的事务存储器的一个显著好处是提高的并发性。在事务存储器中,线程都无需等待访问数据,且不同的线程可以安全且同时修改数据结构中的通常在同一个锁保护下的不相交的部分。不管重试失败的事务的开销,在大多数现实的并发程序中,冲突出现得足够罕见,以使得即使在少量处理器和处理器核上在基于粗粒度锁的协议上有极大的性能增益。
然而,如果原子块包括副作用动作,则可能在使用事务存储器时发生问题。一般而言,副作用动作修改在当前线程之外可见的某个状态。副作用动作的常见示例包括输入/输出、系统调用、传统代码动作、内核动作、设备管理、托管环境之外的其他域中的动作等。如果中止并重新执行事务就会产生困难,因为副作用动作被重新执行并且可以在重复失败时被多次重复执行。非幂等副作用造成最大的困难。例如,由于与其他线程的存储器冲突,包括递增变量的动作和打印变量的副作用动作的原子块可以重复地失败并重新执行。在意图仅打印一次变量的情况下,在每次重新执行时打印变量是不合需要的。
其他解决方案已试图解决在事务存储器中使用的副作用动作的问题。一种流行的解决方案是简单地禁止使用这种副作用动作,但是许多研究人员一般同意对可编程性以及合成的限制在一般的使用中是不可接受的。其他提议的解决方案推迟动作直至它可能要提交,但是许多研究人员相信对动作重新排序导致非预期结果。相似地,将补偿块与动作相关联减少隔离并且提供了另一隐错源。又一提议的解决方案是不允许带有副作用动作的事务失败并且有利于带有副作用动作的事务来解决所有冲突。当然,一次只允许不超过一个带有副作用动作的事务。还有一解决方案是打破事务的原子性和隔离。所有这些提议的解决方案和其他解决方案以不同的方式受到限制,并且要求程序员的很大的努力。研究人员一般同意该问题还未被解决。
概述
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键因素或必要特征,也不旨在用于限定所要求保护的主题的范围。
在一个实施例中,一种处理系统处理具有副作用动作的原子事务。该事务是具有多个线程的并发程序中的线程的一部分。该系统包括事务存储器、第一和第二资源管理器和事务管理器。第一资源管理器加入原子事务并管理与副作用动作相关的资源。第二资源管理器加入原子事务并管理事务存储器。事务管理器耦合到第一和第二资源管理器并且接收来自第一和第二资源管理器的关于是否提交事务的投票。副作用动作被延迟直至事务提交之后或者与针对该副作用动作的补偿动作一起应用。
附图简述
包括、合并在本发明书内并构成其一部分的附图提供了对各实施例的进一步理解。附图示出各实施例,并且与说明书一起用于解释本发明的原理。其他实施例和各实施例的许多预期优点将随着参考下面的详细描述进行更好的理解而得到认识。附图的元素不一定相对于彼此而缩放。相同的附图标记指代对应的类似部分。
图1是示出实现本发明的特征的计算设备的许多可能的示例之一的框图。
图2是示出图1的示例计算系统中的示例事务系统的框图。
图3是示出在图2的事务系统中使用的示例过程的流程图。
详细描述
在以下详细描述中,对附图进行了参考,附图构成了实施例的一部分且在其中作为示例示出了可在其中实践本发明的各特定实施例。可以理解,可以使用其它实施例并且可以做出结构上或逻辑上的改变而不背离本发明的范围。因此,以下详细描述并不旨在限制,并且本发明的范围由所附权利要求来限定。还应理解,此处描述的各示例性实施例的特征可相互组合,除非另外具体注明。
图1示出了可用作操作环境并且包括诸如计算设备100之类的计算设备的是理想拿给计算机系统。在一基本配置中,计算设备100通常包括具有至少两个处理单元(即,处理器102)的处理器体系结构以及存储器104。取决于计算设备的确切配置和类型,存储器104可以是易失性的(如随机存取存储器(RAM))、非易失性的(诸如只读存储器(ROM)、闪存等)或两者的某种组合。该基本配置在图1中由线条106来例示。该计算设备可采取若干形式中的一种或多种。这些形式包括个人计算机、服务器、手持式设备、消费电子产品能(诸如视频游戏控制台)或其他设备。
计算设备100还可具有附加特征/功能。例如,计算设备100还可包括附加存储(可移动和/或不可移动),包括但不限于:磁盘或光盘或固态存储器,或者闪速存储设备,诸如可移动存储108和不可移动存储110。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等的任何合适的方法或技术实现的易失性和非易失性、可移动和不可移动介质。存储器104、可移动存储108和不可移动存储110都是计算机存储介质的示例。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、通用串行总线(USB)闪存驱动器、闪存卡、或能用于存储所需信息且可以由计算设备100访问的任何其它介质。任何这样的计算机存储介质都可以是计算设备100的一部分。
计算设备100包括允许计算设备100与其它计算机/应用程序/用户115通信的一个或多个通信连接114。计算设备100还可包括诸如键盘、定点设备(例如,鼠标)、笔、语音输入设备、触摸输入设备等的输入设备112。计算设备100还可包括诸如显示器、扬声器、打印机等的输出设备111。
计算系统100可被配置成运行操作系统软件程序以及一个或多个软件应用程序,这些程序构成系统平台。在一个示例中,计算系统100包括被称为托管环境的软件组件。托管环境可被包括为操作系统的一部分或者可在稍后被包括为软件下载。托管环境通常包括针对常见编程问题的预先编码的解决方案以帮助软件开发者创建诸如应用程序等在托管环境中运行的软件程序,并且该托管环境通常还包括虚拟机,该虚拟机允许软件应用程序在托管环境中运行以使得程序员不必考虑特定处理器102的能力。
图2示出了示例性事务处理系统200,可以在托管环境中调用该事务处理系统以支持带有事务存储器动作204和副作用动作206的原子块事务202。系统200包括诸如存储器资源管理器208和副作用资源管理器210之类的至少两个资源管理器,这两个资源管理器加入事务202中并且分别对应于动作204和206。资源管理器208、210各自管理参与事务202的动作适当资源212、214。资源管理器208、210的动作与事务管理器216协调,后者与资源管理器208、210一起工作以确保事务202的原子性和隔离。事务管理器216实现提交协议218。资源管理器208、210也参与提交协议218。
事务202是由单个线程执行的绑定到一起的动作序列。绑定到一起的动作的示例包括原子动作。线程完成对共享存储器中数据的修改,而不考虑在其他处理器上并发运行的其他线程。在完成了事务之后,事务存储器验证其他线程未对所访问的数据作出并发改变。确认改变并且如果确认成功,则在提交操作中使改变成为永久的。如果确认失败,则就撤消或“回退”改变,并且重新执行事务202直至确认成功。
事务拥有原子性和隔离的特征。事务是原子的并且在逻辑上是立即执行的。如果一个动作失败,则整个事务失败。同样,事务与其他线程隔离,因为在它们的中间状态中不向其他线程展示任何变量。当达到块的末尾时,提交、中止或回退和重新执行事务。因此,提交或失败的单元是事务而非整个进程,且状态返回到其原始形式而非展示中间变量。
资源管理器存在于传统的事务处理中,并且管理传统事务中的资源。但是传统的事务处理至今为止还未被用于自动地解决对存储器的并发访问,传统的事务处理通常使用锁。不像不控制对共享存储器的访问的传统事务,本示例的特征是事务存储器的管理是事务的一部分。如上所述,事务存储器提议一般地通过为开发人员知道如何处理的有限的错误情况集手动地制作解决方案来提供恢复功能,结果损害了生产力和质量结果。然而,本发明的示例将事务存储器包含到某些主流事务处理中。托管环境也可以提供或包括用于事务存储器环境中的预期动作的预先编程的适当的资源管理器。预先编程的资源管理器可以包括在当要使用资源时可以在管理环境中调用的库中。
在其中当适当的资源管理器不存在于用于托管事务存储器环境的资源管理器的预先编程的库中的许多情况下,程序开发人员可以编写资源管理器以供在程序中使用或将它添加到库中。
在一个示例中,资源管理器208、210被实现为易失性资源管理器而非持久性资源管理器。易失性资源管理器将它们的状态存储在易失性存储器中并且不支持事务的状态恢复。在事务处理系统200的情况下,易失性资源管理器比持久性资源管理器使用更少的系统资源。与多个易失性资源管理器很好地一起工作的示例性事务管理器216是可用的轻量事务管理器,该轻量事务管理器可以显著地减少由更持久的事务管理器导致的开销。其他示例可以包括持久性事务管理器或资源管理器。
资源管理器208、210自动地加入事务202,并且依照事务的结果提交或回退对它们的状态作出的改变。托管环境可以自动化事务中的加入以及就事务资源212、214对事务的管理。当将资源212、214加入到事务202中时,事务通知资源动作204、206希望对资源执行事务工作。动作204、206接着对资源212、214执行动作,且如果不发生错误,则事务管理器216应用提交协议218以要求资源212、214通过资源管理器208、210提交对其状态作出的改变。如果资源管理器208、210中任何一个遇到错误,则事务管理器216会导致回退在事务中作出的所有改变。否则,事务管理器216会导致提交事务。在任一情况下,事务管理器216可以将决定通知给资源管理器208、210。
在一个示例中,在另一资源管理器加入事务202之前,存储器资源管理器208担当事务管理器。一旦诸如副作用动作资源管理器210之类的另一资源管理器加入,则事务处理系统200将事务202提升为采用事务管理器216的事务202,并且存储器资源208成为资源管理器。
在包括副作用动作在事务存储器中的示例性事务202中,至少将两个资源管理器208、210加入到事务中。副作用动作206是对资源214产生不利影响的动作的良好示例。事务存储器动作204也实现资源管理器以管理其存储器改变。如果事务包括其他副作用动作,则可以部署其他资源管理器。
资源管理器210延迟副作用动作直至事务管理器216确认所有加入的资源管理投票决定提交事务之后。因此,在与其他并发执行的线程存储器冲突的情况下(如果在确认阶段之前作出冲突,一般会导致事务回退),不重新执行或重复地重新执行副作用动作。开发人员可以以适当的方式实现延迟副作用动作。在上述副作用打印动作的示例中,资源管理器延迟打印直至事务存储器确定事务不涉及与其他线程的存储器冲突。在事务管理器216调用提交协议218之前,用于打印操作的资源管理器可以在存储器中编写行。在事务管理器216将提交通知给资源管理器之后,资源管理器会访问存储器中的该行并打印它。存在开发人员以适于给定情况和示例类型的副作用动作的方式实现延迟副作用动作的其他类似的示例。
可以将方便的句法提供给开发人员以便于更容易地表达资源管理器210的延迟的动作。例如,内联延迟动作可以包括如下的句法:
Figure BPA00001350283700061
“AfterCommit(提交后)”的实现可以表示资源管理器210,该资源管理器210在事务管理器216将提交通知给资源管理器210的情况下或时执行延迟的动作。在一个实施例中,为了开发人员的利益,该资源管理器210的功能由系统一个事务实现一次。在该实施例中,开发人员指定通过“AfterCommit”原语内联的延迟动作。
开发人员可能优选补偿副作用动作,而非延迟它。如果不延迟副作用动作(例如,应用程序生成某一分配以继续事务),则应用程序可以继续事务内的副作用动作,但是注册要在回退时调用的补偿动作。如果由于重复的存储器冲突而多次重新执行事务,则就与每个副作用操作的执行一起注册补偿动作。因此,每个回退可以调用指定的补偿动作。如果选择补偿动作,则副作用会在每次重新执行期间在事务之外可见,但是最终会在回退时得到补偿。在重新执行时(在一个示例中是成功的),不会有补偿动作。在事务内允许非隔离的副作用动作的概念被称为“开放式嵌套事务”。开发人员自由地决定在给定的情况下开放式嵌套是否合适。补偿动作也可以被实现为资源管理器210,类似于延迟动作的情况。在一个实施例中,在系统执行事务中的特定副作用动作之后并非未能调用补偿动作的情况下,这种实现为补偿动作的调用提供了适当的可靠性。
如同延迟动作,可以向开发人员提供方便的句法,以便与更容易地表达补偿动作。例如,带有补偿的内联开放式嵌套动作可以包括如下的句法:
Figure BPA00001350283700071
本发明提出了从资源管理器中生成延迟和补偿动作,可以将资源管理器编程为保留可接受程度的隔离和可靠性。
图3在300处示出了示例性事务过程,用于在302处使用事务存储器中的副作用动作。事务中的动作调用资源并通知它们动作想要对其执行工作。过程在304处自动地加入适当的资源管理器以便对资源起作用。在事务涉及副作用动作的情况下,通过适当地加入的资源管理器来操作副作用操作。同样,存储器改变也是由为事务存储器实现的资源管理器210管理的。接着在306处可以将动作应用于资源。
事务结束或接近结束时,在308处事务管理器216调用提交协议218来确定在与其他线程有存储器冲突的情况下是否应该回退事务,或者是否应该提交改变。在一个示例中,提交协议218是包括准备阶段和提交阶段的两阶段提交协议。当从应用程序处接收到提交请求时,事务管理器216在310处通过对每一个加入的资源管理器208、210调用方法以获取关于事务的对应投票来开始准备阶段。资源管理器208、210中的每一个会分别通过调用准备方法或回退方法来投票决定提交或回退。例如,如果没有存储器冲突,则存储器动作资源管理器208可以投票决定提交。在提交协议218的第二阶段,事务管理器取决于它从资源管理器处接收到所有准备还是接收到至少一个回退来适当地响应。如果在312处事务管理器从全都已经调用准备方法的所有资源管理器接收到提交投票,则在314处事务管理器216为每个资源管理器调用提交方法。资源管理器接着可以使改变变得持久并完成提交或应用延迟的动作(如果有的话),并接着在释放事务202之后在316处继续。事务202继续应用程序。如果在312处的准备阶段中,任一资源管理器投票决定不提交,则过程如下处理失败。
如由存储器资源管理器208标识的存储器冲突导致的失败可以与用加入事务的其他资源管理器、非存储器资源管理器区分开来。例如,在318处,由存储器冲突导致的失败导致自动地重新执行事务。一般地,当重新执行最终成功时,包括事务202的应用程序不在意(oblivious)它们。使用诸如资源管理器210之类的其他资源管理器标识的失败导致事务中止或不重新执行。因此,如果在318处非存储器资源管理器投票反对提交事务,则在320处事务失败。如果在318处存储器资源管理器208投票反对提交事务,则在322处所有的资源管理器导致回退。在这种情况下,在322处执行任何补偿动作。如果每个资源管理器投票同意提交事务,则在314处事务提交并且执行任何延迟的动作。
尽管此处说明并描述了具体实施例,但本领域技术人员可以理解,可用各种替换和/或等价实现来替换此处示出并描述的具体实施例而不背离本发明的范围。本申请旨在覆盖此处讨论的具体实施例的任何改编或变型。因此,本发明旨在仅由权利要求书及其等效方案来限制。

Claims (20)

1.一种存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令用于控制包括对包括多个线程的并发程序的处理操作的计算机系统,其中所述多个线程中的至少一个包括具有副作用动作206的原子事务202,所述计算机可执行指令包括:
事务存储器212,其被配置成控制所述多个线程对共享存储器104的访问;
第一资源管理器210,其被配置成加入所述原子事务202并管理与所述副作用动作206相关的资源;
第二资源管理器208,其被配置成加入所述原子事务并管理所述事务管理器212;以及
事务管理器216,其耦合到所述第一和第二资源管理器208、210,其中所述事务管理器216被配置成从所述第一和第二资源管理器208、210接收关于提交所述事务的投票,并且其中所述副作用动作206是被延迟直至事务提交之后或与针对所述副作用动作的补偿动作一起应用中的至少一个。
2.如权利要求1所述的计算机可读介质,其特征在于,所述第一和第二资源管理器是易失性资源管理器。
3.如权利要求2述的计算机可读介质,其特征在于,所述事务管理器是轻量事务管理器。
4.如权利要求1所述的计算机可读介质,其特征在于,第一和第二资源管理器被包括在具有多个资源管理器的库中,所述多个资源管理器选择性地可供加入具有副作用动作的原子事务。
5.如权利要求4述的计算机可读介质,其特征在于,所述多个资源管理器中的至少一个资源管理器在托管环境中被预先编程。
6.如权利要求1所述的计算机可读介质,其特征在于,所述事务管理器被配置成接收提交协议以确定是否提交所述事务。
7.如权利要求1所述的计算机可读介质,其特征在于,所述提交协议是包括准备阶段和提交阶段的两阶段提交协议。
8.如权利要求1所述的计算机可读介质,其特征在于,所述副作用动作选择包括以下各项的组:输入或输出动作、系统调用、传统代码动作、内核动作、设备管理、以及所述托管环境之外的其他域中的动作。
9.如权利要求8所述的计算机可读介质,其特征在于,所述副作用动作是打印动作。
10.一种控制具有副作用动作的原子事务的方法,所述方法包括:
加入304至少一个非存储器资源管理器210;
加入304被配置成管理事务存储器212的存储器资源管理器208;
调用被配置成确定所述非存储器和存储器资源管理器是否投票同意提交所述事务的提交协议308;
如果所述非存储器和存储器资源管理器投票同意提交所述事务,则提交314所述事务,并且在提交所述事务之后应用所述副作用动作;
如果所述存储器资源管理器208未投票同意提交所述事务,但是所述非存储器资源管理器210投票同意提交所述事务,则重新执行312所述事务,其中所述副作用动作206是在重新执行所述事务的情况下不应用或者在重新执行所述事务的情况下与补偿动作一起应用中的至少一个;
如果所述非存储器资源管理器210中的至少一个未投票同意所述事务,则中止318所述事务,其中如果中止所述事务,则不应用所述副作用动作206。
11.如权利要求10所述的方法,其特征在于,所述原子事务包括原始状态并且其中重新执行所述事务包括回退到所述原始状态。
12.如权利要求11所述的方法,其特征在于,重新执行所述事务包括重新执行所述事务直至所述非存储器和存储器资源管理器投票同意提交所述事务或所述事务被中止。
13.如权利要求11所述的方法,其特征在于,在提交所述事务时使对所述原始状态的改变变得持久。
14.如权利要求10所述的方法,其特征在于,重新执行所述事务包括将开放式补偿动作应用于所述副作用动作。
15.如权利要求10所述的方法,其特征在于,提交所述事务包括应用延迟的动作。
16.如权利要求10所述的方法,其特征在于,确定第一和第二资源管理器是否投票同意提交所述事务包括对每一个加入的资源管理器调用方法以获取关于所述事务的对应投票。
17.如权利要求10所述的方法,其特征在于,如果不存在存储器冲突,则所述存储器资源管理器投票同意提交。
18.一种托管环境,其在计算设备上操作且被配置成操作具有包括副作用动作206的原子事务202的应用程序,所述托管环境包括:
事务存储器212;
资源管理器的库,其中所述资源管理器208、210中的至少两个被配置成由所述应用程序加入并且被加载到所述计算设备上的易失性存储器104中,其中所述资源管理器之一是被配置成加入管理与所述副作用动作相关的资源214的副作用资源管理器210,而另一资源管理器是被配置成加入管理所述事务存储器212的存储器资源管理器208;以及
事务管理器216,其被加载到所述易失性存储器106中并且耦合到所加入的资源管理器208、210,其中所述事务管理器被配置成从所加入的资源管理器接收关于是否提交所述事务的投票,其中所述存储器资源管理器208取决于在所述事务期间是否发生存储器冲突312来投票。
19.如权利要求18所述的托管环境,其特征在于,所述计算设备包括多个处理器,并且其中所述原子事务被包括在具有多个并发线程的应用程序的线程上。
20.如权利要求19所述的托管环境,其特征在于,所述事务存储器控制对所述计算设备上的共享数据的访问。
CN2009801424164A 2008-10-20 2009-10-16 对事务存储器中的副作用动作的事务处理 Active CN102187321B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/254,745 2008-10-20
US12/254,745 US8001548B2 (en) 2008-10-20 2008-10-20 Transaction processing for side-effecting actions in transactional memory
PCT/US2009/060960 WO2010048043A2 (en) 2008-10-20 2009-10-16 Transaction processing for side-effecting actions in transactional memory

Publications (2)

Publication Number Publication Date
CN102187321A true CN102187321A (zh) 2011-09-14
CN102187321B CN102187321B (zh) 2013-01-16

Family

ID=42109643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801424164A Active CN102187321B (zh) 2008-10-20 2009-10-16 对事务存储器中的副作用动作的事务处理

Country Status (8)

Country Link
US (1) US8001548B2 (zh)
EP (1) EP2350831A4 (zh)
KR (1) KR101669298B1 (zh)
CN (1) CN102187321B (zh)
BR (1) BRPI0918439A2 (zh)
CA (1) CA2736095C (zh)
RU (1) RU2510977C2 (zh)
WO (1) WO2010048043A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521023A (zh) * 2011-11-21 2012-06-27 华为软件技术有限公司 一种多系统的事务集成处理方法及系统
WO2016169048A1 (en) * 2015-04-24 2016-10-27 Hewlett Packard Enterprise Development Lp Transaction management and committing
CN107851061A (zh) * 2015-05-19 2018-03-27 净睿存储股份有限公司 远程存储器中硬件辅助的事务提交
CN112612551A (zh) * 2020-12-31 2021-04-06 中国农业银行股份有限公司 一种分布式事务的管理方法、装置、设备、介质及产品

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8166481B2 (en) * 2008-10-20 2012-04-24 Microsoft Corporation Transaction processing in transactional memory
US9417906B2 (en) * 2010-04-01 2016-08-16 Red Hat, Inc. Transaction participant registration with caveats
US9201919B2 (en) * 2013-05-07 2015-12-01 Red Hat, Inc. Bandwidth optimized two-phase commit protocol for distributed transactions
US9965320B2 (en) * 2013-12-27 2018-05-08 Intel Corporation Processor with transactional capability and logging circuitry to report transactional operations
US9858312B2 (en) 2014-10-14 2018-01-02 Red Hat, Inc. Transaction compensation for single phase resources
WO2017012667A1 (en) 2015-07-22 2017-01-26 Huawei Technologies Co., Ltd. Hardware transactional memory in non volatile memory with log and no lock
US11537437B2 (en) * 2020-05-20 2022-12-27 Sap Se Executing and re-executing a list of component handlers defined for a resource in response to detecting a creation, deletion, or modification of the resource

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2256514B (en) * 1991-05-21 1994-11-16 Digital Equipment Corp Commitment ordering for guaranteeing serializability across distributed transactions
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5504899A (en) * 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
US6094688A (en) * 1997-01-08 2000-07-25 Crossworlds Software, Inc. Modular application collaboration including filtering at the source and proxy execution of compensating transactions to conserve server resources
US6233585B1 (en) * 1998-03-12 2001-05-15 Crossworlds Software, Inc. Isolation levels and compensating transactions in an information system
US6529932B1 (en) 1998-04-01 2003-03-04 Microsoft Corporation Method and system for distributed transaction processing with asynchronous message delivery
JP2000010810A (ja) * 1998-06-22 2000-01-14 Toshiba Corp トランザクション処理のコミット制御方法および同方法が適用される計算機システム
US6728958B1 (en) * 1998-07-31 2004-04-27 Hewlett-Packard Development Company, L.P. Volatile resource manager with pre-prepare notification
US6463456B1 (en) * 1999-09-01 2002-10-08 International Business Machines Corporation Efficient registration for distributed transaction systems
US6546443B1 (en) * 1999-12-15 2003-04-08 Microsoft Corporation Concurrency-safe reader-writer lock with time out support
US7080119B2 (en) * 2001-07-17 2006-07-18 Bea Systems, Inc. System and method for transaction processing with delegated commit feature
US7328316B2 (en) * 2002-07-16 2008-02-05 Sun Microsystems, Inc. Software transactional memory for dynamically sizable shared data structures
CN1682191A (zh) * 2002-09-12 2005-10-12 国际商业机器公司 适于集成非同类过程的数据处理系统
GB0227825D0 (en) * 2002-11-29 2003-01-08 Ibm High-performance lock management for flash copy in n-way shared storage systems
US6938130B2 (en) * 2003-02-13 2005-08-30 Sun Microsystems Inc. Method and apparatus for delaying interfering accesses from other threads during transactional program execution
US7206903B1 (en) 2004-07-20 2007-04-17 Sun Microsystems, Inc. Method and apparatus for releasing memory locations during transactional execution
CN100561920C (zh) * 2004-12-27 2009-11-18 北京航空航天大学 Web服务事务处理系统及处理方法
US8266609B2 (en) 2005-12-07 2012-09-11 Microsoft Corporation Efficient placement of software transactional memory operations around procedure calls
US20070198979A1 (en) 2006-02-22 2007-08-23 David Dice Methods and apparatus to implement parallel transactions
US7620850B2 (en) 2006-06-09 2009-11-17 Sun Microsystems, Inc. Breakpoints in a transactional memory-based representation of code
US8010550B2 (en) 2006-11-17 2011-08-30 Microsoft Corporation Parallelizing sequential frameworks using transactions
US7949841B2 (en) * 2006-12-08 2011-05-24 Microsoft Corporation Protection of critical memory using replication
US8108631B2 (en) * 2008-07-18 2012-01-31 Oracle America, Inc. Transactional memory support for non-coherent shared memory systems using selective write through caches
US20100083268A1 (en) * 2008-09-29 2010-04-01 Morris Robert P Method And System For Managing Access To A Resource By A Process Processing A Media Stream

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521023A (zh) * 2011-11-21 2012-06-27 华为软件技术有限公司 一种多系统的事务集成处理方法及系统
CN102521023B (zh) * 2011-11-21 2015-03-11 华为软件技术有限公司 一种多系统的事务集成处理方法及系统
WO2016169048A1 (en) * 2015-04-24 2016-10-27 Hewlett Packard Enterprise Development Lp Transaction management and committing
CN107851061A (zh) * 2015-05-19 2018-03-27 净睿存储股份有限公司 远程存储器中硬件辅助的事务提交
CN112612551A (zh) * 2020-12-31 2021-04-06 中国农业银行股份有限公司 一种分布式事务的管理方法、装置、设备、介质及产品

Also Published As

Publication number Publication date
KR20110085994A (ko) 2011-07-27
EP2350831A4 (en) 2015-07-08
CA2736095A1 (en) 2010-04-29
CN102187321B (zh) 2013-01-16
WO2010048043A3 (en) 2010-06-10
EP2350831A2 (en) 2011-08-03
US8001548B2 (en) 2011-08-16
WO2010048043A2 (en) 2010-04-29
RU2011115421A (ru) 2012-10-27
US20100100885A1 (en) 2010-04-22
KR101669298B1 (ko) 2016-10-25
BRPI0918439A2 (pt) 2015-11-24
RU2510977C2 (ru) 2014-04-10
CA2736095C (en) 2016-11-29

Similar Documents

Publication Publication Date Title
CN102187321B (zh) 对事务存储器中的副作用动作的事务处理
CN102282548B (zh) 事务性的存储器中的事务处理
CN101652761B (zh) 使用缓存写和强制串行化次序的事务存储器
CN102929702B (zh) 事务存储器中的并行嵌套事务
CN101535950B (zh) 用于事务应用排序和争用管理的方法和系统
CN101495976B (zh) 用于直接更新软件事务存储器的方法和系统
CN100410872C (zh) 用于增强的运行时间主机支持的方法和设备
CN101681294B (zh) 用于存储器事务分组的方法和系统
JP3512439B2 (ja) チェックイン・チェックアウトモデルにおける施錠方式
US20080040524A1 (en) System management mode using transactional memory
US20220182295A1 (en) Distributed saga execution and coordination
Mével et al. Cosmo: a concurrent separation logic for multicore OCaml
JP2004164594A (ja) 長時間のトランザクションを管理する方法およびシステム
Keedy On structuring operating systems with monitors
CA2704511C (en) Improvements in and relating to financial systems
US20130086013A1 (en) System and method of saving files to a version control system ("vcs") repository
Houston et al. The CORBA Activity Service Framework for supporting extended transactions
CN113961315A (zh) 事务处理方法、装置、设备和存储介质
Jiang et al. CovaTM: a transaction model for cooperative applications
Kaiser Interfacing cooperative transactions to software development environments
Ward et al. Spring Batch-Reference Documentation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150513

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150513

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.