G06F2212/163

Low-latency shared memory channel across address spaces without system call overhead in a computing system

Examples provide a method of communication between a client application and a filesystem server in a virtualized computing system. The client application executes in a virtual machine (VM) and the filesystem server executes in a hypervisor. The method includes: allocating, by the client application, first shared memory in a guest virtual address space of the client application; creating a guest application shared memory channel between the client application and the filesystem server upon request by the client application to a driver in the VM, the driver in communication with the filesystem server, the guest application shared memory channel using the first shared memory; sending authentication information associated with the client application to the filesystem server to create cached authentication information at the filesystem server; and submitting a command in the guest application shared memory channel from the client application to the filesystem server, the command including the authentication information.

METHOD AND APPARATUS FOR OPTIMIZING DATA STORAGE BASED ON APPLICATION
20170262232 · 2017-09-14 ·

Embodiments of the present disclosure propose a method and apparatus for optimizing storage of application data. The method comprises obtaining description information for application data from an application; performing storage optimization based on the description information; and performing at least pan of a storage function to be implemented by the back-end storage device, based on the description information before transmitting application data to the back-end storage device. With the method or apparatus according to the embodiments of the present disclosure, an efficient manner of integrating the application and non-volatile storage device is provided to coordinate the application and storage, thereby improving efficiency and expanding capability.

SWITCH-BASED FREE MEMORY TRACKING IN DATA CENTER ENVIRONMENTS

Computing devices, methods, and systems for switch-based free memory tracking in data center environments are disclosed. An exemplary switch integrated circuit (IC), which is used in a switched fabric or a network, can include a processing device and a tracking structure that is distributed with at least a second switch IC. The tracking structure tracks free memory units that are accessible in a first set of nodes by the second switch IC. The processing device receives a request for a number of free memory units. The processing device forwards the request to a node in the first set of nodes that has at least the number of free memory units or forwards the request to the second switch IC that has at least the number of free memory units or responds to the request with a response that indicates that the request could not be fulfilled.

MEMORY GUARDS FOR CONTINUOUS LOAD-ADAPTIVE PROCESSING OF TRANSACTIONS IN DATABASES
20220229776 · 2022-07-21 ·

Techniques are disclosed to manage use of a global pool of memory comprising at least a portion of the runtime-managed heap. A request to reserve use of a portion of the global pool of memory is received from each of a plurality of transactions comprising a transactional workload of a database management system. A corresponding portion of the global pool of memory is allocated to each of at least a subset of the requesting transactions, to be used as a local pool of memory available to be used by the transaction to process the transaction.

DATA STORAGE SYSTEM WITH MULTIPLE-SIZE OBJECT ALLOCATOR FOR DISK CACHE
20220229777 · 2022-07-21 ·

Managing pool memory in a data storage system includes maintaining free lists for corresponding object sizes. For a memory-consuming request (e.g., host write) an allocation operation is performed and the request data is stored. The allocation operation includes (1) selecting a memory object at least as large as the request size and removing all pages of the selected memory object from the corresponding free list, and (2) selecting pages of the selected memory object to store the request data and marking the selected pages as non-free, and leaving any leftover pages as free pages. For a memory-freeing request (e.g., destaging), a deallocation operation is performed that includes (1) marking the request pages free, and (2) based on neighboring pages being free, merging the request pages and neighboring pages into a corresponding memory object and adding the merged pages to the corresponding free list.

Key data store garbage collection and multipart object management

In an example embodiment, a method comprises determining that a multipart upload request to upload a data object in separate object parts has been received by an object storage service; generating temporary keys for the separate object parts of the data object; storing the temporary keys in a temporary key data store; generating, based on the temporary keys, a multipart key entry for the data object, the multipart key entry comprising a multipart key that contains an object identifier identifying the data object and an inverse timestamp; and inserting the multipart key entry in a persistent key data store storing an ordered set of key entries in a position determined by the object identifier and the inverse timestamp.

Addressing for disaggregated memory pool

A method for memory address mapping in a disaggregated memory system includes receiving an indication of one or more ranges of host physical addresses (HPAs) from a compute node of a plurality of compute nodes, the one or more ranges of HPAs including a plurality of memory addresses corresponding to different allocation slices of the disaggregated memory pool that are allocated to the compute node. The one or more ranges of HPAs are converted into a contiguous range of device physical addresses (DPAs). For each DPA, a target address decoder (TAD) is identified based on a slice identifier and a slice-to-TAD index. Each DPA is mapped to a media-specific physical element of a physical memory unit of the disaggregated memory pool based on the TAD.

Efficient and non-disruptive online defragmentation with record locking
11204911 · 2021-12-21 · ·

Methods, systems, and computer-readable storage media for online defragmentation of memory in database systems by applying an IX-lock to each table having data stored in a marked page in a set of marked pages, generating a record map including key-value pairs, each being associated with a record location in a marked page, a value of each key-value pair initially set to a first value, iteratively executing the online defragmentation to delete data from marked pages and add the data to non-sparse pages, at least one iteration including applying a try-lock to a record in a marked page, and at iterations of the online defragmentation, updating the record map to change the value of at least one key-value pair from the first value to the second value, the second value representing that data of a marked page has been deleted from the marked page and added to a non-sparse page.

Writing Data Using References To Previously Stored Data

A system and method comprising: receiving a request to write data stored at a first range of a first volume to a second range of a second volume, where first metadata for the first range of the first volume is associated with a range of physical addresses where the data is stored in the storage system; and responsive to receiving the request: creating second metadata for the second range of the second volume, wherein the second metadata is associated with the range of physical addresses where the data is stored in the storage system; and associating the second volume with the second metadata.

SYSTEMS AND METHODS FOR COMPOSABLE COHERENT DEVICES

Provided are systems, methods, and apparatuses for resource allocation. The method can include: determining a first value of a parameter associated with at least one first device in a first cluster; determining a threshold based on the first value of the parameter; receiving a request for processing a workload at the first device; determining that a second value of the parameter associated with at least one second device in a second cluster meets the threshold; and responsive to meeting the threshold, routing at least a portion of the workload to the second device.