文章目录

  • Abstract
  • I. MOTIVATION
  • II. TUTORIAL CONTENTS
  • III. TUTORIAL ORGANIZATION
  • IV. GOALS OF THE TUTORIAL
  • V. TUTORIAL PRESENTERS
  • REFERENCES

论文地址

Abstract

优化配置对于数据库管理系统(DBMS)实现高性能至关重要。由于每个工作负载具有不同的模式和不同的资源需求,因此没有适用于不同工作负载的通用配置。配置、工作负载和系统性能之间存在关系。如果配置无法适应工作负载的动态变化,则DBMS的整体性能可能会显著下降,除非经验丰富的管理员不断重新配置DBMS。在本教程中,我们重点介绍了自主的工作负载感知性能调优,它有望随着工作负载的变化自动、连续地调优配置。我们综述了三个研究方向,包括1)工作负载分类、2)工作负载预测和3)基于工作负载的调优。前两个主题涉及获得准确的工作负载信息的问题,而第三个主题涉及如何正确使用工作负载信息来优化性能的问题。我们还确定了研究挑战和开放问题,并给出了在商业产品(如Amazon Redshift)中利用工作负载信息进行数据库调优的真实示例。我们将在演示中演示Amazon Redshift中的工作负载感知性能调优。
        索引项工作量、分类、预测自治、DBMS、调优。

I. MOTIVATION

数据库配置,例如物理和逻辑设计以及资源分配(例如CPU、内存和IO资源),对于DBMS实现高性能至关重要。然而,数据的快速增长和时变工作负载的高度复杂性使得配置任务极具挑战性,尤其是当组织将其DBMS移动到云环境中的托管服务时。一个理想的解决方案是自治DBMS,它可以通过适应工作负载的变化来自动、不断地调整自身。
        自治DBMS的行为可以使用以下公式描述,该公式演示了一种工作负载感知性能调优机制:

f : configuration × workload → performance (1)

在配置包括硬件设置、软件设置、数据库物理和逻辑设计等的情况下,工作负载特征包括工作负载类型、工作负载转移、工作负载模式(例如,周期模式和到达模式),性能由一个指标(响应时间、吞吐量、可靠性等)或其组合来衡量。
        然而,在自主DBMS的工作负载感知性能调优方法上存在(至少)三个重大挑战:(i)工作负载的多样性和异构性:DBMS可能有大量实例,每个实例可能包含各种类型的工作负载。不同类型具有不同的特性,例如,事务性工作负载由短时间运行的事务组成,这些事务修改了很少的记录,而分析性工作负载通常是处理大量数据的长时间运行的只读查询。(ii)工作负载的动态特征:随着新用户和应用程序的出现越来越频繁,工作负载的大小和模式可能会随着时间的推移而不断变化。例如,数据库可能会扩展到更多用户,从而以不可预测的方式向工作负载添加大量查询。当先前优化的配置无法满足传入查询的要求时,DBMS的性能可能会迅速下降。(iii)工作负载对性能的复杂影响:很难量化用于更改工作负载的硬件资源量,并确定给定工作负载对性能的影响程度。此外,搜索给定工作负载的最佳配置通常是一个NP难问题,因为解决方案位于高维连续空间。
        表一总结了自治DBMS的工作负载感知性能调优的类别和文献。主要有三个主题:(i)工作量分类,(ii)工作量预测,和(iii)工作量调整。其目标是使DBMS能够通过分析不断变化的工作负载并为已识别的工作负载类型做出最佳决策,连续自动地调整数据库的配置。在本教程中,我们将首先提供自治DBMS的工作负载感知性能调优的概述和激励示例。接下来,我们将通过介绍每个类别的基本特征,介绍用于分类工作负载的不同类别、工作负载预测和工作负载感知调整方法。最后,我们将重点介绍用于工作负载感知调优的实际应用程序和系统,并确定研究挑战。

TABLE I AN OVERVIEW OF MAIN RESEARCH CATEGORIES AND LITERATURE ON WORKLOAD-AWARE PERFORMANCE TUNING


        据我们所知,这是第一篇讨论自主DBMS负载感知性能调优方面最先进的研究和行业趋势的教程。以前的教程只关注数据库优化的一个方面(例如,自适应复制和分区、参数优化),而不考虑工作负载信息。另一方面,本教程重点介绍如何获取工作负载信息,并根据估计的工作负载调整DBMS。

II. TUTORIAL CONTENTS

