CN101689138B - 处理嵌套事务的错误地破坏的父事务 - Google Patents

处理嵌套事务的错误地破坏的父事务 Download PDF

Info

Publication number
CN101689138B
CN101689138B CN2008800224166A CN200880022416A CN101689138B CN 101689138 B CN101689138 B CN 101689138B CN 2008800224166 A CN2008800224166 A CN 2008800224166A CN 200880022416 A CN200880022416 A CN 200880022416A CN 101689138 B CN101689138 B CN 101689138B
Authority
CN
China
Prior art keywords
affairs
compensation map
father
writing
write
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
Application number
CN2008800224166A
Other languages
English (en)
Other versions
CN101689138A (zh
Inventor
M·M·马格鲁德
D·德特勒夫
J·J·达菲
G·格雷费
V·K·格罗弗
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 CN101689138A publication Critical patent/CN101689138A/zh
Application granted granted Critical
Publication of CN101689138B publication Critical patent/CN101689138B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2329Optimistic concurrency control using versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details

Abstract

公开了用于在事务存储器系统中检测嵌套子事务的错误地破坏的父事务的各种技术和方法。在回退嵌套事务时,在给定嵌套事务由于回退而每一次释放写锁定时跟踪释放计数。例如,可以使用写异常中止补偿映射来跟踪每一嵌套事务的释放计数。嵌套事务释放写锁定的次数被记录在它们相应的写异常中止补偿映射中。可以在父事务的确认期间使用释放计数来确定失败的乐观读取事实上是否有效。如果嵌套子事务的聚集的释放计数是造成版本号差的原因,则乐观读取是有效的。

Description

处理嵌套事务的错误地破坏的父事务
背景
软件事务存储器(STM)是类似于数据库事务的、用于在并发计算中控制对共享存储器的访问的并发控制机制。事务存储器的上下文中的事务是对共享存储器执行一系列读取和写入的一段代码。STM用作传统锁定机制的替换。STM允许更简单地编写并发程序。事务指定应当如同其隔离地执行一样的代码序列。这一隔离错觉可以通过对象的细粒度锁定,以及通过以在发现事务与某一其它事务相冲突的情况下允许回退该事务的副作用的模式执行来实现。如果对于数据访问所生成的代码被修改成包括对这些锁定和回退机制的支持,则可以说该访问被“事务化”。
许多STM系统支持嵌套事务,从而允许高效地合成使用事务所创作的不同组件。如果嵌套事务的影响是与其包含(即,父)事务相同的隔离边界的一部分,则认为它是封闭的。在封闭的嵌套事务提交时,其影响不对系统的其余部分变得可见。相反,其影响变成父事务的一部分,仍然在进行中,并且只有在父事务最终提交时才变得对系统的其余部分可见。在嵌套事务回退时,其临时影响被撤消并且父事务的状态恢复到该嵌套事务开始的点处。
使用就地写入和乐观读取的STM系统使用与每一可锁定存储器区域相关联的版本号来指示何时对共享数据作出更改。读取事务将乐观地记录存储器(对象、高速缓存行等)的版本号而不锁定该数据。在版本号在事务的整个生命周期不改变的情况下,该事务可以提交。在释放其写锁定时,写入事务递增版本号以用于提交或回退。版本号在回退期间必须增加,因为写入事务临时就地更新了数据。这些更新对读取事务是可见的,并且必须通知该事务不能提交,因为可能读取了不一致的数据。
在回退时,写入尚未被父事务写入的数据的嵌套事务必须递增版本号,如同非嵌套(最高级)事务一样。然而,考虑其中父事务乐观地读取变量X并且嵌套子事务第一次写入变量X的情况。父事务将在其日志中记录X的版本号,如版本V1。嵌套事务将开始并取得对X的写锁定。如果嵌套事务提交,则没有问题:写锁定未释放并被转移到父事务,并且父事务保持一致,能够提交。然而,如果嵌套事务出于任何原因而回退,则它必须释放写锁定并将X的版本号递增成V2。父事务将在提交时表现得不一致。X的版本号是V2,但父事务在X是V1的时候读取了它,并且没有是谁将该版本号更改成V2的记录。看起来父事务与另一事务冲突,但实际上是嵌套子事务使得版本号增加,因而这实际上不是冲突。父事务被其子事务的回退操作所破坏。这一问题使得STM系统经历父事务谬误的重新执行。
概述
公开了用于在事务存储器系统中检测嵌套子事务的错误地破坏(doom)的父事务的各种技术和方法。在回退嵌套事务时,在给定嵌套事务每一次释放写锁定时跟踪释放计数。例如,可以使用写异常中止补偿映射来跟踪回退的每一嵌套事务所释放的每一锁定的释放计数。嵌套事务释放写锁定的次数被记录在它们相应的写异常中止补偿映射中。可以在父事务的确认期间使用释放计数来确定明显无效的乐观(optimistic)读取实际上是否是有效的。
在一个实现中,在处理父事务日志时,所看到的对于嵌套子事务的任何写异常中止补偿映射被聚集到父事务中的聚集的写异常中止补偿映射中。如果乐观读取由于版本号不匹配而未能确认,则咨询聚集的写异常中止补偿映射来检索嵌套子事务对特定变量的写锁定释放计数。如果版本号差与嵌套子事务的写锁定释放计数正好匹配,则乐观读取是有效的。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
图1是一个实现的计算机系统的图示。
图2是在图1的计算机系统上操作的一个实现的事务存储器应用程序的图示。
图3是图1的系统的一个实现的高级处理流程图。
图4是图1的系统的一个实现的处理流程图,其示出在创建和维护写异常中止补偿映射时所涉及的各阶段。
图5是图1的系统的一个实现的处理流程图,其示出在事务回退期间聚集的写异常中止补偿映射时所涉及的各阶段。
图6是图1的系统的一个实现的处理流程图,其示出在事务回退期间使用写异常中止补偿映射来避免嵌套事务的错误地破坏的父事务时所涉及的各阶段。
详细描述
此处的技术和方法可以在事务存储器系统的一般上下文中描述,但本系统也用作除此之外的其它目的。在一个实现中,此处所描述的一个或多个技术可被实现为诸如微软
Figure G2008800224166D00031
.NET框架等框架程序内的、或来自为开发者提供开发软件应用程序的平台的任何其它类型的程序或服务的特征。在另一实现中,此处所描述的一个或多个技术被实现为涉及开发在并发环境中执行的应用程序的其它应用程序的特征。
在一个实现中,提供了允许检测和避免嵌套子事务对父事务的错误破坏的事务存储器系统。此处使用的术语“破坏”旨在包括因为它们执行了对后来被其它事务写入的一个或多个变量的一个或多个乐观读取而稍后将被回退的事务。在尝试提交这样的事务时,失败的乐观读取将使得该事务回退和重新执行。此处使用的术语“错误地破坏”旨在包括由于失败的乐观读取而表现得被破坏、但归因于嵌套事务所执行的操作该乐观读取实际上是有效的因此其实际上未被破坏的任何事务。此处使用的术语“嵌套事务”旨在包括其影响被封闭在另一事务的隔离边界之内的任何事务。封闭嵌套事务的事务被称为该嵌套事务的“父事务”,并且嵌套事务通常被称为“子事务”。以按锁定释放计数来跟踪每一嵌套子事务释放写锁定的次数。在一个实现中,在写异常中止补偿映射中跟踪这些计数。此处使用的术语“写异常中止补偿映射”旨在包括存储每一嵌套子事务释放的每一锁定的按锁定释放计数的数据结构。在事务确认或回退期间,多个写异常中止补偿映射可以聚集到聚集映射中。
在确认父事务时,如果乐观读取使确认失败,则咨询当前聚集的写异常中止补偿映射来查看事务存储器字中的版本号差是否与嵌套子事务对于该对象或存储器区域的聚集释放计数正好匹配。如果是,则乐观读取实际上是有效的,并且父事务不应被错误地破坏。此处使用的术语“事务存储器字(TMW)”旨在包括提供给每一事务的、跟踪关于给定事务的诸如锁定状态和版本号等各种信息的数据结构。例如,TMW可包括版本号和读取者的列表/计数和/或指示符。在一个实现中,读取者的列表/计数和/或指示符可包括在给定时间点访问特定值的读取者的数量的计数。在另一实现中,读取者的列表/计数和/或指示符可包括在给定时间点访问特定值的特定读取者(例如,悲观)的列表。在又一实现中,读取者的列表/计数和/或指示符仅仅是指示在给定时间点存在访问特定值的一个或多个读取者(例如,悲观)的标志或其它指示符。这些仅是示例,并且此处对术语TMW的使用旨在涵盖用于跟踪事务状态的各种机制。
如图1所示,用于实现本系统的一个或多个部分的示例性计算机系统包括诸如计算设备100等计算设备。在其最基本的配置中,计算设备100通常包括至少一个处理单元102和存储器104。取决于计算设备的确切配置和类型,存储器104可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。该最基本配置在图1中由虚线106来示出。
另外,设备100还可具有附加特征/功能。例如,设备100还可包含附加存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。这样的附加存储在图1中由可移动存储108和不可移动存储110示出。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器104、可移动存储108和不可移动存储110都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可用于存储所需信息并且可由设备100访问的任何其它介质。任何这样的计算机存储介质都可以是设备100的一部分。
计算设备100包括允许计算设备100与其它计算机/应用程序115进行通信的一个或多个通信连接114。设备100还可以具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等输入设备112。还可以包括诸如显示器、扬声器、打印机等输出设备111。这些设备在本领域中公知且无需在此处详细讨论。在一个实现中,计算设备100包括事务存储器应用程序200。事务存储器应用程序200将在图2中更详细地描述。
现在转向图2并继续参考图1,示出了在计算设备100上操作的事务存储器应用程序200。事务存储器应用程序200是驻留在计算设备100上的应用程序中的一个。然而,可以理解,事务存储器应用程序200可另选地或另外地被具体化为一个或多个计算机上的计算机可执行指令和/或与图1所示的不同的变型。另选地或另外地,事务存储器应用程序200的一个或多个部分可以是系统存储器104的一部分、可以在其它计算机和/或应用程序115上、或可以是计算机软件领域的技术人员能想到的其它此类变型。
事务存储器应用程序200包括负责执行在此描述的技术中的一些或全部的程序逻辑204。程序逻辑204包括用于在嵌套事务第一次回退并释放写锁定时创建写异常中止补偿映射(WACM)的逻辑206(如以下参考图4描述的);用于在WACM的每一条目中在给定事务存储器字中记录嵌套事务释放写锁定的次数的逻辑208(如以下参考图4描述的);用于在父事务日志中保持WACM的逻辑210(如以下参考图4描述的);用于在特定嵌套事务重新执行并再次回退的情况下使用并更新同一WACM的逻辑212(如以下参考图4描述的);用于在适当时聚集WACM的逻辑214(如以下参考图5描述的);用于在事务确认期间使用WACM来确定失败的乐观读取真正有效还是无效的逻辑216(如以下参考图6描述的);以及用于操作该应用程序的其它逻辑220。
现在转向图3-6并继续参考图1-2,更详细地描述了用于实现事务存储器应用程序200的一个或多个实现的各阶段。在某些实现中,图3-6的过程至少部分地在计算设备100的操作逻辑中实现。图3是事务存储器应用程序200的高级处理流程图。该过程在起始点240处开始。在嵌套事务回退期间所释放的任何写锁定都有可能破坏父事务(阶段242)。在回退事务时,记忆对版本号进行递增的每一次(阶段244)。系统针对回退的每一嵌套事务来跟踪这一信息(阶段246)。在事务确认期间,系统使用这一信息来确定使确认失败的特定乐观读取是否因为重新执行嵌套子事务所造成的差异而实际上是有效的(阶段248)。这些阶段在图4-6中更详细地描述。该过程在结束点250处结束。
图4示出在创建和维护写异常中止补偿映射时所涉及的各阶段的一个实现。该过程在起始点270处开始,在那里在嵌套事务第一次回退并释放写锁定时创建由唯一锁定标识符键控的写异常中止补偿映射(WACM)(阶段272)。该WACM中的每一条目在给定事务存储器字上记录嵌套事务释放写锁定的次数(阶段274)。
WACM保持在父事务的日志中,并且在父事务所进行的所有乐观读取之后在嵌套事务开始时被排序(阶段276)。如果特定嵌套事务重新执行并再次回退,则系统使用同一WACM并用任何新写锁定释放来更新它(阶段278)。如果嵌套事务再次得到其在先前执行时所得到的锁定,则在WACM中递增对于该事务存储器字的计数(阶段280)。该过程在结束点282处结束。
图5示出在事务回退期间在聚集WACM时所涉及的各阶段的一个实现。该过程在起始点290处开始,在那里还作为许多嵌套子事务的父事务的嵌套事务随时间可能在其日志中散布有多个WACM(阶段292)。如果在事务回退期间遭遇多个WACM,则将归因于嵌套子事务的所有WACM聚集到单个WACM并将其置于父事务的日志中(阶段294)。该过程在结束点296处结束。
图6示出在事务确认期间使用WACM来避免错误地破坏嵌套事务的父事务时所涉及的各阶段的一个实现。该过程在起始点310处开始,在那里在逆序处理父事务的日志时,在处理乐观读取条目时,将所看到的任何WACM聚集到临时WACM以用于确认过程(阶段312)。如果乐观读取由于版本号不匹配而未能确认(判定点314),则使用TMW地址作为键来咨询临时WACM(阶段316)。如果存在关于该TMW地址的匹配条目(判定点318),则系统计算与该条目相关联的计数是否与版本号差正好匹配(判定点320)。如果计数与版本号差正好匹配(判定点320),则乐观读取是有效的并且差仅仅是由于重新执行嵌套子事务所造成的(阶段322)。如果否,则乐观读取是无效的并且是由于其它事务的提交/回退所造成的(阶段324)。对整个父事务日志重复这些阶段(判定点326)。该过程在结束点328处结束。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。落入在此所述和/或所附权利要求所描述的实现的精神的范围内的所有等效方案、更改和修正都期望受到保护。
例如,计算机软件领域普通技术人员将认识到,此处所讨论的示例可以在一个或多个计算机上不同地组织来包括比这些示例中所描绘的更少或更多选项或特征。

Claims (18)

1.一种用于在事务存储器系统中避免嵌套子事务的错误地破坏的父事务的方法,所述方法包括以下步骤:
在回退嵌套子事务时,在每次释放写锁定时跟踪释放计数(206);以及
在父事务的确认期间,使用所述释放计数来确定使确认失败的乐观读取实际上是否是有效的(216)。
2.如权利要求1所述的方法,其特征在于,如果版本号差与所述释放计数正好匹配,则所述使确认失败的乐观读取实际上是有效的(320)。
3.如权利要求1所述的方法,其特征在于,在写异常中止补偿映射中跟踪所述释放计数(274)。
4.如权利要求3所述的方法,其特征在于,为所述嵌套子事务中的每一个创建所述写异常中止补偿映射(272)。
5.如权利要求4所述的方法,其特征在于,在所述嵌套子事务中的相应一个事务第一次回退并释放写锁定时,为该相应事务创建所述写异常中止补偿映射(272)。
6.如权利要求4所述的方法,其特征在于,将所述嵌套子事务中的每一个的所述写异常中止补偿映射聚集到聚集的写异常中止补偿映射中(312)。
7.如权利要求6所述的方法,其特征在于,在处理所述父事务的事务日志时使用所述聚集的写异常中止补偿映射来确定所述失败的乐观读取实际上是否是有效的(312)。
8.如权利要求7所述的方法,其特征在于,所述父事务的事务日志是以逆序来处理的(312)。
9.一种用于在事务存储器系统中避免嵌套子事务的错误地破坏的父事务的方法,所述方法包括以下步骤:
为嵌套子事务创建写异常中止补偿映射(206);
在所述写异常中止补偿映射中记录所述嵌套子事务释放写锁定的次数(208);以及
在父事务的确认期间使用所述写异常中止补偿映射来确定失败的乐观读取实际上是否是有效的(216)。
10.如权利要求9所述的方法,其特征在于,在所述嵌套子事务第一次回退并释放写锁定时创建所述写异常中止补偿映射(272)。
11.如权利要求9所述的方法,其特征在于,如果版本号差与所述嵌套子事务释放所述写锁定的次数正好匹配,则所述失败的乐观读取实际上是有效的(320)。
12.如权利要求9所述的方法,其特征在于,所述写异常中止补偿映射保持在所述父事务的事务日志中(276)。
13.如权利要求12所述的方法,其特征在于,在所述父事务所进行的所有乐观读取之后在所述嵌套子事务开始时,对所述写异常中止补偿映射进行排序(276)。
14.如权利要求9所述的方法,其特征在于,在父事务回退期间,将所述写异常中止补偿映射与遭遇到的其它嵌套子事务的其它写异常中止补偿映射聚集在一起,以形成聚集的写异常中止补偿映射(294)。
15.如权利要求14所述的方法,其特征在于,将所述聚集的写异常中止补偿映射置于所述父事务的事务日志中(294)。
16.如权利要求15所述的方法,其特征在于,在以逆序处理所述父事务的事务日志时,将所述聚集的写异常中止补偿映射置于所述父事务的事务日志中(312)。
17.一种用于在事务确认期间使用写异常中止补偿映射来避免错误地破坏嵌套子事务的父事务的方法,所述方法包括以下步骤:
在处理父事务日志时,将在嵌套子事务中所看到的任何写异常中止补偿映射聚集到聚集的写异常中止补偿映射中(312);
如果乐观读取由于版本号不匹配而未能确认(314),则咨询所述聚集的写异常中止补偿映射来检索所述嵌套子事务的写锁定释放计数(316);以及
如果版本号差与所述嵌套子事务的写锁定释放计数正好匹配(320),则所述乐观读取是有效的(322)。
18.如权利要求17所述的方法,其特征在于,如果所述版本号差不与所述嵌套子事务的写锁定释放计数正好匹配,则所述乐观读取是无效的(324)。
CN2008800224166A 2007-06-27 2008-06-16 处理嵌套事务的错误地破坏的父事务 Active CN101689138B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/823,162 US7899999B2 (en) 2007-06-27 2007-06-27 Handling falsely doomed parents of nested transactions
US11/823,162 2007-06-27
PCT/US2008/067145 WO2009002754A2 (en) 2007-06-27 2008-06-16 Handling falsely doomed parents of nested transactions

Publications (2)

Publication Number Publication Date
CN101689138A CN101689138A (zh) 2010-03-31
CN101689138B true CN101689138B (zh) 2012-07-18

Family

ID=40161865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800224166A Active CN101689138B (zh) 2007-06-27 2008-06-16 处理嵌套事务的错误地破坏的父事务

Country Status (6)

Country Link
US (1) US7899999B2 (zh)
EP (1) EP2176762B1 (zh)
JP (1) JP4923142B2 (zh)
CN (1) CN101689138B (zh)
TW (1) TWI363299B (zh)
WO (1) WO2009002754A2 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7890472B2 (en) * 2007-09-18 2011-02-15 Microsoft Corporation Parallel nested transactions in transactional memory
US8719515B2 (en) 2010-06-21 2014-05-06 Microsoft Corporation Composition of locks in software transactional memory
US9411634B2 (en) 2010-06-21 2016-08-09 Microsoft Technology Licensing, Llc Action framework in software transactional memory
US10073844B1 (en) 2010-11-24 2018-09-11 Federal Home Loan Mortgage Corporation (Freddie Mac) Accelerated system and method for providing data correction
US20140281236A1 (en) * 2013-03-14 2014-09-18 William C. Rash Systems and methods for implementing transactional memory
US10284649B2 (en) * 2013-05-31 2019-05-07 Nec Corporation Distributed processing system
US20150370409A1 (en) * 2014-06-18 2015-12-24 International Business Machines Corporation Disambiguation of touch-based gestures
US10503698B2 (en) 2014-07-31 2019-12-10 Splunk Inc. Configuration replication in a search head cluster
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10635613B2 (en) * 2017-04-11 2020-04-28 Micron Technology, Inc. Transaction identification
CN110347533A (zh) * 2019-07-11 2019-10-18 中国工商银行股份有限公司 数据异常的处理方法、装置、计算设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298478B1 (en) * 1998-12-31 2001-10-02 International Business Machines Corporation Technique for managing enterprise JavaBeans (™) which are the target of multiple concurrent and/or nested transactions
US6671686B2 (en) * 2000-11-02 2003-12-30 Guy Pardon Decentralized, distributed internet data management
CN1539110A (zh) * 2000-07-28 2004-10-20 辛孚尼系统股份有限公司 嵌套数据库的实现方法、系统和数据结构

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5241675A (en) * 1992-04-09 1993-08-31 Bell Communications Research, Inc. Method for enforcing the serialization of global multidatabase transactions through committing only on consistent subtransaction serialization by the local database managers
US5335343A (en) * 1992-07-06 1994-08-02 Digital Equipment Corporation Distributed transaction processing using two-phase commit protocol with presumed-commit without log force
JP3672208B2 (ja) * 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
WO1999038095A1 (en) * 1998-01-26 1999-07-29 Telenor As Database management system and method for conditional conflict serializability of transactions and for combining meta-data of varying degrees of reliability
US6850938B1 (en) * 2001-02-08 2005-02-01 Cisco Technology, Inc. Method and apparatus providing optimistic locking of shared computer resources
JP3732113B2 (ja) * 2001-05-14 2006-01-05 株式会社八十二銀行 トランザクション制御システム、方法及びプログラム
GB0130399D0 (en) * 2001-12-19 2002-02-06 Ibm Message ordering in a messaging system
US6754737B2 (en) * 2001-12-24 2004-06-22 Hewlett-Packard Development Company, L.P. Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect
US6785779B2 (en) * 2002-01-09 2004-08-31 International Business Machines Company Multi-level classification method for transaction address conflicts for ensuring efficient ordering in a two-level snoopy cache architecture
US7328316B2 (en) * 2002-07-16 2008-02-05 Sun Microsystems, Inc. Software transactional memory for dynamically sizable shared data structures
US7076508B2 (en) * 2002-08-12 2006-07-11 International Business Machines Corporation Method, system, and program for merging log entries from multiple recovery log files
US7089253B2 (en) * 2002-09-13 2006-08-08 Netezza Corporation Computer method and system for concurrency control using dynamic serialization ordering
JP2004157776A (ja) * 2002-11-06 2004-06-03 Nec Corp アプリケーションの処理方法およびシステム
US6898685B2 (en) * 2003-03-25 2005-05-24 Emc Corporation Ordering data writes from a local storage device to a remote storage device
US7376675B2 (en) * 2005-02-18 2008-05-20 International Business Machines Corporation Simulating multi-user activity while maintaining original linear request order for asynchronous transactional events
US20070186056A1 (en) * 2006-02-07 2007-08-09 Bratin Saha Hardware acceleration for a software transactional memory system
US8099538B2 (en) * 2006-03-29 2012-01-17 Intel Corporation Increasing functionality of a reader-writer lock
US7434010B2 (en) * 2006-08-04 2008-10-07 Microsoft Corporation Combined pessimistic and optimisitic concurrency control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298478B1 (en) * 1998-12-31 2001-10-02 International Business Machines Corporation Technique for managing enterprise JavaBeans (™) which are the target of multiple concurrent and/or nested transactions
CN1539110A (zh) * 2000-07-28 2004-10-20 辛孚尼系统股份有限公司 嵌套数据库的实现方法、系统和数据结构
US6671686B2 (en) * 2000-11-02 2003-12-30 Guy Pardon Decentralized, distributed internet data management

Also Published As

Publication number Publication date
TW200907816A (en) 2009-02-16
US7899999B2 (en) 2011-03-01
CN101689138A (zh) 2010-03-31
TWI363299B (en) 2012-05-01
US20090006404A1 (en) 2009-01-01
WO2009002754A3 (en) 2009-02-19
EP2176762A2 (en) 2010-04-21
JP2010532052A (ja) 2010-09-30
WO2009002754A2 (en) 2008-12-31
EP2176762B1 (en) 2020-03-18
EP2176762A4 (en) 2012-10-10
JP4923142B2 (ja) 2012-04-25

Similar Documents

Publication Publication Date Title
CN101689138B (zh) 处理嵌套事务的错误地破坏的父事务
CN102934114B (zh) 用于文件系统的检查点
CN101310258A (zh) 在软件事务内存系统中保护共享变量
CN101889266B (zh) 事务存储器中的并行嵌套事务
US8112464B2 (en) On-demand access to container file directories
CN109086388B (zh) 区块链数据存储方法、装置、设备及介质
US9448869B2 (en) Error detection for files
US20090063580A1 (en) Apparatus, system, and method for hierarchical rollback of business operations
Fu et al. Witcher: Systematic crash consistency testing for non-volatile memory key-value stores
AU2019203420A1 (en) A method of tracing or tracking changes in data
US8856069B2 (en) Combined save and validation logic
CN113327167B (zh) 一种区块链数据处理方法
TWI438683B (zh) 用於透過未管理指標之處理存取之電腦可讀取媒體與方法
Ding et al. Design verification for database applications through analysing their support to data lifecycle
Feiler et al. Storing Data and Sharing Data
JPWO2012026027A1 (ja) 管理プログラム,管理方法及び管理装置

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: 20150514

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

Effective date of registration: 20150514

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.