or
Bookmark and Share
Lock free data structure maintenance
   
Document Number
US Patent 6615216
Issued Date
September 2, 2003
Link
Inventors
Hu; Carl (Bothell, WA)
Map
Abstract
Method and apparatus for maintaining a queue structure having data nodes within a computer memory. The queue is maintained by the steps of maintaining a pool of available data nodes for use in maintaining the queue structure. Data is added to the queue structure by adding a nodes to the queue structure. Each data node includes a data portion, a link for addressing other data nodes in the queue structure, and an identifier. Data within the queue is accessed and then removed from the queue but the data nodes are preserved in memory by adding them to the pool of available data nodes. New data nodes are added to the queue by first checking the data pool, which in an exemplary embodiment is in the form of a stack, to determine if there are any nodes available in the pool before creating a new data node.
Drawing
Lock free data structure maintenance - US Patent 6615216 Drawing
Drawing from US Patent 6615216
Tags:
Description:
Amusing 0%
Clever 0%
Complex 0%
Efficient 0%
Historic 0%
Important 0%
Innovative 0%
Interesting 0%
Practical 0%
Simple 0%
Number of Claims:
17
Comments:
no comments yet
Owner
Microsoft Corporation (Redmond, WA)
Published
September 2, 2003
Application Number
09/606,258
Filed
June 29, 2000
US Classification
707/101   707/9 718/100
Int'l Classification
G06F   9/46   (20060101)   G06F   17/30   (20060101)  
Examiner
Assistant Examiner
USPTO Field of Search
707/206   707/6   707/100   707/101   707/102   707/103   707/104.1   707/9   709/100   709/101   709/104  
Related Patents
7395263 - Realtime-safe read copy update with lock-free readers - Owned by International Business Machines Corporation (Armonk, NY)

A technique for realtime-safe 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 pair of counters is established for each of one or more processors. A global counter selector determines which counter of each per-processor counter pair is a current counter. When reading a shared data element at a processor, the processor's current counter is incremented. Following counter incrementation, the processor's counter pair is tested for reversal to ensure that the incremented counter is still the current counter. If a counter reversal has occurred, such that the incremented counter is no longer current, the processor's other counter is incremented. Following referencing of the shared data element, any counter that remains incremented is decremented. Following an update to the shared data element wherein a pre-update version of the element is maintained, the global counter selector is switched to establish a new current counter of each per-processor counter pair. The non-current counter of each per-processor counter pair is tested for zero. The shared data element's pre-update version is destroyed upon the non-current counter of each per-processor counter pair being zero.

7133914 - Statistics-preserving ACL flattening system and method - Owned by Cisco Technology, Inc. (San Jose, CA)

A method and system transforms one or more lists for a data communications system into a single list, each list of the one or more lists including a plurality of entries. The method includes removing non-terminating entries from the plurality of entries in the one or more lists, the removing each non-terminating entry removing all but a last non-terminating entry in any of the one or more lists; and eliminating from the plurality of entries one or more entries that provide for one or more impossible actions, wherein the removing of non-terminating entries and the eliminating of one or more entries that provide for impossible actions, if any, produce a single list preserving tracing of the entries in the single list to the plurality of entries.

7299242 - Single-word lock-free reference counting - Owned by Sun Microsystems, Inc. (Santa Clara, CA)

Solutions to a value recycling problem that we define herein facilitate implementations of computer programs that may execute as multithreaded computations in multiprocessor computers, as well as implementations of related shared data structures. Some exploitations of the techniques described herein allow non-blocking, shared data structures to be implemented using standard dynamic allocation mechanisms (such as malloc and free). A class of general solutions to value recycling is described in the context of an illustration we call the Repeat Offender Problem (ROP), including illustrative Application Program Interfaces (APIs) defined in terms of the ROP terminology. Furthermore, specific solutions, implementations and algorithm, including a Pass-The-Buck (PTB) implementation are also described. Solutions to the proposed value recycling problem have a variety of uses. For example, a single-word lock-free reference counting (SLFRC) technique may build on any of a variety of value recycling solutions to transform, in a straight-forward manner, many lock-free data structure implementations that assume garbage collection (i.e., which do not explicitly free memory) into dynamic-sized data structures.

7194495 - Non-blocking memory management mechanism for supporting dynamic-sized data structures - Owned by Sun Microsystems, Inc. (Santa Clara, CA)

Solutions to a value recycling problem that we define herein facilitate implementations of computer programs that may execute as multithreaded computations in multiprocessor computers, as well as implementations of related shared data structures. Some exploitations of the techniques described herein allow non-blocking, shared data structures to be implemented using standard dynamic allocation mechanisms (such as malloc and free). Indeed, we present several exemplary realizations of dynamic-sized, non-blocking shared data structures that are not prevented from future memory reclamation by thread failures and which depend (in some implementations) only on widely-available hardware support for synchronization. Some exploitations of the techniques described herein allow non-blocking, indeed even lock-free or wait-free, implementations of dynamic storage allocation for shared data structures. A class of general solutions to value recycling is described in the context of an illustration we call the Repeat Offender Problem (ROP), including illustrative Application Program Interfaces (APIs) defined in terms of the ROP terminology. Furthermore, specific solutions, implementations and algorithm, including a Pass-The-Buck (PTB) implementation are described.

7254597 - Lock-free implementation of dynamic-sized shared data structure - Owned by Sun Microsystems, Inc. (Santa Clara, CA)

Solutions to a value recycling problem that we define herein facilitate implementations of computer programs that may execute as multithreaded computations in multiprocessor computers, as well as implementations of related shared data structures. Some exploitations of the techniques described herein allow non-blocking, shared data structures to be implemented using standard dynamic allocation mechanisms (such as malloc and free). A variety of solutions to the proposed value recycling problem may be implemented. A class of general solutions to value recycling is described in the context of an illustration we call the Repeat Offender Problem (ROP), including illustrative Application Program Interfaces (APIs) defined in terms of the ROP terminology. Furthermore, specific solutions, implementations and algorithm, including a Pass-The-Buck (PTB) implementation are also described. Solutions to the value recycling problem can be applied in a variety of ways to implement dynamic-sized data structures.

Claims
Description
About| FAQs| Terms & Disclaimer| Link to Us| Contact Us