本教程按六个部分的顺序组织,其内容总结如下。
A. Section I: Motivation and background
        在本教程开始时,我们将回顾自主数据库调优的挑战,特别是云环境中时变工作负载的高度复杂性。自治DBMS需要根据动态工作负载信息进行自我调整,以获得最佳性能。

B. Section II: Workload Classification
        实现自治DBMS的第一个也是关键的一步是能够准确地对工作负载进行分类,因为工作负载类型是数据库性能调优的重要标准。工作负载的类型可能包括在线分析处理(OLAP)、在线事务处理(OLTP)、决策支持系统(DSS)、商业智能(BI),甚至混合和交互工作负载(例如,同时运行并相互交互的混合快速事务和复杂分析查询)。
        现有的分类方法可分为以下四类:(i)无监督学习:该方法的目的是通过利用一些度量(例如距离函数、资源使用)来衡量工作负载之间的相似性,将工作负载分组为一般类。例如聚类和半离散分解。(ii)监督学习:工作负荷分类可以通过机器学习模型来解决,例如分类回归树和决策树归纳。(iii)实验驱动:该方法利用实验技术,如规划实验和实验采样,识别工作负载类型并相应地重新配置资源。(iv)推理:工作量分类也可以通过与存储在案例库中的现有解决方案进行推理来解决。这种方法被称为基于案例的推理(CBR),它可以适应新的案例,并且不需要重新训练数据。

C. Section III: Workload Forecasting
        现实世界中的数据库工作负载通常是动态变化的。为了完全自治,DBMS必须能够通过基于历史数据预测工作负载变化来处理动态工作负载。估计的工作量特征和变化可能包括:(i)查询的预期到达率,(ii)每个查询的运行时间,(iii)结构和周期模式,(iv)工作量变化,(v)下一个事务或查询,(vi)每个查询的内存使用情况等
        现有方法可分为以下三类,可用于预测上述特征:

  1. Machine learning: 工作量预测可以被视为一个分类或回归问题,其中数据驱动方法直接从观察数据预测工作量变化。代表性模型包括集成学习、深度Q网络和基于LSTM的自动编码器。
  2. Time-series analysis: 短期和长期工作负荷都可以视为一个时间序列,其未来值和周期可以通过时间序列分析技术进行估计,时间序列分析技术可以分为两个主要领域:
            – 时域分析使用稀疏周期自回归(SPAR)、移动平均(MA)、多项式回归(PR)和自回归积分移动平均(ARIMA)等技术。
            – 频域分析利用离散傅立叶变换(DFT)和区间分析等方法将工作量序列转移到频域,以发现一些复杂的周期模式。
  3. Stochastic process modeling: 与时间序列分析不同,随机过程模型侧重于工作负载的概率属性,例如马尔可夫属性。

D. Section IV: Workload-based Tuning and Scheduling
        1) 基于工作负载的优化:最佳数据库物理和逻辑设计以及资源分配受到工作负载动态变化的严重影响。这是因为数据库(物理/逻辑)状态、工作负载和数据库资源之间存在某种关系。给定工作负载类型和变化,然后需要一个模型来决定调优操作。必须解决两个关键问题:1)如何提取和利用工作负载信息,以及2)如何找到最佳的调优操作(例如,哪种索引最有效,以及未来工作负载需要多少硬件资源)。
        现有方法可分为以下四类:(i)机器学习:这些方法利用机器学习模型对查询进行编码并做出调整决策。例如深度神经网络、前馈神经网络和成对深度神经网络。(ii)强化学习:通过强化学习方法,如深度Q学习、深度确定性策略梯度和尝试出错策略,可以自然地调整数据库配置。(iii)基于规则:基于数据库引擎的领域知识或人类专家的经验,引入转换规则建模和规则层次,以确定资源需求或工作负载的最佳物理设计。(iv)成本建模:这些方法建立准确的预测模型,以评估不同配置的预期执行成本。代表作品包括[31]和[32]。
        相应的调优任务包括两个主要方面:(i)数据库设计。根据工作负载的变化,数据库需要改进物理设计,如索引、物化视图、分区和存储,以实现最佳性能。有时,数据库还必须根据工作负载信息重新设计模式。(ii)资源供应。为了支持尚未在生产环境中部署的新工作负载,数据库必须估计所需的硬件资源,包括CPU、RAM、磁盘I/O、缓冲池大小和页面大小等。
        2) 工作负载调度:工作负载调度旨在确定查询的执行顺序,也是一项关键且具有挑战性的任务。它会对查询性能和资源利用率产生重大影响。当前关于工作负载调度的技术包括基于机器学习的技术(如SmartQueue)和基于推理的技术(如Qshuffler)。

