The Threshold Algorithm: From Middleware Systems to the Relational Engine - Bruno, Nicolas (Transactions on Knowledge and Data Engineering, 2007)
The answer to a top-k query is an ordered set of tuples, where the ordering is based on how closely each tuple matches the query. In the context of middleware systems, new algorithms to answer top-k queries have been recently proposed. Among these, the Threshold Algorithm, or TA, is the most well known instance due to its simplicity and memory requirements. TA is based on an early-termination condition and can evaluate top-k queries without examining all the tuples. This top-k query model is prevalent over middleware systems, but also over plain relational data. In this work we analyze the challenges that must be addressed to adapt TA to a relational database system. We show that, depending on the available indexes, many alternative TA strategies can be used to answer a given query. Choosing the best alternative requires a cost model that can be seamlessly integrated with that of current optimizers. In this work we address these challenges and conduct an extensive experimental evaluation of the resulting techniques by characterizing which scenarios can take advantage of TA-like algorithms to answer top-k queries in relational database systems.