Patents by Inventor Victor M. Luchangco
Victor M. Luchangco has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20240086261Abstract: A first data accessor acquires a lock associated with a critical section. The first data accessor initiates a help session associated with a first operation of the critical section. In the help session, a second data accessor (which has not acquired the first lock) performs one or more sub-operations of the first operation. The first data accessor releases the lock after at least the first operation has been completed.Type: ApplicationFiled: November 20, 2023Publication date: March 14, 2024Inventors: Yosef Lev, Victor M. Luchangco, David Dice, Alex Kogan, Timothy L. Harris, Pantea Zardoshti
-
Patent number: 11861416Abstract: A first data accessor acquires a lock associated with a critical section. The first data accessor initiates a help session associated with a first operation of the critical section. In the help session, a second data accessor (which has not acquired the first lock) performs one or more sub-operations of the first operation. The first data accessor releases the lock after at least the first operation has been completed.Type: GrantFiled: July 16, 2021Date of Patent: January 2, 2024Assignee: Oracle International CorporationInventors: Yosef Lev, Victor M. Luchangco, David Dice, Alex Kogan, Timothy L. Harris, Pantea Zardoshti
-
Publication number: 20210342202Abstract: A first data accessor acquires a lock associated with a critical section. The first data accessor initiates a help session associated with a first operation of the critical section. In the help session, a second data accessor (which has not acquired the first lock) performs one or more sub-operations of the first operation. The first data accessor releases the lock after at least the first operation has been completed.Type: ApplicationFiled: July 16, 2021Publication date: November 4, 2021Inventors: Yosef Lev, Victor M. Luchangco, David Dice, Alex Kogan, Timothy L. Harris, Pantea Zardoshti
-
Patent number: 11068319Abstract: A first data accessor acquires a lock associated with a critical section. The first data accessor initiates a help session associated with a first operation of the critical section. In the help session, a second data accessor (which has not acquired the first lock) performs one or more sub-operations of the first operation. The first data accessor releases the lock after at least the first operation has been completed.Type: GrantFiled: October 18, 2018Date of Patent: July 20, 2021Assignee: Oracle International CorporationInventors: Yosef Lev, Victor M. Luchangco, David Dice, Alex Kogan, Timothy L. Harris, Pantea Zardoshti
-
Publication number: 20200125422Abstract: A first data accessor acquires a lock associated with a critical section. The first data accessor initiates a help session associated with a first operation of the critical section. In the help session, a second data accessor (which has not acquired the first lock) performs one or more sub-operations of the first operation. The first data accessor releases the lock after at least the first operation has been completed.Type: ApplicationFiled: October 18, 2018Publication date: April 23, 2020Inventors: Yosef Lev, Victor M. Luchangco, David Dice, Alex Kogan, Timothy L. Harris, Pantea Zardoshti
-
Patent number: 10127088Abstract: Socket scheduling modes may prevent non-uniform memory access effects from negatively affecting performance of synchronization mechanisms utilizing hardware transactional memory. Each mode may indicate whether a thread may execute a critical section on a particular socket. For example, under transitional lock elision, locks may include a mode indicating whether threads may acquire or elide the lock on a particular socket. Different modes may be used alternately to prevent threads from starving. A thread may only execute a critical section on a particular socket if allowed by the current mode. Otherwise, threads may block until allowed to execute the critical section, such as after the current mode changes. A profiling session may, for a running workload, iterate over all possible modes, measuring statistics pertaining to the execution of critical sections (e.g., the number of lock acquisitions and/or elisions), to determine the best performing modes for the particular workload.Type: GrantFiled: September 12, 2016Date of Patent: November 13, 2018Assignee: Oracle Inrternational CorporationInventors: Alex Kogan, Victor M. Luchangco, Yosef Lev, Trevor Brown
-
Patent number: 9804888Abstract: Systems and methods for implementing constrained data-driven parallelism may provide programmers with mechanisms for controlling the execution order and/or interleaving of tasks spawned during execution. For example, a programmer may define a task group that includes a single task, and the single task may define a direct or indirect trigger that causes another task to be spawned (e.g., in response to a modification of data specified in the trigger). Tasks spawned by a given task may be added to the same task group as the given task. A deferred keyword may control whether a spawned task is to be executed in the current execution phase or its execution is to be deferred to a subsequent execution phase for the task group. Execution of all tasks executing in the current execution phase may need to be complete before the execution of tasks in the next phase can begin.Type: GrantFiled: October 7, 2013Date of Patent: October 31, 2017Assignee: Oracle International CorporationInventors: Virendra J. Marathe, Yosef Lev, Victor M. Luchangco
-
Patent number: 9727369Abstract: Transactional reader-writer locks may leverage available hardware transactional memory (HTM) to simplify the procedures of the reader-writer lock algorithm and to eliminate a requirement for type stable memory An HTM-based reader-writer lock may include an ordered list of client-provided nodes, each of which represents a thread that holds (or desires to acquire) the lock, and a tail pointer. The locking and unlocking procedures invoked by readers and writers may access the tail pointer or particular ones of the nodes in the list using various combinations of transactions and non-transactional accesses to insert nodes into the list or to remove nodes from the list. A reader or writer that owns a node at the head of the list (or a reader whose node is preceded in the list only by other readers' nodes) may access a critical section of code or shared resource.Type: GrantFiled: May 16, 2016Date of Patent: August 8, 2017Assignee: Oracle International CorporationInventors: David Dice, Yosef Lev, Yujie Liu, Victor M. Luchangco, Mark S. Moir
-
Publication number: 20170075720Abstract: Socket scheduling modes may prevent non-uniform memory access effects from negatively affecting performance of synchronization mechanisms utilizing hardware transactional memory. Each mode may indicate whether a thread may execute a critical section on a particular socket. For example, under transitional lock elision, locks may include a mode indicating whether threads may acquire or elide the lock on a particular socket. Different modes may be used alternately to prevent threads from starving. A thread may only execute a critical section on a particular socket if allowed by the current mode. Otherwise, threads may block until allowed to execute the critical section, such as after the current mode changes. A profiling session may, for a running workload, iterate over all possible modes, measuring statistics pertaining to the execution of critical sections (e.g., the number of lock acquisitions and/or elisions), to determine the best performing modes for the particular workload.Type: ApplicationFiled: September 12, 2016Publication date: March 16, 2017Inventors: Alex Kogan, Victor M. Luchangco, Yosef Lev, Trevor Brown
-
Publication number: 20160259663Abstract: Transactional reader-writer locks may leverage available hardware transactional memory (HTM) to simplify the procedures of the reader-writer lock algorithm and to eliminate a requirement for type stable memory An HTM-based reader-writer lock may include an ordered list of client-provided nodes, each of which represents a thread that holds (or desires to acquire) the lock, and a tail pointer. The locking and unlocking procedures invoked by readers and writers may access the tail pointer or particular ones of the nodes in the list using various combinations of transactions and non-transactional accesses to insert nodes into the list or to remove nodes from the list. A reader or writer that owns a node at the head of the list (or a reader whose node is preceded in the list only by other readers' nodes) may access a critical section of code or shared resource.Type: ApplicationFiled: May 16, 2016Publication date: September 8, 2016Inventors: David Dice, Yosef Lev, Yujie Liu, Victor M. Luchangco, Mark S. Moir
-
Patent number: 9430275Abstract: Transactional memory implementations may be extended to support transaction communicators and/or transaction condition variables for which transaction isolation is relaxed, and through which concurrent transactions can communicate and be synchronized with each other. Transactional accesses to these objects may not be isolated unless called within communicator-isolating transactions. A waiter transaction may invoke a wait method of a transaction condition variable, be added to a wait list for the variable, and be suspended pending notification of a notification event from a notify method of the variable. A notifier transaction may invoke a notify method of the variable, which may remove the waiter from the wait list, schedule the waiter transaction for resumed execution, and notify the waiter of the notification event. A waiter transaction may commit only if the corresponding notifier transaction commits. If the waiter transaction aborts, the notification may be forwarded to another waiter.Type: GrantFiled: June 27, 2011Date of Patent: August 30, 2016Assignee: Oracle International CorporationInventors: Virendra J. Marathe, Victor M. Luchangco
-
Patent number: 9342380Abstract: Transactional reader-writer locks may leverage available hardware transactional memory (HTM) to simplify the procedures of the reader-writer lock algorithm and to eliminate a requirement for type stable memory An HTM-based reader-writer lock may include an ordered list of client-provided nodes, each of which represents a thread that holds (or desires to acquire) the lock, and a tail pointer. The locking and unlocking procedures invoked by readers and writers may access the tail pointer or particular ones of the nodes in the list using various combinations of transactions and non-transactional accesses to insert nodes into the list or to remove nodes from the list. A reader or writer that owns a node at the head of the list (or a reader whose node is preceded in the list only by other readers' nodes) may access a critical section of code or shared resource.Type: GrantFiled: March 5, 2013Date of Patent: May 17, 2016Assignee: Oracle International CorporationInventors: David Dice, Yosef Lev, Yujie Liu, Victor M. Luchangco, Mark S. Moir
-
Patent number: 9323586Abstract: We teach a powerful approach that greatly simplifies the design of non-blocking mechanisms and data structures, in part by, largely separate the issues of correctness and progress. At a high level, our methodology includes designing an “obstruction-free” implementation of the desired mechanism or data structure, which may then be combined with a contention management mechanism whose role is to facilitate the conditions under which progress of the obstruction-free implementation is assured. In general, the contention management mechanism is separable semantically from an obstruction-free concurrent shared/sharable object implementation to which it is/may be applied. In some cases, the contention management mechanism may actually be coded separately from the obstruction-free implementation. We elaborate herein on the notions of obstruction-freedom and contention management, and various possibilities for combining the two.Type: GrantFiled: June 8, 2015Date of Patent: April 26, 2016Assignee: Oracle International CorporationInventors: Mark S. Moir, Victor M. Luchangco, Maurice Herlihy
-
Publication number: 20150269008Abstract: We teach a powerful approach that greatly simplifies the design of non-blocking mechanisms and data structures, in part by, largely separate the issues of correctness and progress. At a high level, our methodology includes designing an “obstruction-free” implementation of the desired mechanism or data structure, which may then be combined with a contention management mechanism whose role is to facilitate the conditions under which progress of the obstruction-free implementation is assured. In general, the contention management mechanism is separable semantically from an obstruction-free concurrent shared/sharable object implementation to which it is/may be applied. In some cases, the contention management mechanism may actually be coded separately from the obstruction-free implementation. We elaborate herein on the notions of obstruction-freedom and contention management, and various possibilities for combining the two.Type: ApplicationFiled: June 8, 2015Publication date: September 24, 2015Inventors: Mark S. Moir, Victor M. Luchangco, Maurice Herlihy
-
Patent number: 9135178Abstract: 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.Type: GrantFiled: July 6, 2012Date of Patent: September 15, 2015Assignee: Oracle International CorporationInventors: Nir N. Shavit, Mark S. Moir, Victor M. Luchangco
-
Patent number: 9052944Abstract: We teach a powerful approach that greatly simplifies the design of non-blocking mechanisms and data structures, in part by, largely separate the issues of correctness and progress. At a high level, our methodology includes designing an “obstruction-free” implementation of the desired mechanism or data structure, which may then be combined with a contention management mechanism whose role is to facilitate the conditions under which progress of the obstruction-free implementation is assured. In general, the contention management mechanism is separable semantically from an obstruction-free concurrent shared/sharable object implementation to which it is/may be applied. In some cases, the contention management mechanism may actually be coded separately from the obstruction-free implementation. We elaborate herein on the notions of obstruction-freedom and contention management, and various possibilities for combining the two.Type: GrantFiled: April 15, 2005Date of Patent: June 9, 2015Assignee: Oracle America, Inc.Inventors: Mark S. Moir, Victor M. Luchangco, Maurice Herlihy
-
Patent number: 8966491Abstract: 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.Type: GrantFiled: April 27, 2012Date of Patent: February 24, 2015Assignee: Oracle International CorporationInventors: Irina Calciu, David Dice, Victor M. Luchangco, Virendra J. Marathe, Nir N. Shavit, Yosef Lev
-
Patent number: 8909601Abstract: A Scalable NonZero Indicator (SNZI) object in a concurrent computing application may include a shared data portion (e.g., a counter portion) and a shared nonzero indicator portion, and/or may be an element in a hierarchy of SNZI objects that filters changes in non-root nodes to a root node. SNZI objects may be accessed by software applications through an API that includes a query operation to return the value of the nonzero indicator, and arrive (increment) and depart (decrement) operations. Modifications of the data portion and/or the indicator portion may be performed using atomic read-modify-write type operations. Some SNZI objects may support a reset operation. A shared data object may be set to an intermediate value, or an announce bit may be set, to indicate that a modification is in progress that affects its corresponding indicator value. Another process or thread seeing this indication may “help” complete the modification before proceeding.Type: GrantFiled: November 13, 2007Date of Patent: December 9, 2014Assignee: Oracle America, Inc.Inventors: Mark S. Moir, Yosef Lev, Victor M. Luchangco, David Dice
-
Patent number: 8898632Abstract: The disclosed embodiments provide a system that facilitates the development and execution of a software program. During runtime of the software program, the system obtains a function call associated with an overloaded function and a generic type hierarchy. Next, the system determines an applicability of an implementation of the overloaded function to the function call. Finally, the system selects the implementation for invocation by the function call based on the determined applicability and a partial order of implementations for the overloaded function.Type: GrantFiled: August 31, 2012Date of Patent: November 25, 2014Assignee: Oracle International CorporationInventors: Karl B. Naden, Justin R. Hilburn, David R. Chase, Guy L. Steele, Victor M. Luchangco, Eric Allen
-
Patent number: 8843887Abstract: The disclosed embodiments provide a system that facilitates the development and execution of a software program. During runtime of the software program, the system obtains a function call associated with an overloaded function and a generic type hierarchy that lacks contravariance. Next, the system determines an applicability of an implementation of the overloaded function to the function call. Finally, the system selects the implementation for invocation by the function call based on the determined applicability and a partial order of implementations for the overloaded function.Type: GrantFiled: August 31, 2012Date of Patent: September 23, 2014Assignee: Oracle International CorporationInventors: David R. Chase, Guy L. Steele, Karl B. Naden, Justin R. Hilburn, Victor M. Luchangco