IP Library Granted Patent US 11,748,418
Granted Patent B2
US 11,748,418 · App. 16/264,248 · Granted Sep 5, 2023

Storage aggregator controller with metadata computation control

Inventors: Nedeljko Varnica (San Jose, CA); Scott Furey (Cupertino, CA); Manish Shrivastava (Pleasanton, CA); Noam Mizrahi (Modi'in, IL)
Assignee: Marvell Asia Pte, Ltd.
G06F16/907G06F3/0604G06F3/068G06F3/0638G06F3/0659G06F3/0688G06F12/1054G06F15/17331G06F16/383G06F16/387G06F16/683G06F16/783G06F16/901G06F16/9035G06F16/9038G06N3/08H04L49/901H04L67/1097G06F2212/254
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 11,748,418
App. No.
16/264,248
Filed
Jan 31, 2019
Granted
Sep 5, 2023
Kind
B2
Art Unit
2453
USPC
709/217
Abstract

This disclosure describes a storage aggregator controller with metadata computation control. The storage aggregator controller communicates, via a host interface, over a computer network with one or more remote hosts, and also communicates, via a storage device interface, with a plurality of local storage devices, which are separate from the remote host(s) and which have respective non-volatile memories. The storage aggregator controller manages the local storage devices for storage or retrieval of media objects. The storage aggregator controller also governs a selective computation, at aggregator control circuitry or at a storage device controller of one or more of the storage devices, of metadata that defines content characteristics of the media objects that are retrieved from the plurality of storage devices or that are received from the one or more hosts over the computer network for storage in the plurality of storage devices.

Claims (63)

1. A storage aggregator controller, comprising:

a host interface configured to communicate over a computer network with one or more remote hosts;

a storage device interface, configured to communicate locally with a plurality of local storage devices, separate from the one or more remote hosts, the storage devices comprising respective non-volatile memories and respective storage device controllers; and

aggregator control circuitry, configured to:

manage the plurality of local storage devices for storage or retrieval of media objects, the plurality of storage devices coupled to the storage device interface;

present to the one or more remote hosts an abstracted logical address space that is mapped to a combination of physical address spaces of the plurality of storage devices, wherein the mapping of the abstracted logical address space to the physical address spaces is adjustable;

control an order by which media objects are retrieved from the plurality of storage devices and processed to compute metadata;

identify a first component of one or more components for computing metadata that is presently not busy executing a storage related read operation or write operation;

select the first component for computing metadata;

based on a result of the selecting, govern a computation, at the first component, of metadata that defines content characteristics of the media objects that are retrieved from the plurality of storage devices or that are received from the one or more hosts over the computer network for storage in the plurality of storage devices; and

in response to determining, during the metadata computation at the first component, that the first component is required to perform a storage operation:

select a second component for continuing to compute the metadata, the second component being presently not busy executing a storage related read operation or write operation and being selected from the group of components; and

pass the metadata computation to the second component in order not to interrupt storage of data by the first component.

2. The storage aggregator controller of claim 1 , wherein the aggregator control circuitry is further configured to selectively control whether the metadata is computed by the storage device controller of any single storage device, by the storage device controllers of a plurality of the storage devices, or by a combination of the aggregator control circuitry and the storage device controllers of one or more storage devices.

3. The storage aggregator controller of claim 1 , wherein the aggregator control circuitry is further configured to cause the storage device controller of a specific storage device, from among the plurality of storage devices, to compute metadata with respect to a segment of a media object that is stored in the specific storage device.

4. The storage aggregator controller of claim 1 , wherein the aggregator control circuitry is further configured to apportion a processing load for computing metadata of media objects among the aggregator control circuitry and the storage device controllers of one or more of the plurality of storage devices.

5. The storage aggregator controller of claim 1 , wherein a media object is stored in segments distributed among respective ones of the plurality of storage devices, the aggregator control circuitry being further configured to:

cause a plurality of the storage device controllers of the plurality of storage devices, respectively, to compute portions of metadata for the segments of the media object that are stored locally at the respective storage device, and store the portions of computed metadata at the respective storage device;

obtain the computed portions of metadata from the plurality of storage devices; and

combine the computed portions of metadata into combined metadata corresponding to the media object.

6. The storage aggregator controller of claim 1 , wherein the aggregator control circuitry is further configured to:

retrieve segments of a media object from separate storage devices from among the plurality of storage devices that are aggregated by the storage aggregator controller; and

compute metadata for the retrieved segments of the media object.

7. The storage aggregator controller of claim 1 , wherein the aggregator control circuitry is further configured to cause computed metadata to be stored in separate segments distributed among the plurality of storage devices.

8. The storage aggregator controller of claim 1 , wherein the aggregator control circuitry is further configured to:

receive a read instruction or a write instruction from the one or more hosts over the computer network; and

in response to the receiving, pause metadata computation at one or more of the aggregator control circuitry and storage device controller to which the read or write instruction is targeted, and continue metadata computation at least at the aggregator control circuitry or at a storage controller that is controlled by the aggregator control circuitry and that is idle from performing any read or write instructions.

9. The storage aggregator controller of claim 1 , wherein the aggregator control circuitry is further configured to:

determine whether the aggregator control circuitry or the one or more storage device controllers is at least partly idle from performing storage operations; and

cause a toggling between computing metadata at the aggregator control circuitry and computing metadata at the one or more of the storage device controllers based on which of the aggregator control circuitry and the one or more of the storage device controllers is at least partly idle from performing storage operations.

10. The storage aggregator controller of claim 9 , wherein the aggregator control circuitry is further configured to:

select as the component for computing metadata, from the group of components consisting of the aggregator control circuitry and the one or more storage device controllers, the aggregator control circuitry or the one or more of the storage device controllers based on at least one of a type of processing to be performed and an availability of a resource for performing the metadata computation.

11. A method for managing local storage devices and metadata computation, comprising:

communicating, via a host interface, over a computer network with one or more remote hosts;

communicating, via a storage device interface, locally with a plurality of local storage devices, separate from the one or more remote hosts, the storage devices comprising respective non-volatile memories and respective storage device controllers;

managing the plurality of local storage devices for storage or retrieval of media objects, the plurality of storage devices coupled to the storage device interface;

presenting to the one or more remote hosts an abstracted logical address space that is mapped to a combination of physical address spaces of the plurality of storage devices, wherein the mapping of the abstracted logical address space to the physical address spaces is adjustable;

controlling an order by which media objects are retrieved from the plurality of storage devices and processed to compute metadata;

identifying a first component of one or more components for computing metadata that is presently not busy executing a storage related read operation or write operation;

selecting the first component for computing metadata;

based on a result of the selecting, governing a computation, at the first component, of metadata that defines content characteristics of the media objects that are retrieved from the plurality of storage devices or that are received from the one or more hosts over the computer network for storage in the plurality of storage devices; and

in response to determining, during the metadata computation at the first component, that the first component is required to perform a storage operation:

selecting a second component for continuing to compute the metadata, the second component being presently not busy executing a storage related read operation or write operation and being selected from the group of components; and

passing to metadata computation to the second component in order not to interrupt storage of data by the first component.

12. The method of claim 11 , further comprising selectively controlling whether the metadata is computed by the storage device controller of any single storage device, by the storage device controllers of a plurality of the storage devices, or by a combination of the aggregator control circuitry and the storage device controllers of one or more of the storage devices.

13. The method of claim 11 , further comprising causing the storage device controller of a specific storage device, from among the plurality of storage devices, to compute metadata with respect to a segment of a media object that is stored in the specific storage device.

14. The method of claim 11 , further comprising apportioning a processing load for computing metadata of media objects among the aggregator control circuitry and the storage device controllers of one or more of the plurality of storage devices.

15. The method of claim 11 , wherein a media object is stored in segments distributed among respective ones of the plurality of storage devices, and the method further comprises:

causing a plurality of the storage device controllers of the plurality of storage devices, respectively, to compute portions of metadata for the segments of the media object that are stored locally at the respective storage device, and store the portions of computed metadata at the respective storage device;

obtaining the computed portions of metadata from the plurality of storage devices; and

combining the computed portions of metadata into combined metadata corresponding to the media object.

16. The method of claim 11 , further comprising:

retrieving segments of a media object from separate storage devices from among the plurality of storage devices that are aggregated by the storage aggregator controller; and

computing metadata for the retrieved segments of the media object.

17. The method of claim 11 , further comprising causing computed metadata to be stored in separate segments distributed among the plurality of storage devices.

18. The method of claim 11 , further comprising:

receiving a read instruction or a write instruction from the one or more hosts over the computer network; and

in response to the receiving, pausing metadata computation at one or more of the aggregator control circuitry and storage device controller to which the read or write instruction is targeted, and continuing metadata computation at least at the aggregator control circuitry or at a storage controller that is controlled by the aggregator control circuitry and that is idle from performing any read or write instructions.

19. The method of claim 11 , further comprising:

determining whether the aggregator control circuitry or the one or more of the storage device controllers is at least partly idle from performing storage operations; and

causing a toggling between computing metadata at the aggregator control circuitry and computing metadata at the one or more of the storage controller controllers based on which of the aggregator control circuitry and the one or more of the storage device controllers is at least partly idle from performing storage operations.

20. The method of claim 19 , further comprising:

selecting as the component for computing metadata, from the group of components consisting of the aggregator control circuitry and the one or more storage device controllers, the aggregator control circuitry or the one or more of the storage device controllers based on at least one of a type of processing to be performed and an availability of a resource for performing the metadata computation.