Similarity joins: Their implementation and interactions with other database operators

Yasin Silva, Spencer S. Pearson, Jaime Chon, Ryan Roberts

Research output: Contribution to journalArticlepeer-review

16 Scopus citations


Abstract Similarity Joins are extensively used in multiple application domains and are recognized among the most useful data processing and analysis operations. They retrieve all data pairs whose distances are smaller than a predefined threshold ε. While several standalone implementations have been proposed, very little work has addressed the implementation of Similarity Joins as physical database operators. In this paper, we focus on the study, design, implementation, and optimization of a Similarity Join database operator for metric spaces. We present DBSimJoin, a physical database operator that integrates techniques to: enable a non-blocking behavior, prioritize the early generation of results, and fully support the database iterator interface. The proposed operator can be used with multiple distance functions and data types. We describe the changes in each query engine module to implement DBSimJoin and provide details of our implementation in PostgreSQL. We also study ways in which DBSimJoin can be combined with other similarity and non-similarity operators to answer more complex queries, and how DBSimJoin can be used in query transformation rules to improve query performance. The extensive performance evaluation shows that DBSimJoin significantly outperforms alternative approaches and scales very well when important parameters like ε, data size, and number of dimensions increase.

Original languageEnglish (US)
Article number1011
Pages (from-to)149-162
Number of pages14
JournalInformation Systems
StatePublished - Jun 1 2015


  • Database operator
  • PostgreSQL
  • Query processing and optimization
  • Similarity Join
  • Similarity queries

ASJC Scopus subject areas

  • Software
  • Information Systems
  • Hardware and Architecture


Dive into the research topics of 'Similarity joins: Their implementation and interactions with other database operators'. Together they form a unique fingerprint.

Cite this