【论文阅读 CIDR17】Self-Driving Database Management Systems

Self-Driving Database Management Systems

  • MySummary

ABSTRACT

之前的advisory tools来帮助DBA处理系统调优和物理设计的各个方面,都仍然需要人类对数据库的任何更改做出最终决定,并且是在问题发生后修复问题的反动措施reactionary measures 。

An truly “self-driving” database management system (DBMS)是针对autonomous operation(自主操作)设计的全新架构。系统的所有方面都是由一个integrated planning componen综合规划组件来控制。该组件不仅针对当前的工作负载优化系统,而且还预测未来的工作负载趋势,以便系统可以相应地做好准备。这样,DBMS就可以支持所有以前的调优技术,而不需要人工确定部署它们的正确方式和适当时间。

本文介绍了第一个自驱动DBMS Peloton的体系结构。由于深度学习算法的进步,以及硬件和自适应数据库架构的改进,Peloton的自主能力现在成为可能。

1. INTRODUCTION

其实SQL也是这种思路,关系模型和声明性查询语言就是使用DBMS来消除数据管理负担的想法。使用现有的自动调优工具是一项繁重的任务,因为它们需要费力地准备工作负载样本、分出一些硬件来测试提议的更新,最重要的是要放到DBMS的内部构件。如果DBMS可以自动做这些事情,那么它将消除掉调优过程中部署数据库所涉及的许多代价和成本。

以前的许多self-tuning系统工作都集中在仅针对数据库的单个方面的工具上,例如,一些工具能够选择数据库的最佳逻辑或物理设计,主要是索引、分区方案、数据组织、物化视图。其他工具能够为应用程序选择调优参数。这些工具中的大多数都以相同的方式操作:DBA提供样本数据库和工作负载Track,以指导搜索找到最佳或接近最优的配置。基于云的系统在service-level使用动态资源分配,但不调整单个数据库。

这些都不足以实现完全自主的系统,因为(1) external to the DBMS, (2) reactionary,(3) 无法一次考虑多个问题的整体视图。即:他们从系统外部观察 DBMS 的行为,并建议 DBA 如何进行修复已经发生的问题。Tunning tool是假设DBA能够在一个影响数据库性能的最小窗口来更新DBMS。但是现在DBMS非常复杂,所以如果有工具是自动化的,这样它们就可以单独部署优化。

在本文中,我们证明自动驾驶数据库系统现在是可以实现的。我们首先讨论使用这种系统的主要挑战。然后我们介绍了Peloton的架构,这是第一个为自主操作而设计的DBMS。我们总结了使用Peloton的集成深度学习框架进行工作量预测和行动部署的一些初步结果。

2. PROBLEM OVERVIEW

SFDB的第一个挑战是理解应用程序的工作负载。最基本的级别是将查询分类为 OLTP 或 OLAP。如果DBMS确定了应用程序属于这两个工作负载类中的哪一个,那么它就可以决定如何优化数据库。例如,如果是OLTP,那么DBMS应该将元组存储在面向行的布局中,该布局针对写进行了优化。如果是OLAP,那么DBMS应该使用面向列的布局,这种布局更适合访问表列子集的只读查询。最好是支持混合HTAP工作负载的单个DBMS。这样的系统会自动为不同的数据库段选择适当的OLTP或OLAP优化。

DBMS还需要预测资源利用趋势。要求它能够预测未来的需求,并在对性能影响最小的时候部署优化。不可否认,有一些工作负载异常是DBMS永远无法预料的(例如,“viral”content)。但是这些模型(self-driving?)提供了早期预警,使DBMS能够比外部监控系统更快地制定缓解措施。

有了这些预测模型,DBMS就可以识别出针对预期工作负载调优和优化数据库的潜在actions。

Untitled

最好是不能支持需要系统外部信息的DBA任务,例如权限、数据清理和版本控制。主要支持上面的三种优化,数据库的物理设计、数据组织的变化、DBMS的runtime行为。对于每个优化操作,DBMS都需要估计它们对数据库的潜在影响。这些估计不仅包括操作部署后将消耗的资源,还包括DBMS将用于部署操作的资源。

还有一个挑战是:DBMS如何有效应用这些优化,不导致性能大幅下降,可以使系统快速适应变化。需要的是一个灵活的内存中的DBMS体系结构,它可以在部署过程中增量地应用优化,而不会对应用程序产生明显的影响。

最后,autonomous DBMS有两个附加的约束:1. 不能要求需要重构代码。2. 要求是它不能依赖于只支持特定编程环境的程序分析工具。确保普适性。

3. SELF-DRIVING ARCHITECTURE

现有的dbms对于自治操作来说过于笨拙,因为在进行更改时通常需要重新启动它们,而且表1中的许多操作太慢。因此,一个新的DBMS的体系结构是最好的,因为集成的self-driving 的 component能对系统更全面和细粒度的控制。

CMU自己的Peloton,使用的是MVCC的变种,另一个优点是它使用内存存储管理器,具有无锁的数据结构和灵活的布局,可以快速执行HTAP工作负载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tototototorres

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值