Patent classifications
G06F12/0269
ENHANCED CONCURRENCY GARBAGE COLLECTION STACK SCANNING
Garbage collection (GC) to reclaim memory in computing systems sometimes suspends applications, web services, and other mutator programs in order to scan their execution stacks, which reduces their responsiveness. But suspension times are decreased by behavior-driven stack scan optimization (BDSSO) functionality that increases the concurrency of mutator execution with GC stack scanning. BDSSO obtains execution stack frame occurrence data, determines frame execution likelihoods, selects a stack scan depth based on the likelihoods, and installs a scan return barrier at the selected depth. Then the GC scans the execution stack below the barrier while the mutator runs, thus increasing concurrency and improving mutator responsiveness. Selected barrier locations vary according to actual stack activity to provide optimized concurrency instead of using an inflexible approach to barrier placement. Existing profiler samples or virtual machine interfaces can be reused by BDSSO. Skinny samples that lack profiler performance data may also be used.
Steal one-process many work-stealing
A computer-implemented method, system, and computer program product are provided to reduce stealing in a processor. The method includes allocating a private space for a first thread in a memory. The method also includes generating a plurality of child tasks by the first thread responsive to processing a first task. The method additionally includes storing a portion of the plurality of child tasks in the private space removing the ability of other threads from popping the portion of the plurality of child tasks, with a remainder of the plurality of child tasks being stored in a public space. The method further includes popping the portion of the plurality of child tasks from the private space by the first thread.
MEMORY USAGE IN MANAGED RUNTIME APPLICATIONS
Live objects in heap memory exceeding a threshold size and that have not been recently accessed are compressed or offloaded to secondary memory or storage. Compressing or offloading an object can further be based on how old the object is, which can be determined based on how many garbage collections the object has survived. Objects comprising references to other objects can be split into two sub-objects, one containing value fields that is compressed or offloaded and one containing reference fields that remains uncompressed in heap memory. Heap memory can undergo compaction after objects are compressed or offloaded. Compression accelerators can be used for compression and the decision of whether to compress or offload an object can be based on accelerator throughput, latency, availability, as well as other computing system metrics or characteristics. The compressing and offloading of objects and subsequent compaction can make more heap memory available for object allocation.
NUMA-aware garbage collection
System and Methods for non-uniform memory (NUMA) garbage collection are provided. Multiple memories and processors are categorized into local groups. A heap space is divided into multiple pools and stored in each of the memories. Garbage collection threads are assigned to each of the local groups. Garbage collection is performed using the garbage collection threads for objects contained in the pools using the garbage collector threads, memory, and processor assigned to each local group, minimizing remote memory accesses.
Inline coalescing of file system free space
An in-line (or foreground) approach to obtaining contiguous ranges of free space in a file system of a data storage system that can select windows having blocks suitable for relocation at a time when one or more blocks within the respective windows are freed or de-allocated. By providing the in-line or foreground approach to obtaining contiguous ranges of free space in a file system, a more efficient determination of windows having blocks suitable for relocation can be achieved, thereby conserving processing resources of the data storage system.
STORAGE ALLOCATION ENHANCEMENT OF MICROSERVICES
Method and system are provided for storage allocation enhancement of microservices. A method carried out at a microservice orchestrator, includes: categorizing a microservice container, wherein the categorization defines a predicted storage behavior of the microservice container input/output operations; and providing the categorization in association with the microservice container input/output operations to a storage system for use in storage allocation of the input/output operations. A method at a storage controller includes: receiving microservice container input/output operations with an associated categorization, wherein the categorization defines a predicted storage behavior of the microservice container input/output operations; and using the associated categorization for optimizing storage allocation for the input/output operations and/or optimizing garbage collection performance.
Intelligent Write-Amplification Reduction for Data Storage Devices Configured on Autonomous Vehicles
Systems, methods and apparatus of intelligent write-amplification reduction for data storage devices configured on autonomous vehicles. For example, a data storage device of a vehicle includes: one or more storage media components; a controller configured to store data into and retrieve data from the one or more storage media components according to commands received in the data storage device; an address map configured to map between: logical addresses specified in the commands received in the data storage device, and physical addresses of memory cells in the one or more storage media components; and an artificial neural network configured to receive, as input and as a function of time, operating parameters indicative a data access pattern, and generate, based on the input, a prediction to determine an optimized data placement scheme. The controller is configured to adjust the address map according to the optimized data placement scheme.
Hybrid garbage collection
A hybrid hybrid garbage collection methodology may be used to perform garbage collection in a manner that consolidates live objects from an evacuation region of memory into a consolidation region of memory, while also reclaiming reclaimable objects from the consolidation region, such that upon completion of a garbage collection pass, reclaimable objects from both the evacuation and consolidation regions are reclaimed while live objects from both the evacuation and consolidation regions are consolidated in the consolidation region.
Scalable garbage collection
Methods and systems for performing memory garbage collection include determining a size of N double-ended queues (deques) associated with N respective garbage collection threads, where N is three or greater. A task is popped from a deque out of the N deques having a largest size. Garbage collection is performed on the popped task.
Memory system and operation method thereof
An operation method of a memory system, the operation method may include: determining a garbage collection trigger condition based on current time and usage of the memory system over a set period of time; and performing a garbage collection operation when the garbage collection trigger condition is satisfied.