G06F12/0276

COMPUTER SYSTEM FOR HYBRID OF EPOCH- AND POINTER-BASED MEMORY RECLAMATION, AND METHOD THEREOF
20220187986 · 2022-06-16 ·

Various example embodiments provide a computer system for hybrid of epoch- and pointer-based memory reclamation, and a method thereof. Various example embodiments are configured to implement a pointer and epoch-based memory reclamation scheme by hybridizing a pointer-based memory reclamation scheme and an epoch-based memory reclamation scheme, and perform a memory reclamation of a concurrent data structure, based on the pointer and epoch-based memory reclamation scheme.

Snapshot at the beginning marking in Z garbage collector

During execution of garbage collection marking, an application thread receives a first request to overwrite a reference field of an object, the object comprising at least a first reference and the first request comprising a second reference to be written to the reference field. Responsive to receiving the first request, the application thread determines a marking parity for objects being traversed by the garbage collection marking process and loads the first reference from the heap. The application thread determines that marking metadata of the first reference does not match the marking parity. Responsive to that determination, the application thread adds the first reference to a marking list, modifies the second reference to include the current marking parity as the marking metadata, and stores the modified second reference to the first reference field. In subsequent writes to the reference field, the application thread refrains from adding to the marking list.

COALESCING READ COMMANDS BY LOCATION FROM A HOST QUEUE

Method and apparatus for managing data in a storage device, such as a solid-state drive (SSD). A non-volatile memory (NVM) is arranged into multiple garbage collection units (GCUs) each separately erasable and allocatable as a unit. Read circuitry applies read voltages to memory cells in the GCUs to sense a programmed state of the memory cells. Calibration circuitry groups different memory cells from different GCUs into calibration groups that share a selected set of read voltages. A read command queue accumulates pending read commands to transfer data from the NVM to a local read buffer. Read command coalescing circuitry coalesces selected read commands from the queue into a combined command for execution as a single batch command. The combined batch command may include read voltages for use in retrieval of the requested data.

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.

Adaptive storage reclamation
11188229 · 2021-11-30 · ·

In some examples, a system may include at least one class of storage that is configured for having freed storage space reclaimed to enable reuse of the freed storage space. For instance, the system may determine whether a volume corresponding to the at least one class of storage is used to store system data or user data. If the volume is used to store user data, then the system may determine whether any of the user data has been deleted from the volume. If data has been deleted from the volume, the system may determine whether an available capacity of the volume is less than a remaining capacity threshold before performing reclamation on the at least one storage device corresponding to the volume. Alternatively, if the volume is used to store system data, the system may perform reclamation based on an elapsed period of time since the last reclamation.

STORAGE DEVICE AND OPERATING METHOD THEREOF
20210365367 · 2021-11-25 ·

A storage device includes a nonvolatile memory including a plurality of first blocks having memory cells each configured to store one bit of data and a plurality of second blocks having memory cells each configured to multiple bits of data; and a controller configured to determine whether or not a number of use-completed second blocks, each of which has a first threshold number or less of valid pages, among use-completed second blocks of the plurality of second blocks, is equal to or larger than a second threshold number and to select, according to a determination result, a victim block on which garbage collection is to be performed among used-completed first blocks of the plurality of first blocks or the use-completed second blocks each having the first threshold number or less of valid pages.

NUMA-aware garbage collection

Methods and systems for garbage collection are described. In some embodiments, Garbage collector threads may maximize local accesses and minimize remote access by copying Young objects and Old objects differently. When copying a Young object, a garbage collector thread may determine the lgroup of the pool that contains the object and copy the object to a pool of the same lgroup. The garbage collector thread may spread Old objects among lgroups by copying Old objects to pools of the same lgroup as the respective garbage collector thread. Additional methods and systems are disclosed.

Colorless roots implementation in Z garbage collector

A request is received, from a mutator thread, to load a first reference to a first object from a heap memory onto a call stack of the application thread. Responsive to receiving the request, a system retrieves the first reference from the heap memory. The system executes a bitwise shift operation that (a) removes one or more bits representing the first garbage collection state and (b) generates a second reference from the first reference. Based on a particular bit, of the one or more bits removed from the first reference by the shift operation, the system determines whether to perform a set of garbage collection operations on the first reference to bring the first reference to a good state. The second reference, without any indication of any of the plurality of garbage collection states, is stored to the call stack.

Service performance enhancement using advance notifications of reduced-capacity phases of operations

A first run-time environment executing a first instance of an application, and a second run-time environment executing a second instance of the application are established. An indication of an impending commencement of a reduced-capacity phase of operation of the first run-time environment is obtained at a service request receiver. Based at least in part on the indication, the service request receiver directs a service request to the second instance of the application.

Coordinated garbage collection in distributed systems

Fast modern interconnects may be exploited to control when garbage collection is performed on the nodes (e.g., virtual machines, such as JVMs) of a distributed system in which the individual processes communicate with each other and in which the heap memory is not shared. A garbage collection coordination mechanism (a coordinator implemented by a dedicated process on a single node or distributed across the nodes) may obtain or receive state information from each of the nodes and apply one of multiple supported garbage collection coordination policies to reduce the impact of garbage collection pauses, dependent on that information. For example, if the information indicates that a node is about to collect, the coordinator may trigger a collection on all of the other nodes (e.g., synchronizing collection pauses for batch-mode applications where throughput is important) or may steer requests to other nodes (e.g., for interactive applications where request latencies are important).