暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SIGMOD 2023 | Grep:一个基于图学习的数据库分区系统

时空实验室 2023-12-18
68
数据库分区是分布式数据库中的一项基本但具有挑战性的任务,虽然已经提出了基于强化学习的方法,但依然存在一些局限性。第一,它们不能捕获复杂的数据分布和查询访问模式;第二,它们会重复地将数据划分到不同的计算节点,时间和资源开销很大。本次为大家带来数据挖掘领域顶级会议SIGMOD 2023的《Grep: A Graph Learning Based Database Partitioning System》。

1、背景

如今,随着数据量的增加,许多数据库客户正在将数据从集中式数据库迁移到分布式数据库以提高处理效率。然而,现有的分布式数据库依靠用户指定分区键来将数据分配给多个计算节点,这不仅繁琐,而且可能无法满足性能目标,自动数据库分区方法已被设计出来解决这个问题,但依然存在很多的缺陷。数据库分区是NP难问题,现有的方法依赖于分区表的单个主键,这并不适用于所有情况。因此,基于数据分布和查询访问模式设计适当的分区策略以优化性能是至关重要的。传统的启发式方法没有考虑不同列的数据分布以及数据与查询分布之间的相关性,不能得到很好的分区结果,而基于深度强化学习的方法也具有局限性。它们忽略了重要的数据特性或查询特性,并且模型训练十分昂贵。要解决这些问题有三个挑战:(1)如何有效地捕获分区因子(2)如何有效地选择分区键以优化性能(3)如何评估分区性能。针对这三个挑战,文章提出了使用图神经网络的数据库分区系统Grep。对于第一个挑战,Grep使用注意机制对图模型中有希望的列进行优先级排序;对于第二个挑战,Grep利用图神经网络嵌入图中每个顶点的全局图结构,并利用分类器选择有利的列组合;对于第三个挑战,文章提出了一种使用图表示学习的评估模型。

2、方法设计

2.1 框架总览

图一展示了Grep的体系结构,其中包括三个主要模块,即Column2GraphPartitioning ModelEvaluation Model

图一Grep模型总览

对于一个给定的数据库,Grep首先训练一个Evaluation模型,该模型预测分区策略的性能。其次,Grep基于数据和查询特征构建Column2Graph模型。通过构建出的Column2Graph模型,Grep训练一个Partitioning模型,该模型用于选择分区键。最后,Grep使用Evaluation模型对选中的键值进行评估,并反馈给Column2Graph模型(更新顶点权重)和Partitioning模型(更新GNN权重)。重复更新与评估直到收敛。


2.2 列图模型

列图定义:给定一组表,查询,将表列及其相关性建模为一个图模型。顶点是查询中使用的列,如果两个列在查询中连接或具有外键关系,则它们之间有一条边。
Column2Graph模型中,边权和点权的取值是很重要的。边权计算为查询频率和估计基数的乘积,这表示的总成本,c代表由列名转换成的点。点权由每个顶点的局部图结构(例如,读/写频率,连接成本)来计算,用顶点权重识别重要顶点,并将重要顶点作为分区键进行优先级排序。

2.2.1 基于谓词的边权

考虑两个特征来计算边权,第一是连接谓词的频率。如果两个列频繁连接,可以通过使用这两个列作为分区键来减少更多的远程连接。第二是连接谓词的基数。从表中分层采样元组,并通过在采样元组上执行谓词来估计基数。边权大小的计算公式为,其中quv两个点中间的任何连接谓词,是频率,是基数。

2.2.2 基于注意力的点权

文章提出了一个基于图的注意力网络来评估列的重要性。列图G注意力网络的映射过程可以写为分配的注意力,是顶点特征向量。对于每个列,基于两种图特征计算其关注值。第一是顶点特征描述列字符,包括数据特征和查询特征,并使用Sigmoid激活函数来规范化这些特征,记为。第二是边特征,通过聚合每个顶点的连接边来计算边特征。计算公式为的任意相邻顶点,为边权。任意顶点通过下式进行编码:

