A storage system includes a client host, a storage device, and a separate
data search appliance. The client software executing on the client host
composes a query and sends a data search request to the storage device.
The storage device passes the received query to the connected data search
appliance. The search appliance invokes search process to find search
candidates using meta information of the data stored in the storage
device. Upon the completion of the search process, the search appliance
returns the identified search results to the storage device. Upon receipt
of the search results from the search appliance, the storage device
passes them to the client. At the same time, the storage device
pre-fetches the actual data which corresponds to the search results into
its cache memory to ensure fast future retrieval. When the client
requests to retrieve actual data corresponding to any of the search
results from the storage device, the storage device returns the desired
data immediately from its cache memory. If the client requests to
retrieve additional data corresponding to another search result, these
data is returned immediately as well.