数据库

(Paper Weekly04) Plan-Structured Deep Neural Network Models for Query Performance Prediction
这篇paper值得关注的点在于如何将传统CS和深度学习结合,以及如何自动/手动挑选feature. 在数据库管理系统中,query performance prediction是一个长期以来没能很好解决的问题。需要考虑的因素有: 数据库接收的指令如何优化,优化后执行树的结构,指令能否并行 相关指令涉及的数据量大小,operator类型 实际系统中网络、IO等“环境变量”的影响 本文考虑的情景主要解决了第二点和第一点的部分。 Motivation: 现有的优化工具可以将复杂的指令转化成一棵执行树。那么如果对这棵树上的每个节点,用一个neural unit(其实就是一个小网络)进行建模,利用这些小网络来预测相应节点的latency,那么根节点的输出岂不就是系统整体的延迟。 这从本质上来说并没有什么复杂的原理,无非是把DL/NLP里面针对树结构的方法搬到QPP上。 Isomorphic to the structure of the execution plan: 将DNN的基本单元设置为Neural Unit,对应每种operation; 对于每一个execution plan,搭建一个同构的树状网络 Heterogeneous tree nodes: 每种operator含有的property的数量、类型是不同的。比如join操作可能有9个property,filter操作可能有7个另外的feature,如果把所有的property都汇集到一起作为operator的表示,会产生sparsity的问题 Input feature vector: 可能的child节点信息和operator feature信息,后者可通过DBMS的optimizer的API获取,比如operator类型、需要多少次I/O等。相同类型的operator会得到size相同的vector,但具体数值可能不同,计作a ⃗, A表示operator的类型。