Mark-sweep Patents (Class 707/816)
  • Publication number: 20120239711
    Abstract: A method for performing garbage collection on an object heap is described. In one embodiment, such a method includes performing a copy phase on an object heap by copying live objects from a source space to a destination space. An abort condition is generated when copying an object from the source space to the destination space fails due to insufficient space. In response to the abort condition, tracing work and reference updating associated with the copy phase are terminated. A mark phase is then initiated that marks live objects in the source space. This mark phase resumes tracing work and reference updating terminated by the copy phase in order to avoid or minimize the repetition of work performed by the copy phase. A corresponding computer program product and system are also described.
    Type: Application
    Filed: March 28, 2012
    Publication date: September 20, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Peter W. Burka, Jeffrey M. Disher, Daryl J. Maier, Aleksandar Micic, Ryan A. Sciampacone
  • Publication number: 20120239709
    Abstract: A method for performing garbage collection on an object heap is described. In one embodiment, such a method includes performing a copy phase on an object heap by copying live objects from a source space to a destination space. An abort condition is generated when copying an object from the source space to the destination space fails due to insufficient space. In response to the abort condition, tracing work and reference updating associated with the copy phase are terminated. A mark phase is then initiated that marks live objects in the source space. This mark phase resumes tracing work and reference updating terminated by the copy phase in order to avoid or minimize the repetition of work performed by the copy phase. A corresponding computer program product and system are also described.
    Type: Application
    Filed: March 14, 2011
    Publication date: September 20, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Peter W. Burka, Jeffrey M. Disher, Daryl J. Maier, Aleksandar Micic, Ryan A. Sciampacone
  • Publication number: 20120239710
    Abstract: An illustrative embodiment of a computer-implemented process for single pass marking of finalizable objects marks strong roots, marks finalizable roots and determines whether a strong work stack is empty. Responsive to a determination the strong work stack is empty the computer-implemented process determines whether a finalizable work stack is empty. Responsive to a determination the finalizable work stack is empty, synchronize threads, the computer-implemented process finalizes finalizable roots and merges mark maps to finish parallel marking.
    Type: Application
    Filed: March 14, 2011
    Publication date: September 20, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Peter W. Burka, Jeffrey M. Disher, Daryl J. Maier, Aleksandar Micic, Ryan A. Sciampacone
  • Patent number: 8250121
    Abstract: A method for performing garbage collection promotion, comprising determining that an age of a large young object is greater than a predetermined tenuring threshold, wherein the predetermined tenuring threshold specifies an age beyond which objects are promoted, setting a plurality of types of a plurality of large memory regions from young to old to promote the large young object to a large old object, wherein the plurality of large memory regions host the large young object, scavenging references of the large old object, wherein the large old object is a large promoted object, scanning a large young object list to identify a plurality of unvisited large young objects, wherein a plurality of visited bits of the plurality of unvisited large young objects are unset, and releasing a plurality of unvisited large memory regions, wherein the unvisited large memory regions host the plurality of unvisited large young objects.
    Type: Grant
    Filed: November 18, 2009
    Date of Patent: August 21, 2012
    Assignee: Oracle America, Inc.
    Inventors: Laurent Phillipe Daynes, Thomas Schatzl
  • Patent number: 8224874
    Abstract: A computer-implemented method for removing unreferenced data segments from deduplicated data systems may include: 1) identifying a deduplicated data system that contains a plurality of data objects, 2) dividing the data objects within the deduplicated data system into a plurality of data object groups, 3) identifying, within the data object groups, at least one data object group that has changed subsequent to a prior garbage-collection operation that removed data segments that were not referenced by data objects within the deduplicated data system, 4) identifying at least one container within the deduplicated data system that contains data segments referenced by data objects within the changed data object group, and then, for each identified container, 5) removing data segments from the identified container that are not referenced by data objects within the deduplicated data system. Various other methods, systems, and computer-readable media are also disclosed.
    Type: Grant
    Filed: January 5, 2010
    Date of Patent: July 17, 2012
    Assignee: Symantec Corporation
    Inventors: Fanglu Guo, Mark Christiaens, Weibao Wu
  • Patent number: 8224875
    Abstract: A computer-implemented method for removing unreferenced data segments from deduplicated data systems may include: 1) identifying a deduplicated data system that contains a plurality of data segments, 2) identifying a plurality of containers within the deduplicated data system, with each container containing a subset of the data segments within the deduplicated data system, 3) identifying at least one container within the plurality of containers that is likely to include a large proportion of data segments that are not referenced by data objects within the deduplicated data system, and then, for each identified container, 4) searching for unreferenced data segments within the identified container and 5) removing the unreferenced data segments from the identified container. Various other methods, systems, and computer-readable media are also disclosed.
    Type: Grant
    Filed: January 5, 2010
    Date of Patent: July 17, 2012
    Assignee: Symantec Corporation
    Inventors: Mark Christiaens, Fanglu Guo, Weibao Wu
  • Publication number: 20120158801
    Abstract: A Java object is scan-missed during the mark phase of a garbage collection cycle. A list of any unscanned objects, comprising all objects of a particular object type, is created during a sweep phase of the garbage collection cycle. After the garbage collection cycle is completed, and the application resumes, for every PUTFIELD/GETFIELD operation on the object type that is part of a specific parent object, a comparison is made with the relevant information in the unscanned objects list. A scan-miss is identified by determining whether the current object being referenced by the application is a part of the unscanned object list that has been created during the sweep phase of the garbage collection cycle.
    Type: Application
    Filed: December 15, 2010
    Publication date: June 21, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: AMAR DEVEGOWDA, CHARLES R. GRACIE, VENKATARAGHAVAN LAKSHMINARAYANACHAR
  • Patent number: 8200718
    Abstract: 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: Grant
    Filed: July 2, 2009
    Date of Patent: June 12, 2012
    Inventor: Michael L. Roberts
  • Patent number: 8195614
    Abstract: A method and apparatus for different embodiments of incremental garbage collection of data in a secondary storage. In one embodiment, a method comprises locating blocks of data in a log that are referenced and within a range at a tail of the log. The method also includes copying the blocks of data that are referenced and within the range to an unallocated segment of the log.
    Type: Grant
    Filed: August 23, 2011
    Date of Patent: June 5, 2012
    Assignee: EMC Corporation
    Inventor: R. Hugo Patterson
  • Publication number: 20120124107
    Abstract: Object are created such that each of the objects stores a bit that designates eventual removal of one of the objects. Further, the objects are added to a data structure that includes a set that comprises a union of a plurality of subsets such that each subset in the plurality of subsets is stored separately according to a corresponding thread and such that an added object that is added to the set by a given thread is stored in the corresponding subset. In addition, one of the objects is logically removed, without physical removal, from the set by activating the bit. Each subset is periodically swept. All objects marked with the activated bit are physically removed.
    Type: Application
    Filed: November 12, 2010
    Publication date: May 17, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Moshe M.E. Matsa, Eric D. Perkins
  • Patent number: 8176286
    Abstract: Execution of a processing task within a data processing system is controlled by executing the processing task including allocating memory areas for data storage and then suspending an actual execution path of said processing task at a given execution point to perform memory management. The memory management involves identifying one or more data items occurring in the course of execution and accessible to the processing task at the given execution point, which specify reference values pointing to respective ones for the memory areas. A correlation is determined between reference values corresponding to identified data items and memory areas allocated during the execution up to the given execution point. A memory management operation is performed on allocated memory areas in dependence upon results of the correlation.
    Type: Grant
    Filed: February 20, 2004
    Date of Patent: May 8, 2012
    Inventor: Edward Colles Nevill
  • Patent number: 8161015
    Abstract: 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: Grant
    Filed: April 11, 2011
    Date of Patent: April 17, 2012
    Assignee: International Business Machines Corporation
    Inventors: John Paul Kennedy, Quanhua Hong, William T. O'Connell, Leslie Anne Buback
  • Patent number: 8108447
    Abstract: A computer-implemented method for garbage collection in deduplicated data systems may include: 1) identifying a deduplicated data system, 2) identifying at least one segment object added to the deduplicated data system during a garbage-collection process of the deduplicated data system, 3) locking the segment object to prevent removal of the segment object by the garbage-collection process, and 4) unlocking the segment object after the garbage-collection process. The method may allow a small possibility of incorrectly removing useful segment objects. The method may also verify data objects during the garbage-collection process and recover incorrectly removed segment objects. Various other methods, systems, and computer-readable media are also disclosed.
    Type: Grant
    Filed: March 11, 2010
    Date of Patent: January 31, 2012
    Assignee: Symantec Corporation
    Inventor: Fanglu Guo
  • Patent number: 8108446
    Abstract: A computer-implemented method for managing deduplicated data using unilateral referencing may comprise: 1) identifying each file in the deduplicated data system, 2) identifying each data segment in the deduplicated data system that is referenced by at least one file in the deduplicated data system, and then 3) creating an active-data-segments set that identifies or references each data segment that is referenced by at least one file in the system. Data segments in the system that are not identified or referenced in the active-data-segments set may be removed. Corresponding systems and methods are also disclosed.
    Type: Grant
    Filed: June 27, 2008
    Date of Patent: January 31, 2012
    Assignee: Symantec Corporation
    Inventor: Mark Christiaens
  • Publication number: 20110270899
    Abstract: A method and system for garbage collection in a virtualization environment. The virtualization environment includes a virtual machine hypervisor, at least one guest operating system, and at least one application program that runs on each guest operating system. The application program performs memory management using a garbage collection mechanism. The method includes, in response to an operating environment of the application program initiating garbage collection, the garbage collector requesting the guest operating system to assign a memory space and in response, the guest operating system assigns the memory space to the garbage collector. Then garbage collector marks live objects in an original memory space of the application program, and replicates the marked live objects to the assigned memory space. Finally, the garbage collector releases the original memory space of the application program to the guest operating system.
    Type: Application
    Filed: April 18, 2011
    Publication date: November 3, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Ying Chen, Li Li, Liang Liu, Rui Xiong Tian, Hao Wong, Qing Bo Wang
  • Patent number: 8051267
    Abstract: 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: Grant
    Filed: February 9, 2005
    Date of Patent: November 1, 2011
    Assignee: Oracle America, Inc.
    Inventor: David R. Chase
  • Publication number: 20110258241
    Abstract: Files stored, or to be stored, in a storage device are marked either as non-discardable or as discardable in a file system structure associated with a storage device. Each discardable file has associated with it a discarding priority level. A publisher file is permitted to be stored in the storage device only if storing the publisher file does not narrow a storage usage safety margin that is reserved for user files. User files are allowed to be stored in the storage device even if storing them narrows the storage usage safety margin but, in such cases, the storage usage safety margin is restored by removing one or more discardable files from the storage device. A discardable file is removed from the storage device if its discarding priority level equals or is higher than a predetermined discarding threshold value.
    Type: Application
    Filed: June 29, 2011
    Publication date: October 20, 2011
    Inventors: Moshe Raines, Ran Carmeli, David Koren, Judah Gamliel Hahn, Donald Ray Bryant-Rich
  • Patent number: 8041752
    Abstract: 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: Grant
    Filed: March 24, 2010
    Date of Patent: October 18, 2011
    Assignee: Microsoft Corporation
    Inventors: Erez Petrank, Filip Jerzy Pizlo, Bjarne Steensgaard
  • Publication number: 20110246543
    Abstract: A computer-implemented process for write barrier elision during program execution receives a request to overwrite a reference, determines whether garbage collection is active and responsive to a determination that garbage collection is active, determines whether a reference object has been scanned. Responsive to a determination that the reference object has not been scanned set a mark bit for the reference object in a modified mark map, the reference object is scanned and a scan bit is set for the reference object in the modified mark map.
    Type: Application
    Filed: February 22, 2011
    Publication date: October 6, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Charles R. Gracie, Aleksandar Micic, Ryan A. Sciampacone
  • Patent number: 8028009
    Abstract: A method and apparatus for different embodiments of incremental garbage collection of data in a secondary storage. In one embodiment, a method comprises locating blocks of data in a log that are referenced and within a range at a tail of the log. The method also includes copying the blocks of data that are referenced and within the range to an unallocated segment of the log.
    Type: Grant
    Filed: November 10, 2008
    Date of Patent: September 27, 2011
    Assignee: EMC Corporation
    Inventor: R. Hugo Patterson
  • Patent number: 7996446
    Abstract: A method for performing garbage collection for a real-time application uses a memory for determining an amount of memory required to run the garbage collection process and waits until the determined amount of memory is available, then allocates memory space for the application by segmenting the memory space into a number of pages of a predetermined size. A mutator is used for assuring that only non-null, unmarked objects are placed into a write buffer. A hybrid collector is used for removing the dead objects and defragmenting the memory space.
    Type: Grant
    Filed: August 10, 2009
    Date of Patent: August 9, 2011
    Assignee: International Business Machines Corporation
    Inventors: David Francis Bacon, Perry Cheng, Vadakkedathu Thomas Rajan
  • Publication number: 20110191393
    Abstract: A method for garbage collection, involving identifying a first object referenced by a second object, determining whether the address of the first object is lower than a pointer position, in response to determining that the address of the first object is lower than the pointer position, adding an identifier for the first object to a mark stack, determining whether a number of identifiers in the mark stack has reached a flush threshold, in response to determining that the number of identifiers in the mark stack has reached the flush threshold, setting a set of marks included in a mark bitmap to grey, setting a region field of a rescan map to indicate that a region of the mark bitmap includes any of the set of marks, and performing a rescan of the region based on the region field.
    Type: Application
    Filed: February 1, 2010
    Publication date: August 4, 2011
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Thomas Schatzl, Laurent Phillipe Daynes
  • Patent number: 7991807
    Abstract: 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: Grant
    Filed: November 21, 2007
    Date of Patent: August 2, 2011
    Assignee: SAP AG
    Inventors: Albert Rossmann, Stefan Schulz
  • Patent number: 7987215
    Abstract: Adding references to objects to a mark stack. A limited number of references to objects referenced by an object with a large number of object references are added to the stack. An object is accessed. A determination is made that references in the object should be added to a mark stack using a reference in the mark stack to the object in conjunction with a pointer. The pointer is used to track which references in the object have been placed on the mark stack. A reference to the object on the mark stack is accessed. A pointer is initialized. A reference to another object referenced by the object is pushed onto the mark stack. The pointer is incremented. It is then determined that that more references should be pushed to the mark stack. Acts of pushing references onto the mark stack and incrementing the pointer are repeated.
    Type: Grant
    Filed: April 22, 2008
    Date of Patent: July 26, 2011
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Maoni Z. Stephens
  • Patent number: 7984083
    Abstract: A garbage collection system that needs to meet real-time requirements uses an eager read barrier that performs a forwarding operation as soon as a quantity is loaded. The barrier maintains a to-space invariant by including a forwarding pointer in the header of objects to be moved or accessed that normally points to the object itself. However, if the object has been moved, the forwarding pointer points to the new object location. The eager read barrier maintains the registers and stack cells such that the registers and stack cells always point into to-space. Barrier-sinking and common sub-expression elimination are used to minimize the overhead associated with the read barrier.
    Type: Grant
    Filed: June 25, 2010
    Date of Patent: July 19, 2011
    Assignee: International Business Machines Corporation
    Inventors: David Francis Bacon, Perry Cheng, Vadakkedathu Thomas Rajan
  • Publication number: 20110167096
    Abstract: A computer-implemented method for removing unreferenced data segments from deduplicated data systems may include: 1) identifying a deduplicated data system that contains a plurality of data objects, 2) dividing the data objects within the deduplicated data system into a plurality of data object groups, 3) identifying, within the data object groups, at least one data object group that has changed subsequent to a prior garbage-collection operation that removed data segments that were not referenced by data objects within the deduplicated data system, 4) identifying at least one container within the deduplicated data system that contains data segments referenced by data objects within the changed data object group, and then, for each identified container, 5) removing data segments from the identified container that are not referenced by data objects within the deduplicated data system. Various other methods, systems, and computer-readable media are also disclosed.
    Type: Application
    Filed: January 5, 2010
    Publication date: July 7, 2011
    Applicant: Symantec Corporation
    Inventors: Fanglu Guo, Mark Christiaens, Weibao Wu
  • Patent number: 7971010
    Abstract: A mechanism for performing loitering trace is disclosed. A method of embodiments of the invention includes initiating a loitering trace of objects that cause a memory leak and remain in a heap after surviving at least one garbage collection operation. Initiating the loitering trace includes detecting the objects remaining in the heap via a loitering module of a profiling structure at a first virtual machine of an application server of a first computer system. Initiating the loitering trace further includes performing time-based sampling for the objects remaining, the time-based sampling having method statistics identifying an average runtime associated with each of the objects remaining. The method statistics is calculated based on a number of uses called for each of the objects remaining and a time length associated with each use of each of the remaining objects.
    Type: Grant
    Filed: December 15, 2009
    Date of Patent: June 28, 2011
    Assignee: SAP AG
    Inventors: Ralf Schmelter, Michael Wintergerst, Arno Zeller, Oliver Bendig
  • Publication number: 20110153690
    Abstract: A memory allocation message for each primary memory allocation in a primary memory made by a primary processor is received at a hardware memory management module. A representation of each primary memory allocation is allocated within a second memory in response to each memory allocation message. A determination is made, based upon the allocated representations of each primary memory allocation within the second memory, to free a primary memory allocation in the primary memory. A memory free message is sent to the primary processor instructing the primary processor to free the primary memory allocation in the primary memory.
    Type: Application
    Filed: December 23, 2009
    Publication date: June 23, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Joseph H. Allen, Moshe M. E. Matsa, David Z. Maze, Jeffrey M. Peters
  • Publication number: 20110153691
    Abstract: A memory allocation message for each primary memory allocation in a primary memory made by a primary processor is received at a hardware memory management module, including an indication of whether a finalizer routine is associated with each primary memory allocation. A representation of each primary memory allocation is allocated within a second memory in response to each memory allocation message, including the indication of whether there is the associated finalizer routine. A determination is made, based upon the allocated representations of each primary memory allocation within the second memory, to free a primary memory allocation in the primary memory. A call object finalizer message is sent to the primary processor instructing the primary processor to call the finalizer routine associated with the primary memory allocation in the primary memory in response to determining that the primary memory allocation has the associated finalizer routine.
    Type: Application
    Filed: December 23, 2009
    Publication date: June 23, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Joseph H. Allen, Moshe M. E. Matsa
  • Patent number: 7966607
    Abstract: One embodiment of the present invention provides a system that facilitates managing compiled program methods in a unified heap. The system partitions the unified heap into a first area and a second area. This allows the system to store objects other than compiled program methods and temporary compiler data structures in the first area, and to store compiled program methods and temporary compiler data structures in the second area.
    Type: Grant
    Filed: December 22, 2004
    Date of Patent: June 21, 2011
    Assignee: Oracle America, Inc.
    Inventors: Ioi K. Lam, Frank N. Yellin, Oleg A. Pliss
  • Patent number: 7953711
    Abstract: In general, the invention relates to a method for garbage collection. The method includes examining old regions to obtain a mark bitmap, a connectivity matrix, and fragmentation information, where the mark bitmap describes marked words and unmarked words for the old regions. The method further includes identifying a fragmented region in the old regions based on the fragmentation information, where the fragmented region includes at least one of the marked words. The method further includes copying the at least one of the marked words to a new region allocated from a pool of free regions, designating each of the unmarked words not in the fragmented region as free, adjusting a cross-region reference to the fragmented region in the marked words to point to the new region based on the connectivity matrix, and adding the fragmented region to the pool of free regions.
    Type: Grant
    Filed: April 30, 2008
    Date of Patent: May 31, 2011
    Assignee: Oracle America, Inc.
    Inventors: Sunil Soman, Laurent Philippe Daynes
  • Publication number: 20110119318
    Abstract: A method for performing garbage collection promotion, comprising determining that an age of a large young object is greater than a predetermined tenuring threshold, wherein the predetermined tenuring threshold specifies an age beyond which objects are promoted, setting a plurality of types of a plurality of large memory regions from young to old to promote the large young object to a large old object, wherein the plurality of large memory regions host the large young object, scavenging references of the large old object, wherein the large old object is a large promoted object, scanning a large young object list to identify a plurality of unvisited large young objects, wherein a plurality of visited bits of the plurality of unvisited large young objects are unset, and releasing a plurality of unvisited large memory regions, wherein the unvisited large memory regions host the plurality of unvisited large young objects.
    Type: Application
    Filed: November 18, 2009
    Publication date: May 19, 2011
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Laurent Phillipe Daynes, Thomas Schatzl
  • Patent number: 7930325
    Abstract: 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: Grant
    Filed: May 29, 2008
    Date of Patent: April 19, 2011
    Assignee: International Business Machines Corporation
    Inventors: David K. Siegwart, Martin Hirzel
  • Publication number: 20110087713
    Abstract: Associative references in a garbage collected programming environment is disclosed. An indication that an object is not reachable from any root object. The object is kept alive if it is determined by a garbage collection process, based at least in part on data other than data comprising the object or managed by an application with which the object is associated, that the object is associated with at least one other object that has been determined to be reachable.
    Type: Application
    Filed: December 20, 2010
    Publication date: April 14, 2011
    Applicant: Apple Inc.
    Inventor: Patrick C. Beard
  • Patent number: 7921143
    Abstract: 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: Grant
    Filed: May 12, 2009
    Date of Patent: April 5, 2011
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Vance P. Morrison
  • Publication number: 20110066666
    Abstract: Files stored in a storage system are grouped in a metadata server, and storage servers discretely storing these files are instructed to detect file duplication and to remove duplicate data. The storage servers detect duplicate data by comparing file fragments stored by the storage servers themselves with each other. In a case where duplicate data is detected, the storage servers delete the duplicate data.
    Type: Application
    Filed: November 20, 2009
    Publication date: March 17, 2011
    Inventors: Nobumitsu Takaoka, Masaaki Iwasaki, Takaki Nakamura
  • Publication number: 20110060456
    Abstract: An article vending machine in a network of article vending machines capable of exchanging an inoperable rental article received from a user for an operable replacement article. The article dispensing machine checks customer identification information against one or more customer rental criteria to determine if the customer is eligible to exchange an inoperable article for an operable one. The article vending machine searches for an identical replacement article within an inventory of the machine itself and within inventories of the networked article vending machines. Alternatively, the article vending machine may provide a refund for the inoperable article.
    Type: Application
    Filed: September 5, 2009
    Publication date: March 10, 2011
    Applicant: Redbox Automated Retail, LLC
    Inventors: J. Mitchell Lowe, Eric Hoersten, Christopher A. Kapcar
  • Patent number: 7882158
    Abstract: 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: Grant
    Filed: May 12, 2009
    Date of Patent: February 1, 2011
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Vance P. Morrison
  • Patent number: 7870170
    Abstract: An improved method, apparatus, and computer instructions for identifying a memory leak in a heap. Prior to the start of the observation period, all live objects in the heap are identified to form a set of live objects by altering an indicator in the live objects. After running the system for the required amount of time or until completion of the event being monitored, the system is used to obtain the list of live objects without the altered indicator. Live objects without the altered indicators form the most likely objects associated with a memory leak.
    Type: Grant
    Filed: May 3, 2005
    Date of Patent: January 11, 2011
    Assignee: International Business Machines Corporation
    Inventors: Phani Gopal V. Achanta, Robert Dimpsey, Frank Eliot Levine, Robert John Urquhart
  • Publication number: 20100312804
    Abstract: The invention provides an efficient apparatus and method for deleting items within a distributed datastore. In particular, the invention provides an apparatus and method of deletion that uses an already well defined procedure for insertion of data.
    Type: Application
    Filed: June 14, 2010
    Publication date: December 9, 2010
    Inventor: W. Daniel Hillis
  • Patent number: 7840612
    Abstract: According to the present disclosure, one or more processors of a computer device (e.g. a mobile communication device) are operative to execute a garbage collection program and an application program concurrently with execution of the garbage collection program. The garbage collection program is operative to identify a root set of referenced objects of an application program, where a reference indicator in a reference indicator array is set as referenced for each one of such referenced objects, and to perform a mark and sweep process based on the root set of referenced objects. The application program has computer instructions which includes a predefined computer instruction (e.g. a GETREF instruction) adapted to retrieve a reference from a target object and to set a reference indicator in the reference indicator array as referenced for the target object when executed. Advantageously, execution of the application program need not be unreasonably suspended during garbage collection processes.
    Type: Grant
    Filed: October 23, 2006
    Date of Patent: November 23, 2010
    Assignee: Research In Motion Limited
    Inventors: Michael James Carmody, Anthony Fabian Scian, John Fredric Arthur Dahms
  • Publication number: 20100290755
    Abstract: In the current invention, a method and apparatus for efficiently deleting large files is described. This is done by having a special inode for pointing to data blocks to be freed, and subsequently freeing the data blocks from the special inode in a controlled manner.
    Type: Application
    Filed: July 26, 2010
    Publication date: November 18, 2010
    Applicant: Broadcom Corporation
    Inventor: Yasantha Nirmal RAJAKARUNANAYAKE
  • Patent number: 7831640
    Abstract: Mark stack overflow list. A method may be practiced in a computing environment including application code that implements garbage collection functionality. The garbage collection functionality includes pushing object references onto a mark stack, such that objects referenced on the mark stack can be marked so as to prevent memory for the objects from being recycled for use with other objects instances. The method includes acts for handling overflows of a mark stack. The method includes accessing a reference to an object. The object is processed by attempting to enumerate references to other objects from the object onto a mark stack. An overflow condition of the mark stack is detected for a referenced other object. A reference to the referenced other object is placed on an overflow list. References from the overflow list are processed.
    Type: Grant
    Filed: April 15, 2008
    Date of Patent: November 9, 2010
    Assignee: Microsoft Corporation
    Inventors: Maoni Z. Stephens, Patrick H. Dussud
  • Patent number: 7831639
    Abstract: Various systems and methods are disclosed for storing one or more point-in-time images of data stored in a block device in a sparse file. In one embodiment, a method involves identifying a block of data within a block device and copying the block of data to a sparse file. The block of data is identified in response to being modified. The sparse file stores an incremental image of data stored in the block device. In addition to storing an incremental image, sparse files can be used to store full images. Furthermore, a sparse file can store multiple images (full and/or incremental) of data stored in a block device.
    Type: Grant
    Filed: December 22, 2004
    Date of Patent: November 9, 2010
    Assignee: Symantec Operating Corporation
    Inventors: Ankur P. Panchbudhe, John A. Colgrove, Anand A. Kekre
  • Publication number: 20100281082
    Abstract: Attached and detached subordinate multiobjects provide a means for managing references to within multiobjects in multiobject-based garbage collection (multiobjects are basically linearized trees of objects that are treated as a single unit in various garbage collection operations). Attached subordinate multiobjects provide an efficient means for dealing with transient references from registers, local variables and short-lived data structures, and detached subordinate multiobjects are created when the link connecting an attached subordinate multiobject to its containing multiobject is severed by a write to the data structure.
    Type: Application
    Filed: April 30, 2009
    Publication date: November 4, 2010
    Applicant: TATU YLONEN OY LTD
    Inventor: Tatu J. Ylonen
  • Patent number: 7814130
    Abstract: A method, system, and program for efficient parallel bitwise sweeps of larger objects during garbage collection are provided. During a bitwise sweep, a helper thread scans a mark vector looking for a consecutive sequence of unmarked bits of a sufficient length following a marked bit. Once a consecutive sequence of unmarked bits of a sufficient length following a marked bit is detected, the helper thread fetches the size of a marked object corresponding to the marked bit. If the size of the marked object exceeds a size represented by the consecutive sequence of unmarked bits, the remainder of the bits representing the marked object are skipped, such that once a marked object is identified as potentially exceeding an object fetch threshold the helper thread efficiently skips the remainder of the bits represents the marked object and continues scanning for a number of consecutive zeroes indicating free space.
    Type: Grant
    Filed: March 19, 2008
    Date of Patent: October 12, 2010
    Assignee: International Business Machines Corporation
    Inventor: Geoffrey Owen Blandy
  • Patent number: 7797498
    Abstract: A garbage collection apparatus and a method using the same are disclosed. The garbage collection method comprises: making a list of objects that must be deleted from a memory; calculating a predetermined residual time for responding to an external command; deleting the listed objects from the memory during the residual time; and storing a list of remaining objects that have not been deleted from the memory during the residual time. Accordingly, communication failure due to a response delay or timeout is prevented by distributed processing loads of garbage collection.
    Type: Grant
    Filed: August 3, 2004
    Date of Patent: September 14, 2010
    Assignee: Electronics and Telecommunications Research Institute
    Inventors: Im Young Jung, Sung Ik Jun, Kyo II Chung
  • Patent number: 7774390
    Abstract: Provided are an apparatus for collecting garbage blocks of a nonvolatile memory according to a power state and a method of collecting the same, and more particularly, an apparatus for collecting garbage blocks of a nonvolatile memory according to a power state and a method of collecting the same, in which an amount of power consumed by a portable device can be reduced by adjusting a garbage block collection operation on the basis of the power state of the portable device. The apparatus includes a power managing unit which collects physical blocks allocated to the nonvolatile memory on the basis of the power state of a portable device.
    Type: Grant
    Filed: December 7, 2006
    Date of Patent: August 10, 2010
    Assignee: Samsung Electronics Co., Ltd.
    Inventor: Dong-kun Shin
  • Patent number: 7774308
    Abstract: An apparatus and method efficiently delete a first items within a distributed datastore. In particular, an already well defined procedure for insertion of data is used for deletion. Deletion of a first item is effected through the insertion of a second item. The second item can contain a deletion key or be denoted by an appended flag or modified associated meta-data value. The first item can be deleted upon arrival of the second item or subsequent to arrival through an offline garbage collection process.
    Type: Grant
    Filed: July 8, 2005
    Date of Patent: August 10, 2010
    Assignee: Applied Minds, Inc.
    Inventor: W. Daniel Hillis
  • Publication number: 20100185703
    Abstract: A lock-free write barrier buffer is used to combine multiple writes to identical locations and save old values of written memory locations and to reduce TLB misses compared to card marking. The old value of a written location as well as the address of the header of the written object can be saved, which is not possible with card marking. Scanning the card table and marked pages are eliminated. The method is lock-free, scaling to highly concurrent multiprocessors and multi-core systems.
    Type: Application
    Filed: January 14, 2009
    Publication date: July 22, 2010
    Applicant: Tatu Ylonen Oy Ltd
    Inventor: Tatu Ylonen