Like any large software system, a full-fledged DBMS offers an overwhelming amount of configuration knobs. These range from static initialisation parameters like buffer sizes, degree of concurrency, or level of replication to complex runtime decisions like creating a secondary index on a particular column or reorganising the physical layout of the store. To simplify the configuration, industry grade DBMSs are usually shipped with various advisory tools, that provide recommendations for given workloads and machines. However, reality shows that the actual configuration, tuning, and maintenance is usually still done by a human administrator, relying on intuition and experience. Recent work on deep reinforcement learning has shown very promising results in solving problems, that require such a sense of intuition. For instance, it has been applied very successfully in learning how to play complicated games with enormous search spaces. Motivated by these achievements, in this work we explore how deep reinforcement learning can be used to administer a DBMS. First, we will describe how deep reinforcement learning can be used to automatically tune an arbitrary software system like a DBMS by defining a problem environment. Second, we showcase our concept of NoDBA at the concrete example of index selection and evaluate how well it recommends indexes for given workloads.
翻译:与任何大型软件系统一样,一个成熟的DBMS系统提供大量的配置按钮。从静态初始化参数,如缓冲大小、调值程度或复制程度等静态初始化参数到复杂的运行时间决定,如在特定栏目上创建二级索引或重组仓库的物理布局。为了简化配置,行业级DBMS系统通常用各种咨询工具装运,为特定工作量和机器提供建议。然而,现实表明,实际配置、调控和维护通常仍由人类管理员根据直觉和经验进行。最近进行的深层强化学习工作在解决问题方面显示出非常有希望的结果,需要这种直觉感。例如,在学习如何在巨大的搜索空间上玩复杂游戏方面非常成功。受这些成就的驱动,我们探索如何利用深度强化学习来管理 DBMS。首先,我们将描述如何利用深度强化学习来自动调整像DBMS系统这样的任意软件系统,通过界定问题环境来界定问题环境。第二,我们展示了我们关于诺DBA系统的概念,在索引选择工作量的具体例子中,并评估它是如何被推荐的。