Patents by Inventor David L. Detlefs

David L. Detlefs 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: 20110145553
    Abstract: Handling parallelism in transactions. One embodiment includes a method that includes beginning a cache resident transaction. The method further includes encountering a nested structured parallelism construct within the cache resident transaction. A determination is made as to whether the transaction would run faster serially in cache resident mode or faster parallel in software transactional memory mode for the overall transaction. In the software transactional memory mode, cache resident mode is used for one or more hierarchically lower nested transactions. The method further includes continuing the transaction in the mode determined.
    Type: Application
    Filed: December 15, 2009
    Publication date: June 16, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Yosseff Levanoni, David L. Detlefs, Jan S. Gray
  • Publication number: 20100275209
    Abstract: A scalable locking system is described herein that allows processors to access shared data with reduced cache contention to increase parallelism and scalability. The system provides a reader/writer lock implementation that uses randomization and spends extra space to spread possible contention over multiple cache lines. The system avoids updates to a single shared location in acquiring/releasing a read lock by spreading the lock count over multiple sub-counts in multiple cache lines, and hashing thread identifiers to those cache lines. Carefully crafted invariants allow the use of partially lock-free code in the common path of acquisition and release of a read lock. A careful protocol allows the system to reuse space allocated for a read lock for subsequent locking to avoid frequent reallocating of read lock data structures. The system also provides fairness for write-locking threads and uses object pooling techniques to make reduce costs associated with the lock data structures.
    Type: Application
    Filed: April 28, 2009
    Publication date: October 28, 2010
    Applicant: Microsoft Corporation
    Inventor: David L. Detlefs
  • Patent number: 7805467
    Abstract: A methodology has been discovered for transforming garbage collection-dependent algorithms, shared object implementations and/or concurrent software mechanisms into a form that does not presume the existence of an independent, or execution environment provided, garbage collector. Algorithms, shared object implementations and/or mechanisms designed or transformed using techniques described herein provide explicit reclamation of storage using lock-free pointer operations. Transformations can be applied to lock-free algorithms and shared object implementations and preserve lock-freedom of such algorithms and implementations. As a result, existing and future lock-free algorithms and shared object implementations that depend on a garbage-collected execution environment can be exploited in environments that do not provide garbage collection.
    Type: Grant
    Filed: January 30, 2006
    Date of Patent: September 28, 2010
    Assignee: Oracle America, Inc.
    Inventors: Mark S. Moir, David L. Detlefs, Simon Doherty, Maurice P. Herlihy, Victor M. Luchangco, Paul A. Martin, Guy L. Steele, Jr.
  • Publication number: 20100228929
    Abstract: A software transactional memory system is provided that provides privatization safety. The system identifies situations where the completion of a transaction may be expedited because a privatization artifact will not occur. The system determines whether a privatization artifact may occur using a read and write set intersection test, transactional variables, pessimistic locks, or declared privatizing transactions. If a privatization artifact will not occur for a transaction, then the system may allow the transaction to complete prior to one or more earlier transactions.
    Type: Application
    Filed: March 9, 2009
    Publication date: September 9, 2010
    Applicant: Microsoft Corporation
    Inventors: David L. Detlefs, Yosseff Levanoni, Weirong Zhu, Dana Groff, Alexander Dadiomov
  • Publication number: 20100211931
    Abstract: A software transactional memory system is provided with overflow handling. The system includes a global version counter with an epoch number and a version number. The system accesses the global version counter prior to and subsequent to memory accesses of transactions to validate read accesses of the transaction. The system includes mechanisms to detect global version number overflow and may allow some or all transactions to execute to completion subsequent to the global version number overflowing. The system also provides publication, privatization, and granular safety properties.
    Type: Application
    Filed: February 13, 2009
    Publication date: August 19, 2010
    Applicant: Microsoft Corporation
    Inventors: Yosseff Levanoni, David L. Detlefs, Weirong Zhu, Timothy L. Harris, Michael M. Magruder, Mathew B. Tolton
  • Patent number: 7779054
    Abstract: A method for heuristic-based resumption of fully-young garbage collection intervals comprises allocating memory to objects within one or more regions of a heap partitioned into a plurality of regions, and classifying each heap region as belonging to a category of a plurality of categories based at least in part on the recency of allocation of objects within the regions. The method may further comprise determining, using a garbage collection efficiency metric, whether regions belonging to a first category of the plurality of categories are to be excluded from a collection set of a particular garbage collection interval on the heap. In response to determining that the first category of regions is to be excluded, the method may comprise selecting a collection set that does not include any regions of the first category, and reclaiming memory from that collection set.
    Type: Grant
    Filed: September 30, 2005
    Date of Patent: August 17, 2010
    Assignee: Oracle America, Inc.
    Inventors: Antonios Printezis, David L. Detlefs
  • Patent number: 7765555
    Abstract: One embodiment of the present invention provides a system that facilitates bulk lock-unbiasing for objects within an object-based computing system. The system maintains an epoch, which is a field containing a timestamp, for a biasable object class and each instance of the biasable object class. If the epoch for the biasable object class matches the epoch for a specific instance of the biasable object class, the system knows that any bias for that specific instance is currently valid. When the system receives a signal to perform a bulk lock-unbiasing operation for instances of the biasable object class, it responds by stopping all threads in the object-based computing system at a safe point. Then, the system performs a bulk lock-unbiasing operation for unlocked instances of the biasable object class by incrementing the epoch for the biasable object class and by incrementing corresponding epochs for locked instances of the biasable object class.
    Type: Grant
    Filed: February 14, 2006
    Date of Patent: July 27, 2010
    Assignee: Oracle America, Inc.
    Inventors: David L. Detlefs, Kenneth B. Russell
  • Publication number: 20100083257
    Abstract: 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.
    Type: Application
    Filed: October 1, 2008
    Publication date: April 1, 2010
    Applicant: Microsoft Corporation
    Inventors: Weirong Zhu, David L. Detlefs, Yosseff Levanoni, Lingli Zhang
  • Patent number: 7685580
    Abstract: In a computer system that uses a “snapshot-at-the-beginning” garbage collector and in which write barrier code is generated for pointer write instructions in order to support the operation of the garbage collector, a static analysis of the computer program source code is performed prior to generating compiled code for the application and garbage collector in order to identify source code instructions that, at runtime, will perform initializing pointer writes as indicated by the fact that they overwrite memory locations that contain a predetermined pre-write value, such as NULL. The identified instructions are then compiled in a conventional manner, but no write barrier code is generated for them. Thus, at runtime, those instructions that perform initializing writes will incur no write barrier cost penalty.
    Type: Grant
    Filed: August 30, 2005
    Date of Patent: March 23, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: David L. Detlefs, V. Krishna Nandivada
  • Patent number: 7676511
    Abstract: In some circumstances a generational garbage collector may be made more efficient by “pre-tenuring” objects or directly allocating new objects in an old generation instead of allocating them in the normal fashion in a young generation. A pre-tenuring decision is made by a two step process. In the first step, during a young-generation collection, an execution frequency is determined for each allocation site and sites with the highest execution frequency are selected as candidate sites. In the second step, during a subsequent young-generation collection, the survival rates are determined for the candidate sites. After this, objects allocated from sites with sufficiently high survival rates are allocated directly in the old generation.
    Type: Grant
    Filed: January 27, 2006
    Date of Patent: March 9, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Antonios Printezis, David L. Detlefs, Fabio Rojas
  • Patent number: 7672983
    Abstract: The time cost of collecting a region in a Garbage-First garbage collector is adjusted to account for concurrent thread activity. The overhead of a concurrent thread is tracked by dividing elapsed time into relatively short time “windows” and monitoring the system during those windows to determine how long that thread is scheduled to run during those windows. Using measurements of this type for each concurrent thread, the percentage of each elapsed time window dedicated to each concurrent thread is determined. Finally, by summing the percentages of elapsed time dedicated to concurrent thread activity, the cost of collecting a region can be increased by adding the overhead attributable to concurrent activity.
    Type: Grant
    Filed: December 19, 2005
    Date of Patent: March 2, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Antonios Printezis, David L. Detlefs
  • Publication number: 20090327291
    Abstract: Software transactional memory (STM) primitives are provided that allow the results of prior open calls to be used by subsequent open calls either as-is or through another STM primitive that consumes the results of the previous invocation. The STM primitives are configured to ensure that the address of a shadow copy representing a memory location will not changed across a wide range of operations and thereby enable re-use of the shadow copy.
    Type: Application
    Filed: June 27, 2008
    Publication date: December 31, 2009
    Applicant: Microsoft Corporation
    Inventors: Yosseff Levanoni, David L. Detlefs, Michael M. Magruder, Vinod K. Grover
  • Publication number: 20090327636
    Abstract: A software transactional memory system is provided that generates and stores compressed transactional locks in a portion of object headers. The software transactional memory system allocates preferred write log memory with a predefined size of memory that corresponds to a number of bits in the compressed transactional locks. The compressed transactional locks identify write log entries in corresponding write logs in the preferred write log memory. If the preferred write log memory becomes full, additional write log memory is allocated for write log entries and subsequent transactional locks are stored uncompressed in an auxiliary memory. A pointer that may be used to locate the uncompressed transactional lock is stored in the header. If an object header with a compressed transactional lock is needed for another use, the compressed transactional lock is uncompressed and stored in the auxiliary memory. A pointer that may be used to locate the uncompressed transactional lock is stored in the header.
    Type: Application
    Filed: June 27, 2008
    Publication date: December 31, 2009
    Applicant: Microsoft Corporation
    Inventors: David L. Detlefs, Vinod K. Grover, Yosseff Levanoni, Michael M. Magruder
  • Publication number: 20090328019
    Abstract: A dynamic race detection system is provided that detects race conditions in code that executes concurrently in a computer system. The dynamic race detection system uses a modified software transactional memory (STM) system to detect race conditions. A compiler converts portions of the code that are not configured to operate with the STM system into pseudo STM code that operates with the STM system. The dynamic race detection system detects race conditions in response to either a pseudo STM transaction in the pseudo STM code failing to validate when executed or an actual STM transaction failing to validate when executed because of conflict with a concurrent pseudo STM transaction.
    Type: Application
    Filed: June 27, 2008
    Publication date: December 31, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: David L. Detlefs, Michael M. Magruder, Yosseff Levanoni
  • Publication number: 20090328018
    Abstract: A compiler is provided that determines when the use of software transactional memory (STM) primitives may be optimized with respect to a set of collectively dominating STM primitives. The compiler analysis coordinates the use of variables containing possible shadow copy pointers to allow the analysis to be performed for both direct write and buffered write STM systems. The coordination of the variables containing the possible shadow copy pointers ensures that the results of STM primitives are properly reused. The compiler analysis identifies memory accesses where STM primitives may be eliminated, combined, or substituted for lower overhead STM primitives.
    Type: Application
    Filed: June 27, 2008
    Publication date: December 31, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: David L. Detlefs, Michael M. Magruder, Yosseff Levanoni, Vinod K. Grover
  • Patent number: 7640544
    Abstract: A multiprocessor, multi-program, stop-the-world garbage collection program is described. The system initially over partitions the root sources, and then iteratively employs static and dynamic work balancing. Garbage collection threads compete dynamically for the initial partitions. Work stealing double-ended queues, where contention is reduced, are described to provide dynamic load balancing among the threads. Contention is resolved by using atomic instructions. The heap is broken into a young and an old generation where parallel semi-space copying is used to collect the young generation and parallel mark-compacting the old generation. Speed and efficiency of collection is enhanced by use of card tables and linking objects, and overflow conditions are efficiently handled by linking using class pointers. A garbage collection termination employs a global status word.
    Type: Grant
    Filed: November 23, 2004
    Date of Patent: December 29, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Christine H. Flood, David L. Detlefs, Nir N. Shavit, Xiaolan Zhang, Ole Agesen
  • Patent number: 7636745
    Abstract: A garbage collector uses the results a whole-heap marking operation to select collection sets for subsequent collection. It repeatedly calculates a measure of the cumulative collection efficiency since the marking operation, and it initiates another marking operation when the cumulative efficiency begins to deteriorate.
    Type: Grant
    Filed: November 11, 2004
    Date of Patent: December 22, 2009
    Assignee: Sun Microsystems, Inc.
    Inventor: David L. Detlefs
  • Patent number: 7606989
    Abstract: In a generational garbage collector, a decision is made to pre-tenure, or allocate new objects directly in the old generation, by a two step process. In the first step, during a young-generation collection, the number of bytes that survive collection is determined for each allocation site and a predetermined number of sites with the highest number of surviving bytes are selected as candidate sites. In the second step, during a subsequent young-generation collection, the survival rates are determined for the candidate sites and objects to be allocated from sites with a sufficiently high survival rate are allocated directly in older generations.
    Type: Grant
    Filed: September 1, 2005
    Date of Patent: October 20, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: David L. Detlefs, Antonios Printezis, Fabio Rojas
  • Patent number: 7599973
    Abstract: In a generational, copying garbage collector, young generation collection may be made more efficient by dynamically measuring object survival rates as a function of “fine-grained” allocation age, and choosing, on the basis of these survival rates, part of the young generation that will be not be collected, but instead scanned for pointers to objects in the rest of the young generation. The rest of the young generation, including objects referenced by the pointers, is then collected.
    Type: Grant
    Filed: January 12, 2006
    Date of Patent: October 6, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: David L. Detlefs, Antonios Printezis, Steven K. Heller
  • Patent number: 7596667
    Abstract: In a computer system having a multithreaded application and a generational garbage collector that dynamically pre-tenures objects from a predetermined number of candidate allocation sites, allocated byte accounting is performed by each application thread using an array that contains a number of entries equal to the total number of candidate sites at any given time. Each array is indexed by a site number assigned to that site and contains a bytes allocated count for that site. At compilation time, object allocation code that is generated by the compiler is modified to update an array entry associated with a site number that is assigned when the site is selected as a candidate site. Since each array is local to the thread that contains it, each thread can write into its array without using atomic operations or locks.
    Type: Grant
    Filed: September 1, 2005
    Date of Patent: September 29, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: David L. Detlefs, Antonios Printezis, Fabio Rojas