当前位置:
X-MOL 学术
›
arXiv.cs.DB
›
论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Making RDBMSs Efficient on Graph Workloads Through Predefined Joins
arXiv - CS - Databases Pub Date : 2021-08-24 , DOI: arxiv-2108.10540 Guodong Jin, Semih Salihoglu
arXiv - CS - Databases Pub Date : 2021-08-24 , DOI: arxiv-2108.10540 Guodong Jin, Semih Salihoglu
Joins in native graph database management systems (GDBMSs) are predefined to
the system as edges, which are indexed in adjacency list indices and serve as
pointers. This contrasts with and can be more performant than value-based joins
in RDBMSs and has lead researchers to investigate ways to integrate predefined
joins directly into RDBMSs. Existing approaches adopt a strict separation of
graph and relational data and processors, where a graph-specific processor uses
left-deep and index nested loop joins for a subset of joins. This may be
suboptimal, and may lead to non-sequential scans of data in some queries. We
propose a purely relational approach to integrate predefined joins in columnar
RDBMSs that uses row IDs (RIDs) of tuples as pointers. Users can predefine
equality joins between any two tables, which leads to materializing RIDs in
extended tables and optionally in RID indices. Instead of using the RID index
to perform the join directly, we use it primarily in hash joins to generate
semi-join filters that can be passed to scans using sideways information
passing, ensuring sequential scans. In some settings, we also use RID indices
to reduce the number of joins in query plans. Our approach does not introduce
any graph-specific system components, can execute predefined joins on any join
plan, and can improve performance on any workload that contains equality joins
that can be predefined. We integrated our approach to DuckDB and call the
resulting system {\em GRainDB}. We demonstrate that GRainDB far improves the
performance of DuckDB on relational and graph workloads with large many-to-many
joins, making it competitive with a state-of-the-art GDBMS, and incurs no major
overheads otherwise.
中文翻译:
通过预定义的连接使 RDBMS 在图形工作负载上高效
本机图形数据库管理系统 (GDBMS) 中的连接被系统预定义为边,边在邻接列表索引中编入索引并用作指针。这与 RDBMS 中基于值的连接形成对比,并且可能比 RDBMS 中的基于值的连接更高效,并引导研究人员研究将预定义连接直接集成到 RDBMS 的方法。现有方法采用图和关系数据和处理器的严格分离,其中特定于图的处理器使用左深和索引嵌套循环连接来连接子集。这可能不是最理想的,并且可能导致在某些查询中对数据进行非顺序扫描。我们提出了一种纯粹的关系方法,将预定义的连接集成到使用元组的行 ID (RID) 作为指针的列式 RDBMS 中。用户可以预定义任意两个表之间的等式连接,这导致在扩展表和可选的 RID 索引中实现 RID。我们不使用 RID 索引直接执行连接,而是主要在哈希连接中使用它来生成半连接过滤器,这些过滤器可以使用横向信息传递传递给扫描,确保顺序扫描。在某些设置中,我们还使用 RID 索引来减少查询计划中的连接数量。我们的方法不引入任何特定于图的系统组件,可以在任何连接计划上执行预定义的连接,并且可以提高包含可以预定义的等式连接的任何工作负载的性能。我们将我们的方法集成到 DuckDB 中,并将生成的系统称为 {\em GRainDB}。我们证明了 GRainDB 在具有大量多对多连接的关系和图形工作负载上大大提高了 DuckDB 的性能,
更新日期:2021-08-25
中文翻译:
通过预定义的连接使 RDBMS 在图形工作负载上高效
本机图形数据库管理系统 (GDBMS) 中的连接被系统预定义为边,边在邻接列表索引中编入索引并用作指针。这与 RDBMS 中基于值的连接形成对比,并且可能比 RDBMS 中的基于值的连接更高效,并引导研究人员研究将预定义连接直接集成到 RDBMS 的方法。现有方法采用图和关系数据和处理器的严格分离,其中特定于图的处理器使用左深和索引嵌套循环连接来连接子集。这可能不是最理想的,并且可能导致在某些查询中对数据进行非顺序扫描。我们提出了一种纯粹的关系方法,将预定义的连接集成到使用元组的行 ID (RID) 作为指针的列式 RDBMS 中。用户可以预定义任意两个表之间的等式连接,这导致在扩展表和可选的 RID 索引中实现 RID。我们不使用 RID 索引直接执行连接,而是主要在哈希连接中使用它来生成半连接过滤器,这些过滤器可以使用横向信息传递传递给扫描,确保顺序扫描。在某些设置中,我们还使用 RID 索引来减少查询计划中的连接数量。我们的方法不引入任何特定于图的系统组件,可以在任何连接计划上执行预定义的连接,并且可以提高包含可以预定义的等式连接的任何工作负载的性能。我们将我们的方法集成到 DuckDB 中,并将生成的系统称为 {\em GRainDB}。我们证明了 GRainDB 在具有大量多对多连接的关系和图形工作负载上大大提高了 DuckDB 的性能,