A search engine operates substantially in real time through instant
updates by the servers on a file sharing network. A server coming on-line
in the network and comprising a first data object such as an audio file,
video file, executable file, or text file, is configured to upload a
description, such as a song title or file name, of the first data object,
to the search engine during the log-in process. The search engine
comprises a data-object description table for storing and correlating
various data object descriptions to respective server identifiers
identifying servers currently on line that store the data objects defined
by the data object descriptions. During the log-in process, the search
engine is configured to correlate the identifier of the server coming
on-line with a data-object description of a data object stored in the
server coming on-line. A requesting server seeking a specific data file
is configured to identify a data object description of the requested data
file in a request transmitted to the search engine. In response to a
request, the search engine is configured to download to the requesting
server the server-identifiers that are stored within the data-object
description table in a relationship with the data-object-description of
the request. The requesting server is configured to select a source
server from among the server identifiers provided by the search engine,
and to download the requested data file from the select source server. A
server notifies the search engine when the download is complete. The
search engine is configured to update the relationships within the
data-object description table to reflect that the requested file is now
within the requesting server. The search engine is further configured to
purge from the data-object description table any relationships between a
server and a data-object or data file when that server has gone off line,
or when that data file has been removed from the server.