IP Library › Granted Patent US 12,293,079
Granted Patent B2
US 12,293,079 · App. 17/665,490 · Granted May 6, 2025

Systems, methods, and devices for near storage elasticity

Inventors: Veronica Lagrange Moutinho Dos Reis (Cupertino, CA); Vishwanath Maram (San Jose, CA); Matthew Bryson (Los Gatos, CA); Gayathri Venkataraman (Santa Clara, CA)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F3/061G06F3/0655G06F3/0679
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,293,079
App. No.
17/665,490
Granted
May 6, 2025
Kind
B2
Abstract

A method may include receiving, at a storage device, an input and/or output (I/O) request comprising a device indication performing a determination, at the storage device, that the device indication indicates the storage device, and servicing, by the storage device, the I/O request based on the determination. The device indication may include an address for the I/O request. The method may include installing a second storage device in the storage system. The second storage device may be installed seamlessly. The first and second storage devices may be peer devices. The method may further including receiving, at the first storage device, a second I/O request including a second device indication, performing a second determination, by the first storage device, that the second device indication indicates the second storage device, and forwarding, by the first storage device, the second I/O request to the second storage device based on the second determination.

Claims (62)

1. A method for storing data, the method comprising:

receiving a first communication to add a first storage device;

receiving, at the first storage device and a second storage device, a second communication from a third storage device, the second communication comprising address information of the first storage device, wherein the first storage device and second storage device update a data structure based on the address information of the first storage device;

receiving, at the second storage device, an input and/or output (I/O) request comprising a device indication;

performing a determination based on the data structure, at the second storage device, that the device indication indicates the second storage device; and

servicing, by the second storage device, the I/O request based on the determination.

2. The method of claim 1 , wherein the device indication comprises an address for the I/O request.

3. The method of claim 1 , wherein the first storage device, the second storage device, and the third storage device are installed in a storage system.

4. The method of claim 3 , wherein the first storage device, the second storage device, and the third storage device are peer devices.

5. The method of claim 3 , wherein the I/O request is a first I/O request, the device indication is a first device indication, and the determination is a first determination, the method further comprising:

receiving, at the second storage device, a second I/O request comprising a second device indication;

performing a second determination, by the second storage device, that the second device indication indicates the first storage device, wherein the second determination is based on the data structure; and

forwarding, by the second storage device, the second I/O request to the first storage device based on the second determination.

6. The method of claim 5 , further comprising servicing, by the first storage device, the second I/O request.

7. The method of claim 5 , wherein performing the first determination is based on a first entry for the second storage device in the data structure, the method further comprising modifying the data structure on the second storage device, based on the address information of the first storage device, by adding a second entry for the first storage device.

8. The method of claim 7 , wherein performing the second determination is based on the second entry.

9. The method of claim 8 , wherein:

the first entry comprises a first address range for the second storage device; and

the second entry comprises a second address range of the first storage device.

10. The method of claim 7 , wherein at least a portion of the data structure comprises the first entry, and the second entry is stored at the first storage device and the second storage device.

11. The method of claim 5 , further comprising:

storing, in a first I/O queue, the first I/O request; and

forwarding, by the second storage device, to a second I/O queue, the second I/O request.

12. A storage device comprising:

a storage medium;

a communication interface; and

a control circuit comprising request logic configured to:

receive a first communication to add a first storage device, wherein the storage device is a second storage device;

receive a second communication from a third storage device, the second communication comprising address information of the first storage device;

update a data structure based on the address information of the first storage device;

receive, using the communication interface, an input and/or output (I/O) request comprising a device indication;

perform a determination, based on the data structure, that the device indication indicates the first storage device; and

service, using the storage medium, the I/O request based on the determination.

13. The storage device of claim 12 , wherein the I/O request is a first I/O request, the device indication is a first device indication, the determination is a first determination, and the request logic is further configured to:

receive, using the communication interface, a second I/O request comprising a second device indication;

perform a second determination that the second device indication indicates the first storage device, wherein the second determination is based on the data structure; and

forward, using the communication interface, the second I/O request to the first storage device based on the second determination.

14. The storage device of claim 12 , wherein:

the determination is based on an entry for the second storage device in the data structure; and

the request logic is further configured to generate an updated version of the data structure based on the address information of the first storage device, wherein the first storage device is installed in a storage system with the second storage device.

15. The storage device of claim 14 , wherein the request logic is further configured to receive, using the communication interface, the updated version of the data structure from the third storage device.

16. The storage device of claim 12 , wherein:

the determination is based on an entry for the second storage device in a data structure; and

the request logic is further configured to receive, using the communication interface, an updated version of the data structure.

17. A system comprising:

a host;

a first storage device, second storage device, and third storage device; and

a communication medium coupled to the host and the second storage device;

wherein the host comprises host logic configured to send, using the communication medium, an input and/or output (I/O) request to the second storage device, wherein the I/O request comprises a device indication;

wherein the second storage device comprises first request logic configured to:

receive a first communication from the third storage device, the first communication comprising address information of the first storage device;

update a data structure on the second storage device based on the address information of the first storage device;

receive the I/O request;

perform a determination, based on the data structure, that the device indication indicates the second storage device; and

service, by the second storage device, the I/O request based on the determination; and

wherein the third storage device comprises second request logic configured to:

broadcast to the first storage device and second storage device information to update, based on the first storage device, the data structure on the first storage device and a data structure on the second storage device.

18. The system of claim 17 , wherein the host logic is further configured to perform an installation of the first storage device.

19. The system of claim 18 , wherein:

the determination is based on an entry for the second storage device in a data structure; and

the first request logic is further configured to generate an updated version of the data structure based on the installation.

20. The system of claim 19 , wherein the second request logic is further configured to send the updated version of the data structure to the first storage device and second storage device.

Continuity (2)
Provisional Application 63253539 · Oct 7, 2021
Related Publication 20230110067A1 · Apr 13, 2023
References Cited (15)
US 10613756B2 · Shin et al. · 2020 [cited by applicant]
US 10901914B2 · Li et al. · 2021 [cited by applicant]
US 20070147334A1 · Guthrie · 2007 [cited by examiner]
US 20090265519A1 · Moore · 2009 [cited by examiner]
US 20140258598A1 · Canepa · 2014 [cited by examiner]
US 20190087352A1 · Lee et al. · 2019 [cited by applicant]
US 20190146675A1 · Subramanian · 2019 [cited by examiner]
US 20200042228A1 · Roberts · 2020 [cited by applicant]
US 20200174708A1 · Liu et al. · 2020 [cited by applicant]
US 20210136145A1 · Bai · 2021 [cited by examiner]
US 20210303164A1 · Grunwald et al. · 2021 [cited by applicant]
CN 111190550A · 2020 [cited by applicant]
WO 2011160094A2 · 2011 [cited by applicant]
European Extended Search Report for Application No. 22196362.2, mailed Mar. 3, 2023. [cited by applicant]
NVM Express, Inc. “NVM Express Zoned Namespace Command Set Specification Revision 1.1a,” 2021, 46 pages. [cited by applicant]