E. Section V: Real-World Applications
        工作负载感知的性能调优广泛应用于像Amazon Redshift这样的云数据库中。Redshift在每个集群上训练预测模型,以便决策对于该集群服务的工作负载是最优的。为了具有更好的预测质量并考虑漂移,定期刷新底层模型。这些模型预测了工作负载中每个查询的查询执行时间和内存使用情况。有了这些知识,工作负载管理器(WLM)可以明智地做出调度和资源分配决策。例如,WLM为查询分配适当的内存量,以充分利用资源,并在执行时间方面将短期运行的查询安排在较长的查询之前。此外,当具有大量资源使用的长时间运行的查询阻止传入的短查询时,WLM将抢占长时间运行的查询,为短查询腾出空间。此外,当工作量很大且当前集群资源得到充分利用时,WLM将自动将查询扩展到新集群。
        Amazon Redshift还通过监视查询模式来决定最佳的物理数据组织。分发密钥顾问使用组合优化技术推荐最佳数据分发,以最小化集群节点之间的网络通信。

F. Section VI: Open Problems
        在本节中,我们将总结一些必须解决的开放问题,以确保工作负载感知调优的有效性:

  1. Robust workload classification and forecasting: 如何为有问题的工作负载(例如,嘈杂的工作负载模式)实现稳健的分类器和预测器。
  2. Tuning with inaccurate workload information: 即使工作量预测可能不准确,如何提高性能。
  3. Online update of tuning models: 如何在实际工业环境(例如,在云中)中部署新数据后,有效地重新培训和更新模型。

III. TUTORIAL ORGANIZATION

本教程计划3小时,分为以下几个部分:
Motivation (5’)
        我们激发了对多个应用程序/场景进行工作负载感知性能调优的需求。

Workload classification (30’)
        我们介绍了工作负荷分类的关键方法,并比较了不同类别之间的差异。

Workload forecasting (30’)
        我们展示了如何使用工作量预测方法来预测各种参数。

Workload-aware tuning and scheduling (60’)
        我们总结了基于工作负载的调优和工作负载调度的关键方法。

Real application and demonstration (30’)
        我们讨论了工作负载感知性能调优的一些实际应用,并给出了一个演示来展示工作负载感知调优的流程。

Open problems (15’)
        最后,我们讨论了工作负载感知调优的开放问题和挑战。

Summary (10’)
        我们总结了本教程,并给出了对工作负载感知调优的批判性想法。

IV. GOALS OF THE TUTORIAL

A. Learning Outcomes
        本教程的主要学习成果包括:(1)工作量感知调优的动机和背景。(2) 关于工作负载分类、工作负载预测和基于工作负载的调优的工作负载感知调优方法概述。(3) 比较这三个工作负载感知调优主题的特性、优势和应用。(4) 实现工作负载感知自治DBMS的附加信息,以及对研究挑战和开放问题的讨论。(5) 工作负载感知调优的实际演示。

B. Intended Audience
        本教程面向从数据库系统研究人员到行业从业者的广泛受众,重点关注自动数据库调优。数据库工作负载和配置方面的基本知识足以学习本教程。有一些机器学习和强化学习技术的背景会很有用。

V. TUTORIAL PRESENTERS

Zhengtong Yan 是赫尔辛基大学的博士生。他的研究课题包括多模型自治数据库和跨模型查询优化。
        Jiaheng Lu 是赫尔辛基大学的教授。他的主要研究兴趣在于数据库系统,特别是来自真实生活、海量数据存储库和Web的高效数据处理挑战。他写了四本关于Hadoop和NoSQL数据库的书,在SIGMOD、VLDB、TODS和TKDE等网站上发表了100多篇论文。
        Naresh Chainani 是Amazon Web Services(AWS)的高级软件开发经理,负责查询处理、查询性能、分布式系统和工作负载管理。他热衷于构建易于使用的高性能数据库,并拥有多项论文和专利。
        Chunbin Lin 是亚马逊网络服务(AWS)的软件工程师,他正在从事AWS红移。他在加州大学圣地亚哥分校完成了计算机科学博士学位。他的研究兴趣是分布式数据库管理和大查询分析。他在SIGMOD、VLDB、VLDB J和TODS等网站上发表了30多篇论文。

