CN101689139A - 使用类型稳定性来便于争用管理 - Google Patents

使用类型稳定性来便于争用管理 Download PDF

Info

Publication number
CN101689139A
CN101689139A CN200880022472A CN200880022472A CN101689139A CN 101689139 A CN101689139 A CN 101689139A CN 200880022472 A CN200880022472 A CN 200880022472A CN 200880022472 A CN200880022472 A CN 200880022472A CN 101689139 A CN101689139 A CN 101689139A
Authority
CN
China
Prior art keywords
affairs
data structure
reference count
transaction data
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
CN200880022472A
Other languages
English (en)
Other versions
CN101689139B (zh
Inventor
D·德特勒夫
M·M·马格鲁德
J·J·达菲
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 CN101689139A publication Critical patent/CN101689139A/zh
Application granted granted Critical
Publication of CN101689139B publication Critical patent/CN101689139B/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

Landscapes

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

Abstract

公开了用于提供类型稳定性技术以增进争用管理的各种技术和方法。提供允许事务安全地检查其它事务的状态的引用计数机制。使用该引用计数机制来便于争用管理。当在两个事务之间检测到冲突时,获取拥有事务信息。拥有事务的引用计数被递增。系统确保正确事务被递增。如果拥有事务仍然是冲突事务,则作出确定正确解决方案的争用管理判定。在作出判定时,拥有事务上的引用计数被冲突事务递减。在每一事务完成时,其为其本身持有的引用计数被递减。不可解除分配数据结构直到其引用计数为零。可使用不稳定属性来减少专用类型稳定分配池。

Description

使用类型稳定性来便于争用管理
背景
事务存储器是允许更简单地编写并发程序的机制。事务指定应当“如同”其孤立地执行一样执行的代码序列。在实践中,允许并发地执行事务,并随后检测冲突数据访问。在争用发生时要做什么的判定(即,“争用管理”)可对事务系统的性能具有大的影响。
然而,在实现争用管理器中存在重要的底层问题。假设事务Tx1检测到与事务Tx2的争用-也许Tx2持有对Tx1也希望锁定的数据项目的悲观写锁。在某些情况下,争用管理器中止Tx2以允许Tx1获取该锁可能是有意义的。也许Tx2短,而Tx1长,因此在中止之后重做Tx2的工作的成本会比重做Tx1少得多。
但在此示例场景中,Tx1注意到争用,且因此似乎是执行争用管理判定的逻辑的逻辑位置。但为了这样做,需要关于Tx2的信息,诸如关于其执行的统计数据、其事务日志的内容等,或者也许需要请求Tx2自愿地中止,以释放其获取的锁。此信息最自然地驻留在表示事务Tx2的数据结构中。出于效率的原因,期望使此数据结构对执行Tx2的线程来说是本地的,而不在某个全局数据结构中。事务存储器系统将定义某些覆盖每一可能被共享的数据项目的锁定数据结构。在一位置被写锁定时,此锁定数据结构将包含某些持有该锁的事务的指示。在Tx1发现其设法访问的数据项目被写锁定时,它可以读取此锁定数据结构以发现Tx2的身份。该问题的症结是一旦Tx1获取了指向表示Tx2的数据结构的指针,并准备从该数据结构中读取信息,Tx2可能完成,且其数据结构出于某些其它目的可被解除分配,且可能被重新分配。在此情况中,Tx1读取的关于Tx2的信息是不稳定的。
概述
公开了用于提供类型稳定性技术以增进争用管理的各种技术和方法。事务存储器系统提供允许事务安全地检查表示其它事务的数据结构的引用计数机制。使用引用计数机制来便于两个事务之间的冲突的解决(称为“争用管理”)。例如,因为一个事务试图获取另一事务所拥有的独占锁,所以获取关于拥有事务的信息。递增表示拥有事务的数据结构的引用计数。系统确保递增正确的事务数据结构引用计数,以防止该数据结构被解除分配和重新分配以表示另一事务。如果拥有事务仍然持有导致该冲突的锁,则拥有事务数据结构中的信息通知确定是中止两个事务之一还是等待拥有事务释放该锁的争用管理判定。
在作出争用管理判定时,拥有事务数据结构的引用计数被之前对其递增的冲突事务递减。每一事务数据结构以引用计数1开始,且随着事务完成,其递减其数据结构的引用计数。非零引用计数防止在另一线程中的冲突事务正在访问事务数据结构的同时该事务数据结构被解除分配。可在其引用计数为零时对数据结构解除分配。
在一实现中,可使用一不稳定属性来减少专用类型稳定分配池。线程不稳定属性在指向事务数据结构的指针可由线程获取之前被设置,且在此类指针的使用完成之后被清除。在垃圾收集暂停期间,仅当未在线程中的任何一个上设置线程不稳定属性时,才可删除类型稳定分配池中的对象。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
图1是一个实现的计算机系统的图示。
图2是在图1的计算机系统上操作的一个实现的事务存储器应用程序的图示。
图3是图1的系统的一个实现的高级过程流程图。
图4是图1的系统的一个实现的过程流程图,其示出使得事务日志分段类型稳定所涉及的各阶段。
图5是图1的系统的一个实现的过程流程图,其示出使得事务数据结构类型稳定所涉及的各阶段。
图6是图1的系统的一个实现的过程流程图,其示出由参与引用计数机制的持有锁的事务所采取的动作。
图7是图1的系统的一个实现的过程流程图,其示出由参与引用计数机制的、注意到争用的事务所采取的动作。
图8是在两个事务之间使用引用计数机制的一个实现的图示。
图9是图1的系统的一个实现的过程流程图,其示出使用不稳定属性来减少专用类型稳定分配池所涉及的各阶段。
图10是示出通过跟踪指向类型稳定存储器的指针的位置来减少专用类型稳定分配池的替换实现的过程流程图。
详细描述
此处的技术和方法可以在如事务存储器系统的一般上下文中描述,但本技术和方法也用于除此之外的其它目的。在一个实现中,此处所描述的一个或多个技术可被实现为诸如微软
Figure G200880022472XD00031
.NET框架等框架程序内的、或来自为开发者提供开发软件应用程序的平台的任何其它类型的程序或服务的特征。在另一实现中,此处所描述的一个或多个技术被实现为处理开发在并发环境中执行的应用程序的其它应用程序的特征。
在一实现中,提供使用类型稳定性技术以启用无锁争用管理的事务存储器系统。在一实现中,提供允许一个事务安全地检查表示另一事务的数据结构的引用计数机制。此处所使用的术语“引用计数机制”指的是包括用于跟踪一给定事务数据结构的数字或其它数据,其指示在特定时间是否有其它事务对该给定数据结构有兴趣,且用于在其它事务有兴趣时防止该给定数据结构被解除分配(返回到类型稳定池)。此处所使用的术语“类型稳定分配池”表示从中对象以特殊方式被分配的存储器池:一旦分配了一表示类型T的对象的块,就永不重新使用该存储器来表示某个其它类型U。因此,总可将指向这样的T的指针假设为指向T。此处所使用的术语“安全地检查”指的是包括以在检查进行的同时不允许正在被检查的数据被解除分配的方式来检查数据的能力。事务数据结构的引用计数被登记对其的兴趣的每一其它事务递增。在此兴趣结束时递减该引用计数。当然,每一事务对表示它本身的数据结构具有“兴趣”,所以这些数据结构被分配为引用计数1,且在事务完成时,递减其事务数据结构的引用计数。不可对数据结构解除分配直到其引用计数是零。在另一实现中,可通过由垃圾收集器所识别的不稳定属性的使用来安全地释放专用类型稳定分配池。线程不稳定属性在指向事务数据结构的指针可由线程获取之前被设置,且在这些指针的所有使用完成之后被复位。在垃圾收集暂停期间,仅在未在线程中的任何一个上设置线程不稳定属性时,才可删除类型稳定分配池中的对象。
如图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包括用于提供争用管理器的逻辑206;用于使事务日志分段类型稳定的逻辑208(如以下参考图4所述);用于使事务数据结构类型稳定的逻辑210(如以下参考图5所述);用于使用引用计数机制来允许第一事务安全地检查第二事务的状态的逻辑212(如以下参考图6-8所述);用于适当地减少专用类型稳定分配池的逻辑214(如以下参考图9-10所述);以及用于操作应用程序的其它逻辑220。
现在转向图3-10并继续参考图1-2,更详细地描述了用于实现事务存储器应用程序200的一个或多个实现的各阶段。在某些实现中,图3-10的过程至少部分地在计算设备100的操作逻辑中实现。图3是事务存储器应用程序200的高级过程流程图。应该理解,尽管按次序描述图3,但不存在期望的次序,且可按其它次序提供和/或执行图3中所述的各特征和/或动作。该过程在起始点240开始,如图4中更详细地描述地,使事务日志分段类型稳定(阶段242)。类型稳定性保证由类型稳定指针所指向的对象具有所指示的类型。在一并发环境中,所讨论的对象的内容可被并发线程改变,但其类型将不改变。如在图5中更详细地描述地,系统使事务数据结构类型稳定(阶段244)。如图68中更详细地描述地,使用引用计数机制来允许另一事务防止其感兴趣的事务数据结构被解除分配(阶段246)。如图9和10中更详细地描述的,该系统可任选地适当减少专用类型稳定分配池(阶段248)。该过程在结束点250处结束。
图4示出使事务日志分段类型稳定所涉及的各阶段的一个实现。应该理解,尽管按次序描述图4,但不存在期望的次序,且可按其它次序提供和/或执行图4中所述的各特征和/或动作。该过程在起始点270开始,确保如果指针是指向日志分段的指针,则其将在之后的时间中保持如此(阶段272)。系统使所有日志分段大小相等,且与其分配大小对齐(阶段274)。系统使用指向表示其拥有事务的数据结构的指针来开始每一日志分段(276)。给定指向日志分段中的写日志条目的指针,则可计算指向该日志分段的起始的指针(阶段278)。该过程在结束点280处结束。
图5示出使事务数据结构类型稳定所涉及的各阶段的一个实现。该过程在起始点290开始,提供仅增长的事务数据结构的全局池(阶段292)。为使得分配更有效率,向线程局部分配池给出全局池中的事务数据结构中的中等大小的组块(阶段294)。这使得解除引用指向事务数据结构的给定指针是安全的(阶段296)。该过程在结束点298处结束。
图6示出由参与引用计数机制的、持有锁的事务所采取的动作的一个实现。该过程在起始点310开始,给予新分配的事务数据结构引用计数1,以表示由其表示的事务所使用(阶段312)。在每一事务完成时,其递减其自己的事务数据结构的引用计数(阶段314)。如果该引用计数变为零,则可对该数据结构解除分配(阶段316)。如果引用计数大于零,则它不被解除分配,而将解除分配责任传递到最终将该引用计数减为零的事务(阶段318)。该过程在结束点320处结束。
图7示出由参与引用计数机制的、注意到争用的事务所采取的动作的一个实现。该过程在起始点340开始,跟踪对象中的锁定信息以获取指向表示可能拥有事务的数据结构的指针(阶段342)。在可能拥有事务的数据结构中递增引用计数(阶段344)。在再次跟踪对象中的锁定信息后,确定正确事务数据结构的引用计数是否被递增(判定点346)。如果锁定信息仍然指向同一事务数据结构,则该事务数据结构是用于该“正确事务”的。如果正确引用计数未被递增,则可能拥有事务的数据结构的引用计数递减且锁定在较高层级重试(阶段348)。
如果正确事务数据结构的引用计数被递增(判定点346),则作出是中止争用事务、还是中止自己(注意到该争用的事务)、等待争用事务释放锁的争用管理判定(阶段350)。拥有事务数据结构的引用计数随后被递减,且如果该递减使该数据结构的引用计数到零则删除该数据结构。该过程在结束点354处结束。
图8是在两个事务之间使用引用计数机制的一个实现的图示。第一事务362具有数据结构364和事务日志分段366。第二事务363也具有数据结构365和事务日志分段367。在第二事务363由于被争用的对象369而登记对第一事务362的数据结构的兴趣时,第二事务363读取被争用的对象369中的锁定信息以发现该对象被锁定且第一事务362持有该锁。在此实现中,被争用的对象369中的锁定信息包含指向锁定事务362的日志中的条目的指针,其包含关于该锁定的更多信息。如前所述,日志分段包含指向其拥有事务数据结构364的指针。在其它实现中,可使用其它锁定机制来标识拥有该锁的事务的数据结构。例如,锁定信息可能直接指示拥有事务,且可将关于存储在日志分段366中的日志条目中的锁定的其它信息保存在由被锁定的对象的地址所索引的散列表中。
第二事务递增第一事务362的数据结构364中的引用计数(在此递增之后,以值2示出)。在此过程期间,执行第一事务的线程不被停止。其可继续执行,完成其事务工作362,并对表示它的数据结构364解除分配。此数据结构甚至可以被重新分配以表示第三事务。递增引用计数的目的是防止解除分配,但该递增可在这些步骤之后发生,使得该数据结构被解除分配或表示一不同事务。第二事务363因此必须在递增引用计数之后验证数据结构364仍然表示感兴趣的事务。第二事务363再次检查争用对象364中的锁定信息,以验证其仍然指向同一事务数据结构364。如果锁定信息不指向该同一数据结构,则被争用的对象369的锁定信息已经改变,因为锁定过程现在可能成功,所以从开头重试锁定过程。如果锁定信息指向同一事务数据结构364,则事务363已经获取指向第一事务362的数据结构364的指针368,以便其可安全地检查数据结构364以便于被争用的对象369的争用管理判定。在第二事务363完成时,其递减第一事务362中的数据结构364的引用计数以指示其对该数据结构不再有兴趣。特定事务数据结构不可被解除分配直到其引用计数为零,这意味着不再有对其数据感兴趣的任何事务。如果事务362已经在之前完成,则事务363进行的递减可使事务数据结构364的引用计数到零,在这种情况下事务363必须对此数据结构解除分配。
图9示出使用不稳定属性来减少专用类型稳定分配池所涉及的各阶段的一个实现。该过程在起始点370开始,在当前线程上设置不稳定位(阶段372)。随后获取指向争用事务的指针(阶段374)。在一个实现中,每一线程必须在可能获取指向事务数据结构的指针之前设置不稳定属性。作出解决冲突的争用管理判定(阶段376)。一旦作出争用管理判定,则不再使用指向争用事务的指针(阶段376)。因此,在当前线程上清除不稳定位(阶段378)。在一个实现中,如果所有线程都在逻辑收集处被停止,且没有线程设置了其不稳定属性,则类型稳定分配池中的对象可被解除分配。此解除分配不是类型稳定的,因为所删除的存储器可被返回给操作系统并被重新分配以表示其它类型。该过程在结束点380处结束。
图10示出对图9的实现的替换,其示出通过跟踪指向类型稳定存储器的指针的位置来减少专用类型稳定分配池所涉及的各阶段。该过程在起始点400开始,要求执行争用管理的线程声明指向类型稳定存储器的指针的位置(阶段402)。系统在类型稳定分配池上执行类似垃圾收集的过程,以标识正在使用的元素(阶段404)。系统可任选地对剩余类型稳定分配池中的某一些解除分配(阶段406)。该过程在结束点408处结束。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。落入在此所述和/或所附权利要求所描述的实现的精神的范围内的所有等效方案、更改和修正都期望受到保护。
例如,计算机软件领域普通技术人员将认识到,此处所讨论的示例可以在一个或多个计算机上不同地组织来包括比这些示例中所描绘的更少或更多选项或特征。

Claims (20)

1.一种具有用于使得计算机执行以下步骤的计算机可执行指令的计算机可读介质,所述步骤包括:
使用类型稳定性来分配多个事务的事务数据结构(210);以及
执行允许所述事务中的第一个安全地检查所述事务中的第二个的状态的引用计数机制(212)。
2.如权利要求1所述的计算机可读介质,其特征在于,所述第一事务获取指向所述第二事务的事务数据结构的指针(276)。
3.如权利要求2所述的计算机可读介质,其特征在于,在所述第一事务登记对所述第二事务的兴趣时在所述第二事务的所述事务数据结构中递增引用计数(344)。
4.如权利要求3所述的计算机可读介质中,其特征在于,在所述事务数据结构第一次被分配时对所述引用计数给予值1(312)。
5.如权利要求3所述的计算机可读介质,其特征在于,使用所述指针来查看所述第二事务的所述事务数据结构以作出争用管理判定(350)。
6.如权利要求5所述的计算机可读介质,其特征在于,在作出所述争用管理判定之后递减所述第二事务的所述事务数据结构中的所述引用计数(352)。
7.如权利要求6所述计算机可读介质,其特征在于,如果所述引用计数大于零,则解除分配的责任被传递到最终将所述引用计数减少到零的特定事务(318)。
8.如权利要求6所述的计算机可读介质,其特征在于,如果所述引用计数变为零,则所述事务数据结构被解除分配(316)。
9.如权利要求1所述的计算机可读介质,其特征在于,所述引用计数机制可用于允许所述第一事务在所述第一事务对所述第二事务有兴趣时防止所述第二事务被解除分配(246)。
10.一种使用引用计数机制来便于争用管理的方法,所述方法包括以下步骤:
使用类型稳定性来分配多个事务数据结构(244);
在检测到在两个事务之间发生冲突时,获取关于拥有事务的信息,所述拥有事务是所述两个事务之一(342);
在与所述拥有事务相关联的特定事务数据结构中递增引用计数(344);
确保正确事务被递增(346);以及
作出如何处理所述冲突的争用管理判定(350)。
11.如权利要求10所述的方法,其特征在于,如果所述确保不成功,则由于所述冲突消失而重试锁定一较高层级(348)。
12.如权利要求10所述的方法,其特征在于,如果所述正确事务不被递增,则递减所述引用计数(348)。
13.如权利要求12所述的方法,其特征在于,通过跟踪对象中的锁定信息来获取所述拥有事务信息以作出所述正确事务是否被递增的判定(346)。
14.如权利要求10所述的方法,其特征在于,通过跟踪与一对象相关联的锁定信息来获取所述拥有事务信息(346)。
15.如权利要求10所述的方法,其特征在于,所述争用管理判定包括确定是否中止所述两个事务之一或是否等待所述冲突事务(350)。
16.一种具有用于使得计算机执行如权利要求10所述的步骤的计算机可执行指令的计算机可读介质(200)。
17.一种使用不稳定属性来减少专用类型稳定分配池的方法,所述方法包括以下步骤:
提供允许多个事务之一安全地检查所述事务中的另一个的事务数据结构的机制(212);
在获取指向所述事务数据结构的指针之前为所述事务数据结构设置线程不稳定属性(372);
在不再需要指向所述事务数据结构的所述指针时清除所述线程不稳定属性(378);以及
在垃圾收集暂停期间,如果未在所述线程中的任何一个上设置所述线程不稳定属性则删除类型稳定分配池中的对象(404)。
18.如权利要求17所述的方法,其特征在于,引用计数机制维护所述事务数据结构上的相应引用计数以跟踪在给定时刻感兴趣的事务的数量(246)。
19.如权利要求18所述的方法,其特征在于,所述引用计数机制确保所述事务数据结构不可被解除分配直到所述相应引用计数变为零(246)。
20.一种具有用于使得计算机执行如权利要求17所述的步骤的计算机可执行指令的计算机可读介质(200)。
CN200880022472.XA 2007-06-29 2008-06-18 使用类型稳定性来便于争用管理 Active CN101689139B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/824,353 2007-06-29
US11/824,353 US7991967B2 (en) 2007-06-29 2007-06-29 Using type stability to facilitate contention management
PCT/US2008/067346 WO2009006025A2 (en) 2007-06-29 2008-06-18 Using type stability to facilitate contention management

Publications (2)

Publication Number Publication Date
CN101689139A true CN101689139A (zh) 2010-03-31
CN101689139B CN101689139B (zh) 2014-04-30

Family

ID=40161866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880022472.XA Active CN101689139B (zh) 2007-06-29 2008-06-18 使用类型稳定性来便于争用管理

Country Status (6)

Country Link
US (2) US7991967B2 (zh)
EP (1) EP2176764B1 (zh)
JP (1) JP5435741B2 (zh)
CN (1) CN101689139B (zh)
TW (2) TWI455029B (zh)
WO (1) WO2009006025A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648843A (zh) * 2012-11-30 2017-05-10 英特尔公司 用于改善连续的事务性存储器区的吞吐量的系统、方法和装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988161B2 (en) 2001-12-20 2006-01-17 Intel Corporation Multiple port allocation and configurations for different port operation modes on a host
US7991967B2 (en) 2007-06-29 2011-08-02 Microsoft Corporation Using type stability to facilitate contention management
US8924403B2 (en) * 2007-12-31 2014-12-30 Sap Se Method and system for central data querying
US8832401B2 (en) * 2011-01-26 2014-09-09 International Business Machines Corporation Iteratively de-allocating active objects associated with virtual functions of an adapter
WO2014142861A1 (en) * 2013-03-14 2014-09-18 Intel Corporation Memory object reference count management with improved scalability
US20160062655A1 (en) * 2014-08-28 2016-03-03 Endgame, Inc. System and Method for Improved Memory Allocation in a Computer System
WO2017011223A1 (en) * 2015-07-10 2017-01-19 Rambus, Inc. Thread associated memory allocation and memory architecture aware allocation
CN106599151A (zh) * 2016-12-07 2017-04-26 Tcl集团股份有限公司 一种Android工程无用资源并行清理的方法及系统

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912629A (en) * 1986-06-26 1990-03-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Real-time garbage collection for list processing using restructured cells for increased reference counter size
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
US5842016A (en) * 1997-05-29 1998-11-24 Microsoft Corporation Thread synchronization in a garbage-collected system using execution barriers
AU7099000A (en) * 1999-09-01 2001-03-26 Intel Corporation Branch instruction for processor
US6513100B1 (en) * 2000-10-30 2003-01-28 Microsoft Corporation System and method for fast referencing a reference counted item
US7216136B2 (en) * 2000-12-11 2007-05-08 International Business Machines Corporation Concurrent collection of cyclic garbage in reference counting systems
US7769791B2 (en) * 2001-01-12 2010-08-03 Oracle America, Inc. Lightweight reference counting using single-target synchronization
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
US7395274B2 (en) * 2002-07-16 2008-07-01 Sun Microsystems, Inc. Space- and time-adaptive nonblocking algorithms
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
US7003532B2 (en) * 2002-11-27 2006-02-21 Microsoft Corporation System and method for scaleable multiplexed transactional log recovery
US6898685B2 (en) * 2003-03-25 2005-05-24 Emc Corporation Ordering data writes from a local storage device to a remote storage device
CA2425033A1 (en) * 2003-04-08 2004-10-08 Ibm Canada Limited - Ibm Canada Limitee Multi-level locking hierarchy in a database with multi-dimensional clustering
US7343598B2 (en) * 2003-04-25 2008-03-11 Microsoft Corporation Cache-conscious coallocation of hot data streams
US7243088B2 (en) * 2003-08-06 2007-07-10 Oracle International Corporation Database management system with efficient version control
US7475093B2 (en) * 2004-10-15 2009-01-06 Microsoft Corporation Memory cache management in XML/relational data mapping
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
US8027288B2 (en) * 2005-04-22 2011-09-27 Nokia Corporation Reducing beacon slot acquisition time in distributed media access control network
US20070198978A1 (en) * 2006-02-22 2007-08-23 David Dice Methods and apparatus to implement parallel transactions
US8028133B2 (en) * 2006-02-22 2011-09-27 Oracle America, Inc. Globally incremented variable or clock based methods and apparatus to implement parallel transactions
US7991967B2 (en) 2007-06-29 2011-08-02 Microsoft Corporation Using type stability to facilitate contention management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648843A (zh) * 2012-11-30 2017-05-10 英特尔公司 用于改善连续的事务性存储器区的吞吐量的系统、方法和装置

Also Published As

Publication number Publication date
TW200905568A (en) 2009-02-01
CN101689139B (zh) 2014-04-30
US7991967B2 (en) 2011-08-02
EP2176764A4 (en) 2011-11-16
JP2010532531A (ja) 2010-10-07
JP5435741B2 (ja) 2014-03-05
TW201426557A (zh) 2014-07-01
EP2176764B1 (en) 2015-07-15
US20090006405A1 (en) 2009-01-01
US8578105B2 (en) 2013-11-05
EP2176764A2 (en) 2010-04-21
WO2009006025A2 (en) 2009-01-08
US20110289288A1 (en) 2011-11-24
TWI455029B (zh) 2014-10-01
WO2009006025A3 (en) 2009-03-05
TWI515661B (zh) 2016-01-01

Similar Documents

Publication Publication Date Title
CN101689139B (zh) 使用类型稳定性来便于争用管理
US8112464B2 (en) On-demand access to container file directories
CN102929702B (zh) 事务存储器中的并行嵌套事务
US8443155B2 (en) Lock-free concurrent object dictionary
CN101894065B (zh) 证明并发处理环境内的执行跟踪的正确性的系统和方法
CN101652761A (zh) 使用缓存写和强制串行化次序的事务存储器
US8108587B2 (en) Free-space reduction in cached database pages
US10990628B2 (en) Systems and methods for performing a range query on a skiplist data structure
CN101681294B (zh) 用于存储器事务分组的方法和系统
JP2008225693A (ja) データベース管理方法、装置およびプログラム
US20120066192A1 (en) Maintenance and access of a linked list
JP2008165272A (ja) データベース更新管理システム、プログラムおよび方法
US9766950B2 (en) Methods for single-owner multi-consumer work queues for repeatable tasks
CN107885489B (zh) 一种快速检测实名登记数据指标的方法和系统
US20230252081A1 (en) Scalable range locks
US8001084B2 (en) Memory allocator for optimistic data access
US8131772B2 (en) Method and apparatus for improving the performance of object-oriented queues
KR102546947B1 (ko) 시대 기반 메모리 수집 기법과 포인터 기반 메모리 수집 기법 혼합을 위한 컴퓨터 시스템 및 그의 방법
CN101681293B (zh) 在事务存储器系统中高效地定位事务代码块
CN109923527A (zh) 可变类型建立器
US8688662B2 (en) Copy on access to locked objects
US7873801B2 (en) Partitionable accounting of memory utilization

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

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

Effective date of registration: 20150506

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.