当前位置: 首页 > 专利查询>南京大学专利>正文

一种面向键值对存储引擎的参数自动调优方法、装置、系统制造方法及图纸

技术编号:21891709 阅读:19 留言:0更新日期:2019-08-17 14:26
本发明专利技术公开了一种面向键值对存储引擎的参数自动调优方法、装置、系统,能够解决键值对存储系统中因工作负载发生变化导致默认的参数配置引起系统性能下降的问题。所述方法包括:依据键值对存储引擎中的参数配置方式,对参数进行预处理,并构建Restful服务化框架;构建基于模型的Deep PILCO强化学习模型;运行上层数据库系统的工作负载,生成数据,训练模型;载入模型,针对输入的工作负载,输出策略产生的参数配置,应用到底层键值对存储引擎中。本发明专利技术应用于以日志结构合并树作为存储引擎的数据库系统、工作负载经常变化的场景中。

An Automatic Parameter Tuning Method, Device and System for Key Value Pair Storage Engine

【技术实现步骤摘要】
一种面向键值对存储引擎的参数自动调优方法、装置、系统
本专利技术属于存储
,具体涉及一种面向键值对存储引擎的参数自动调优方法。
技术介绍
随着云计算和大数据技术的不断发展和普及,数据存储量呈现出爆炸式增长的趋势。根据IDC在2019年的预测,全球在2019-2023年预测期内的存储机容量将翻倍,增长到11.7ZB,大规模存储的需求日益强烈。随着大规模分布式存储技术的发展,对传统关系型数据库的改造研究成为热点,出现了诸多以RocksDB作为存储引擎的新型数据库系统。RocksDB是一种基于日志结构合并树的键值对系统,它具有化随机I/O为顺序I/O的优点,大大优化了数据写入的性能,在提高吞吐量和减少时延方面方面有着巨大的优势,是当前大规模数据存储的首选产品。以RocksDB为存储引擎的系统目前主要有关系型数据库MySQL、新型数据库TiDB、分布式文件系统Ceph以及区块链系统以太坊Parity分支等,如此大范围的应用说明在底层优化键值对存储引擎具有很高的直接经济效益。然而,在动态变化的工作负载场景中,默认的参数配置不能发挥最佳的存储性能,对这些参数进行调优是一个挑战。RocksDB中的存储参数众多,它们之间的依赖关系复杂,即使同一个参数在不同的工作负载下也有不同的性能表现,并且这些参数在复杂多变的工作负载下缺乏自适应性,在极端情况下会导致写停止等严重的性能问题。这些存在的问题阻碍了键值对存储引擎的进一步应用。
技术实现思路
专利技术目的:针对现有技术的缺陷与不足,本专利技术提出一种面向键值对存储引擎的参数自动调优方法、装置和系统,能够有效地应对在默认参数配置下,由于工作负载发生变化导致系统性能下降的问题,提升整个键值对存储引擎的环境自适应能力。技术方案:根据本专利技术的第一方面,提供一种面向键值对存储引擎的参数自动调优方法,所述方法包括以下步骤:依据键值对存储引擎中的参数配置方式,对参数进行预处理,并构建Restful服务化框架;构建基于模型的DeepPILCO强化学习模型;运行上层数据库系统的工作负载,生成数据,训练模型;载入模型,针对输入的工作负载,输出策略产生的参数配置,应用到底层键值对存储引擎中。进一步地,所述构建基于模型的DeepPILCO强化学习模型包括:以系统状态和数据库状态作为强化学习的环境输入,以系统吞吐量作为奖励,以调节的参数作为动作;构建策略模型,用来选择动作,策略包括随机策略、线性策略和神经网络策略,其中随机策略是在待调参数的动作空间中随机选择一个作为动作,线性策略是在状态空间中通过一个线性函数映射到动作空间,神经网络策略是基于多层感知器将状态空间的值映射到动作空间;构建动力学模型,用来学习数据库的状态转移模型,所述动力学模型是一个BNN神经网络,其数据输入方法包括数据缓冲区和粒子采样;构建训练流程,设置模型训练参数和损失函数。进一步地,所述运行上层数据库系统的工作负载,生成数据,训练模型包括:在数据库上层生成多种类型的工作负载,监控系统状态、数据库状态;数据库后台线程将监控到的状态数据发送至强化学习模型中,强化学习模型进行动力学和策略学习;数据库后台线程轮询动作的策略结果,并在数据库的键值对引擎中进行实际的参数设置;数据库后台线程发送执行策略后的奖励至强化学习模型中,模型同时记录数据。根据本专利技术的第二方面,提供一种数据处理装置,所述装置包括一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现如本专利技术第一方面所述的面向键值对存储引擎的参数自动调优方法。根据本专利技术的第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令被处理器执行时实现如本专利技术第一方面所述的面向键值对存储引擎的参数自动调优方法。根据本专利技术的第四方面,提供一种存储系统,所述存储系统作为供应用直接使用的第一存储系统,包括处理器和接口,所述处理器和所述接口通信,所述处理器用于执行如的本专利技术第一方面所述的面向键值对存储引擎的参数自动调优方法。有益效果:本专利技术实现了对键值对存储引擎的参数的自动调优,能够解决键值对存储系统中因工作负载发生变化导致默认的参数配置引起系统性能下降的问题,可应用于以日志结构合并树作为存储引擎的数据库系统、工作负载经常变化的场景中。附图说明图1是根据本专利技术实施例的参数自动调优方法流程示意图;图2是根据本专利技术实施例的存储参数预处理示意图;图3是根据本专利技术实施例的数据库客户端-模型服务器端交互时序示意图;图4是根据本专利技术实施例的实现算法细节示意图;图5是根据本专利技术实施例的训练流程示意图。具体实施方式下面结合附图对本专利技术的技术方案做进一步的详细说明。在一个实施例中,提供了一种应用于键值对存储引擎的运行时参数自动调优方法,可以应用在基于日志结构合并树的存储引擎中。例如,可以应用基于RocksDB封装的存储系统中,包括并不限于RocksDB、MyRocks等。存储系统中的性能表现很大程度上决定于工作负载的类型。RocksDB键值对存储引擎使用的日志结构合并树是一种面向写优化的结构,这种结构通过在内存和磁盘中分层存储数据,累积一定量的数据后进行批量处理,在牺牲读性能的条件下实现了顺序写I/O。因此,提升整个键值对存储引擎的环境自适应能力包含两个方面,第一个方面是在写数据的场景下,通过配置参数控制写数据的速率和后台刷盘、合并操作,避免引起写停止等性能下降问题;第二个方面在于读写切换时,通过配置参数倾向于读或写进行针对性优化,避免在主要读的场景中因默认配置导致不能发挥最佳性能的问题。图1所示为根据本专利技术实施例的系统总体流程示意图。整个系统流程主要由模型和数据两大部分组成。其中模型部分包括预处理和模型拟合两个过程,预处理过程包括参数预处理和模型构建两块内容,模型拟合过程包括数据输入、模型拟合、动作输出三个方面,这三个方面相互交互,通过迭代的方式获得最终的结果。其中数据部分包括环境数据的采集和工作负载输入两个过程,环境数据的采集用作模型的输入,工作负载输入用来产生环境数据。所述方法包括以下步骤:步骤S10,依据键值对存储引擎中的参数配置方式,对参数进行预处理,并构建Restful服务化框架。具体而言,对参数的处理过程包括:收集键值对存储引擎中的分别通过SetDBOption、SetOption和ReadOption配置的三类参数;然后对三类参数提取最小值、最大值和默认值,并设置调参步长,形式为<参数:write_buffer_size},类型:size_t(MB),(参数最大值,最小值、默认值、调整步长):(1,-1,64,16)>。本专利技术旨在通过强化学习模型来学习得到最优参数。强化学习有三大要素:环境、动作、奖励,在键值对存储引擎中依次对上述要素建模。数据库系统内部状态、现有参数设定和操作系统的状态,共同构成模型的环境输入。环境的输入形式是<db0,…,knob0,…,os0,…>,其中db表示为数据库的状态(如读写操作比例,当前第1层的写放大系数等),knob表示为当前系统的参数设置(如memtable的大小等),os表示操作系统的状态(如内存、CPU本文档来自技高网...

【技术保护点】
1.一种面向键值对存储引擎的参数自动调优方法,其特征在于,所述方法包括以下步骤:依据键值对存储引擎中的参数配置方式,对参数进行预处理,并构建Restful服务化框架;构建基于模型的Deep PILCO强化学习模型;运行上层数据库系统的工作负载,生成数据,训练模型;载入模型,针对输入的工作负载输出策略产生的参数配置,应用到底层键值对存储引擎中。

【技术特征摘要】
1.一种面向键值对存储引擎的参数自动调优方法,其特征在于,所述方法包括以下步骤:依据键值对存储引擎中的参数配置方式,对参数进行预处理,并构建Restful服务化框架;构建基于模型的DeepPILCO强化学习模型;运行上层数据库系统的工作负载,生成数据,训练模型;载入模型,针对输入的工作负载输出策略产生的参数配置,应用到底层键值对存储引擎中。2.根据权利要求1所述的一种面向键值对存储引擎的参数自动调优方法,其特征在于,所述依据键值对存储引擎中的参数配置方式,对参数进行预处理包括:收集键值对存储引擎中分别通过SetDBOption、SetOption和ReadOption配置的三类参数;对三类参数提取最小值、最大值和默认值,并设置调参步长。3.根据权利要求1所述的一种面向键值对存储引擎的参数自动调优方法,其特征在于,所述Restful服务化框架为为客户端-服务器端模式,客户端为存储引擎,服务器端为自动调参模块,客户端使用后台线程保持与自动调参模块的交互,完成向服务器发送和请求数据的任务;服务器端进行模型训练和提供基于RestfulAPI的模型在线服务。4.根据权利要求1所述的一种面向键值对存储引擎的参数自动调优方法,其特征在于,所述构建基于模型的DeepPILCO强化学习模型包括:以系统状态和数据库状态作为强化学习的环境输入,以系统吞吐量作为奖励,以调节的参数作为动作;构建策略模型,用来选择动作,策略包括随机策略、线性策略和神经网络策略,其中随机策略是在待调参数的动作空间中随机选择一个作为动作,线性策略是在状态空间中通过一个线性函数映射到动作空间,神经网络策略是基于多层感知器将状态空间的值映射到动作空间;构建动力学模型,用来学习数据库的状态转移模型,所述动力学模型是一个BNN神经网络,其数据输入方法包括数据缓冲区和粒子采样;构建训练流程,设置模型训练参数和损失函数。5.根据权利要求4所述的一种面向键值对存储引擎的参数自动调优方法,其特征在于,所述以系统吞吐量作...

【专利技术属性】
技术研发人员:骆克云唐斌叶保留陆桑璐王剑钱琳
申请(专利权)人:南京大学国网浙江省电力有限公司南瑞集团有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1