发明名称 Array object concurrency in STM
摘要 A software transactional memory system is provided that creates an array of transactional locks for each array object that is accessed by transactions. The system divides the array object into non-overlapping portions and associates each portion with a different transactional lock. The system acquires transactional locks for transactions that access corresponding portions of the array object. By doing so, different portions of the array object can be accessed by different transactions concurrently. The system may use a shared shadow or undo copy for accesses to the array object.
申请公布号 US9104628(B2) 申请公布日期 2015.08.11
申请号 US201514594119 申请日期 2015.01.10
申请人 Microsoft Technology Licensing, LLC 发明人 Zhu Weirong;Detlefs David L.;Levanoni Yosseff;Zhang Lingli
分类号 G06F3/00;G06F9/44;G06F9/46;G06F13/00;G06F12/14 主分类号 G06F3/00
代理机构 代理人 Sullivan Kevin;Drakos Kate;Minhas Micky
主权项 1. A software transactional memory (STM) system to create a plurality of transactional locks for a plurality of respective portions of an array object, the system comprising: one or more processors; a first component configured to, in accordance with a determining step, determine whether a single transactional lock or the plurality of transactional locks is to be allocated for an array object based on a size of the array object, the size of the array object being less than a size threshold indicating that the single transactional lock is to be allocated for the array object, the size of the array object being greater than the size threshold indicating that the plurality of transactional locks is to be allocated for the array object; and a second component, implemented using at least one of the one or more processors, configured to create a first transactional lock for a first portion of the array object in response to a call from a first transaction that accesses the array object, the second component further configured to create a second transactional lock for a second portion of the array object in response to a call from a second transaction that accesses the array object and further in response to a determination that the plurality of transactional locks is to be allocated for the array object and further in response to a determination that an array of transactional locks has not been created for the array object to permit concurrent access to portions of the array object.
地址 Redmond WA US