G06F12/0276

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.

Storage device embedded strand architecture
10558567 · 2020-02-11 · ·

A system for optimizing the use of append-only strand data structures is disclosed, with a device driver that transmits strand commands to firmware on a storage device. The storage device firmware executes strand commands natively on the storage device without needing to transmit data over the system bus to copy data to/from a strand saved on the storage device.

GENERATIONAL GARBAGE COLLECTOR
20200019498 · 2020-01-16 ·

The described technology is generally directed towards generational garbage collection, in which objects copied from earlier generation chunks during garbage collection are copied into a chunk of a later generation. Chunks are associated with generation numbers, starting with an original generation number (e.g., zero). When a garbage collection cycle occurs, objects of one generation of chunks are copied into chunks with a next generation number. As a result, over garbage collection cycles, longer-lived objects get grouped together into later generation chunks. Because of the objects' longer lifetimes, such later generation chunks are not copied often during subsequent garbage collection cycles, thereby avoiding the expense of copying for many objects.

CLOSED LOOP GARBAGE COLLECTOR
20190384705 · 2019-12-19 ·

Systems and methods for garbage collection are disclosed. A garbage collection is triggered in a memory allocation based on a free list and selected amount of free space in an inner closed feedback loop. The free list is determined from a selected memory load and a current memory load as generated from the garbage collection in an outer outer feedback loop.

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.

System and method for cache replacement using access-ordering lookahead approach

In response to a request for accessing a file stored in a storage system, data objects associated with the file are retrieved from a storage device of the storage system. The data objects of the file are cached in a cache memory. An access sequence of the cached data objects within the file is determined based on metadata of the file, where the access sequence represents a sequential order in time of accessing the cached data objects within the file. In response to a request for cache space reclamation, one or more cached data objects are identified whose next access is a farthest in time from a data object currently being accessed amongst the cached data objects based on the access sequence of the data objects. The identified data objects are evicted from the cache memory whose next access is a farthest amongst the cached data objects.

FEEDBACK-BASED SELECTION OF REGIONS FOR ABORTABLE GARBAGE COLLECTION

The disclosed embodiments provide a method, apparatus, and system for selecting, based on feedback from previous garbage collections, a portion of a referenced memory area for garbage collection within a time window. During the execution of a software program, the system selects a given portion of a referenced memory area on which garbage collection can be completed within the given time window and attempts to complete garbage collection on at least the given portion of the referenced memory area before the end of the given time window. Next, the system selects, based on the results of the garbage collection performed during the given time window, a subsequent portion of the referenced memory area on which garbage collection can be completed within the subsequent time window and attempts to complete garbage collection on at least the subsequent portion of the referenced memory area before the end of the subsequent time window.

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.

Method, program, and system for reducing the cost of stack scanning

A method for reducing the cost of stack scanning in garbage collection (GC) includes, in the GC of the first-generation heap area, registering, in a nursery object reference list prepared for each thread, one or more addresses, within each stack, which each refer to a nursery object, and updating a scanning unnecessary area starting pointer such that the addresses listed in the nursery object reference list are included in the area from the bottom of the stack to the address pointed to by the scanning unnecessary area starting pointer. The method further includes, in the next GC of the first-generation heap area, for the area from the bottom of the stack to the address pointed to by the scanning unnecessary area starting pointer, performing the GC processing on the addresses included in the nursery object reference list.

Feedback-based selection of regions for abortable garbage collection

The disclosed embodiments provide a method, apparatus, and system for selecting, based on feedback from previous garbage collections, a portion of a referenced memory area for garbage collection within a time window. During the execution of a software program, the system selects a given portion of a referenced memory area on which garbage collection can be completed within the given time window and attempts to complete garbage collection on at least the given portion of the referenced memory area before the end of the given time window. Next, the system selects, based on the results of the garbage collection performed during the given time window, a subsequent portion of the referenced memory area on which garbage collection can be completed within the subsequent time window and attempts to complete garbage collection on at least the subsequent portion of the referenced memory area before the end of the subsequent time window.