如何评价cmu-db的peloton数据库?

如何评价cmu-db的peloton数据库, The Self-Driving Database Management System ,当前实现的完善…
关注者
586
被浏览
39,460

5 个回答

首先放上cmu/pelotondb研究小组的链接。

PelotonDB最重要的特性是将数据挖掘技术引入到了数据库管理系统中,通过感知应用工作负载自适应调整底层存储方式, 进而达到融合OLTP/OLAP的效果, 实现无人工干预的自动调优数据库管理系统: Self-Driving Database Management Systems

从论文的图中我们可以看出,系统基于历史数据进行模型构建,将工作负载按照聚类的方式分成若干类,然后对接下来的查询使用RNNLSTM训练和预测落在各个工作负载上的比例,根据预测结果调整存储结构/数据划分/执行参数, 以期最小化查询时延。

下面重点关注下数据布局。

OLTP场景由于需要高性能的写入,最佳存储形式当属于行存(NSM, Nary Storage Model),常见于关系行数据库; 而OLAP 场景由于需要对一些特定的列进行快速扫描分析,为了保证Cache的友好性和减少读放大,最好使用列存(DSM, Decomposition Storage Model ),常见于NoSQL;现实场景中通常兼顾存储和分析,所以又引入了上述两种存储的融合方式: FSM(Flexible Storage Model ), 又称为HTAP (Hybrid Transactional/Analytical Processing)

关于行存和列存的研究由来已久,2001年VLDB上的Weaving Relations for Cache Performance一文就已经有深入探讨,这篇文章提出了PAX(Partition Attributes Across)数据布局方式, 基本思想就是对于一个关系, 系统首先按页(Page)的方式存储数据,类似于NSM, 而在页(Page)里面使用了一种 mini page 的方式,将关系的各个属性存储到不同的 mini page 里面, 类似于DSM。从整体来看,便是一个HTAP系统, 这在最新的Google Spanner(SIGMOD2017)也有所应用。而在SIGMOD2016会议上, peloton小组进一步发展了HTAP 设计理论: Bridging the Archipelago Between Row-Stores and Column-Stores for Hybrid Workloads, 最主要的是可根据工作负载自适应地在物理结构上将数据切分成不同的存储布局,而在逻辑结构上保持一致。物理层存储体系为: tile tuple → physical tile → tile group → table ,结构如下图所示:

物理层这样的划分将非常容易地实现FSM目标。热点数据最先以行存的方式存储,当数据逐渐变冷,会演变成列式存储。但直接使用物理层对于查询并不友好,数据分布在不同的Tile里, 并且还会变化, 因此必须引入逻辑层来封装成统一的接口。逻辑层隐藏了物理层的具体实现,逻辑层的每个列可以指向一个或者多个物理层的列,每个逻辑层列里面存储的是 tuple 在物理层里面的偏移位置。结构如下图所示:

有了物理层和逻辑层, 我们就可以定期地对每个table计算出最优数据布局, 然后进行重构。在论文中,计算主要通过监控器随机的对查询进行采样统计,减少开销,对冷数据进行重构。

最后总结一下, cmu-db小组的数据库优化工作重点在于自适应动态调整上, 通过运行时动态配置技术获取系统的最佳性能,这点启发意义非常重要, 在现在的NewSQL领域会逐渐得到应用。

一个非常有技术前瞻性的数据库!

1. 方向正确。
Oracle老厂都靠Self-Driving来拯救自己了,瞧瞧这solgan:The World’s #1 Database Is Now the World’s First “Self-Driving” Database

2. 适应潮流
WBL:
随着硬件的发展(NVM),IBM那几十年的数据库设计套路ARIES终于有所改变了,相对于WAL,PelotonDB提出了WBL。
这个技术比较简单但是对新硬件很友好,说明Pavlo这种一流大婶对数据库的本质问题有着非常深刻的认识,研发数据库的功力不在于我会写数据库(传统数据库理论已经很成熟了),而是在不同硬件等条件下认识到问题本质,实现灵活变通,PelotonDB做到了这点。

行列混合:
对row/column的存储在底层进行处理,这也是self的一个重要点。而不是要么row,要么column,或row in memory row, column in disk。

PelotonDB主要是靠学生研发,也得到了Intel、Samsung的支持,但是发展还是较慢的,而且各个模块还处于初级阶段,还有不少的路要走: cmu-db/peloton

但是,目前看代表着未来... ...