Patents by Inventor Joshua A. Triplett
Joshua A. Triplett 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).
-
Patent number: 9459963Abstract: A technique for safely rolling back transactional memory transactions without impacting concurrent readers of the uncommitted transaction data. An updater uses a transactional memory technique to perform an data update on data that is shared with a reader. The update is implemented as a transaction in which the updated data is initially uncommitted due to the transaction being subject to roll back. The reader is allowed to perform a data read on the uncommitted data during the transaction. Upon a rollback of the transaction, reclamation of memory locations used by the uncommitted data is deferred until a grace period has elapsed after which the reader can no longer be referencing the uncommitted data.Type: GrantFiled: September 3, 2009Date of Patent: October 4, 2016Assignee: International Business Machines CorporationInventors: Paul E. McKenney, Joshua A. Triplett
-
Patent number: 9015133Abstract: A technique for resizing a first RCU-protected hash table stored in a memory. A second RCU-protected hash table is allocated in the memory as a resized version of the first hash table having a different number of hash buckets, with the hash buckets being defined but initially having no hash table elements. The second hash table is populated by linking each hash bucket thereof to all hash buckets of the first hash table containing elements that hash to the second hash bucket. The second hash table is then published so that it is available for searching by hash table readers. The first table is freed from memory after waiting for a grace period which guarantees that no readers searching the first hash table will be affected by the freeing.Type: GrantFiled: April 25, 2012Date of Patent: April 21, 2015Assignee: International Business Machines CorporationInventors: Paul E. McKenney, Joshua A. Triplett
-
Patent number: 9009122Abstract: A technique for resizing a first RCU-protected hash table stored in a memory. A second RCU-protected hash table is allocated in the memory as a resized version of the first hash table having a different number of hash buckets, with the hash buckets being defined but initially having no hash table elements. The second hash table is populated by linking each hash bucket thereof to all hash buckets of the first hash table containing elements that hash to the second hash bucket. The second hash table is then published so that it is available for searching by hash table readers. The first table is freed from memory after waiting for a grace period which guarantees that no readers searching the first hash table will be affected by the freeing.Type: GrantFiled: December 8, 2011Date of Patent: April 14, 2015Assignee: International Business Machines CorporationInventors: Paul E. McKenney, Joshua A. Triplett
-
Patent number: 8788543Abstract: A system, method and computer program product for resizing a hash table while supporting hash table scalability and concurrency. The hash table has one or more hash buckets each containing one or more items that are chained together in a linked list. Each item in the hash table is processed to determine if the item requires relocation from a first bucket associated with a first table size to second bucket associated with a second table size. If the item requires relocation, it is linked to the second bucket without moving or copying the item in memory. The item is unlinked from the first bucket after waiting until there is no current hash table reader whose search of the hash table could be affected by the unlinking, again without moving or copying the item in memory.Type: GrantFiled: May 13, 2010Date of Patent: July 22, 2014Assignee: International Business Machines CorporationInventors: Paul E. McKenney, Joshua A. Triplett
-
Patent number: 8689195Abstract: A technique for enforcing the use of designated initializers in structured type initializations may include determining whether structured data type requires designated initialization, determining whether an initialization of a structured variable declared to use the structured data type employs an improper initializer that is inconsistent with said structured data type, and performing a diagnostic action if the initialization comprises an improper initializer.Type: GrantFiled: June 3, 2008Date of Patent: April 1, 2014Assignee: International Business Machines CorporationInventor: Joshua A. Triplett
-
Patent number: 8666952Abstract: Concurrent resizing and modification of a first RCU-protected hash table includes allocating a second RCU-protected hash table, populating it by linking each hash bucket of the second hash table to all hash buckets of the first hash table containing elements that hash to the second hash table bucket, and publishing the second hash table. If the modifying comprises insertion, a new element is inserted at the head of a corresponding bucket in the second hash table. If the modifying comprises deletion, then within an RCU read-side critical section: (1) all pointers in hash buckets of the first and second hash tables that reference the element being deleted are removed or redirected, and (2) the element is freed following a grace period that protects reader references to the deleted element. The first table is freed from memory after awaiting a grace period that protects reader references to the first hash table.Type: GrantFiled: April 25, 2012Date of Patent: March 4, 2014Assignee: International Business Machines CorporationInventors: Paul E. McKenney, Joshua A. Triplett
-
Patent number: 8661005Abstract: Concurrent resizing and modification of a first RCU-protected hash table includes allocating a second RCU-protected hash table, populating it by linking each hash bucket of the second hash table to all hash buckets of the first hash table containing elements that hash to the second hash table bucket, and publishing the second hash table. If the modifying comprises insertion, a new element is inserted at the head of a corresponding bucket in the second hash table. If the modifying comprises deletion, then within an RCU read-side critical section: (1) all pointers in hash buckets of the first and second hash tables that reference the element being deleted are removed or redirected, and (2) the element is freed following a grace period that protects reader references to the deleted element. The first table is freed from memory after awaiting a grace period that protects reader references to the first hash table.Type: GrantFiled: December 8, 2011Date of Patent: February 25, 2014Assignee: International Business Machines CorporationInventors: Paul E. McKenney, Joshua A. Triplett
-
Publication number: 20130151489Abstract: Concurrent resizing and modification of a first RCU-protected hash table includes allocating a second RCU-protected hash table, populating it by linking each hash bucket of the second hash table to all hash buckets of the first hash table containing elements that hash to the second hash table bucket, and publishing the second hash table. If the modifying comprises insertion, a new element is inserted at the head of a corresponding bucket in the second hash table. If the modifying comprises deletion, then within an RCU read-side critical section: (1) all pointers in hash buckets of the first and second hash tables that reference the element being deleted are removed or redirected, and (2) the element is freed following a grace period that protects reader references to the deleted element. The first table is freed from memory after awaiting a grace period that protects reader references to the first hash table.Type: ApplicationFiled: December 8, 2011Publication date: June 13, 2013Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Paul E. McKenney, Joshua A. Triplett
-
Publication number: 20130151811Abstract: Concurrent resizing and modification of a first RCU-protected hash table includes allocating a second RCU-protected hash table, populating it by linking each hash bucket of the second hash table to all hash buckets of the first hash table containing elements that hash to the second hash table bucket, and publishing the second hash table. If the modifying comprises insertion, a new element is inserted at the head of a corresponding bucket in the second hash table. If the modifying comprises deletion, then within an RCU read-side critical section: (1) all pointers in hash buckets of the first and second hash tables that reference the element being deleted are removed or redirected, and (2) the element is freed following a grace period that protects reader references to the deleted element. The first table is freed from memory after awaiting a grace period that protects reader references to the first hash table.Type: ApplicationFiled: April 25, 2012Publication date: June 13, 2013Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Paul E. McKenney, Joshua A. Triplett
-
Publication number: 20130151524Abstract: A technique for resizing a first RCU-protected hash table stored in a memory. A second RCU-protected hash table is allocated in the memory as a resized version of the first hash table having a different number of hash buckets, with the hash buckets being defined but initially having no hash table elements. The second hash table is populated by linking each hash bucket thereof to all hash buckets of the first hash table containing elements that hash to the second hash bucket. The second hash table is then published so that it is available for searching by hash table readers. The first table is freed from memory after waiting for a grace period which guarantees that no readers searching the first hash table will be affected by the freeing.Type: ApplicationFiled: April 25, 2012Publication date: June 13, 2013Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Paul E. McKenney, Joshua A. Triplett
-
Publication number: 20130151488Abstract: A technique for resizing a first RCU-protected hash table stored in a memory. A second RCU-protected hash table is allocated in the memory as a resized version of the first hash table having a different number of hash buckets, with the hash buckets being defined but initially having no hash table elements. The second hash table is populated by linking each hash bucket thereof to all hash buckets of the first hash table containing elements that hash to the second hash bucket. The second hash table is then published so that it is available for searching by hash table readers. The first table is freed from memory after waiting for a grace period which guarantees that no readers searching the first hash table will be affected by the freeing.Type: ApplicationFiled: December 8, 2011Publication date: June 13, 2013Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Paul E. McKenney, Joshua A. Triplett
-
Patent number: 8195893Abstract: A technique for optimizing grace period detection in a uniprocessor environment. An update operation is performed on a data element that is shared with non-preemptible readers of the data element. A call is issued to a synchronous grace period detection method. The synchronous grace period detection method performs synchronous grace period detection and returns from the call if the data processing system implements a multi-processor environment at the time of the call. The synchronous grace period detection determines the end of a grace period in which the readers have passed through a quiescent state and cannot be maintaining references to the pre-update view of the shared data. The synchronous grace period detection method returns from the call without performing grace period detection if the data processing system implements a uniprocessor environment at the time of the call.Type: GrantFiled: November 3, 2008Date of Patent: June 5, 2012Assignee: International Business Machines CorporationInventor: Joshua A. Triplett
-
Patent number: 8108696Abstract: A technique for low-power detection of a grace period following a shared data element update operation that affects non-preemptible data readers. A grace period processing action is implemented that requires a processor that may be running a non-preemptible reader of the shared data element to pass through a quiescent state before further grace period processing can proceed. A power status of the processor is also determined. Further grace period processing may proceed without requiring the processor to pass through a quiescent state if the power status indicates that quiescent state processing by the processor is unnecessary.Type: GrantFiled: July 24, 2008Date of Patent: January 31, 2012Assignee: International Business Machines CorporationInventor: Joshua A. Triplett
-
Publication number: 20110283082Abstract: A system, method and computer program product for resizing a hash table while supporting hash table scalability and concurrency. The hash table has one or more hash buckets each containing one or more items that are chained together in a linked list. Each item in the hash table is processed to determine if the item requires relocation from a first bucket associated with a first table size to second bucket associated with a second table size. If the item requires relocation, it is linked to the second bucket without moving or copying the item in memory. The item is unlinked from the first bucket after waiting until there is no current hash table reader whose search of the hash table could be affected by the unlinking, again without moving or copying the item in memory.Type: ApplicationFiled: May 13, 2010Publication date: November 17, 2011Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Paul E. McKenney, Joshua A. Triplett
-
Patent number: 8055918Abstract: A technique for low-power detection of a grace period for deferring the destruction of a shared data element until pre-existing references to the data element have been removed. A grace period processing action is implemented that requires a response from a processor that may be running a preemptible reader of said shared data element before further grace period processing can proceed. A power and reader status of the processor is also determined. Grace period processing may proceed despite the absence of a response from the processor if the power and reader status indicates that an actual response from the processor is unnecessary.Type: GrantFiled: April 3, 2008Date of Patent: November 8, 2011Assignee: International Business Machines CorporationInventors: Paul E. McKenney, Joshua A. Triplett
-
Patent number: 7953708Abstract: A technique for optimizing grace period detection following a data element update operation that affects preemptible data readers. A determination is made whether the data processing system is a uniprocessor system or a multiprocessor system. Grace period detection processing is performed using a first grace period detection technique if the data processing system is a multiprocessor system. Grace period detection processing is performed using a second grace period detection technique if the data processing system is a uniprocessor system. The grace period detection processing according to either technique determines the end of a grace period in which readers that are subject to preemption have passed through a quiescent state and cannot be maintaining references to the pre-update view of the shared data.Type: GrantFiled: July 28, 2008Date of Patent: May 31, 2011Assignee: International Business Machines CorporationInventors: Paul E. McKenney, Joshua A. Triplett
-
Publication number: 20110055630Abstract: A technique for safely rolling back transactional memory transactions without impacting concurrent readers of the uncommitted transaction data. An updater uses a transactional memory technique to perform an data update on data that is shared with a reader. The update is implemented as a transaction in which the updated data is initially uncommitted due to the transaction being subject to roll back. The reader is allowed to perform a data read on the uncommitted data during the transaction. Upon a rollback of the transaction, reclamation of memory locations used by the uncommitted data is deferred until a grace period has elapsed after which the reader can no longer be referencing the uncommitted data.Type: ApplicationFiled: September 3, 2009Publication date: March 3, 2011Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Paul E. McKenney, Joshua A. Triplett
-
Publication number: 20100115235Abstract: A technique for optimizing grace period detection in a uniprocessor environment. An update operation is performed on a data element that is shared with non-preemptible readers of the data element. A call is issued to a synchronous grace period detection method. The synchronous grace period detection method performs synchronous grace period detection and returns from the call if the data processing system implements a multi-processor environment at the time of the call. The synchronous grace period detection determines the end of a grace period in which the readers have passed through a quiescent state and cannot be maintaining references to the pre-update view of the shared data. The synchronous grace period detection method returns from the call without performing grace period detection if the data processing system implements a uniprocessor environment at the time of the call.Type: ApplicationFiled: November 3, 2008Publication date: May 6, 2010Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Joshua A. Triplett
-
Patent number: 7668851Abstract: A system, method and computer program product for moving a shared list element from a first list location to a second list location includes making the list element appear simultaneously in the first list and the second list under a first key associated with the first list, changing the first key associated with the first list to a second key associated with the second list, and making the list element appear only in the second list under the second key associated with the second list.Type: GrantFiled: November 29, 2006Date of Patent: February 23, 2010Assignee: International Business Machines CorporationInventor: Joshua Triplett
-
Publication number: 20100023559Abstract: A technique for optimizing grace period detection following a data element update operation that affects preemptible data readers. A determination is made whether the data processing system is a uniprocessor system or a multiprocessor system. Grace period detection processing is performed using a first grace period detection technique if the data processing system is a multiprocessor system. Grace period detection processing is performed using a second grace period detection technique if the data processing system is a uniprocessor system. The grace period detection processing according to either technique determines the end of a grace period in which readers that are subject to preemption have passed through a quiescent state and cannot be maintaining references to the pre-update view of the shared data.Type: ApplicationFiled: July 28, 2008Publication date: January 28, 2010Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Paul E. McKenney, Joshua A. Triplett