G06F3/0664

DATA PROTECTION IMPLEMENTATION FOR BLOCK STORAGE DEVICES
20170351447 · 2017-12-07 ·

A system, method, and computer program product are provided for implementing a data protection algorithm using reference counters. The method includes the steps of allocating a first portion of a real storage device to store data, wherein the first portion is divided into a plurality of blocks of memory; allocating a second portion of the real storage device to store a plurality of reference counters that correspond to the plurality of blocks of memory; and disabling access to a particular block of memory in the plurality of blocks of memory based on a value stored in a corresponding reference counter. Access to a particular block of memory may be disabled when the value stored in the corresponding reference counter is not equal to a total number of references to the particular block of memory.

PARALLEL DATA COLLECTION AND RECOVERY FOR FAILING VIRTUAL COMPUTER PROCESSING SYSTEM
20170351576 · 2017-12-07 ·

Techniques for parallel data collection and recovery for a failing virtual processing system are disclosed. According to aspects of the present disclosure, an example method includes: detecting that the virtual processing system experiences an irreparable error; saving, by each of a plurality of processors of the physical processing system, a corresponding context and data stored in an allocated portion of a memory of the physical processing system to a data store; selecting one of the plurality of processors as a recovery processor; initializing, by the recovery processor, a pre-determined reserved portion of the memory; initiating, by the recovery processor, a new instance of the virtual processing system on the reserved portion of the memory while each remaining processor of the plurality of processors continues the saving; and dynamically adding each remaining processor of the plurality of processors to the new instance of the virtual processing system.

Distributed hot space in a data storage server

The described technology is generally directed towards a virtualized dedicated hot spare storage device in a RAID-configured data storage system, in which the capacity of the dedicated spare storage device is distributed among the physical disks underlying a RAID virtual disk. A RAID controller creates a first virtual construct comprising an array of logical block addresses that maps data reads from and writes to the virtual disk to locations in the physical disks underlying the virtual disk. When hot space storage device capacity is specified, the RAID controller creates a second construct comprising another array of logical block addresses which are reserved for the distributed hot space. The virtualized dedicated hot spare storage device increases storage capacity and performance by utilizing more of the storage resources of a data storage server.

Online data rehydration
11513717 · 2022-11-29 · ·

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for online rehydration. One of the methods includes intercepting a request issued by a virtual computing instance to a primary storage system, wherein the request identifies first data stored in the primary storage system; determining whether the first data has been rehydrated by a rehydration system; and in response to determining that at least a first portion of the first data has not been rehydrated by the rehydration system: submitting, to the rehydration system, a rehydration request that identifies the first portion of the first data that has not been rehydrated; obtaining, from the rehydration system, a response that includes a copy of the first portion of the first data, wherein the rehydration system has obtained the copy from a backup storage system; and responding to the request using the copy of the first portion of the first data.

SYSTEMS, METHODS, AND DEVICES FOR ACCESSING A COMPUTATIONAL DEVICE KERNEL
20230185643 · 2023-06-15 ·

A method may include receiving, at a computational device, a command, accessing, based on the command, using a programming interface, a kernel of an operating system operating on a computational circuit of the computational device, and performing, by the operating system, an operation based on the accessing. The accessing may include writing to one or more buckets using the programming interface. The one or more buckets may include one or more files. The accessing may include reading from one or more buckets using the programming interface. The method may further include performing, based on the accessing, a function call using the kernel. The receiving the command may include receiving, by a protocol, the command. The protocol may include a storage protocol. The storage protocol may include Nonvolatile Memory Express (NVMe). The receiving the command may include receiving, by command logic at the computational device, the command.

Synchronizing updates of page table status indicators and performing bulk operations

A synchronization capability to synchronize updates to page tables by forcing updates in cached entries to be made visible in memory (i.e., in in-memory page table entries). A synchronization instruction is used that ensures after the instruction has completed that updates to the cached entries that occurred prior to the synchronization instruction are made visible in memory. Synchronization may be used to facilitate memory management operations, such as bulk operations used to change a large section of memory to read-only, operations to manage a free list of memory pages, and/or operations associated with terminating processes.

SYSTEM AND METHOD FOR SLICE VIRTUAL DISK ENCRYPTION
20220374554 · 2022-11-24 ·

A system includes a virtual machine to transmit an input/output request to a data storage system and a hypervisor configured to maintain a map of the virtual machine to a virtual disk, wherein the virtual disk is a slice of a persistent storage device. A virtual machine server is configured to maintain a map of the virtual disk to a start address and an end address and to update the input/output request with the start address, the end address, and a virtual disk identifier associated with the virtual machine. A processor determines whether the start address and the end address are valid, and if the start address and the end address are valid, then process the input/output request. The response is transmitted to the input/output request.

Enabling Use Of Non-Volatile Media-Express (NVME) Over A Network
20230185746 · 2023-06-15 ·

Enabling a protocol for efficiently and reliably using the NVME protocol over a network, referred to as NVME over Network, or NVMEoN, may include an NVMEoN exchange layer for handling exchanges between initiating and target nodes on a network, a burst transmission protocol that provides guaranteed delivery without duplicate retransmission, and an exchange status block approach to manage state information about exchanges.

Analog data generating and processing device having a multi-use automatic processor
09836228 · 2017-12-05 · ·

An interface device (10) provides fast data communication between a host device with input/output interfaces and a data transmit/receive device, wherein the interface device (10) comprises a processor means (13), a memory means (14), a first connecting device (12) for interfacing the host device with the interface device, and a second connecting device (15) for interfacing the interface device (10) with the data transmit/receive device. The interface device (10) is configured by the processor means (13) and the memory means (14) in such a way that, when receiving an inquiry from the host device via the first connecting device (12) as to the type of a device attached to the host device, regardless of the type of the data transmit/receive device, the interface device sends a signal to the host device via the first connecting device (12) which signals to the host device that it is communicating with an input/output device.

NODE MANAGEMENT FOR ATOMIC PARALLEL DATA PROCESSING
20170344306 · 2017-11-30 ·

The technology described herein allows processing nodes in a parallel processing environment to determine whether a data partition is being atomically processed. The processing nodes can maintain the atomic processing of data by checking for challenger nodes assigned to the same partition and checking whether the node is still the leader node for a partition at a given frequency and/or at key points during the data processing flow. When a processing node detects a challenger node, the node self-terminates. When a challenger node detects no other nodes assigned to its data partition, then it designates itself or confirms itself as the leader node and begins or continues processing data within the partition. A node can detect other nodes by checking a node log that each processing node updates upon completing a survey of its present status.