Class / Patent application number | Description | Number of patent applications / Date published |
707816000 | Mark-sweep | 25 |
20100082711 | SYSTEMS AND METHODS FOR SIDEBAND COMMUNICATION BETWEEN DEVICE AND HOST TO MINIMIZE FILE CORRUPTION - Communications systems and methods for minimizing file corruption when communicating between a device and a host are provided. To initiate a file transfer section, a host can transfer data to a device on a primary communications channel. The device can then temporarily store the received data in a memory circuit until a command is received indicating that the file has been completely transferred. In order to avoid interfering with the data transfer, the host can provide such a command to the device on a sideband communications channel. Upon receiving the command, the device can integrate the received data into its file system by transferring the data from the memory circuit to a more permanent storage component. If the communications interface is disconnected before such a command is received, the temporarily stored data can be considered incomplete and can be deleted. | 04-01-2010 |
20100114999 | Method and System to Space-Efficiently Track Memory Access of Object-Oriented Language in Presence of Garbage Collection - The present invention provides a method and system for processing memory access events. The method comprises: executing an extended program including instrumented memory tracking code for tracking memory access events of a plurality of objects; allocating a unique identifier for each of the plurality of tracked objects; creating a weak reference for each of the plurality of tracked objects, wherein a mapping relationship is established between the identifier of the weak reference and that of the corresponding tracked object; recording and storing the memory access events of the plurality of tracked objects; in response to receiving a notification of memory garbage collection which includes an identifier of a weak reference of a collected object, determining the identifier of the collected object based on the mapping relationship between the identifier of the weak reference and that of the corresponding tracked object, and searching the stored memory access events for the memory access events of the collected object; and deleting the memory access events of the collected object. The storage overhead may be reduced according to the above method of the present invention. | 05-06-2010 |
20100185703 | Lock-free hash table based write barrier buffer for large memory multiprocessor garbage collectors - 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. | 07-22-2010 |
20100281082 | Subordinate Multiobjects - 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. | 11-04-2010 |
20110066666 | FILE MANAGEMENT METHOD AND STORAGE SYSTEM - 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. | 03-17-2011 |
20110087713 | ASSOCIATIVE REFERENCES IN A GARBAGE COLLECTED PROGRAMMING ENVIRONMENT - 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. | 04-14-2011 |
20110119318 | ZERO-COPY MATURING OF LARGE OBJECTS IN GENERATIONAL HEAP WITH COPYING COLLECTION - 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. | 05-19-2011 |
20110153690 | HARDWARE OFF-LOAD MEMORY GARBAGE COLLECTION ACCELERATION - 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. | 06-23-2011 |
20110153691 | HARDWARE OFF-LOAD GARBAGE COLLECTION ACCELERATION FOR LANGUAGES WITH FINALIZERS - 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. | 06-23-2011 |
20110167096 | Systems and Methods for Removing Unreferenced Data Segments from Deduplicated Data Systems - 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. | 07-07-2011 |
20110191393 | MARKING ALGORITHM FOR LOW-BANDWITH MEMORY - 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. | 08-04-2011 |
20110246543 | Write Barrier Elision for Reference Arrays - 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. | 10-06-2011 |
20110258241 | Discardable Files - 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. | 10-20-2011 |
20110270899 | Efficient Garbage Collection in Virtualization Environment - 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. | 11-03-2011 |
20120124107 | CONCURRENT ADD-HEAVY SET DATA GATHERING - 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. | 05-17-2012 |
20120158801 | DETERMINING WHETHER A JAVA OBJECT HAS BEEN SCAN-MISSED BY A GARBAGE COLLECTOR SCAN - 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. | 06-21-2012 |
20120239709 | COPY COLLECTOR WITH EFFICIENT ABORT-ON-COPY TRANSITION TO MARK COLLECTOR - 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. | 09-20-2012 |
20120239710 | SINGLE PASS MARKING OF FINALIZABLE OBJECTS - 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. | 09-20-2012 |
20120239711 | COPY COLLECTOR WITH EFFICIENT ABORT-ON-COPY TRANSITION TO MARK COLLECTOR - 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. | 09-20-2012 |
20120254265 | CONSERVATIVE GARBAGE COLLECTING WITH CONCURRENT MARKING AND CONCURRENT SWEEPING FOR MEMORY MANAGEMENT - Aspects for conservative garbage collecting are disclosed. In one aspect, a heap of objects is generated during an execution of a script, and script objects in an unexecuted portion are traced to corresponding memory locations on the heap. The heap is then marked concurrently with executing the script such that a marked heap includes reachable and unreachable objects. Memory allocated to the unreachable objects is then freed concurrently with executing the script based on the marking. In another aspect, an object graph associated with a call stack is generated and traced such that script objects in an unexecuted portion of the stack are traced to corresponding memory locations on a heap. Heap objects are marked concurrently with executing the stack so that a marked heap includes reachable and unreachable objects. Memory allocated to the unreachable objects is then cleared concurrently with executing the stack based on the marked heap. | 10-04-2012 |
20130262532 | GARBAGE COLLECTION FOR VIRTUAL ENVIRONMENTS - Embodiments disclosed herein provide systems and methods for performing garbage collection in virtual environments. In a particular embodiment, a method provides performing a garbage collection process to identify at least a portion of a secondary storage volume located within a primary storage volume. The method further provides triggering a data block release process on at least a portion of the primary storage volume corresponding to the at least a portion of the secondary storage volume. | 10-03-2013 |
20130311521 | BLOB MANIPULATION IN AN INTEGRATED STRUCTURED STORAGE SYSTEM - Embodiments of the present invention relate to systems, methods and computer storage media for facilitating the structured storage of binary large objects (Blobs) to be accessed by an application program being executed by a computing device. Generally, the manipulation of Blobs in a structured storage system includes receiving a request for a Blob, which may be located by way of a Blob pointer. The Blob pointer allows for the data, such as properties, of the Blob to be identified and located. Expired properties are garbage collected as a manipulation of the Blob data within a structured storage system. In an embodiment, the Blob is identified by a key that is utilized within a primary structured index to located the requested Blob. In another embodiment, the requested Blob is located utilizing a secondary hash index. In an additional embodiment, the Blob is locate utilizing a file table. | 11-21-2013 |
20130318132 | GENERATIONAL GARBAGE COLLECTION FOR A POOL-BASED HEAP - A generational garbage collector utilizes a pool-based heap to store objects dynamically generated at runtime. The pool-based heap is configured as a collection of pools where each pool stores objects associated with the same generation. Each pool contains a pool header that identifies the generation of all objects within the pool. The pools are aligned to a memory boundary that is a multiple of the pool size. Select bits of an object's memory address may be used to access the pool header so that an object's generation, which is needed in various phases of the garbage collection process, is readily determined. | 11-28-2013 |
20140059093 | INFORMATION PROCESSING METHOD AND APPARATUS FOR GARBAGE COLLECTION - A disclosed method includes: specifying a first object pointed by a first pointer, wherein the first object is in a heap area that includes plural generational areas; determining whether or not an address in a generational area, which is different from a first generational area that includes the first object, is set as a movement destination address of the first object; upon determining that the address is set as the movement destination address of the first object, obtaining the movement destination address of the first object; and updating the first pointer with the movement destination address of the first object. | 02-27-2014 |
20150074155 | HIERARCHICAL GARBAGE COLLECTION IN AN OBJECT RELATIONAL DATABASE SYSTEM - Techniques of hierarchical garbage collection in an object-relational database system are described. When the object-relational database system receives a request to delete an object, the object-relational database system marks the object for deletion. A garbage collection procedure executing in the background can perform iterations of sweep and mark to delete the object and children objects of the object. In each iteration, a layer or “generation” of objects is deleted. The garbage collection procedure can continue the iterations until the object and all descendants of the objects are deleted. | 03-12-2015 |