Incremental Patents (Class 707/820)
-
Patent number: 12112195Abstract: A computer-implemented method, system, and computer program product are provided. The approach includes popping a first task from a queue of a garbage collection thread. The approach also includes identifying a second task from the popped first task, where the second task is associated with a bit of a bitmap and the bit is located at a location within the bitmap that has not yet been passed by a finger pointer. The approach also includes pushing the second task to the queue of the garbage collection thread.Type: GrantFiled: August 26, 2020Date of Patent: October 8, 2024Assignee: International Business Machines CorporationInventors: Michihiro Horie, Kazunori Ogata
-
Patent number: 11740820Abstract: Methods and systems for a storage environment are provided. One method includes identifying, by a processor, a plurality of block numbers of a fragmented address space for re-allocation, each block number associated with data stored by a file system in a storage device of a storage system; determining, by the processor, compressed data associated with a block number from among the plurality of block numbers; verifying, by the processor, that an indirect block of a hierarchical structure maintained by the file system references the block number associated with the compressed data; and copying, by the processor, the compressed data to a new block, without decompressing the data.Type: GrantFiled: May 11, 2022Date of Patent: August 29, 2023Assignee: NETAPP, INC.Inventors: Mathankumar Devarajan, Girish Hebbale Venkatasubbaiah, Venkateswarlu Tella, Dnyaneshwar Nagorao Pawar, Harsh Tiwari
-
Patent number: 10235208Abstract: A streaming multiprocessor (SM) included within a parallel processing unit (PPU) is configured to suspend a thread group executing on the SM and to save the operating state of the suspended thread group. A load-store unit (LSU) within the SM re-maps local memory associated with the thread group to a location in global memory. Subsequently, the SM may re-launch the suspended thread group. The LSU may then perform local memory access operations on behalf of the re-launched thread group with the re-mapped local memory that resides in global memory.Type: GrantFiled: December 11, 2012Date of Patent: March 19, 2019Assignee: NVIDIA CORPORATIONInventors: Nicholas Wang, Lacky V. Shah, Gerald F. Luiz, Philip Alexander Cuadra, Luke Durant, Shirish Gadre
-
Patent number: 9678683Abstract: Methods and systems for provisioning persistent storage are disclosed. For example, a new isolated guest and associated persistent storage volume are requested to be created. The isolated guest is based on an image file in an image repository and is associated with metadata. An orchestrator obtains the image file. The orchestrator reserves the persistent storage volume by updating the system resource allocation database based on the metadata. The persistent storage volume is then created in the persistent storage based on the reservation of the persistent storage volume in the system resource allocation database. The orchestrator activates the constructed isolated guest and the isolated guest accesses the persistent storage volume.Type: GrantFiled: November 1, 2016Date of Patent: June 13, 2017Assignee: Red Hat, Inc.Inventor: Huamin Chen
-
Patent number: 9037830Abstract: A memory heap is allocated to a contiguous range of memory. One end of the heap is designated as a small object area. The other end of the heap is designated as a large object area. When the two object areas grow, the small object area grows inward within the heap toward the large object area, and the large object area grows inward within the heap toward the small object area.Type: GrantFiled: June 25, 2014Date of Patent: May 19, 2015Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Bhaktavatsal Maram, Vinod Nalla, Bipin Patil
-
Patent number: 8965850Abstract: A method of managing backup data. The method includes accessing, via a backup manager, index data of an initial snapshot and accessing, via the backup manager, index data of a subsequent snapshot. The method further includes determining, via the backup manager, whether the index data of the subsequent snapshot is different from the index data of the initial snapshot. Responsive to a determination that the index data of the subsequent snapshot is different from the index data of the initial snapshot, creating an updated index data and creating an updated snapshot with the updated index data.Type: GrantFiled: November 16, 2012Date of Patent: February 24, 2015Assignee: Dell Software Inc.Inventor: Srinidhi Varadarajan
-
Patent number: 8935302Abstract: An apparatus, system, and method are disclosed for data block usage information synchronization for a non-volatile storage volume. The method includes referencing first data block usage information for data blocks of a non-volatile storage volume managed by a storage manager. The first data block usage information is maintained by the storage manager. The method also includes synchronizing second data block usage information managed by a storage controller with the first data block usage information maintained by the storage manager. The storage manager maintains the first data block usage information separate from second data block usage information managed by the storage controller.Type: GrantFiled: February 23, 2010Date of Patent: January 13, 2015Assignee: Intelligent Intellectual Property Holdings 2 LLCInventors: David Flynn, David Atkisson, Drex Dixon, Jonathan Flynn, Brandon Hansen
-
Patent number: 8930422Abstract: Systems and methods are provided for large-scale, incrementing clustering. A plurality of processing nodes each include a processor and a non-transitory computer readable medium. The non-transitory computer readable medium stores a plurality of clusters of feature vectors and machine executable instructions for determining a plurality of values for a distance metric relating each of the plurality of clusters to an input feature vector and selecting a cluster having a best value for the distance metric. An arbitrator is configured to receive the selected cluster and best value for the distance metric from each of the plurality of processing nodes and determine a winning cluster as one of the selected clusters and a new cluster. A multiplexer is configured to receive the winning cluster and provide the winning cluster and a new input feature vector to each of the plurality of processing nodes.Type: GrantFiled: June 4, 2012Date of Patent: January 6, 2015Assignee: Northrop Grumman Systems CorporationInventor: Michael D. Black
-
Patent number: 8903776Abstract: A method, system and computer program product for caching socket connections while ensuring that there are file descriptors available for the applications. File descriptor references and their referenced objects are stored in a predefined memory region of the heap (“file descriptor heap”). Each time a socket connection is cached, a file descriptor reference may be created to be associated with the socket connection's file descriptor, where the file descriptor reference references the object of the cached socket connection. In order to ensure that there are available file descriptors for the applications, the file descriptor references and their referenced objects are collected by the garbage collector in response to various events (e.g., too many file descriptors are open) thereby freeing the file descriptors that were previously associated with the collected connection objects to be used by the applications.Type: GrantFiled: September 8, 2011Date of Patent: December 2, 2014Assignee: International Business Machines CorporationInventors: Pramod B. Nagaraja, Sathiskumar Palaniappan, Deepti Verma
-
Patent number: 8892610Abstract: A method to schedule garbage collection operations may be executed in a client/server system using multiple servers. The method includes comparing usage of memory in respective ones of the plurality of servers to one or more memory usage thresholds and dynamically identifying one or more servers in which to perform garbage collection of memory objects during a particular time period. By distributing the durations over which garbage collection is performed on respective servers, the client server system, among other things, reduces the pauses in servicing client requests.Type: GrantFiled: July 29, 2011Date of Patent: November 18, 2014Assignee: Google Inc.Inventor: Clement Ho Yan Pang
-
Patent number: 8886691Abstract: A system and method for performing garbage collection. A system includes a storage medium, a first table including entries which map a virtual address to locations in the storage medium, and a second table with entries which include a reverse mapping of a physical address in a data storage medium to one or more virtual addresses. A storage controller is configured to perform garbage collection. During garbage collection, the controller is configured to identify one or more entries in the second table which correspond to a segment to be garbage collected. In response to determining the first table includes a valid mapping for a virtual address included in an entry of the one of the one or more entries, the controller is configured to copy data from a first location identified in the entry to a second location in the data storage medium, and reclaim the first storage location.Type: GrantFiled: August 30, 2013Date of Patent: November 11, 2014Assignee: PURE Storage, Inc.Inventors: John Colgrove, John Hayes, Ethan Miller, Cary Sandvig, Joseph S. Hasbani, Feng Wang
-
Patent number: 8861013Abstract: A CPU perform the steps of: (a) causing a compression/decompression processor to decompress the compressed data of one of three bands in the data area except for the first block in the band, and storing decompressed bitmap data in the data area; (b) rasterizing each of the intermediate data blocks in the band and synthesizing the rasterized data and the decompressed bitmap data in the band; and (c) causing the compression/decompression processor to compress the synthesized bitmap data and storing the compressed data in the data area. The CPU performs the steps (a) to (c) in different respective tasks in parallel, and performs the steps (a) to (c) along the order of (a), (b), (c) for each of the intermediate code blocks in each of the bands while using the 1st to the 3rd bitmap data area in turn for each of the steps (a) to (c).Type: GrantFiled: November 10, 2013Date of Patent: October 14, 2014Assignee: Kyocera Document Solutions Inc.Inventor: Hiroyuki Hara
-
Patent number: 8805896Abstract: A system and method for use with garbage collected systems and languages, for enabling an allocated heap memory to be updated (e.g., increased or decreased) at runtime, subject to sufficient availability of physical memory. In accordance with an embodiment, a Java Virtual Machine (JVM) is associated with a management console, which allows a systems administrator to monitor current heap utilization at runtime. The heap is visualized as a contiguous chunk of memory with one or more extension points, e.g., by use of a trailing pointer to a null list. If later, at runtime, the heap size needs to be incremented then the trailing pointer can be set to a new chunk of memory with a size of (new value?old value), so that the cumulative new size is made equal to a new value specified on the console.Type: GrantFiled: July 19, 2013Date of Patent: August 12, 2014Assignee: Oracle International CorporationInventor: Prateek Khanna
-
Publication number: 20140040326Abstract: One or more embodiments are directed to creating a structure comprising a weak reference to an object, a strong reference to the object, a count of remote references to the object, and an identifier for the object, incrementing the count when a remote reference is created to the object and decrementing the count when a remote reference is removed, setting the strong reference in response to the count being greater than a first threshold in order to avoid a garbage collection of the object, clearing the strong reference in response to the count being less than a second threshold to enable a garbage collection of the object, and removing the structure and related resources based on a recognition of the object's collection through the weak reference.Type: ApplicationFiled: July 31, 2012Publication date: February 6, 2014Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Tamiya Onodera, Kiyokuni Kawachiya
-
Publication number: 20130282772Abstract: A technique for incrementally unloading classes using a region-based garbage collector is described. One aspect of such a technique includes maintaining a remembered set for a class set. The remembered set indicates whether instances of the class set are contained in one or more regions in memory, and in which regions the instances are contained. Upon performing an incremental garbage collection process for a subset of the regions in memory, the technique examines the remembered set to determine whether the class set includes instances in regions outside of the subset. If the remembered set indicates that the class set includes instances outside of the subset of regions, the technique identifies the class set as “live.” This will preclude unloading the class set from the subset of regions.Type: ApplicationFiled: June 14, 2013Publication date: October 24, 2013Inventors: Peter Wiebe Burka, Jeffrey Michael Disher, Daryl James Maier, Aleksandar Micic, Ryan Andrew Sciampacone
-
Patent number: 8554807Abstract: A technique for incrementally unloading classes using a region-based garbage collector is described. One aspect of such a technique includes maintaining a remembered set for a class set. The remembered set indicates whether instances of the class set are contained in one or more regions in memory, and in which regions the instances are contained. Upon performing an incremental garbage collection process for a subset of the regions in memory, the technique examines the remembered set to determine whether the class set includes instances in regions outside of the subset. If the remembered set indicates that the class set includes instances outside of the subset of regions, the technique identifies the class set as “live.” This will preclude unloading the class set from the subset of regions.Type: GrantFiled: March 28, 2012Date of Patent: October 8, 2013Assignee: International Business Machines CorporationInventors: Peter Wiebe Burka, Jeffrey Michael Disher, Daryl James Maier, Aleksandar Micic, Ryan Andrew Sciampacone
-
Patent number: 8489652Abstract: A method for managing an object watchpoint during a garbage collection cycle, including identifying an object having a field, where the object is associated with an original object location, where the field is associated with an original field location, and where the object and the field are located in a memory heap of a virtual machine memory, setting, within a debugger, the object watchpoint on the original field location, where the object watchpoint is a memory trap associated with the object, determining, after a relocation of the object by a garbage collector (GC), a new object location associated with the object, determining a new field location of the field based on the new object location, and setting, within the debugger, the object watchpoint on the new field location.Type: GrantFiled: June 2, 2010Date of Patent: July 16, 2013Assignee: Oracle International CorporationInventors: Michael Lee Van De Vanter, Hannes E. Payer, Douglas Norman Simon, Benjamin Lawrence Titzer, Mario I. Wolczko
-
Patent number: 8489653Abstract: A technique for incrementally unloading classes using a region-based garbage collector is described. One aspect of such a technique includes maintaining a remembered set for a class set. The remembered set indicates whether instances of the class set are contained in one or more regions in memory, and in which regions the instances are contained. Upon performing an incremental garbage collection process for a subset of the regions in memory, the technique examines the remembered set to determine whether the class set includes instances in regions outside of the subset. If the remembered set indicates that the class set includes instances outside of the subset of regions, the technique identifies the class set as “live.” This will preclude unloading the class set from the subset of regions.Type: GrantFiled: February 8, 2011Date of Patent: July 16, 2013Assignee: International Business Machines CorporationInventors: Peter Wiebe Burka, Jeffrey Michael Disher, Daryl James Maier, Aleksandar Micic, Ryan Andrew Sciampacone
-
Patent number: 8463826Abstract: Systems and methods are provided for performing incremental garbage collection for non-volatile memories (“NVMs”), such as flash memory. In some embodiments, an electronic device including the NVM may perform incremental garbage collection to free up and erase a programmed block of the NVM. The programmed block may include valid data and invalid data, and the electronic device may be configured to copy the valid data from the programmed block to an erased block in portions. In between programming each portion of the valid data to the erased block, the electronic device can program host data to the erased block. This way, the electronic device can stagger the garbage collection operations and prevent a user from having to experience one long garbage collection operation.Type: GrantFiled: September 3, 2009Date of Patent: June 11, 2013Assignee: Apple Inc.Inventors: Daniel J. Post, Vadim Khmelnitsky, Nir J. Wakrat
-
Patent number: 8458702Abstract: Disclosed are apparatus and methods for reporting garbage collection operations. A virtual machine that is executable on a computing device can receive a request to be informed prior to execution of garbage collection software on the computing device via a prior up-call. The virtual machine can receive a request to be informed upon completion of execution of the garbage collection software on the computing device via a post up-call. Prior to the execution of the garbage collection software, the virtual machine can initiate execution of the prior up-call to indicate the garbage collection software is to be executed. After the garbage collection software has completed execution, the virtual machine can initiate execution of the post up-call to indicate the garbage collection software has completed execution.Type: GrantFiled: April 10, 2012Date of Patent: June 4, 2013Assignee: Google Inc.Inventors: Yuguang Wu, Jianming He
-
Patent number: 8417744Abstract: Techniques to perform garbage collection in an environment where more than one software programming language is in use are described. A technique may include creating a managed proxy object in one language that creates an unmanaged object in memory in a different language. A collection of nodes is generated and maintained, where a node comprises: a reference to the managed proxy object, and a reference to the unmanaged object. A count of the nodes in the collection is maintained. When the count exceeds a threshold, the collection is traversed, and garbage collection is performed on any unmanaged object in a node when the managed proxy object in the same node has been collected. Other embodiments are described and claimed.Type: GrantFiled: March 23, 2011Date of Patent: April 9, 2013Assignee: Microsoft CorporationInventor: Gustavo Plancarte
-
Patent number: 8380680Abstract: Prefetching data using a piecemeal list prefetching method. This is achieved by various means, including building a plurality of data pages, sorting the plurality of data pages into sequential data pages and a list of non-sequential pages, prefetching the sequential data pages using a first prefetching technique, and prefetching the non-sequential list of data pages using a second prefetching technique.Type: GrantFiled: June 23, 2010Date of Patent: February 19, 2013Assignee: International Business Machines CorporationInventors: Jeffrey Berger, Terence P. Purcell, James Z. Teng
-
Patent number: 8375003Abstract: Improved backup and storage operations are disclosed for virtual computing environments using a backup proxy server to perform storage operations on one or more virtual machine disks. The proxy server can include a module that intercepts application programming interface (API) calls, for writing backup data to a first location, prior to the data arriving on the proxy disk. During the intercept process, the data can be compressed in memory pages of the proxy server and redirected to an alternative backup disk location. The proxy server can also include a differential engine that identifies changes to the virtual machine disk at the block level since the last full backup. The differential engine can advantageously leverage memory pages of the proxy server to compare differences between signatures of blocks of the last full backup with signatures of new blocks. Subsequently, only blocks with non-matching signatures are processed for backup.Type: GrantFiled: September 23, 2011Date of Patent: February 12, 2013Assignee: Vizioncore, Inc.Inventors: Delano Xavier Afonso, David Allen Feathergill, Jason Mattox, Jeremy Christopher Herman
-
Patent number: 8327109Abstract: A system and method for efficient garbage collection. A general-purpose central processing unit (CPU) partitions an allocated heap according to a generational garbage collection technique. The generations are partitioned into fixed size cards. The CPU marks indications of qualified dirty cards during application execution since the last garbage collection. When the CPU detects a next garbage collection start condition is satisfied, the CPU sends a notification to a special processing unit (SPU) corresponding to a determination of one or more card root addresses, each card root address corresponding to one of said marked indications. The SPU has a single instruction multiple data (SIMD) parallel architecture and may be a graphics processing unit (GPU). The SPU may utilize the parallel architecture of its SIMD core to simultaneously compute multiple card root addresses. Following, the SPU sends these addresses to the CPU to be used in a garbage collection algorithm.Type: GrantFiled: March 2, 2010Date of Patent: December 4, 2012Assignee: Advanced Micro Devices, Inc.Inventor: Eric R Caspole
-
Patent number: 8316204Abstract: One embodiment of the present invention provides a system that uses versioned pointers to facilitate reusing memory without having to reclaim the objects solely through garbage collection. The system operates by first receiving a request to allocate an object. Next, the system obtains the object from a pool of free objects, and sets an allocated/free flag in the object to indicate that the object is allocated. The system also increments a version number in the object, and also encodes the version number into a pointer for the object. The system then returns the pointer, which includes the encoded version number. In this way, subsequent accesses to the object through the pointer can compare the version number encoded in the pointer with the version number in the object to determine whether the object has been reused since the pointer was generated.Type: GrantFiled: September 28, 2011Date of Patent: November 20, 2012Assignee: Oracle America, Inc.Inventor: David R. Chase
-
Patent number: 8301671Abstract: A method, apparatus and computer program product for providing removal of replicated objects based on garbage collection is presented. Data objects are replicated from a primary source to a backup device. A notification is received from a garbage collection process for at least one data object replicated from the primary source to the backup device, the notification indicating that the data object should be deleted. The data object having the notification is deleted from the backup destination.Type: GrantFiled: January 8, 2009Date of Patent: October 30, 2012Assignee: Avaya Inc.Inventors: Thomas Greenwood, Leigh Barry Hall, Marco Dalco, Kevin James Wiseman, Robert Marc Jenkins
-
Patent number: 8296337Abstract: An apparatus, system, and method are disclosed for managing data with an empty data segment directive at the requesting device. The apparatus, system, and method include a token directive generation module and a token directive transmission module. The token directive generation module generates a storage request with a token directive. The token directive includes a request to store on the storage device a data segment token. The token directive substitutes for a series of repeated, identical characters or a series of repeated, identical character strings to be stored as a data segment. The token directive includes at least a data segment identifier and a data segment length. The data segment token and the token directive are substantially free from data of the data segment. The token directive transmission module transmits the token directive to the storage device.Type: GrantFiled: December 6, 2007Date of Patent: October 23, 2012Assignee: Fusion-io, Inc.Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
-
Patent number: 8266191Abstract: The present invention provides a system and method for flexible space reservations in a file system. An administrator of a storage system selects a fractional reserve percentage, which defines the size of the overwrite reserve that is to be maintained to ensure file writeability.Type: GrantFiled: May 20, 2008Date of Patent: September 11, 2012Assignee: NetApp, Inc.Inventors: Himanshu Aggarwal, Eric Hamilton
-
Patent number: 8255436Abstract: Per thread garbage collection is disclosed. Objects associated only with a thread that created them are tracked. At a garbage collection time for a particular thread, it is determined which objects associated only with that thread remain reachable from a restricted root set associated with the thread. Any thread-only objects that are not determined to be reachable are garbage collected.Type: GrantFiled: June 10, 2011Date of Patent: August 28, 2012Assignee: Apple Inc.Inventors: Gerald Blaine Garst, Jr., Gregory Robert Parker, Douglas Joshua Behnke, Patrick C. Beard
-
Publication number: 20120203804Abstract: A method for incrementally unloading classes using a region-based garbage collector is described. In one embodiment, such a method includes maintaining a remembered set for a class set. The remembered set indicates whether instances of the class set are contained in one or more regions in memory, and in which regions the instances are contained. Upon performing an incremental garbage collection process for a subset of the regions in memory, the method examines the remembered set to determine whether the class set includes instances in regions outside of the subset. If the remembered set indicates that the class set includes instances outside of the subset of regions, the method identifies the class set as “live.” This will preclude unloading the class set from the subset of regions. A corresponding computer program product and apparatus are also disclosed herein.Type: ApplicationFiled: March 28, 2012Publication date: August 9, 2012Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Peter W. Burka, Jeffrey M. Disher, Daryl J. Maier, Aleksandar Micic, Ryan A. Sciampacone
-
Publication number: 20120203803Abstract: A method for incrementally unloading classes using a region-based garbage collector is described. In one embodiment, such a method includes maintaining a remembered set for a class set. The remembered set indicates whether instances of the class set are contained in one or more regions in memory, and in which regions the instances are contained. Upon performing an incremental garbage collection process for a subset of the regions in memory, the method examines the remembered set to determine whether the class set includes instances in regions outside of the subset. If the remembered set indicates that the class set includes instances outside of the subset of regions, the method identifies the class set as “live.” This will preclude unloading the class set from the subset of regions. A corresponding computer program product and apparatus are also disclosed herein.Type: ApplicationFiled: February 8, 2011Publication date: August 9, 2012Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Peter W. Burka, Jeffrey M. Disher, Daryl J. Maier, Aleksandar Micic, Ryan A. Sciampacone
-
Patent number: 8200718Abstract: A method for garbage collection in which resources used by data objects in a computer program that are not accessed in the future are reclaimed, the method consists of the following steps of 1. Providing a tracing garbage collector which is both parallelized and incremental; 2. Integrating the collector with the computer program to create the mutator; 3. Instructing the mutator to scan and collect resources used by data objects in a computer program that are not accessed in the future simultaneously on all threads in small amounts; and 4. Interleaving the mutator scanning and collection with unrelated processing by the computer program such that all of the threads in the application are never stopped simultaneously for any portion of the collection cycle.Type: GrantFiled: July 2, 2009Date of Patent: June 12, 2012Inventor: Michael L. Roberts
-
Publication number: 20120030260Abstract: In accordance with exemplary embodiments, a scalable and parallel garbage collection system for incremental backups with data de-duplication may be implemented with a memory and a processor. The memory may store a changed list at a current time, a before-image list including previous versions of the first overwrite at a current time for each of a plurality of overwritten physical blocks in said storage system, a garbage collection related change list and a recycle list. With these lists configured in the memory, the processor limits the garbage collection to incremental changes and distributes garbage collection tasks to a plurality of participating nodes. For garbage collection, each physical block may associate with an expiration time and a reference count. When the reference count drops to zero, the physical blocks are recycled based on the expiration time.Type: ApplicationFiled: July 30, 2010Publication date: February 2, 2012Inventors: Maohua Lu, Tzi-Cker Chiueh
-
Patent number: 8060543Abstract: Tracking resource use includes determining when the resource is allocated, determining when the resource is first used, determining when the resource is last used, and determining when the resource is deallocated. The resource may be a software object. Deallocating the resource may be performed automatically by a run time system when there are no remaining references to the object in run time code or variables. Deallocating the resource may include at least one of: setting a flag for the resource and adding an identifier for the resource to a list of resources to be deallocated. Time measurements may correspond to a count of garbage collection cycles. Tracking resource use may also include determining additional resource usage metrics.Type: GrantFiled: April 29, 2005Date of Patent: November 15, 2011Assignee: Micro Focus (IP) LimitedInventor: Thierry Gaëtan Ciot
-
Patent number: 8051267Abstract: One embodiment of the present invention provides a system that uses versioned pointers to facilitate reusing memory without having to reclaim the objects solely through garbage collection. The system operates by first receiving a request to allocate an object. Next, the system obtains the object from a pool of free objects, and sets an allocated/free flag within the object to indicate that the object is allocated. The system also increments a version number within the object, and also encodes the version number into a pointer for the object. The system then returns the pointer, which includes the encoded version number. In this way, subsequent accesses to the object through the pointer can compare the version number encoded in the pointer with the version number within the object to determine whether the object has been reused since the pointer was generated.Type: GrantFiled: February 9, 2005Date of Patent: November 1, 2011Assignee: Oracle America, Inc.Inventor: David R. Chase
-
Patent number: 8041752Abstract: Described is a technology by which a real-time data relocating mechanism is provided for multiprocessing environments, including supporting lock-free programs that run in parallel. The relocating mechanism moves an object by using a status field related to the data field, possibly in an interim (wide) object space, which is then copied to a to-space object. The status information for each data field of the original object contains information indicating where a current version of the data for each field is present, that is, in the original, wide or to-space object. In one example, a handshake mechanism of a garbage collector establishes preparation and copy phases between the mechanism and other threads that determine where memory accesses occur. Also described is support for program thread compare-and-swap (CAS) operations and/or multi-word atomic operations.Type: GrantFiled: March 24, 2010Date of Patent: October 18, 2011Assignee: Microsoft CorporationInventors: Erez Petrank, Filip Jerzy Pizlo, Bjarne Steensgaard
-
Publication number: 20110238713Abstract: Per thread garbage collection is disclosed. Objects associated only with a thread that created them are tracked. At a garbage collection time for a particular thread, it is determined which objects associated only with that thread remain reachable from a restricted root set associated with the thread. Any thread-only objects that are not determined to be reachable are garbage collected.Type: ApplicationFiled: June 10, 2011Publication date: September 29, 2011Applicant: APPLE INC.Inventors: Gerald Blaine Garst Jr., Gregory Robert Parker, Douglas Joshua Behnke, Patrick C. Beard
-
Patent number: 8028008Abstract: A system and associated method for optimizing a write barrier in garbage collection. The method marks a bit in a bitmap corresponding to a slot when the slot content is modified to refer to a new object. The method also logs the address of the slot when the object referred by the slot is updated. The method pops the address of the slot to clean from the log and clears the bit corresponding to the slot in the bitmap and when the object referred to by the slot is not already marked, marking said object and pushing its address to the mark stack. When the slot is located within an active object range, the method puts the address of the slot in a deferred log for a later processing.Type: GrantFiled: September 25, 2008Date of Patent: September 27, 2011Assignee: International Business Machines CorporationInventors: Matthew Roy Kilner, Andrew Dean Wharmby
-
Patent number: 8024505Abstract: A system for thread local garbage collection in a virtual machine environment, comprising: a virtual machine for executing a software application; a memory space for use by the virtual machine in storing software objects and pointers as part of the software application, divided into a global heap and several thread local heaps; a heap maintaining logic that keeps the global heap and the thread local heaps in a state suitable for efficient garbage collecting; and a garbage collector that can collect the thread local heaps in parallel with only the stop-the-world pauses for the global heap.Type: GrantFiled: May 8, 2007Date of Patent: September 20, 2011Assignee: Oracle International CorporationInventors: Joakim Dahlstedt, Henrik Osterdahl
-
Patent number: 8019785Abstract: We explore techniques for designing nonblocking algorithms that do not require advance knowledge of the number of processes that participate, whose time complexity and space consumption both adapt to various measures, rather than being based on predefined worst-case scenarios, and that cannot be prevented from future memory reclamation by process failures. These techniques can be implemented using widely available hardware synchronization primitives. We present our techniques in the context of solutions to the well-known Collect problem. We also explain how our techniques can be exploited to achieve other results with similar properties; these include long-lived renaming and dynamic memory management for nonblocking data structures.Type: GrantFiled: May 30, 2008Date of Patent: September 13, 2011Assignee: Oracle America, Inc.Inventors: Mark S. Moir, Victor M. Luchangco, Maurice Herlihy
-
Patent number: 7991808Abstract: Per thread garbage collection is disclosed. Objects associated only with a thread that created them are tracked. At a garbage collection time for a particular thread, it is determined which objects associated only with that thread remain reachable from a restricted root set associated with the thread. Any thread-only objects that are not determined to be reachable are garbage collected.Type: GrantFiled: May 21, 2008Date of Patent: August 2, 2011Assignee: Apple Inc.Inventors: Gerald Blaine Garst, Jr., Gregory Robert Parker, Douglas Joshua Behnke, Patrick C. Beard
-
Patent number: 7991807Abstract: A method and system for garbage collection are provided. A memory allocation request is received for an object. An object identifier is generated for the object. A first memory location is allocated to the object. A translation table is generated storing a map of the object identifier and the first memory location. A data structure is generated for the object. A mark flag is set based on the number of references of the object. Data stored in the first memory location is moved to a second memory location based upon the value of the mark flag. The data is deleted from the first memory location based upon a value of the mark flag.Type: GrantFiled: November 21, 2007Date of Patent: August 2, 2011Assignee: SAP AGInventors: Albert Rossmann, Stefan Schulz
-
Publication number: 20110145304Abstract: Handling garbage collection and exceptions in hardware assisted transactions. Embodiments are practiced in a computing environment including a hardware assisted transaction system. Embodiments includes acts for writing to a card table outside of a transaction; handling garbage collection compaction occurring when a hardware transaction is active by using a common global variable and instructing one or more agents to write to the common global variable any time an operation is performed which may change an object's virtual address; acts for managing a thread-local allocation context; acts for handling exceptions while in a hardware assisted transaction.Type: ApplicationFiled: December 15, 2009Publication date: June 16, 2011Applicant: MICROSOFT CORPORATIONInventors: Jan Gray, Martin Taillefer, Yosseff Levanoni, Ali-Reza Adl-Tabatabai, Dave Detlefs, Vinod K. Grover, Michael Magruder, Gad Sheaffer
-
Patent number: 7945543Abstract: Rectifying discrepancies between a table, from which a segment of data has been removed, and an index for the table may be deferred. Each entry in the index is sequentially analyzed to remove entries therefrom referring to any removed segment referenced in the starting location list. During this process, if a segment newly removed from the table is detected, then analysis of the index entries continues and an indicator is set that another segment has been removed. Analysis of the entries continues in a looping fashion until each entry has been assessed to determine if it makes a reference to any of the removed segments. If a query is received before rectification is complete then the query is amended by establishing search boundaries based so that the query does not produce any entries in the index referring to removed segments.Type: GrantFiled: March 30, 2006Date of Patent: May 17, 2011Assignee: International Business Machines CorporationInventors: John Paul Kennedy, Quanhua Hong, William T. O'Connell, Leslie Anne Buback
-
Patent number: 7930325Abstract: A garbage collection algorithm that achieves hierarchical copy order with parallel garbage collection threads. More specifically, the present invention provides a garbage collection method and system for copying objects from a from-space to a to-space. The method comprises the steps of (a) having multiple threads that simultaneously perform work for garbage collection (GC), (b) examining the placement of objects on blocks, and (c) changing the placement of objects on blocks based on step (b). Preferably, the method includes the additional step of calculating a placement of object(s) based on step (b), and using the result of the calculation for step (c). For example, the calculation may be used to increase the frequency of intra-block pointers and/or to increase the frequency of siblings on the same block.Type: GrantFiled: May 29, 2008Date of Patent: April 19, 2011Assignee: International Business Machines CorporationInventors: David K. Siegwart, Martin Hirzel
-
Patent number: 7921143Abstract: A system and method is provided for efficiently pinning references to the managed heap. The system and method allow for references to managed objects to be declared as pinned during a call to unmanaged code. The references are then reported as pinned to a garbage collector in response to invocation of a garbage collection service. The reference can be declared as pinned by a programmer within the source code or automatically invoked at run-time based on an unsafe condition. The garbage collection service will not move or relocate objects that are referenced by the active pinned local variables. If a garbage collection does not occur, the fact that the local variables are declared pinned is ignored.Type: GrantFiled: May 12, 2009Date of Patent: April 5, 2011Assignee: Microsoft CorporationInventors: Patrick H. Dussud, Vance P. Morrison
-
Patent number: 7908441Abstract: Solutions to a value recycling problem 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 allow non-blocking, shared data structures to be implemented using standard dynamic allocation mechanisms (such as malloc and free). Some exploitations allow non-blocking, indeed even lock-free or wait-free, implementations of dynamic storage allocation for shared data structures. In some exploitations, our techniques provide a way to manage dynamically allocated memory in a non-blocking manner without depending on garbage collection. While exploitations of solutions to the value recycling problem that we propose include management of dynamic storage allocation wherein values managed and recycled tend to include values that encode pointers, they are not limited thereto.Type: GrantFiled: January 10, 2003Date of Patent: March 15, 2011Assignee: Oracle America, Inc.Inventors: Mark S. Moir, Victor Luchangco, Maurice Herlihy
-
Patent number: 7904493Abstract: A system and method are provided for object age detection in garbage collection heaps. In one embodiment, ages of objects in a garbage collection heap at a first virtual machine at a server are determined by detecting a number of garbage collections each object has survived. An age is associated to each object according to the determined ages. The objects are grouped in age ranges, wherein the age ranges correspond to the determined ages. The age ranges are communicated to a second virtual machine at a client.Type: GrantFiled: March 30, 2007Date of Patent: March 8, 2011Assignee: SAP AGInventors: Ralf Schmelter, Michael Wintergerst, Arno Zeller
-
Patent number: 7882158Abstract: A system and method is provided for efficiently pinning references to the managed heap. The system and method allow for references to managed objects to be declared as pinned during a call to unmanaged code. The references are then reported as pinned to a garbage collector in response to invocation of a garbage collection service. The reference can be declared as pinned by a programmer within the source code or automatically invoked at run-time based on an unsafe condition. The garbage collection service will not move or relocate objects that are referenced by the active pinned local variables. If a garbage collection does not occur, the fact that the local variables are declared pinned is ignored.Type: GrantFiled: May 12, 2009Date of Patent: February 1, 2011Assignee: Microsoft CorporationInventors: Patrick H. Dussud, Vance P. Morrison
-
Patent number: 7882160Abstract: A solution for handling objects in a nursery heap that includes a garbage collector monitoring engine, a size adjustor program, and/or a promotion program. The garbage collector monitoring engine can monitor occurrences of global garbage collection events performed by a global garbage collector program as well as occurrences of nursery garbage collection events performed by a nursery garbage collector. The size adjustor program can dynamically adjust a size of a nursery heap based upon programmatically deterministic events detected by the garbage collector monitoring engine. The promotion program can dynamically adjust conditions of promotion for nursery objects, wherein when additional space is needed in the nursery heap to reduce nursery garbage collection induced latency, the promotion program changes promotion criteria to ensure objects are promoted more frequently from the nursery heap.Type: GrantFiled: October 30, 2007Date of Patent: February 1, 2011Assignee: International Business Machines CorporationInventors: Henry W. Adams, III, Curtis E. Hrischuk, Ryan A. Sciampacone