For many applications, it is important to quickly locate the nearest neighbor of a given time series. When the given time series is a streaming one, nearest neighbors may need to be found continuously at all time positions. Such a standing request is called a continuous nearest neighbor query. This paper seeks fast evaluation of continuous queries on large databases. The initial strategy is to use the result of one evaluation to restrict the search space for the next. A more fundamental idea is to extend the existing indexing methods, used in many traditional nearest neighbor algorithms, with pre-fetching. Specifically, pre-fetching is to predict the next value of the stream before it arrives, and to process the query as if the predicted value were the real one in order to load the needed index pages and time series into the allocated cache memory. Furthermore, if the pre-fetched candidates cannot fit into the cache memory, they are stored in a sequential file to facilitate fast access to them. Experiments show that prefetching improves the response time greatly over the direct use of traditional algorithms, even if the caching provided by the operating system is taken into consideration.
Gao et al. REF reduce I/O cost for continuous similarity queries by pre-loading the predicted index pages and archived time series into the allocated cache memory.
Evaluating continuous nearest neighbor queries for streaming time series via pre-fetching
CIKM '02
Computer Science