# US 11,907,582 B2 · Cloud storage device implementing composite zoned namespace architecture

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,907,582 B2
- Document ID: US11907582B2
- Status: Granted
- Kind: B2
- Application number: 17/694,255
- Filed: 2022-03-14
- Published: 2023-09-14
- Granted: 2024-02-20
- Earliest claimed: 2022-03-14
- Assignees: Western Digital Technologies, Inc.
- Applicants: Western Digital Technologies, Inc.
- Inventors: Senthil Kumar Veluswamy
- Web page: https://patentgrep.com/patent/US11907582B2

## CPC

- G06F 3/061: {Improving I/O performance}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0632: {by initialisation or re-initialisation of storage systems}
- G06F 3/064: {Management of blocks}
- G06F 3/0656: {Data buffering arrangements}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, methods, and non-transitory computer-readable media for providing a cloud storage device implementing C-ZNS architecture. The cloud storage device including a housing and a plurality of blades, with at least one blade including a plurality of storage devices and an electronic processor. The electronic processor is configured to receive data and a command from a host application to write the data to a corresponding zone of a first storage device of the plurality of storage devices, initialize a buffer in response to receiving the data, store the data in the buffer that is initialized, determine one or more parameters in response to receiving the command, determine that the command is error-free based on the one or more parameters, and write the data from the buffer into the corresponding zone in response to determining that the command is error-free.

## Claims

### Claim 1

A cloud storage device implementing Composite Zoned Namespace (C-ZNS) architecture, the cloud storage device including:
a housing; and
a plurality of blades connected to the housing, wherein at least one of the plurality of blades includes:
a plurality of storage devices; and
an electronic processor configured to:
receive data and a command from a host application to write the data to a corresponding zone of a first storage device of the plurality of storage devices,
initialize a buffer in response to receiving the data,
store the data in the buffer that is initialized,
determine one or more parameters in response to receiving the command by determining an I/O wait timer;
determine that the command is error-free based on the one or more parameters, and
write the data from the buffer into the corresponding zone in response to determining that the command is error-free by
checking whether one or more logical block addresses (LBAs) have been received from the host application, and
in response to determining that at least one of the one or more LBAs has not been received, checking whether the I/O wait timer has expired.

### Claim 2 (depends on 1)

The cloud storage device of claim 1, wherein, to determine the one or more parameters associated with the command, the electronic processor is further configured to:
determine a write pointer position of the corresponding zone, and
determine an out-of-order factor.

### Claim 3 (depends on 2)

The cloud storage device of claim 2, wherein, to determine that the command is error-free, the electronic processor is further configured to determine whether the command is within an out-of-order limit based on the out-of-order factor that is determined.

### Claim 4 (depends on 1)

The cloud storage device of claim 1, wherein, in response to determining that the one or more LBAs have been received, the electronic processor is further configured to:
create a batch of the one or more LBAs; and
submit the batch and the command to the first storage device.

### Claim 5 (depends on 1)

The cloud storage device of claim 1, wherein, in response to determining that the I/O wait timer has expired, the electronic processor is further configured to:
discard the command; and
provide an error message to the host application.

### Claim 6 (depends on 1)

The cloud storage device of claim 1, wherein, to determine the one or more parameters associated with the command, the electronic processor is further configured to determine a lost write limit.

### Claim 7 (depends on 6)

The cloud storage device of claim 6, wherein, in response to determining that the I/O wait timer has expired, the electronic processor is further configured to check whether a number of stored lost writes is less than the lost write limit.

### Claim 8 (depends on 7)

The cloud storage device of claim 7, wherein, in response to determining that the number of stored lost writes is less than the lost write limit, the electronic processor is further configured to:
create the batch of the one or more LBAs,
submit the batch and the command to the first storage device, and
update a lost write mapping table.

### Claim 9 (depends on 7)

The cloud storage device of claim 7, wherein, in response to determining that the number of stored lost writes is greater than or equal to the lost write limit, the electronic processor is further configured to:
discard the command; and
provide an error message to the host application.

### Claim 10 (depends on 1)

The cloud storage device of claim 1, wherein the buffer is in a DRAM module of an SSD controller of the cloud storage device.

### Claim 11 (depends on 1)

The cloud storage device of claim 1, wherein the plurality of storage devices includes eight zoned namespace solid-state drive devices.

### Claim 12 (depends on 1)

The cloud storage device of claim 1, further comprising: a network interface card including the electronic processor.

### Claim 13 (depends on 1)

The cloud storage device of claim 1, wherein the plurality of blades includes twelve blades.

### Claim 14 (depends on 1)

The cloud storage device of claim 1, wherein the one or more parameters includes a write pointer position of the corresponding zone, an out-of-order factor, and an I/O wait timer.

### Claim 15

A method comprising:
receiving, with a cloud storage device, data and a command from a host application to write the data to a corresponding zone of a first storage device of a plurality of storage devices;
initializing, with the cloud storage device, a buffer in response to receiving the data;
storing, with the cloud storage device, the data in the buffer that is initialized;
determining, with the cloud storage device, one or more parameters in response to receiving the command;
determining, with the cloud storage device, whether the command is error-free based on the one or more parameters;
and
writing, with the cloud storage device, the data from the buffer into the corresponding zone in response to determining that the command is error-free,
wherein writing the data into the corresponding zone includes:
determining that one or more logical block addresses (LBAs) have not been received;
in response to determining that the one or more LBAs have not been received,
checking whether an I/O wait timer has expired, and
in response to determining that the I/O wait timer has expired:
discarding the command, and
providing an LBA error message to the host application.

### Claim 16 (depends on 15)

The method of claim 15, wherein, in response to determining that the I/O wait timer has expired, the method further includes:
checking whether a number of stored lost writes is less than a lost write limit;
in response to determining that the number of stored lost writes is less than the lost write limit, creating the batch of the one or more LBAs, submitting the batch and the command to the first storage device, and updating a lost write mapping table; and
in response to determining that the number of stored lost writes is greater than the lost write limit, discarding the command, and providing a lost write error message to the host application.

### Claim 17

A non-transitory computer-readable medium comprising instructions that, when executed by a cloud storage device, causes the cloud storage device to perform a set of operations comprising:
receiving data and a command from a host application to write the data to a corresponding zone of a first storage device of a plurality of storage devices;
initializing a buffer in response to receiving the data;
storing the data in the buffer that is initialized;
determining one or more parameters in response to receiving the command;
determining whether the command is error-free based on the one or more parameters; and
writing the data from the buffer into the corresponding zone in response to determining that the command is error-free,
wherein writing the data into the corresponding zone includes:
checking whether one or more logical block addresses (LBAs) have been received;
in response to determining that the one or more LBAs have been received,
creating a batch of the one or more LBAs, and
submitting the batch and the command to the first storage device; and
in response to determining that the one or more LBAs have not been received,
checking whether an I/O wait timer has expired, and
in response to determining that the I/O wait timer has expired:
discarding the command, and
providing an LBA error message to the host application.

### Claim 18 (depends on 15)

The method of claim 15, wherein writing the data into the corresponding zone further includes:
determining that the one or more logical block addresses (LBAs) have been received; and
in response to determining that the one or more LBAs have been received,
creating a batch of the one or more LBAs, and
submitting the batch and the command to the first storage device.
