G06F2212/702

MANAGING DATABASE INDEX BY LEVERAGING KEY-VALUE SOLID STATE DEVICE
20170300407 · 2017-10-19 ·

According to one general aspect, an apparatus may include a host interface layer, a translation data structure, and a non-volatile memory. The host interface layer may be configured to receive a multi-association command that associates two or more keys with a common value. The translation data structure may be configured to: maintain a key-value index that represents a plurality of key-value descriptors stored within a non-volatile memory, and associate the two or more keys with the common value. The non-volatile memory configured to store a plurality of key-value descriptors each including a respective value and at least one respective key, wherein at least one key-value descriptor includes a plurality of keys, wherein each of the plurality of keys are associated with the common value, and wherein the at least one key-value descriptor further includes either the common value or a pointer to the common value.

HARDWARE-ASSISTED GARBAGE COLLECTION
20170293554 · 2017-10-12 · ·

An example method includes receiving, by a software module that is executed by at least one processor of a computing device, memory write information indicating that the at least one processor has not written any data to a storage area of a memory of the computing device since a prior point in time, the memory write information being associated with the storage area and being based on information generated by a management unit of the computing device, the management unit comprising a hardware component of the at least one processor to manage data retrieved from and data written to the memory, and the storage area including a first object stored in the memory. The example method further includes determining, by the software module and based on the memory write information, to refrain from performing garbage collection on a second object stored in the memory and referenced by the first object.

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.

Inline garbage collection for log-structured file systems

Exemplary methods, apparatuses, and systems receive a command to overwrite or delete data stored within an allocated portion of a file system. In response to the command, an entry is added to a first data structure. A write command is received. The portion of the file system added to the first data structure is formatted for reallocation. In performance of the write command, the portion of the file system is reallocated. Portions of the file system are allocated from a second data structure when the second data structure includes a sufficient amount of space to satisfy the write command and from the first data structure when the second data structure does not include a sufficient amount of space. The second data structure includes free portions of the file system that have been formatted for allocation. The first data structure includes free portions that have yet to be formatted.

DATA STORAGE DEVICE FOR INCREASING LIFETIME AND RAID SYSTEM INCLUDING THE SAME
20170242752 · 2017-08-24 ·

A data storage device includes a nonvolatile memory arranged in drives and stripes, a buffer storing state information for each of the stripes, and a memory controller including a redundant array of independent disks (RAID) controller that operates in a spare region mode and performs data recovery using garbage collection based on the state information. The state information includes a first state indicating that none of the drives has malfunctioned, a second state indicating one of the drives has malfunctioned, and a third state indicating that data/parity stored in a malfunctioning drive has been recovered.

Using information specifying an organization of a data structure associated with a storage device

A storage device associated with a storage array may be identified. Information specifying an organization of data included in a data structure may be retrieved from the storage device. The data may be associated with characteristics of a plurality of data blocks of the storage device. A read operation or a write operation may be performed for the storage device based on the information specifying the organization of the data included in the data structure that is associated with the characteristics of the plurality of data blocks of the storage device.

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.

REMOTE DIRECT MEMORY ACCESS-BASED METHOD OF TRANSFERRING ARRAYS OF OBJECTS INCLUDING GARBAGE DATA
20170235702 · 2017-08-17 ·

Described herein are methods of transferring arrays of data information by remote data memory access (RDMA). According to the method, data information in data arrays in a local place identified. The intended data and garbage data are identified. Contiguous intended data and garbage data are copied to the remote place when the amount of garbage data is below a threshold garbage data criteria, and only intended data is copied to the remote place when the amount of garbage data is above the threshold garbage data criteria amount. Copying relies on scatter/gather input/output of RDMA. The garbage data transferred to the remote place is forwarded to a free list of the remote place.

Distributed Storage System Data Management And Security

A system and method for distributing data over a plurality of remote storage nodes. Data are split into segments and each segment is encoded into a number of codeword chunks. None of the codeword chunks contains any of the segments. Each codeword chunk is packaged with at least one encoding parameter and identifier, and metadata are generated for at least one file and for related segments of the at least one file. The metadata contains information to reconstruct from the segments, and information for reconstructing from corresponding packages. Further, metadata are encoded into package(s), and correspond to a respective security level and a protection against storage node failure. A plurality of packages are assigned to remote storage nodes to optimize workload distribution. Each package is transmitted to at least one respective storage node as a function iteratively accessing and retrieving the packages of metadata and file data.

Controller and operation method thereof
11210213 · 2021-12-28 · ·

Provided is an operation method of a controller which controls a memory device including a plurality of memory blocks. The operation method may include calculating a number of extended free blocks in the memory device based on valid page counts of the respective memory blocks, when a number of substantive free blocks in the memory device is less than a first threshold value, and performing a garbage collection operation when the number of extended free blocks is less than a second threshold value.