Patent classifications
G06F12/0276
Generational garbage collector for trees under multi-version concurrency control
Method of implementing generational garbage collection for trees under MVCC starts by detecting live objects in trees. Trees include normal trees and frozen trees. Poorly-filled young chunks and poorly-filled old chunks of hard-drive memory are identified. Hard-drive memory includes young chunks storing young elements, old chunks storing old elements, and immortal chunks storing immortal elements. One or more old chunks are opened for writes and elements from poorly-filled young chunks and old chunks are copied to one or more opened old chunks. Elements above elements from poorly-filled young chunks and old chunks in the normal trees are updated and stored in the young chunks. One or more immortal chunks are opened for writes and tree leaves of frozen trees from young chunks and from old chunks are copied to one or more opened immortal chunks. All nodes of frozen trees are updated and stored in immortal chunks.
Determining an age category for an object stored in a heap
Techniques for determining an age category for an object and identifying objects for memory leak analysis based on age categories are described. An age category classifier generates a set of age categories, each corresponding to a respective time interval. The age category classifier monitors garbage collection processes on the heap. The age category classifier determines a current age category based on a duration of time that has elapsed between (a) an initiation of a current garbage collection cycle and (b) a reference event. The age category classifier identifies objects transferred from one object group to another object group during the current garbage collection cycle. The age category classifier stores the current age category as the transfer age category in the headers of the transferred objects. The transfer age categories of the objects may be used for reducing the number of objects that are analyzed in a memory leak analysis.
SYSTEMS AND METHODS FOR DATABASE MANAGEMENT USING APPEND-ONLY STORAGE DEVICES
An apparatus is disclosed. The apparatus may be implemented in a database node or a storage node and includes one or more processors and memory storing instructions for causing the processor to perform a number of operations. Responsive to a page write request, the apparatus determines an identifier corresponding to the requested page, sends component blocks corresponding to the page to a storage node for appending to an append-only storage log of the storage node, receives the physical location of the stored component blocks, and associates the physical storage location of the stored component blocks with the logical identifier corresponding to the page.
Reducing minor garbage collection overhead
A computer-implemented method and system are provided for reducing garbage collection overhead. The method includes specifying, by a hardware processor from a set of nodes of a Directed Acyclic Graph representing an application program, wherein each of the nodes represents a respective one of a plurality of computation tasks, any of the nodes which store a respective computation result for at least a threshold period of time as cache nodes. The method further includes allocating, by the hardware processor, the respective computation result of each of the cache nodes into a tenure area of a memory.
GLOBAL OCCUPANCY AGGREGATOR FOR GLOBAL GARBAGE COLLECTION SCHEDULING
Computer systems and methods for scheduling garbage collection in a distributed environment that includes multiple partitions that reference various data blocks that store data objects. A global occupancy aggregator may access occupancy information for each of the partitions from an occupancy index of each of the partitions. This occupancy information specifies a portion of storage resources occupied by those data blocks referenced by each of the partitions. The global occupancy aggregator may aggregate the accessed occupancy information to generate a global occupancy index that combines the occupancy information of the partitions. The global occupancy aggregator may generate a global schedule for garbage collection for the partitions based on the global occupancy index. The global schedule specifies which of the data blocks included in the global occupancy index are to be subjected to garbage collection.
METHOD AND SYSTEM FOR PARALLEL MARK PROCESSING
Parallel mark processing is disclosed including traversing first objects in a virtual machine heap based on correspondences between memory blocks in the virtual machine heap and N marking threads, pushing a first pointer of a first object into a private stack of a marking thread corresponding to a memory block, the first object being located in the memory block, performing first mark processing of the first object based on a push-in condition of the first pointer, and after traversal of the first objects has been completed, launching the N marking threads to cause the N marking threads to synchronously perform mark processing used in garbage collection based on push-in conditions of first pointers in respective private stacks of the first pointers.
Removal of garbage data from a database
Elements of a database object are removed. The database object is stored as a plurality of different object portions, where each object portion is associated with one or more versions of transaction identifiers stored separately from the database object. An oldest transaction identifier is determined for a transaction for which data portions of the database object remains visible. Each object portion is examined and object portions with a threshold amount of data to remove are determined based on a comparison of the transaction identifiers for those object portions and the oldest transaction identifier. Data from the database object are removed in response to a sufficient quantity of data is to be removed from object portions containing the threshold amount of data.
Global occupancy aggregator for global garbage collection scheduling
Computer systems and methods for scheduling garbage collection in a distributed environment that includes multiple partitions that reference various data blocks that store data objects. A global occupancy aggregator may access occupancy information for each of the partitions from an occupancy index of each of the partitions. This occupancy information specifies a portion of storage resources occupied by those data blocks referenced by each of the partitions. The global occupancy aggregator may aggregate the accessed occupancy information to generate a global occupancy index that combines the occupancy information of the partitions. The global occupancy aggregator may generate a global schedule for garbage collection for the partitions based on the global occupancy index. The global schedule specifies which of the data blocks included in the global occupancy index are to be subjected to garbage collection.
Stale data recovery using virtual storage metadata
Aspects of the present invention disclose a method, computer program product, and system for stale data recovery using virtual storage metadata. The method includes one or more processors generating a primary virtual storage metadata structure having virtual address areas for a data chunk. Each area includes a plurality of most recent updates of metadata for the data chunk. The metadata of each update includes a sequence number for the update and a pointer to the physical location of the data. The method further includes one or more processors generating an overflow virtual storage metadata structure for multiple virtual address areas. The overflow metadata structure includes updates that have overflowed from the virtual address areas. In addition, wherein an oldest update in a full virtual address area of the primary virtual storage metadata structure includes a link to an overflow location.
Workflow-based object destruction
Objects in a computing environment are often utilized by threads through an object lifecycle, and are destroyed at the end of the object lifecycle to reclaim the computing resources used by the object. In some cases, a thread that initiates an object destruction of an object may be unable to complete the destruction (e.g., a second thread may hold a synchronization lock over an object resource of the object). An object destruction workflow initiates the destruction of an object on behalf of a thread. If the object destruction workflow encounters a failure to complete the object destruction, a new reference to the object is inserted into an object destruction list, as the last reference to the object. A second thread discovers and releases the last reference in the object destruction list, prompting the object destruction workflow to resume the attempt to destroy the object on behalf of the second thread.