其他分享
首页 > 其他分享> > The RDF-3X engine for scalable management of RDF data----part2

The RDF-3X engine for scalable management of RDF data----part2

作者:互联网

本文由学者Thomas Neumann和Gerhard Weikum于2009/09/01在《The VLDB Journal 》联合发表
原文下载链接文末自取

选择性估计
查询优化器依靠成本模型查找成本最低的执行计划,由于估计的基数及选择性对计划生成影响巨大,所以提出如下两种统计方法:

选择性直方图
对于三元组中三列的单个表查询通常涉及至少两个属性,所以不适合使用直方图而使用聚合索引:对于每个文字或文字对,通过一次索引查找获取得到三元组的确切数。将成本模型的所有辅助结构保留在主存储器中进一步汇总索引,使每个索引适合单个数据库页面并包含有关连接选择的信息。扫描三元组的数量决定索引扫描的成本。当字面值不属于索引前缀,实际则会更低。通过重新排列字面值使所有字面值都位于前缀得出结果基数。如果存储库中的三元组与数据库中的所有其他三元组连接,则下一个值是连接即结果基数。

常用路径
SPARQL查询中会出现两种相关的谓词。首先,三重模式的“星星”,用于选择特定主语。第二,三重模式的“链”,其中第一个模式的对象是下一个模式的主语,同样具有给定谓词。预先计算数据图中的常用路径并保留精确的联接统计信息,计算最频繁的路径并具体化结果基数和路径。两种方法解决RDF设置的循环:

管理更新
考虑RDF数据库支持数据修改和增量加载,在设计RDF-3X的更新管理时,对典型的使用模式作如下假设:

基于假设,为RDF-3X设计并实现差分索引方法,该方法同时支持更新单个操作和整个批次。关键思想是更新最初应用于小差分索引,将实际更新推迟到主要索引,如图说明用于管理RDF-3X中更新的总体架构:

插入操作
使用RDF-3X索引,将新三元组插入数据库存在困难。为避免成本,使用具有延迟索引更新的暂存体系结构。首先,在工作空间收集所有更新;然后,分开索引所有三元组与主数据库的差异索引。在查询处理期间,查询使用小差异索引增加其他合并联接,在满足查询条件的情况下更新集成延迟。

删除
删除三元组时,使用删除标记将三元组“插入”到工作区和差异索引。将差异索引合并到主索引时,标记为删除的三元组会删除主索引中对应的三元组,并在合并完成后丢弃。

支持原子性和弱隔离
增加对程序的原子支持,而并发程序执行中的隔离级别形式较弱。分期架构的第一阶段只包含更新操作的程序通过使用专用工作区自动隔离。将程序终止视为“提交点”,每个提交点提示与全局共享的差异索引合并。在与差异指标和主要指标合并时,通过锁存和区域协调股机制保证指标树一致。当程序将其工作空间合并到差分索引时,将以锁定耦合的方式锁存索引页,始终锁存两个连续叶页。合并过程中所有写程序都具有完全相同的页面访问顺序,因此锁耦合技术保证了只写程序间的序列化性。
分期架构提供了读提交的隔离级别,此属性还适用于混合查询和更新的程序:所有查询都可看到提交数据,并且更新序列化并发读写程序。延迟更新处理的主要特性如下:

余下部分是实验评估内容,不再赘述。

原文下载链接

标签:engine,management,路径,更新,三元组,索引,RDF,查询
来源: https://blog.csdn.net/VAOVA/article/details/105912921