G06F3/0631

AUTONOMOUS STORAGE PROVISIONING
20230026185 · 2023-01-26 · ·

Techniques for provisioning storage may include: initially provisioning storage for a storage group of logical devices; tagging the storage group to enable autonomous storage provisioning; receiving a plurality of parameters used in connection with performing autonomous storage provisioning for the storage group, wherein the plurality of parameters includes a first parameter denoting a threshold amount of consumed storage of the storage group, a second parameter denoting a storage capacity expansion amount by which to expand the storage capacity of the storage group, and a third parameter denoting a system-wide threshold of consumed backend non-volatile storage; determining, in accordance with the plurality of parameters, whether to expand a current storage capacity of the storage group; and responsive to determining to expand the current storage capacity of the storage group, performing first processing to automatically expand the current storage capacity of the storage group in accordance with the second parameter.

Data storage method and method for executing an application with reduced access time to the stored data
11561934 · 2023-01-24 · ·

The invention concerns a storage method for storing, on data servers (3, 4), data file (5, 61 to 64) slices (51 to 58) from the execution of a plurality of processes (65 to 68) of one or more applications (83, 85), comprising: distributing the stored data file (5, 61 to 64) slices (51 to 58) over different data servers (3, 4), characterized in that: this distribution is carried out in such a way that the data file (5, 61 to 64) slices (51 to 58) likely to be subsequently accessed simultaneously by different application (83, 85) processes (65 to 68) are stored on different data servers (3, 4) so as to reduce the subsequent access, to each of all or part of these data servers (3, 4) by too many application (83, 85) processes (65 to 68) simultaneously, and in that: the determination of the data file (5, 61 to 64) slices (51 to 58) likely to be subsequently accessed simultaneously by different application (83, 85) processes (65 to 68) has been carried out, during a prior phase of executing these application (83, 85) processes (65 to 68), by observing the behavior of these application (83, 85) processes (65 to 68) in order to access these stored data file (5, 61 to 64) slices (51 to 58) over time.

COMPOSITE OPERATIONS USING MULTIPLE HIERARCHICAL DATA SPACES
20230229303 · 2023-07-20 · ·

Method and apparatus for performing an operation are described. A method includes choosing at least one primary logical hierarchical data space. The at least one primary logical hierarchical data space may have a plurality of subdivisions. The method may further include determining at least one subdivision of the at least one primary logical hierarchical data space. The method may further include choosing at least one secondary logical hierarchical data space. The at least one secondary logical hierarchical data space may have a plurality of subdivisions. The method may further include determining at least one subdivision of the at least one secondary logical hierarchical data space. The method may further include performing at least one operation corresponding to the at least one subdivision of the at least one primary logical hierarchical data space. The method may further include performing at least one operation corresponding to the at least one subdivision of the at least one secondary logical hierarchical data space.

Orchestrating Distribution of Function as a Service (FaaS) Workloads to Autonomous Storage Systems
20230229322 · 2023-07-20 ·

A Function as a Service (FaaS) distribution system is configured to implement FaaS as a Service (FaaSaaS), enabling autonomous storage systems to be used as FaaS providers during periods where the storage systems are not being used at full capacity to process primary workloads. The FaaS distribution system receives functions from FaaS consumers, and selects a FaaS provider from a set of autonomous storage systems currently able to process FaaS workloads. The FaaS distribution system selects FaaS providers based on an expected execution time of the function and expected execution times of other functions executing on particular FaaS providers, to preferentially select a FaaS provider that is currently running an instance of the function, and to preferentially select a FaaS provider that has other functions that are current executing that are not expected to finish execution at the same time the current function is expected to complete execution.

SPACE MANAGER FOR TRANSPARENT BLOCK DEVICE COMPRESSION

Systems and methods for space allocation for block device compression are provided. In particular, a computing device may receive an allocation request to write the compressed data, select a range list adequate for serving the allocation request from a plurality of range list, dequeue a range entry from the selected range list to allocate free space for the compressed data, and allocate the free space corresponding to the range entry to the compressed data to serve the allocation request.

SYSTEM AND METHOD FOR IMPROVING MEMORY RESOURCE ALLOCATIONS IN DATABASE BLOCKS USING BLOCKCHAIN
20230229321 · 2023-07-20 ·

A system for improving memory resource allocation in database blocks of a database server using blockchain receives a request to allocate a particular amount of memory resources to a particular database block of the database server to perform a task. The system communicates a blockchain transaction to a block in the blockchain. the system approves the blockchain transaction based on historical memory resource allocations to perform the first task. A new block is generated in the blockchain in response to the blockchain transaction being approved. The system performs the task using the particular amount of memory resources. The system determines whether any portion of memory resources already allocated to any of the database blocks is unutilized. If it is determined that a portion of the memory resources already allocated to any of the database blocks is unutilized, the system reallocates the unutilized memory resources to the particular database block.

Storage System and Method for Delaying Flushing of a Write Buffer Based on a Host-Provided Threshold

A storage system allocates single-level cell (SLC) blocks in its memory to act as a write buffer. A host sends the storage system a threshold indicating an amount of data that should be stored in the write buffer before the storage system flushes the write buffer to multi-level cell (MLC) blocks in the memory. Using this threshold can extend the amount of time that data is maintained in the write buffer, which can reduce the write-amplification factor and power consumption, as well as increase read performance of the data.

Generation, validation and implementation of storage-orchestration strategies using virtual private array (VPA) in a dynamic manner

A data storage management layer comprises computing device(s), operatively connected to storage resources, which comprise data storage units and control units. The data storage management layer is operatively connected to the storage resources. They are operatively connected to host computers. A sub-set of the storage resources are assigned to each host, in order to provide storage services according to performance requirements predefined for the host, thereby generating Virtual Private Arrays (VPA). The computing device(s) are configured to perform a method of managing the data storage system comprising: (a) implement storage management strategies, comprising rules. The rules comprise conditions and actions. The actions are capable of improving VPA performance in a dynamic manner; (b) repetitively performing: (i) monitor VPA performance for detection of compliance of VPA with the condition(s); and (ii) responsive to detection of compliance of VPA with the condition(s), performing the action(s).

Precisely tracking memory usage in multi-process computing environment

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for precisely tracking memory usage in a multi-process computing environment. One of the methods includes implementing an instance of a memory usage tracker (MUT) in each process running in a node of a computer system. A MUT can maintain an account of memory usage for each of multiple logical owners running on a process on which the MUT is running. The MUT can determine an actual memory quota for each owner, and enforce the actual memory quota of the owner. Enforcing the actual memory quota of the owner can include receiving each memory allocation request, checking each allocation request and a current state of the account against the actual quota, approving or rejecting each allocation request, communicating the approval or rejection to an underlying memory manager, and updating the owner account for each approved allocation request.

Storage allocation enhancement of microservices based on phases of a microservice run

Method and system are provided for storage allocation enhancement of microservices. A method carried out at a microservice orchestrator, includes: identifying distinct phases of a run of a microservice container; categorizing the phases of a run of a microservice container, wherein the categorization defines a predicted storage behavior of the microservice container input/output operations in the phase of the microservice container; and providing the categorization in association with the microservice container input/output operations in the phase to a storage system for use in storage allocation of the input/output operations.