U.S. patent application number 17/663553 was filed with the patent office on 2022-09-01 for artificial intelligence-enabled search for a storage system.
This patent application is currently assigned to Marvell Asia PTE, LTD.. The applicant listed for this patent is Marvell Asia PTE, LTD.. Invention is credited to Konstantin Kudryavtsev, Mats Oberg, Nedeljko Varnica.
Application Number | 20220277014 17/663553 |
Document ID | / |
Family ID | 1000006333693 |
Filed Date | 2022-09-01 |
United States Patent
Application |
20220277014 |
Kind Code |
A1 |
Kudryavtsev; Konstantin ; et
al. |
September 1, 2022 |
Artificial Intelligence-Enabled Search for a Storage System
Abstract
The present disclosure describes apparatuses and methods for
artificial intelligence-enabled search of a storage system. In some
aspects, a metadata manager of a storage system receives a label of
an object that an AI engine detects in data stored in the storage
system. The metadata manager creates, in a relational section of a
metadata database, an entry for the detected object with an
identifier of the label of the detected object and an address of a
node corresponding to the detected object. The metadata manager
also creates, in a navigational portion of the metadata database
and with the address of the detected object, the node that includes
a reference to a relative node of another object and a weight of a
relationship between the node and the relative node. By so doing,
the metadata database may be searched based on weighted
relationships between various nodes, thereby enabling contextual or
implicit search of data in the storage system.
Inventors: |
Kudryavtsev; Konstantin;
(Sunnyvale, CA) ; Oberg; Mats; (San Jose, CA)
; Varnica; Nedeljko; (San Jose, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Marvell Asia PTE, LTD. |
Singapore |
|
SG |
|
|
Assignee: |
Marvell Asia PTE, LTD.
Singapore
SG
|
Family ID: |
1000006333693 |
Appl. No.: |
17/663553 |
Filed: |
May 16, 2022 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
16518564 |
Jul 22, 2019 |
11334571 |
|
|
17663553 |
|
|
|
|
62712828 |
Jul 31, 2018 |
|
|
|
16518564 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06F 16/24575 20190101;
G06N 20/00 20190101; G06F 16/284 20190101; G06F 16/2272
20190101 |
International
Class: |
G06F 16/2457 20060101
G06F016/2457; G06N 20/00 20060101 G06N020/00; G06F 16/28 20060101
G06F016/28; G06F 16/22 20060101 G06F016/22 |
Claims
1. A method for artificial intelligence-enabled search of a storage
system, comprising: processing, with an artificial intelligence
engine implementing an artificial intelligence model, data of a
storage system to provide a set of respective labels for objects
detected in the data by the artificial intelligence engine;
constructing, based on the set of respective labels, a metadata
database comprising a weighted graph of nodes, each of the nodes
corresponding to one of the objects detected in the data, the nodes
connected to others of the nodes via respective weighted links,
each of the respective weighted links having a weight value
indicative of a contextual relationship between the object to which
the node corresponds and another of the objects to which one of the
linked nodes corresponds; and enabling search for the objects
detected in the data based on one or more tables of the metadata
database that comprise, for each of the detected objects: an
identifier associated with the respective label for the object; an
address reference for the node in the weighted graph that
corresponds to the object; and one or more of the weight values
that are indicative of the contextual relationship between the
object to which the node corresponds and one or more other objects
in the data that correspond to other linked nodes connected to the
node of the object via the respective weighted links of the
weighted graph.
2. The method of claim 1, wherein the artificial intelligence model
is a first artificial intelligence model, the set of respective
labels is a first set of respective labels, and the method further
comprises: processing, with the artificial intelligence engine
implementing a second artificial intelligence model, the data of
the storage system to provide a second set of respective labels for
the objects detected in the data; and altering, based on the second
set of respective labels, one of: at least some of the weighted
links that connect the nodes in the weighted graph of the metadata
database; or at least some of the weight values of the respective
weighted links between the nodes that are indicative of the
contextual relationships between the respective objects to which
the nodes correspond.
3. The method of claim 2, wherein altering at least some of the
weighted links that connect the nodes in the weighted graph
comprises unlinking, based on the second set of respective labels
for the objects, at least two of the nodes that correspond to
respective objects that no longer have a contextual
relationship.
4. The method of claim 2, wherein altering at least some of the
weight values of the weighted links comprises redefining one or
more of the weight values of the weighted links that indicate the
contextual relationship between the objects to which the nodes
correspond.
5. The method of claim 1, further comprising: receiving, from the
artificial intelligence engine implementing the artificial
intelligence model, an indication with at least one of the
respective labels that indicates a confidence level of the
artificial intelligence engine in detecting at least one of the
objects in the data.
6. The method of claim 1, wherein the one or more tables of the
metadata database further comprise, for each of the detected
objects, an address or path to a location in the data of the
storage system at which the object was detected.
7. The method of claim 1, further comprising constructing the one
or more tables of the metadata database that comprise the
identifiers associated with the respective labels for the objects,
the address references for the nodes that correspond to the
objects, and the one or more weight values indicative of the
contextual relationships between the object detected in the
data.
8. The method of claim 1, wherein enabling search for the detected
objects based on the one or more tables of the metadata database is
effective to enable contextual or implicit search of the data
stored by the storage system.
9. The method of claim 1, wherein: the storage system comprises at
least one of a solid-state drive (SSD), a hard disk drive (HDD), or
an aggregate array of storage media drives; and the method is
implemented by a storage controller of the SSD, a storage
controller of the HDD, or a controller that provides a host
interface for the aggregate array of storage media drives.
10. An apparatus comprising: an interface to receive data from a
host; storage media configured to store the data received from the
host; a controller configured to enable access to the data stored
on the storage media; a metadata manager configured to: process,
with an artificial intelligence engine associated with the
apparatus, the data stored to the storage media to provide a set of
respective labels for objects detected in the data by the
artificial intelligence engine; construct, based on the set of
respective labels, a metadata database comprising a weighted graph
of nodes, each of the nodes corresponding to one of the objects
detected in the data, the nodes connected to others of the nodes
via a respective weighted link, each of the respective weighted
links having a weight value indicative of a contextual relationship
between the object to which the node corresponds and another of the
objects to which one of the linked nodes corresponds; and enable
search for objects detected in the data based on one or more tables
of the metadata database that include, for each of the detected
objects: an identifier associated with the respective label for the
object; an address reference for the node in the weighted graph
that corresponds to the object; and one or more of the weight
values that are indicative of the contextual relationship between
the object to which the node corresponds and one or more other
objects in the data that correspond to other linked nodes connected
to the node of the object via the respective weighted links of the
weighted graph.
11. The apparatus of claim 10, wherein the artificial intelligence
model is a first artificial intelligence model, the set of
respective labels is a first set of respective labels, and the
metadata manager is further configured to: process, with the
artificial intelligence engine implementing a second artificial
intelligence model, the data stored to the storage media to provide
a second set of respective labels for the objects detected in the
data; and alter, based on the second set of respective labels, one
of: at least some of the weighted links that connect the nodes in
the weighted graph of the metadata database; or at least some of
the weight values of the respective weighted links between the
nodes that are indicative of the contextual relationships between
the respective objects to which the nodes correspond.
12. The apparatus of claim 11, wherein to alter at least some of
the weighted links that connect the nodes in the weighted graph,
the metadata manager is further configured to unlink, based on the
second set of respective labels for the objects, at least two of
the nodes that correspond to respective objects that no longer have
a contextual relationship.
13. The apparatus of claim 11, wherein to alter at least some of
the weight values of the weighted links, the metadata manager is
further configured to redefine one or more of the weight values of
the weighted links that indicate the contextual relationship
between the objects to which the nodes correspond.
14. The apparatus of claim 11, wherein the metadata manager is
further configured to construct the one or more tables of the
metadata database that comprise the identifiers associated with the
respective labels for the objects, the address references for the
nodes that correspond to the objects, and the one or more weight
values indicative of the contextual relationships between the
object detected in the data.
15. The apparatus of claim 10, wherein the one or more tables of
the metadata database further comprise, for each of the detected
objects, an address or path to a location in the data of the
storage media at which the object was detected.
16. A System-on-Chip (SoC) comprising: an interface to storage
media of a storage system; an interface to a host from which data
is received for writing to the storage media; a hardware-based
processor; a memory storing processor-executable instructions that,
responsive to execution by the hardware-based processor, implement
a metadata manager to: process, with an artificial intelligence
engine associated with the SoC, the data stored to the storage
media to provide a set of respective labels for objects detected in
the data by the artificial intelligence engine; construct, based on
the set of respective labels, a metadata database comprising a
weighted graph of nodes, each of the nodes corresponding to one of
the objects detected in the data, the nodes connected to others of
the nodes via a respective weighted link, each of the respective
weighted links having a weight value indicative of a contextual
relationship between the object to which the node corresponds and
another of the objects to which one of the linked nodes
corresponds; and enable search for objects detected in the data
based on one or more tables of the metadata database that include,
for each of the detected objects: an identifier associated with the
respective label for the object; an address reference for the node
in the weighted graph that corresponds to the object; and one or
more of the weight values that are indicative of the contextual
relationship between the object to which the node corresponds and
one or more other objects in the data that correspond to other
linked nodes connected to the node of the object via the respective
weighted links of the weighted graph.
17. The SoC of claim 16, wherein the artificial intelligence model
is a first artificial intelligence model, the set of respective
labels is a first set of respective labels, and the metadata
manager is further implemented to: process, with the artificial
intelligence engine implementing a second artificial intelligence
model, the data stored to the storage media to provide a second set
of respective labels for the objects detected in the data; and
alter, based on the second set of respective labels, one of: at
least some of the weighted links that connect the nodes in the
weighted graph of the metadata database; or at least some of the
weight values of the respective weighted links between the nodes
that are indicative of the contextual relationships between the
respective objects to which the nodes correspond.
18. The SoC of claim 16, wherein to alter at least some of the
weighted links that connect the nodes in the weighted graph, the
metadata manager is further implemented to unlink, based on the
second set of respective labels for the objects, at least two of
the nodes that correspond to respective objects that no longer have
a contextual relationship.
19. The SoC of claim 16, wherein the one or more tables of the
metadata database further comprise, for each of the detected
objects, an address or path to a location in the data of the
storage system at which the object was detected.
20. The SoC of claim 16, wherein the artificial intelligence engine
is embodied at least in part as hardware of the SoC, executable
code that is stored on the memory of the SoC, or executable code
stored to another memory that is accessible by the hardware-based
processor of the SoC.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This present disclosure is a continuation of and claims
priority to U.S. Non-Provisional patent application Ser. No.
16/518,564, filed on Jul. 22, 2019, which in turn claims priority
to U.S. Provisional Patent Application Ser. No. 62/712,828 filed
Jul. 31, 2018, the disclosures of which are incorporated by
reference herein in their entireties.
BACKGROUND
[0002] Businesses and institutions often implement enterprise-level
data systems to collect and house vast amounts of data generated
from ongoing operations, research, data mining, or other data
sources. To accommodate the ever-increasing volume, variety, and
velocity of data collected from these sources, enterprise-level
data systems are built with ever-increasing storage capacity to
house the endless flow of incoming data. The sources of the
incoming data, however, are typically a combination of controlled
sources and uncontrolled sources. This results in most data systems
storing a complex mixture of big data that includes structured
data, unstructured data, and semi-structured data.
[0003] While data system administrators are often able to scale
storage capacity with the larger volumes of big data, analysis of
or search for specific data items within the big data often becomes
more difficult or inefficient as the amount of unstructured data
increases. In particular, the big data typically includes vast
amounts of unstructured or raw data that does not comply with
standard naming, formatting, or description conventions that are
leveraged by typical search algorithms. For example, a typical
search algorithm may compare a key word of a search to file names
and text within the files for an explicit or exact match to the key
word. Thus, a search of this type may fail to return results for
much of the big data that includes relevant unstructured data items
missed by a strict matching algorithm. As such, use of typical
matching algorithm can be inefficient and inaccurate as these types
of search algorithms often miss relevant data, particularly in
unstructured or semi-structured data.
SUMMARY
[0004] This summary is provided to introduce subject matter that is
further described in the Detailed Description and Drawings.
Accordingly, this Summary should not be considered to describe
essential features nor used to limit the scope of the claimed
subject matter.
[0005] In some aspects, a metadata manager of a storage system
implements a method that receives, from an artificial intelligence
(AI) engine, a label for an object detected in data stored in the
storage media of the storage system. The metadata manager creates
an entry for the detected object in a relational section of a
metadata database of the storage system. The entry in the
relational section includes an identifier of the label and an
address of a node corresponding to the detected object in a
navigational section of the metadata database. The metadata manager
also creates, with the address, the node corresponding to the
detected object in the navigational section of the metadata
database. This node includes at least one reference to a relative
node in the navigational section that corresponds to another object
in the data to which the detected object is related and a weight of
a relationship between the node and the relative node. By so doing,
the metadata database may be searched based on the weighted
relationships of these and other nodes, which may enable contextual
or implicit search of the data stored to the storage system.
[0006] In other aspects, an apparatus comprises an interface to
receive data from a host, storage media configured to store the
data received from the host, a controller configured to enable
access to the data stored on the storage media, and a metadata
manager associated with an AI engine. The metadata manager may be
implemented to receive, from the AI engine, a label for an object
detected by the AI engine in the data stored to the storage media
of the apparatus. The metadata manager then creates an entry for
the detected object in a relational database of a metadata database
of the apparatus. The entry in the relational database includes an
identifier of the label and an address of a node corresponding to
the detected object in a navigational database of the metadata
database. The metadata manager also creates the node corresponding
to the detected object at the address in the navigational database
of the metadata database. The node includes at least one reference
to a relative node in the navigational database that corresponds to
another object in the data to which the detected object is related
contextually and a weight of a relationship between the node and
the relative node in the navigational database.
[0007] In yet other aspects, a System-on-Chip (SoC) is described
that includes an interface to storage media of a storage system, an
interface to a host from which data is received for writing to the
storage media, a hardware-based processor, and a memory storing
processor-executable instructions that, responsive to execution by
the hardware-based processor, implement a metadata manager. The
metadata manager receives, from an AI engine, a label for an object
detected by the AI engine in the data written to the storage media.
The metadata manager then creates an entry for the detected object
in a relational database of a metadata database. The entry for the
detected object includes an identifier of the label and an address
of a node corresponding to the detected object in a navigational
database of the metadata database. The metadata manager also
creates the node corresponding to the detected object with the
address in the navigational database of the metadata database. The
node in the navigational database includes at least one reference
to a relative node in the navigational database that corresponds to
another object in the data to which the detected object is related
contextually and a weight of a relationship between the node and
the relative node in the navigational database.
[0008] The details of one or more implementations are set forth in
the accompanying drawings and the following description. Other
features and advantages will be apparent from the description and
drawings, and from the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The details of one or more implementations of a storage
system with AI-enabled search are set forth in the accompanying
figures and the detailed description below. In the figures, the
left-most digit of a reference number identifies the figure in
which the reference number first appears. The use of the same
reference numbers in different instances in the description and the
figures indicates like elements:
[0010] FIG. 1 illustrates an example operating environment having
devices in which a storage system is implemented in accordance with
one or more aspects.
[0011] FIG. 2 illustrates example configurations of an artificial
intelligence (AI) engine and a metadata manager of the storage
system shown in FIG. 1.
[0012] FIG. 3 illustrates example respective configurations of
tables of a relational database in accordance with one or more
aspects.
[0013] FIG. 4 illustrates an example configuration of a weighted
graph of a navigational database in accordance with one or more
aspects.
[0014] FIG. 5 depicts an example method for implementing AI-enabled
search of data in a storage system in accordance with one or more
aspects.
[0015] FIG. 6 depicts an example method for creating a relational
database and metadata database of a metadata database for a storage
system using labels provided by an AI engine.
[0016] FIG. 7 depicts an example method for constructing or
updating a weighted graph of a metadata database based on label
sets provided by an AI engine processing data of a storage
system.
[0017] FIG. 8 depicts an example method of using a relational
database and navigational database to search a storage system.
[0018] FIG. 9 illustrates an example System-on-Chip (SoC)
environment for implementing aspects of AI-enabled search for a
storage system.
[0019] FIG. 10 illustrates an example storage system controller
that is configured to implement aspects of AI-enabled search in a
storage system with which the controller is associated.
DETAILED DESCRIPTION
[0020] Conventional techniques for searching through data often
rely on finding an exact match for a search term in names and text
of stored data. Generally, data is stored to various types of
electronic storage in discrete files, the format and sizes of which
differ depending on an application that produces the data. Most
operating systems support a semantic search of the data files by
key word whereby the search algorithm looks through the data files
based on name or text in the data. Specifically, a semantic search
algorithm may go through a list of files, open each file, read text
content for comparison to the key word, close the file, and then
report any matches of file name or text content with the key word.
This type of search is typically limited due to the binary nature
of the data in which key words may have a same meaning but are
semantically different.
[0021] Additionally, in the case of big data storage, such as in
cloud-based or enterprise-level applications, the big data may
include vast amounts of unstructured or raw data that does not
comply with standard naming, formatting, or description conventions
leveraged by these conventional search algorithms. Thus, a strictly
semantic search may fail to return accurate results for big data
that includes relevant unstructured data items that are missed by
the search algorithm due to a lack of semantically matching text.
As such, the use of conventional search algorithms, particularly
with big data, is often inefficient or inaccurate because these
search algorithms can miss relevant data due to a lack of exact or
explicit semantic matching.
[0022] This disclosure describes apparatuses and techniques for
AI-enabled search for a storage system. In contrast with
conventional search techniques, the described apparatuses and
techniques may implement an AI-enabled search of data in a storage
system based on context or relationships of objects in the data.
For example, an AI engine may process the data to generate
descriptive metadata labels for objects or other elements detected
in the data. Along with the labels, the AI engine may also provide
a confidence level of object detection, as well as a confidence
level (e.g., weight) of a contextual relationship or association
among the objects in the data. For example, certain objects or
people detected in same or adjacent frames on a video file may have
some weighted relationship due to physical or temporal proximity.
Similarly, text generated from the soundtrack or dialogue of the
video (e.g., lyrics or close captioning) and the objects detected
at a same time in a media file may have the relationship as well.
Alternately or additionally, sentiment or emotion can be detected
in audio files from voice tone, and these scene classifications may
have some weighted relationship with content or objects associated
with the audio files.
[0023] Based on the labels, a metadata manager of the storage
system may create and manage a metadata database that includes a
relational database (e.g., tables) and a navigational database
(e.g., a weighted graph of nodes). Generally, the metadata manager
creates entries in the relational database for each detected object
that includes a location of the detected object in the storage
system and an address of a corresponding node in the navigational
database. The metadata manager also creates the node in the
navigational database, such as in the weighted graph that includes
weighted links to other nodes that correspond to respective objects
in the data to which the detected object is related. By placing the
nodes, or metadata objects, into the weighted graph, not only may a
certain object be found in such a structure, but also aspects of
the object's environment and related objects with defined
confidence levels (e.g., for contextual relationships). Returning
to the above example, a topic of an audio file may be found in
combination with its sentiment, ambiance, mood, atmosphere, or the
like.
[0024] This type of contextual search may be based on a logical or
semantic request, but may progress with blurred boundaries,
returning a response that includes some uncertain portions or
components. In the context of AI-enabled search, the relational
database of tables may provide a starting point for the logical
request (e.g., label lookup or matching), while the navigational
database enables contextual or relationship-based search with some
level of uncertainty. For example, the navigational database may be
implemented through a tree or graph of mapped relations with
context-weighted connections that may be navigated through various
instructions, such as "next", "previous", "getChild", "getParent",
and so on to find contextually related objects. As such, various
implementations of AI-enabled search for a storage system may
include a combination of a relational database and a navigational
database to enable implicit or contextual search of stored
data.
[0025] By way of example, when a user runs a search for a key word,
the metadata manager or a search agent may first run through an
indexed log table of the relational database to obtain label
identifiers for objects or elements detected in the data stored in
the AI-enabled storage system. In the indexed log table, a
reference to a node in a weighted graph of the navigational
database may be found, which points to the node and therefore all
connected nodes of related objects. The node and connected nodes
may be reported in an order of link weights between the nodes,
providing an indication of context or relatedness of the objects in
the data to which the nodes correspond. Generally, the search
process enabled by the combination of relational and navigational
databases may resemble the way the human brain works, when by one
detail each aspect of a whole scene is remembered.
[0026] In various aspects of AI-enabled search for a storage
system, a metadata manager receives, from an AI engine, a label for
an object detected in data stored in storage media of the storage
system. The metadata manager creates, in a relational section of a
metadata database of the storage system, an entry for the detected
object. The entry in the relational section includes an identifier
of the label, an address of the detected object in the storage
system, and an address of a node corresponding to the detected
object in a navigational section of the metadata database.
[0027] The metadata manager also creates, with the address, the
node corresponding to the detected object in the navigational
section of the metadata database. This node includes at least one
reference to a relative node in the navigational section that
corresponds to another object in the data to which the detected
object is related and a weight of a relationship between the node
and the relative node in the navigational section of the metadata
database. By so doing, the metadata database may be searched based
on the weighted relationships of these and other nodes, which may
enable contextual or implicit search of data stored in the storage
system. In other words, by implementing AI-enabled search for a
storage system or storage drive (e.g., edge storage), the storage
can be made "smart" to provide users with implicit or contextual
search results.
[0028] The following discussion describes an operating environment,
techniques that may be employed in the operating environment, and a
System-on-Chip (SoC) in which components of the operating
environment can be embodied. In the context of the present
disclosure, reference is made to the operating environment by way
of example only.
[0029] Operating Environment
[0030] FIG. 1 illustrates an example operating environment 100
having a computing device 102, capable of storing or accessing
various forms of data or information. Examples of a computing
device 102 may include a laptop computer 104, desktop computer 106,
and server 108, any of which may be configured as part of a storage
network or cloud storage. Further examples of computing device 102
(not shown) may include a tablet computer, a set-top-box, a data
storage appliance, wearable smart-device, television,
content-streaming device, high-definition multimedia interface
(HDMI) media stick, smart appliance, home automation controller,
smart thermostat, Internet-of-Things (IoT) device, mobile-internet
device (MID), a network-attached-storage (NAS) drive, aggregate
storage system, gaming console, automotive entertainment device,
automotive computing system, automotive control module (e.g.,
engine or power train control module), and so on. Generally, the
computing device 102 may communicate or store data for any suitable
purpose, such as to enable functionalities of a particular type of
device, provide a user interface, enable network access, implement
gaming applications, playback media, provide navigation, edit
content, provide data storage, or the like.
[0031] The computing device 102 includes a processor 110 and
computer-readable storage media 112. The processor 110 may be
implemented as any suitable type or number of processors, either
single-core or multi-core, for executing instructions or commands
of an operating system or other programs of the computing device
102. The computer-readable media 112 (CRM 112) includes memory (not
shown) and a storage system 114. The memory of the computing device
102 may include any suitable type or combination of volatile memory
or nonvolatile memory. For example, the volatile memory of
computing device 102 may include various types of random-access
memory (RAM), dynamic RAM (DRAM), static RAM (SRAM) or the like.
The non-volatile memory may include read-only memory (ROM),
electronically erasable programmable ROM (EEPROM) or Flash memory
(e.g., NOR Flash or NAND Flash). These memories, individually or in
combination, may store data associated with applications and/or an
operating system of computing device 102.
[0032] The storage system 114 of the computing device 102 may be
configured as any suitable type of data storage system, such as a
storage device, storage drive, storage array, storage volume, or
the like. Although described with reference to the computing device
102, the storage system 114 may also be implemented separately as a
standalone device or as part of a larger storage collective, such
as a data center, server farm, or virtualized storage system (e.g.,
for cloud-based storage or services). Examples of the storage
system 114 include a hard disk drive 116 (HDD 116), a solid-state
drive 118 (SSD 118), and a storage array 120, which may be
implemented with any combination of storage devices or storage
drives.
[0033] The storage system 114 includes storage media 122 on which
data 124 of the computing device 102 or other sources is stored.
The storage media 122 may be implemented with any type or
combination of storage media, such as magnetic media, optical
media, a spinning disk, non-volatile memory, solid-state media, or
the like. In some cases, the data 124 may be organized into files
of data (e.g., content) or data objects that are stored in the
storage media 122 of the storage system 114. The types, sizes, or
formats of the files may vary depending on a respective source,
use, or application associated with the file. For example, the
files stored to the storage media 122 may include audio files,
video files, text files, image files, multimedia files,
spreadsheets, and so on.
[0034] Generally, a file of data may include various objects,
activities, or features, which may be categorized or recognized as
one of a person, text, music, lyric, content, sentiment, ambiance,
theme, setting, or the like. Each object, activity, or feature in
the data of a file may also be contextually related within the
file, by a varying degree or weight of relationship with another
object. For example, a frame or frame sequence of a multimedia file
may include people, objects, dialogue, music, or ambiance which may
be contextually related due to common presence, physical proximity,
or temporal proximity in the multimedia file. Alternately or
additionally, the data 124 can include big data, such as structured
data, unstructured data, or semi-structured data from a variety of
controlled or uncontrolled sources. In some cases, the unstructured
data or semi-structured data includes non-descriptive file names or
text that are not useful to discern objects in the data (e.g.,
generic or machine-generated) or unrelated to content (e.g., object
or elements) of the data. In such cases, the AI-enabled search
described herein may create labels for the various objects in the
big data, thereby enabling useful search and analysis of the big
data stored on the storage system 114.
[0035] In this example, the storage system 114 also includes an
instance of an artificial intelligence engine 126 (AI engine 126),
a metadata manager 128, and a metadata database 130. The AI engine
126 may implement one or more AI models to process the data 124 to
detect objects or elements in the data, data files, or data objects
stored on the storage system 114. Based on the detection of the
objects or elements, the AI engine 126 generates descriptive
metadata labels for the objects or elements detected in the data.
Along with the labels, the AI engine 126 may also provide a
confidence level of object detection, as well as a confidence level
(e.g., weight) of a contextual relationship or association among
the objects in the data. For example, certain objects or people
detected in same or adjacent frames on a video file may have some
weighted relationship due to physical or temporal proximity.
[0036] With the labels provided by the AI engine 126, the metadata
manager 128 may create or manage the metadata database 130 of the
storage system 114 that includes a relational database (e.g.,
tables, not shown) and a navigational database (e.g., a weighted
graph of nodes, not shown). In some aspects, the metadata manager
128 creates entries in the relational database for each detected
object where the entries may include a location of the detected
object in the storage system and an address to a corresponding node
in the navigational database. The metadata manager 128 may also
create the node in the navigational database, such as in the
weighted graph that includes weighted links to other nodes
corresponding to respective objects in the data to which the
detected object is related. By placing the nodes, or metadata
objects, into the weighted graph, not only may a certain object be
found in such a structure, but also aspects of the object's
environment and related objects with defined confidence levels
(e.g., for contextual relationships). How the AI engine 126,
metadata manager 128, and metadata database 130 are implemented and
used varies and is described throughout the disclosure.
[0037] The computing device 102 may also include I/O ports 132, a
graphics processing unit 134 (GPU 134), and data interfaces 136.
Generally, the I/O ports 132 allow a computing device 102 to
interact with other devices, peripherals, or users. For example,
the I/O ports 132 may include or be coupled with a universal serial
bus, human interface devices, audio inputs, audio outputs, or the
like. The GPU 134 processes and renders graphics-related data for
computing device 102, such as user interface elements of an
operating system, applications, or the like. In some cases, the GPU
134 accesses a portion of local memory to render graphics or
includes dedicated memory for rendering graphics (e.g., video RAM)
of the computing device 102.
[0038] The data interfaces 136 of the computing device 102 provide
connectivity to one or more networks and other devices connected to
those networks. The data interfaces 136 may include wired
interfaces, such as Ethernet or fiber optic interfaces for
communicated over a local network, intranet, or the Internet.
Alternately or additionally, the data interfaces 136 may include
wireless interfaces that facilitate communication over wireless
networks, such as wireless LANs, wide-area wireless networks (e.g.,
cellular networks), and/or wireless personal-area-networks (WPANs).
Any of the data communicated through the I/O ports 132 or the data
interfaces 136 may be written to or read from the storage system
114 of the computing device 102 in accordance with one or more
aspects of AI-enabled search for a storage system.
[0039] FIG. 2 illustrates example configurations of an artificial
intelligence engine 126 and metadata manager 128 generally at 200,
which are implemented in accordance with one or more aspects of
AI-enabled search for a storage system. In this example, the AI
engine 126 is operably coupled with the storage media 122 and
metadata manager 128 of the storage system 114. Although
illustrated as being a component of the storage system 114, the AI
engine 126 may be implemented separately from or external to the
storage system 114. The AI engine 126 processes the data 124 that
is written to or stored on the storage media 122 to detect,
identify, or recognize various objects in the data 124.
[0040] Based on the processing or reprocessing of the data 124, the
AI engine 126 generates descriptive metadata labels 202 (or tags)
for objects or other elements detected in the data, such as
activities or features described herein. In this example, the
artificial engine 126 generates respective labels 202-1 through
202-n for up to n objects detected in the data 124. Along with the
labels 202, the AI engine 126 may also provide a confidence level
of object detection, as well as a confidence level (e.g., weight)
of a contextual relationship of the object with another object or
group of objects in the data 124. For example, certain objects or
people detected in same or adjacent frames on a video file may have
some weighted relationship due to physical or temporal proximity in
the data or video file. The AI engine 126 may provide, with or as
part of the label 202, an indication of weight or strength of a
contextual relationship between any two or more detected objects,
such as people, activities, features, music, lyrics, text,
ambiance, sentiment, mood, emotion, and so on.
[0041] With respect to processing performed by the AI engine 126,
the AI engine 126 may be implemented with machine-learning that is
based on one or more neural networks for object detection or
determination of contextual relationship, such as relationship
weight between detected objects or other metadata elements. Each AI
model or neural network of the AI engine 126 may include a group of
connected nodes, such as neurons or perceptrons, which are
organized into one or more layers. By way of example, an AI model
(e.g., machine-learning model) of the AI engine 126 may be
implemented with a deep neural network that includes an input
layer, an output layer, and one or more hidden intermediate layers
positioned between the input layer and the output layers of the
neural network. Each node of the deep neural network may in turn be
fully connected or partially connected between the layers of the
neural network.
[0042] In various aspects, an AI model of the AI engine 126 may be
implemented as a recurrent neural network with connections between
nodes forming a cycle to retain information from a previous portion
of an input data sequence for a subsequent portion of the input
data sequence. Alternately, an AI model may be implemented as a
feed-forward neural network having connections between the nodes
that do not form a cycle between input data sequences. In yet other
cases, an AI model of the AI engine 126 may include a convolutional
neural network (CNN) with multilayer perceptrons where each neuron
in a given layer is connected with all neurons of an adjacent
layer. In some aspects, the AI model based on a convolutional
neural network may be applied to data files for complex pattern and
imagery recognition. Alternately or additionally, the AI engine 126
may include or utilize various regression models, such as multiple
linear regression models, a single linear regression model,
logistical regression models, step-wise regression models,
multi-variate adaptive regression models, locally estimated
scatterplot models, or the like.
[0043] Returning to FIG. 2, the AI engine 126 provides the labels
202 for the data 124 to the metadata manager 128. Based on the
labels 202, the metadata manager 128 creates, manages, or updates
the metadata database 130 which in this example includes a
relational database 204 (e.g., tables) and a navigational database
206 (e.g., a weighted graph of nodes). The metadata manager 128 may
be configured to create, based on the labels 202 and associated
confidence levels, entries in the relational database 204 for each
detected object that includes a location of the detected object in
the storage system and an address to a corresponding node in the
navigational database 206. The metadata manager 128 may also
create, based on the labels 202 and associated confidence levels,
the node in the navigational database 206. In some cases, the
navigational database 206 is a weighted graph that includes, for a
given node of a detected object, weighted links to other nodes that
correspond to respective objects in the data to which the detected
object is related. By placing the nodes, or meta data objects, into
the navigational database 206, not only can a certain object be
found in such a structure, but also aspects of the object's
environment and related objects with defined confidence levels
(e.g., for contextual relationships).
[0044] FIG. 3 illustrates an example configuration of the
relational database 204 of FIG. 2 generally at 300. In aspects of
AI-enabled search for storage systems, the relational database 204
may be implemented as one or more tables that include references to
or identifiers for various properties or addresses of a detected
object, such as a label identifier, an address to a corresponding
node, a detection confidence level, a physical, logical, or virtual
storage address, relative nodes, relationship weights, or the like.
In this example, the relational database 204 includes a log table
302, an address table 304, and a node information table 306. In
some aspects, records or labels 202 generated by the AI engine 126
are logged into the log table 302, such as for each instance of a
detected object.
[0045] The log table 302 may include columns for an object
identification 308, label identifier 310 (label ID 310), label type
312, address reference to graph 314, and confidence level 316. In
some cases, the label ID 310 provides a searchable entry in the
relational database 204 for a search agent or interface and the
label type 312 indicates a type of the label generated for the
detected object. The address reference to graph field 314 may
provide a reference to a node 318 in the navigational database 206
that corresponds to the detected object and a reference to an
address in the address table 304. The confidence level 316 may
indicate a probability level of AI detection for the detected
object. As shown in FIG. 3, the address reference to the graph 314
points to the node 318, which is related to node 320, node 322, and
node 324 by varying respective relationship weights. The address
reference to the graph 314 also points to an address ID field 326
of the address table 304, which indicates a file path 328 and
offset 330 inside a file (e.g., frame offset in a multimedia file)
of the detected object.
[0046] For each instance of a node, the relational database 204 may
include a node information table 306. In some implementations, this
table includes references or node addresses for related objects 332
of the node 318 (address 157009), as well as respective
relationship weights 334 to the relative nodes. The metadata
manager 128 may determine the relationship weights based on the
labels 202 or from a confidence level of the contextual
relationship of the objects in the data that is provided by the AI
engine 126. Generally, the relationship weights 334 between the
relative nodes may correspond to a weight or strength of a
contextual relationship of detected objects in the data 124 which
correspond to the nodes. In other words, navigating through
relative nodes based on relationship weight 334 may provide an
indication of how the detected objects relate in the data 124 of
the storage system 114.
[0047] FIG. 4 illustrates an example configuration of the
navigational database 206 of FIG. 2 generally at 400. In this
example, the navigational database 206 includes a weighted graph
402 of linked nodes in which the links indicate a weight of
relationships between relative nodes. Generally, the navigational
database 206 can be implemented through a tree or graph of mapped
relations with context-weighted connections that may be navigated
through various instructions, such as "next", "previous",
"getChild", "getParent", and so on to find contextually related
objects. Here, the linked nodes of the weighted graph 402 may
correspond to respective objects in the data 124 which are related
through context, with the links representing a relationship between
nodes and a weight or likelihood of the relationship.
[0048] Generally, the metadata manager 128 creates nodes in the
weighted graph 402 based on the labels 202 and/or using information
from the relational database 204. With reference to FIG. 3, the
nodes 318 through 324 are shown with respective weighted links
w.sub.0 404 through w.sub.2 408, which have a line weight
indicative of the relationship weight between the relative nodes.
The weight graph 402 also includes another relative node 410 of
node 318 having a weighted link w.sub.3 412 that is weaker than the
other weighted links as indicated by the lower weight. As the
metadata manager 128 or a search agent navigates through the
weighted graph 402, other contextually related objects may be found
through additional weighted links. For example, the node 322 is
also related through weighted link w.sub.5 414 to node 320 and
through weighted link w.sub.6 416 to node 324. As part of a search,
the AI-enabled search may also return results related to indirect
connections, such as another node 418 that is not directly related
to node 318 yet is closely related to node 320 through weighted
link w.sub.4 420 or node 422 which is closely related to node 324
through weighted link w.sub.N 424. Accordingly, various
implementations of AI-enabled search for a storage system may
leverage a navigational database of weighted links to enable
implicit or contextual search of stored data.
[0049] Techniques for AI-Enabled Search of a Storage System
[0050] The following discussion describes techniques of AI-enabled
search for a storage system, which may enable implicit or
contextual search of data stored on the storage system. These
techniques may be implemented using any of the environments and
entities described herein, such as the AI engine 126, metadata
manager 128, or metadata database 130. These techniques include
methods illustrated in FIGS. 5-8, each of which is shown as a set
of operations performed by one or more entities.
[0051] These methods are not necessarily limited to the orders of
operations shown in the associated figures. Rather, any of the
operations may be repeated, skipped, substituted, or re-ordered to
implement various aspects described herein. Further, these methods
may be used in conjunction with one another, in whole or in part,
whether performed by the same entity, separate entities, or any
combination thereof. For example, the methods may be combined to
create an AI-processed metadata database with relational and
navigational components that enable contextual or implicit searches
of big data stored to a storage system. In portions of the
following discussion, reference will be made to the operating
environment 100 of FIG. 1 and entities of FIG. 2, FIG. 3, and/or
FIG. 4 by way of example. Such reference is not to be taken as
limiting described aspects to the operating environment 100,
entities, or configurations, but rather as illustrative of one of a
variety of examples. Alternately or additionally, operations of the
methods may also be implemented by or with entities described with
reference to the System-on-Chip of FIG. 9 and/or the storage system
controller of FIG. 10.
[0052] FIG. 5 depicts an example method 500 for implementing
AI-enabled search of data in a storage system, including operations
performed by or with the AI engine 126 or metadata manager 128 of
the storage system.
[0053] At 502, the metadata manager of a storage system receives a
label from the AI engine for an object detected by the AI engine in
data stored in the storage system. In some cases, the AI engine
detects the object while processing the data as the data is stored
to storage media of the storage system. In other cases, the AI
engine processes or reprocesses data stored on the storage media of
the storage system.
[0054] At 504, the metadata manager creates an entry for the
detected object in a relational section of a metadata database of
the storage system. The relational section of the metadata database
may be a relational database or multiple tables having related
entries for metadata objects or labels. In some cases, the entry
for the detected object includes the label, an identifier of the
label, an address of a node that corresponds to the detected
object, or a confidence level of the AI engine for the detected
object.
[0055] At 506, the metadata manager creates a node for the detected
object in a navigational section of the metadata database of the
storage system. The navigational section of the metadata database
may be a weighted graph of linked nodes, a tree structure of nodes,
a network of linked nodes, or the like. In some cases, the node in
the navigational section includes references to relative nodes that
correspond to other objects in the data to which the detected
object is related and respective weights of a relationship between
the node and other nodes.
[0056] At 508, the metadata manager exposes the metadata database
of the storage system to a search interface to enable search of the
metadata database for the detected object or other objects based on
the respective weights of the relationships between the nodes of
the navigational section.
[0057] FIG. 6 depicts an example method 600 for creating a
relational database and metadata database of a metadata database
for a storage system using labels provided by an AI engine. The
operations of method 600 may be performed by or with the AI engine
126 or metadata manager 128 of the storage system.
[0058] At 602, a storage system receives data to write to storage
media of the storage system. The data may be received from any
suitable source, such as a computing device, network interface,
storage fabric interface, or the like. The data may be organized
into files of various type or size, depending on a source of the
data.
[0059] At 604, the AI engine generates respective labels for
objects detected in the data written to the storage media of the
storage system. For example, an AI engine may process the data to
generate descriptive metadata labels for objects or other elements
detected in the data. Along with the labels, the AI engine may also
provide a confidence level of object detection, as well as a
confidence level (e.g., weight) of a contextual relationship or
association among the objects in the data.
[0060] At 606, the metadata manager creates an entry for one of the
detected objects in a relational database of a metadata database.
The entry for the detected object may include an identifier of the
respective label and an address for a node that corresponds to the
detected object. Alternately or additionally, the entry may include
a type of the label, a confidence level associated with detection
of the object, or a confidence level or relationship weight for the
object and another object detected in the data.
[0061] At 608, the metadata manager creates a node that corresponds
to the detected object in the navigational database of the metadata
database. In some cases, the node is created in a weighted graph
that includes weighted links to other nodes that correspond to
respective objects in the data to which the detected object is
related.
[0062] At 610, the metadata manager connects, in the navigational
database, the node that corresponds to the detected object with a
respective link to a relative node of the navigational database.
The relative node of the navigational database may correspond to
another object in the data to which the detected object is
related.
[0063] At 612, the metadata manager assigns, based on context of
the detected object in the data, a relationship weight to the
respective link that connects the node and the relative node. From
operation 612, the method 600 may proceed to operation 614, return
to operation 606 to create another node in the navigational
database, or return to operation 610 to connect the node with
another relative node.
[0064] At 614, the metadata manager exposes the metadata database
to a search interface to enable search for the objects detected in
the data. The search may be made through entries in the relational
database to find relevant nodes in the navigational database.
Alternately or additionally, the search may be based on the weights
of respective links that connect the nodes of the navigational
database. For example, a search agent may search through the
entries of the relational database to find labels or label
identifiers of objects of interest that were detected in data by
the AI engine.
[0065] FIG. 7 depicts an example method 700 for constructing or
updating a weighted graph of a metadata database based on label
sets provided by an AI engine processing data of a storage system.
The operations of the method 700 may be performed by or with an AI
engine 126 or metadata manager 128 of the storage system.
[0066] At 702, the AI engine processes data to be saved to a
storage system with a first AI model to provide a first set of
respective labels for objects detected in the data. At 704, the
metadata manager constructs, based on the first set of respective
labels, a weighted graph of linked nodes that correspond to the
objects detected in the data. The linked nodes are connected by
respective links each having a weight that is indicative of
relational context of the detected objects.
[0067] At 706, the metadata manager enables search of the objects
detected in the data through an indexed table that includes
respective identifiers for the first set of respective labels and
corresponding reference addresses for the linked nodes of the
weighted graph. For example, a search agent may first run through
the indexed log table of the relational database to find label
identifiers for objects or elements detected in the data stored to
the AI-enabled storage system. In the indexed log table, a
reference to a node in a weighted graph of the navigational
database may be followed to the node and therefore all connected
nodes of related objects. The node and connected nodes may be
reported in an order of link weights between the nodes, providing
an indication of context or relatedness of the objects in the data
to which the nodes correspond.
[0068] Optionally at 708, the AI engine reprocesses the data saved
to the storage system with a second AI model to provide a second
set of respective labels for the objects detected in the data.
Generally, if the AI engine reprocesses the data with a second AI
model, the weighted links or relationships of the nodes in the
navigational database may be updated to emphasize or amplify other
contextual relationships or to provide a different view of how the
objects in the data may be related. Alternately or additionally,
the AI engine may reprocess the data on the storage system when the
storage system is idle or has excess processing bandwidth to
support the reprocessing without affecting other storage system
operations.
[0069] Optionally at 710, the metadata manager updates, based on
the second set of respective labels, links between the linked nodes
of the weighted graph or the respective link weights of the links
between the linked nodes that are indicative of the relational
context of the detected objects.
[0070] FIG. 8 depicts an example method 800 for using a relational
database and navigational database to search a storage system,
including operations performed by or with the metadata manager 128
of the storage system. Alternately or additionally, the operations
may be performed with or by a search agent associated with the
metadata manager or the storage system.
[0071] At 802, the metadata manager receives a query to search data
stored on storage media of a storage system. The query may include
one or more key words or search terms of the search. At 804, the
metadata manager identifies an entry in a relational database that
includes a label that is relevant to the query. In some cases, an
address table of the relational database is used as a key or
primary search list for objects in the storage system.
[0072] At 806, the metadata manager determines, based on the entry
in the relational database, a reference address of a target node in
a navigational database that corresponds to the label. At 808, the
metadata manager returns, as results for the query to search, the
object of the target node at the reference address and
corresponding objects of relative nodes connected to the target
node in order of respective link weight
[0073] System-on-Chip
[0074] FIG. 9 illustrates an exemplary System-on-Chip (SoC) 900
that may implement various aspects of AI-enabled search for a
storage system. The SoC 900 may be implemented in any suitable
device, such as a smart-phone, netbook, tablet computer, access
point, network-attached storage, camera, smart appliance, printer,
set-top box, server, data center, solid-state drive (SSD), hard
disk drive (HDD), storage drive array, memory module, automotive
computing system, or any other suitable type of device (e.g.,
others described herein). Although described with reference to a
SoC, the entities of FIG. 9 may also be implemented as other types
of integrated circuits or embedded systems, such as an
application-specific integrated-circuit (ASIC), memory controller,
storage controller, communication controller, application-specific
standard product (ASSP), digital signal processor (DSP),
programmable SoC (PSoC), system-in-package (SiP), or
field-programmable gate array (FPGA).
[0075] The SoC 900 may be integrated with electronic circuitry, a
microprocessor, memory, input-output (I/O) control logic,
communication interfaces, firmware, and/or software useful to
provide functionalities of a computing device or storage system,
such as any of the devices or components described herein (e.g.,
storage drive or storage array). The SoC 900 may also include an
integrated data bus or interconnect fabric (not shown) that couples
the various components of the SoC for data communication or routing
between the components. The integrated data bus, interconnect
fabric, or other components of the SoC 900 may be exposed or
accessed through an external port, parallel data interface, serial
data interface, peripheral component interface, or any other
suitable data interface. For example, the components of the SoC 900
may access or control external storage media, AI engines, or AI
networks through an external interface or off-chip data
interface.
[0076] In this example, the SoC 900 includes various components
such as input-output (I/O) control logic 902 and a hardware-based
processor 904 (processor 904), such as a microprocessor, processor
core, application processor, DSP, or the like. The SoC 900 also
includes memory 906, which may include any type and/or combination
of RAM, SRAM, DRAM, non-volatile memory, ROM, one-time programmable
(OTP) memory, multiple-time programmable (MTP) memory, Flash
memory, and/or other suitable electronic data storage. In some
aspects, the processor 904 and code stored on the memory 906 are
implemented as a storage system controller or storage aggregator to
provide various functionalities associated with AI-enabled search
for a storage system. In the context of this disclosure, the memory
906 stores data, code, instructions, or other information via
non-transitory signals, and does not include carrier waves or
transitory signals. Alternately or additionally, SoC 900 may
comprise a data interface (not shown) for accessing additional or
expandable off-chip storage media, such as magnetic memory or
solid-state memory (e.g., Flash or NAND memory).
[0077] The SoC 900 may also include firmware 908, applications,
programs, software, and/or operating system, which may be embodied
as processor-executable instructions maintained on the memory 906
for execution by the processor 904 to implement functionalities of
the SoC 900. The SoC 900 may also include other communication
interfaces, such as a transceiver interface for controlling or
communicating with components of a local on-chip (not shown) or
off-chip communication transceiver. Alternately or additionally,
the transceiver interface may also include or implement a signal
interface to communicate radio frequency (RF), intermediate
frequency (IF), or baseband frequency signals off-chip to
facilitate wired or wireless communication through transceivers,
physical layer transceivers (PHYs), or media access controllers
(MACs) coupled to the SoC 900. For example, the SoC 900 may include
a transceiver interface configured to enable storage over a wired
or wireless network, such as to provide a network attached storage
(NAS) volume with AI-enabled search features.
[0078] The SoC 900 also includes an AI engine 126, metadata manager
128, and metadata database 130, which may be implemented separately
as shown or combined with a storage component or data interface. In
accordance with various aspects of AI-enabled search for a storage
system, the metadata database 130 may include one or more
relational databases 204 and navigational databases 206, which may
be utilized to enable implicit or contextual search of storage
media managed by the SoC 900. Alternately or additionally, the
metadata database 130 may be stored on the memory 906 of the SoC
900 or on a memory operably coupled with the SoC 900 and accessible
to the metadata manager 128. Any of these entities may be embodied
as disparate or combined components, as described with reference to
various aspects presented herein. Examples of these components
and/or entities, or corresponding functionality, are described with
reference to the respective components or entities of the
environment 100 of FIG. 1 or respective configurations illustrated
in FIG. 2, FIG. 3, and/or FIG. 4. The metadata manager 128, either
in whole or part, can be implemented as processor-executable
instructions maintained by the memory 906 and executed by the
processor 904 to implement various aspects and/or features of
AI-enabled search for a storage system.
[0079] The metadata manager 128, may be implemented independently
or in combination with any suitable component or circuitry to
implement aspects described herein. For example, AI engine 126
and/or metadata manager may be implemented as part of a DSP,
processor/storage bridge, I/O bridge, graphics processing unit,
memory controller, storage controller, arithmetic logic unit (ALU),
or the like. The metadata manager 128 may also be provided integral
with other entities of SoC 900, such as integrated with the
processor 904, memory 906, a storage media interface, or firmware
908 of the SoC 900. Alternately or additionally, the AI engine 126,
metadata manager 128, and/or other components of the SoC 900 may be
implemented as hardware, firmware, fixed logic circuitry, or any
combination thereof.
[0080] As another example, consider FIG. 10 which illustrates an
example storage system controller 1000 in accordance with one or
more aspects of AI-enabled search for a storage system. In various
aspects, the storage system controller 1000 or any combination of
components thereof may be implemented as a storage drive
controller, storage media controller, NAS controller, or a storage
aggregation controller for solid-state storage media, magnetic
storage media, or the like. In some cases, the storage system
controller 1000 is implemented similar to or with components of the
SoC 900 as described with reference to FIG. 9. In other words, an
instance of the SoC 900 may be configured as a storage system
controller, such as the storage system controller 1000 to manage
solid-state or magnetic storage media. In this example, the storage
system controller 1000 includes input-output (I/O) control logic
1002 and a processor 1004, such as a microprocessor, processor
core, application processor, DSP, or the like. The storage system
controller also includes a storage media interface 1006 (e.g., NAND
interface) and a host interface 1008 (e.g., SATA, PCIe, or Fabric
interface), which enable access to storage media and host system,
respectively.
[0081] In some aspects, the storage system controller 1000
implements aspects of AI-enabled search for a storage system when
managing or enabling access to storage media that is coupled to
storage media interface 1006. The storage system controller 1000
may provide a storage interface for a host system via the host
interface 1008, through which storage access commands are received
from the host system. Alternately or additionally, the metadata
manager 128 may receive metadata labels or indications from an
external AI engine or AI network via the host interface 1008 or
another data interface of the storage system controller 1000. For
example, the metadata manager 128 may receive, through the host
interface 1008, AI-generated labels and respective confidence level
indicators with data to be stored to storage media that is operably
coupled to the storage media interface 1006 of the storage system
controller. In some aspects, the processor 1004 and firmware of the
storage system controller are implemented to provide various data
access functionalities associated with AI-enabled search for a
storage system.
[0082] The metadata manager 128 of the storage system controller
1000 may be implemented separately as shown or combined with the
processor 1004, AI engine 126, or storage media interface 1006. In
accordance with various aspects, the metadata manager 128 may
create and manage the relational database 204 and navigational
database 206 (e.g., weighted node graphs) of the metadata database
130. Examples of these components and/or entities, or corresponding
functionality, are described with reference to the respective
components or entities of the environment 100 of FIG. 1 or
respective configurations illustrated in FIG. 2, FIG. 3, and/or
FIG. 4. The metadata manager 128, either in whole or part, may be
implemented as processor-executable instructions maintained by
memory of the controller and executed by the processor 1004 to
implement various aspects and/or features of AI-enabled search for
a storage system.
[0083] Although the subject matter has been described in language
specific to structural features and/or methodological operations,
it is to be understood that the subject matter defined in the
appended claims is not necessarily limited to the specific
examples, features, or operations described herein, including
orders in which they are performed.
* * * * *