Hierarchical queue-based locks
    1.
    发明授权
    Hierarchical queue-based locks 有权
    基于队列的分层锁

    公开(公告)号:US07945912B1

    公开(公告)日:2011-05-17

    申请号:US11445962

    申请日:2006-06-02

    IPC分类号: G06F9/46

    CPC分类号: G06F9/526

    摘要: In general, in one aspect, the invention relates to a method of establishing a queue-based lock including inserting a first qnode into a local queue, where the first qnode is associated with a first thread, splicing the local queue into the global queue, obtaining a lock for the first thread when the first qnode is at the head of the global queue, and executing a critical section of the first thread after obtaining the lock.

    摘要翻译: 通常,一方面,本发明涉及一种建立基于队列的锁的方法,包括将第一qnode插入到本地队列中,其中第一qnode与第一线程相关联,将本地队列拼接到全局队列中, 当第一个qnode位于全局队列的头部时,为第一个线程获取锁定,并在获取锁定之后执行第一个线程的临界区段。

    Ensuring progress in a system that supports execution of obstruction-free operations
    3.
    发明授权
    Ensuring progress in a system that supports execution of obstruction-free operations 有权
    确保在支持执行无障碍操作的系统中取得进展

    公开(公告)号:US07475228B2

    公开(公告)日:2009-01-06

    申请号:US11325062

    申请日:2006-01-03

    IPC分类号: G06F9/52

    CPC分类号: G06F9/52

    摘要: One embodiment of the present invention provides a system that ensures that progress is made in an environment that supports execution of obstruction-free operations. During execution, when a process pi invokes an operation, the system checks a panic flag, which indicates whether a progress-ensuring mechanism is to be activated. If the panic flag is set, the progress-ensuring mechanism is activated, which causes the system to attempt to perform the operation by coordinating actions between processes to ensure that progress is made in spite of contention between the processes. On the other hand, if the panic flag is not set, the system attempts to perform the operation essentially as if the progress-ensuring mechanism were not present. In this case, if there is an indication that contention between processes is impeding progress, the system sets the panic flag, which causes the progress-ensuring mechanism to be activated so that processes will coordinate their actions to ensure that progress is made.

    摘要翻译: 本发明的一个实施例提供一种确保在支持执行无障碍操作的环境中进行的系统。 在执行期间,当进程pi调用操作时,系统检查一个紧急标志,指示是否激活进度保证机制。 如果设置了恐慌标志,则会启动进度保证机制,从而使系统尝试通过协调进程之间的动作来尝试执行操作,以确保进程尽可能在进程之间发生争用。 另一方面,如果不设置紧急状态标志,则系统试图执行操作,基本上就像进度保证机制不存在一样。 在这种情况下,如果存在进程之间的争用妨碍进展的指示,则系统设置紧急标志,这导致进程确保机制被激活,以便进程将协调其动作以确保进行进展。

    System and method for implementing NUMA-aware reader-writer locks
    5.
    发明授权
    System and method for implementing NUMA-aware reader-writer locks 有权
    用于实现NUMA感知读写器锁的系统和方法

    公开(公告)号:US08966491B2

    公开(公告)日:2015-02-24

    申请号:US13458868

    申请日:2012-04-27

    IPC分类号: G06F9/46

    CPC分类号: G06F9/526 G06F2209/523

    摘要: NUMA-aware reader-writer locks may leverage lock cohorting techniques to band together writer requests from a single NUMA node. The locks may relax the order in which the lock schedules the execution of critical sections of code by reader threads and writer threads, allowing lock ownership to remain resident on a single NUMA node for long periods, while also taking advantage of parallelism between reader threads. Threads may contend on node-level structures to get permission to acquire a globally shared reader-writer lock. Writer threads may follow a lock cohorting strategy of passing ownership of the lock in write mode from one thread to a cohort writer thread without releasing the shared lock, while reader threads from multiple NUMA nodes may simultaneously acquire the shared lock in read mode. The reader-writer lock may follow a writer-preference policy, a reader-preference policy or a hybrid policy.

    摘要翻译: NUMA感知的读写器锁可以利用锁定队列技术将来自单个NUMA节点的写入器请求带到一起。 锁可以放松锁定通过读取器线程和写入器线程调度关键代码段的顺序,允许锁定所有权长时间保持驻留在单个NUMA节点上,同时还利用读取器线程之间的并行性。 线程可能会争取节点级结构获得获取全局共享读写器锁的权限。 编写者线程可能遵循锁定队列策略,将锁定的所有权从写入模式从一个线程传递到队列写入器线程,而不会释放共享锁定,而来自多个NUMA节点的读取器线程可以同时在读取模式下获取共享锁定。 读写器锁可以遵循写入者偏好策略,读者偏好策略或混合策略。

    System and Method for Implementing NUMA-Aware Reader-Writer Locks
    6.
    发明申请
    System and Method for Implementing NUMA-Aware Reader-Writer Locks 有权
    实现NUMA感知读写器锁的系统和方法

    公开(公告)号:US20130290967A1

    公开(公告)日:2013-10-31

    申请号:US13458868

    申请日:2012-04-27

    IPC分类号: G06F9/46

    CPC分类号: G06F9/526 G06F2209/523

    摘要: NUMA-aware reader-writer locks may leverage lock cohorting techniques to band together writer requests from a single NUMA node. The locks may relax the order in which the lock schedules the execution of critical sections of code by reader threads and writer threads, allowing lock ownership to remain resident on a single NUMA node for long periods, while also taking advantage of parallelism between reader threads. Threads may contend on node-level structures to get permission to acquire a globally shared reader-writer lock. Writer threads may follow a lock cohorting strategy of passing ownership of the lock in write mode from one thread to a cohort writer thread without releasing the shared lock, while reader threads from multiple NUMA nodes may simultaneously acquire the shared lock in read mode. The reader-writer lock may follow a writer-preference policy, a reader-preference policy or a hybrid policy.

    摘要翻译: NUMA感知的读写器锁可以利用锁定队列技术将来自单个NUMA节点的写入器请求带到一起。 锁可以放松锁定通过读取器线程和写入器线程调度关键代码段的顺序,允许锁定所有权长时间保持驻留在单个NUMA节点上,同时还利用读取器线程之间的并行性。 线程可能会争取节点级结构获得获取全局共享读写器锁的权限。 编写者线程可能遵循锁定队列策略,将锁定的所有权从写入模式从一个线程传递到队列写入器线程,而不会释放共享锁定,而来自多个NUMA节点的读取器线程可以同时在读取模式下获取共享锁定。 读写器锁可以遵循写入者偏好策略,读者偏好策略或混合策略。

    Method and apparatus for emulating linked-load/store-conditional synchronization
    7.
    发明授权
    Method and apparatus for emulating linked-load/store-conditional synchronization 有权
    用于模拟链接加载/存储条件同步的方法和装置

    公开(公告)号:US07870344B2

    公开(公告)日:2011-01-11

    申请号:US11864649

    申请日:2007-09-28

    IPC分类号: G06F12/00 G06F13/00

    摘要: The design of nonblocking linked data structures using single-location synchronization primitives such as compare-and-swap (CAS) is a complex affair that often requires severe restrictions on the way pointers are used. One way to address this problem is to provide stronger synchronization operations, for example, ones that atomically modify one memory location while simultaneously verifying the contents of others. We provide a simple and highly efficient nonblocking implementation of such an operation: an atomic k-word-compare single-swap operation (KCSS). Our implementation is obstruction-free. As a result, it is highly efficient in the uncontended case and relies on contention management mechanisms in the contended cases. It allows linked data structure manipulation without the complexity and restrictions of other solutions. Additionally, as a building block of some implementations of our techniques, we have developed the first nonblocking software implementation of load-linked/store-conditional that does not severely restrict word size.

    摘要翻译: 使用单一位置同步原语(例如比较和交换(CAS))的非阻塞链接数据结构的设计是一种复杂的事情,通常需要对指针使用方式的严格限制。 解决这个问题的一个方法是提供更强大的同步操作,例如,在同时验证其他内容的同时原子地修改一个存储器位置的同步操作。 我们提供了这样一个操作的简单而高效的非阻塞实现:原子k字比较单交换操作(KCSS)。 我们的实施是无障碍的。 因此,在无争议的情况下是高效的,并且依赖于竞争案件中的争用管理机制。 它允许链接的数据结构操作,而不需要其他解决方案的复杂性和限制。 此外,作为我们技术的一些实现的构建块,我们开发了第一个不会严重限制字大小的无负载连接/存储条件的非阻塞软件实现。

    Method and system for implementing a concurrent set of objects
    8.
    发明授权
    Method and system for implementing a concurrent set of objects 有权
    用于实现一组并发对象的方法和系统

    公开(公告)号:US07788242B2

    公开(公告)日:2010-08-31

    申请号:US11508762

    申请日:2006-08-23

    IPC分类号: G06F17/00 G06F7/00

    CPC分类号: G06F17/30362 G06F17/30958

    摘要: A method for inserting an object into a concurrent set including obtaining a key associated with the object, traversing the concurrent set using a first thread containing the key, identifying a first insertion point while traversing the concurrent set, where the first insertion point is before a current node and after a predecessor node, obtaining a first lock for the predecessor node after identifying the first insertion point, validating the predecessor node and the current node after obtaining the lock, inserting a new node into the concurrent set after validating, where the new node is associated with the object, and releasing the first lock after inserting the new node.

    摘要翻译: 一种用于将对象插入到并发集合中的方法,包括获得与对象相关联的密钥,使用包含密钥的第一线程遍历并发集合,在遍历并发集合的同时识别第一插入点,其中第一插入点在 当前节点,并且在前导节点之后,在识别出第一插入点之后为先前节点获得第一锁定,在获得锁定之后验证前导节点和当前节点,在验证之后将新节点插入并发集合,其中新的 节点与对象相关联,并在插入新节点后释放第一个锁。

    Method and system for implementing a concurrent set of objects
    9.
    发明申请
    Method and system for implementing a concurrent set of objects 有权
    用于实现一组并发对象的方法和系统

    公开(公告)号:US20080059470A1

    公开(公告)日:2008-03-06

    申请号:US11508762

    申请日:2006-08-23

    IPC分类号: G06F17/30

    CPC分类号: G06F17/30362 G06F17/30958

    摘要: A method for inserting an object into a concurrent set including obtaining a key associated with the object, traversing the concurrent set using a first thread containing the key, identifying a first insertion point while traversing the concurrent set, where the first insertion point is before a current node and after a predecessor node, obtaining a first lock for the predecessor node after identifying the first insertion point, validating the predecessor node and the current node after obtaining the lock, inserting a new node into the concurrent set after validating, where the new node is associated with the object, and releasing the first lock after inserting the new node.

    摘要翻译: 一种用于将对象插入到并发集合中的方法,包括获得与对象相关联的密钥,使用包含密钥的第一线程遍历并发集合,在遍历并发集合的同时识别第一插入点,其中第一插入点在 当前节点,并且在前导节点之后,在识别出第一插入点之后为先前节点获得第一锁定,在获得锁定之后验证前导节点和当前节点,在验证之后将新节点插入并发集合,其中新的 节点与对象相关联,并在插入新节点后释放第一个锁。

    Efficient non-blocking k-compare-single-swap operation
    10.
    发明授权
    Efficient non-blocking k-compare-single-swap operation 有权
    高效无阻塞k-比较 - 单互换操作

    公开(公告)号:US07293143B1

    公开(公告)日:2007-11-06

    申请号:US10670495

    申请日:2003-09-24

    摘要: The design of nonblocking linked data structures using single-location synchronization primitives such as compare-and-swap (CAS) is a complex affair that often requires severe restrictions on the way pointers are used. One way to address this problem is to provide stronger synchronization operations, for example, ones that atomically modify one memory location while simultaneously verifying the contents of others. We provide a simple and highly efficient nonblocking implementation of such an operation: an atomic k-word-compare single-swap operation (KCSS). Our implementation is obstruction-free. As a result, it is highly efficient in the uncontended case and relies on contention management mechanisms in the contended cases. It allows linked data structure manipulation without the complexity and restrictions of other solutions. Additionally, as a building block of some implementations of our techniques, we have developed the first nonblocking software implementation of load-linked/store-conditional that does not severely restrict word size.

    摘要翻译: 使用单一位置同步原语(例如比较和交换(CAS))的非阻塞链接数据结构的设计是一种复杂的事情,通常需要对指针使用方式的严格限制。 解决这个问题的一个方法是提供更强大的同步操作,例如,在同时验证其他内容的同时原子地修改一个存储器位置的同步操作。 我们提供了这样一个操作的简单而高效的非阻塞实现:原子k字比较单交换操作(KCSS)。 我们的实施是无障碍的。 因此,在无争议的情况下是高效的,并且依赖于竞争案件中的争用管理机制。 它允许链接的数据结构操作,而不需要其他解决方案的复杂性和限制。 此外,作为我们技术的一些实现的构建块,我们开发了第一个不会严重限制字大小的无负载连接/存储条件的非阻塞软件实现。