A "Media Identifier" operates on concurrent media streams to provide large
numbers of clients with real-time server-side identification of media
objects embedded in streaming media, such as radio, television, or
Internet broadcasts. Such media objects may include songs, commercials,
jingles, station identifiers, etc. Identification of the media objects is
provided to clients by comparing client-generated traces computed from
media stream samples to a large database of stored, pre-computed traces
(i.e., "fingerprints") of known identification. Further, given a finite
number of media streams and a much larger number of clients, many of the
traces sent to the server are likely to be almost identical. Therefore, a
searchable dynamic trace cache is used to limit the database queries
necessary to identify particular traces. This trace cache caches only one
copy of recent traces along with the database search results, either
positive or negative. Cache entries are then removed as they age.