Over the last decade, worst-case optimal join (WCOJ) algorithms have emerged as a new paradigm for one of the most fundamental challenges in query processing: computing joins efficiently. Such an algorithm can be asymptotically faster than traditional binary joins, all the while remaining simple to understand and implement. However, they have been found to be less efficient than the old paradigm, traditional binary join plans, on the typical acyclic queries found in practice. Some database systems that support WCOJ use a hypbrid approach: use WCOJ to process the cyclic subparts of the query (if any), and rely on traditional binary joins otherwise. In this paper we propose a new framework, called Free Join, that unifies the two paradigms. We describe a new type of plan, a new data structure (which unifies the hash tables and tries used by the two paradigms), and a suite of optimization techniques. Our system, implemented in Rust, matches or outperforms both traditional binary joins and Generic Join on standard query benchmarks.
翻译:在过去的十年中,最坏情况的最佳合并算法(WCOJ)已成为查询处理中最根本挑战之一的新范例之一:高效计算。这种算法可能比传统的二进制结合简单得多,尽管仍然容易理解和实施。然而,在实践中发现,在典型的周期性查询上,最坏情况的最佳合并算法比旧模式、传统的二进制结合计划的效率要低。一些支持 世界海关组织J 的数据库系统使用一种催眠方法:使用 世界海关组织J 处理查询的周期性子部分(如果有的话), 并依赖传统的二进制结合。 在本文中,我们提出了一个称为自由联合的新框架, 将两种模式统一起来。 我们描述了一种新的计划、 新的数据结构( 将集表统一起来, 并尝试两种模式使用 ) 和一套优化技术。 我们的系统在鲁斯特实施, 匹配或超越了传统的二进制组合和标准查询基准的通用组合。