是网络权重,的单位向量。注意力模型迭代计算至收敛。

2.3 分区键选择

Partitioning模型涉及到两个概念,第一是图嵌入,利用图神经网络来计算t+1次迭代时的嵌入向量,它基于邻居和边权来得出。GNN迭代更新网络权值,以学习具有最大分区效益的嵌入顶点向量。第二是分区键选择,嵌入向量是高维的,模型通过泰勒分解来估计每列的总体划分收益,该分解反过来计算嵌入向量中列的比例。之后通过二进制分类器,它输入列相关性并输出选中的列。

2.3.1 图嵌入算法

对于每一列获得局部图结构,并利用图神经网络将图结构和的顶点向量嵌入到嵌入向量中,方法是将输入的顶点特征与GNN权重相乘,并基于性能目标迭代更新GNN权重。该过程可表示为下式,E为边矩阵:

嵌入向量的计算可以分为三个步骤:(1将每个列的结构信息表示为为顶点向量,为的邻域矩阵。(2用图卷积在中嵌入特征,先将自连接关系添加到边矩阵E中并于单位矩阵求和,然后将连接特征嵌入到顶点向量中,再在图神经网络上传播嵌入的顶点,它为顶点分配网络权重,并输出嵌入向量。(3)应用激活函数将嵌入的特征转换为定长向量。

2.3.2 分区键选择算法

分区键从嵌入向量中进行选择,计算每列与嵌入向量的相关性,并从相关性分布中选择分区键。首先需要计算任意列在所有嵌入向量中的比例,算法利用泰勒分解反向计算图神经网络中每列与所有嵌入向量的相关性,并将它们聚合为总体分区效益。嵌入向量取,它们的总相关性为,基于分层传播规则反向计算GNN中每个神经单元的相关性, 在最后一层L中每个神经单元的关联性表示为1。相关性的计算由下式表示,表示不影响分区的特征,表示神经单元(l, j)前后嵌入的变化:

在获得后,使用二元分类方法多项式逻辑回归来预测被选为分区键的概率。

2.3.3 模型训练

训练模型使用的数据为一个四元组是查询的集合,是表的集合,是列的集合,是性能指标。在训练过程中使用不同的查询和数据组合迭代地训练GNN模型,根据上述的方式构建列图,评估性能,更新网络权值。权值更新表示为其中控制更新速率,10-6。当性能收敛或达到最大迭代次数时终止训练,并采用批量梯度下降来提高效率。

2.4 性能评估模型

2.4.1 模型介绍

首先生成一个k节点样本图,其中顶点是采样元组,边是元组之间的连接关联。接下来计算边权和点权,该样本图表示k个节点上的查询和数据分布。在性能评估阶段,首先将k节点样本图嵌入到嵌入向量中;然后使用深度学习将采样元组上的性能映射到整个数据集上。该阶段可细化为三个步骤:(1)分别聚合每个节点的子图内的特征,并通过将边权矩阵,将每个节点的顶点矩阵与全局共享的图网络权重相乘,将它们嵌入到k个嵌入向量中。(2)生成一个k顶点图,由复合顶点矩阵和边权表示。对进行卷积,将远程连接关系纳入划分向量,再将分区向量池化为图向量。(3)图向量会对k节点样本图中的特征进行编码,样本图中包含与整个数据集相似的数据和查询分布。使用全连接层,以ReLU作为激活函数,将采样元组上的图向量映射到整个数据集上的分区性能。

2.4.2 模型训练

文章使用从真实系统日志中提取的一些分区策略来训练评估模型。在离线训练阶段,先通过不同的数据,查询,分区和工作负载中获取了训练数据集,每个数据集选择了500个高质量的分区策略来生成训练样本。对于每个样本生成k节点样本图,利用评估模型来估计性能,并更新网络权重与估计性能和实际性能的损失直到收敛。在训练过程中使用了损失函数来减少日志中噪音的影响。在在线训练阶段,对于一个新的分区请求,评估模型输入分区模型选择的键,并重新计算一个新的k节点样本图。评估模型根据k节点样本图估计延迟和吞吐量,根据反馈选择键进行分区,并执行得到真实性能,优化网络权重。

3、实验

3.1 实验设置

Grep通过Pytorch实现,并利用psycopg2scikit-learnnumpy等库与数据库和预处理数据进行交互。神经网络带有11GB帧缓冲的Titan RTX 2080Ti GPU上训练,实验分别在一个开源的分布式数据库Postgres-XL16GB RAM, 256GB disk, 4Ghz CPU)和商业分布式数据库(256GB RAM, 2TB disk, 3Ghz CPU)运行。
实验选择了三个数据集,分别为TPC-HJOB和 XuetangX,并根据它们合成了更多的数据。超参数的取值由AutoGL3给出并微调,分区指标为查询性能、分区延迟和训练时间。实验使用评估延迟、错误率和训练时间来评估评估模型,并实施了最先进的研究来比较划分模型和评估模型的性能。

3.2 性能比较

在基于Postgres-XL实验中,Grep与三种最先进的方法进行比较,即基于枚举的方法、启发式方法、基于DRL的方法,同时,不加注意的Grep(Grep(-A))和不加泰勒分解的Grep(Grep(-T))也参与了比较。得到的实验结果如图二所示:

图二 性能比较
在所有情况下,Grep都优于启发式和DRL,并达到与枚举相似的性能,但枚举的资源开销非常的大。此外,Grep也优于Grep(-A)Grep(-T),因为两者都无法从最终结果中删除无用的列。
在商业数据库的实验中,DBA比较,Grep能够更好的进行优化,性能也有明显的提升。总之,Grep在查询性能和分区开销方面都优于最先进的方法。

3.3 模型评估

实验评估了评估模型,将评估延迟、准确性和训练时间(GrepCost)NNCostTLSTMCost进行了比较。在Postgres-XL上使用TPC-H训练集对每种方法进行训练,结果图三所示:

图三 模型评估

可以看出GrepCost在延迟和训练时间上分别比现有性能评估方法高出62.5% ~ 99.0%37.1% ~ 79.0%,错误率与先分区后评估方法TLSTMCost相似。

在超参数的评估实验中,文章发现当层数小于3时,随着隐藏层的增加,性能会提高,而当层数大于3时,新的嵌入特征贡献较小,但开销较高。同时,更高的采样率会带来更好的效果,但过高的采样会使得速度降低。


3.4 适应性

为验证数据集发生变化时模型的性能,实验使用在XuetangX上训练的分区模型来评估TPC-H,采用基于TPC-H训练的分区模型对JOB进行评估。实验结果如图四所示:

图四 数据集适应性
这说明Grep可以在一个数据集上使用训练好的模型来适应不同的数据集。

4、总结

文章提出了一种基于图学习的数据库分区系统Grep,并提出了一个图模型来表示数据和查询,其中顶点是列,边是列的相关性。模型计算了图的嵌入,并使用嵌入来选择分区键。为了提高训练效率,文章提出了一种学习评估模型,该模型可以在不实际划分数据的情况下估计分区策略的性能。实验结果表明,文章提出的方法优于最先进的研究。
同时,该方法还有改进的空间。首先,Grep侧重于将集中式数据库分区到分布式数据库,这是离线进行的,对分区开销不敏感。其次,可以考虑更多的分划函数以及更多的分划方法。

-End-
本文作者
周敏欣
重庆大学计算机科学与技术专业(卓越)三年级在读学生,重庆大学START团队成员。
主要研究方向:时空数据挖掘,AI4DB


重庆大学时空实验室(Spatio-TemporalArt Lab,简称Start Lab),旨在发挥企业和高校的优势,深入探索时空数据收集、存储、管理、挖掘、可视化相关技术,并积极推进学术成果在产业界的落地!年度有2~3名研究生名额,欢迎计算机、GIS等相关专业的学生报考!
         

               |周敏欣

               |徐小龙

                


文章转载自时空实验室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论