REFERENCES

Workload-Aware Performance Tuning for Autonomous DBMSs相关推荐

  1. 今天开始参加ORACLE PERFORMANCE TUNING 原厂培训.

    最终选择了这门原厂培训,ORACLE 10G PERFORMANCE TUNING . 一共有4个主课,一个是ORACLE 公司的成都分公司的一名职工, 一名是杭州的MM,一名是证券公司的九江老乡. ...

  2. Helpful C Tools:source、executables、debugging and performance tuning

    context comes from <expert C Programming> 目录 Tools to Examine Source Tools to Examine Executab ...

  3. Performance Tuning

    本文译自Wikipedia的Performance tuning词条,原词条中的不少链接和扩展内容非常值得一读,翻译过程中暴露了个人工程学思想和英语水平的不足,翻译后的内容也失去很多准确性和丰富性,需 ...

  4. Oracle Performance Tuning 11g2 (2-0)

    这一节的内容非常的多,我拷贝到word中之后达到了30页的大小,为了防止无法上传到博客,我分成2部分翻译.因此能看完此篇,绝对有学好oracle的潜质. 因为文章太长,所以我可能会将一些英文的内容在翻 ...

  5. Oracle® Database Performance Tuning Guide 11g Release 2 (11.2)----Configuring and Using Memory

    It's Oracle official document about oracle memory  : http://docs.oracle.com/cd/E11882_01/server.112/ ...

  6. ORACLE PERFORMANCE TUNING 原厂培训.笔记1

    系统调优步骤. 一. OS 级别. 查看操作系统是否存在问题. LINUX COMMAND : A. FREE 查看内存情况. B.vmstat 2 5  (2秒做一次采样,5 每次做5次采样) 查看 ...

  7. mysql performance tuning_MySQL Performance tuning

    1.表级锁状态 mysql> show status like 'table%'; +----------------------------+-----------+ | Variable_n ...

  8. MapReduce and Parallel DBMSs: Friends or Foes?

    一篇很赞的paper,原文地址:http://database.cs.brown.edu/papers/stonebraker-cacm2010.pdf, 另外"银河里的星星"翻译 ...

  9. Tips: Disk Performance On FreeBSD

    http://www.tagidea.com/reader/SA_Notes Disk I/O 读写性能: [9:42am] ~#diskinfo -c /dev/mfid0 /dev/mfid0 5 ...

最新文章

  1. Activex、OLE、COM、OCX、DLL之间区别、联系
  2. 聊聊flink的CsvTableSink
  3. 触发Full GC执行的情况 以及其它补充信息
  4. CG CTF WEB 签到题
  5. 自动设置图片的序号_巧用word软件中的题注功能,让你插入的对象自动排序与更新...
  6. 详解JSONObject.parseObject和JSONObject.fromObject——Web网络系列学习笔记
  7. php 下载限制,php实现限制文件下载速度的代码实例
  8. html编辑器设置为publisher,将PDF转换为Publisher的简单方法
  9. 机器人剥人皮眼看自己是机器人_高中生自己编程机器人,获世界大赛“全能奖”...
  10. R语言︱机器学习模型评价指标+(转)模型出错的四大原因及如何纠错
  11. NWT杂事:来公司只喝酒不谈工作
  12. 使用pip下载安装离线依赖包whl文件
  13. Unity 基础资源知识汇总学习
  14. 计算机综述论文能发期刊吗,计算机核心期刊哪些好发
  15. sessionStorage和localStorage
  16. UBT18:ubuntu安装阿里云盘
  17. OpenCV中稠密光流算法总结
  18. Flash在线编程构件的使用
  19. 编写程序练习直接,间接,相对,基址变址寻址
  20. CSS3:clip-path详解

热门文章

  1. js破解 微博登录参数
  2. [Hei.Captcha] Asp.Net Core 跨平台图形验证码实现
  3. MySQL修改密码修改密码策略
  4. 三分钟带你玩转直播带货套路,附带直播脚本文案资料包丨国仁网络
  5. 转:Sun Solaris 常用维护命令
  6. 离开你,才知道如此的痛
  7. 电脑为什么时不时自动关机?
  8. fixture使用详解【pytest系列 4】
  9. 华为手机怎么删除多余的屏幕页面?
  10. java计算机毕业设计食品销售网站源码+数据库+系统+lw文档+mybatis+运行部署