本周任务
编译opengauss 和 postgresql
- openGauss是支持SQL2003标准语法,支持主备部署的高可用关系型数据库。其具有使用强化学习方法实现数据库参数自动调优的特性,即xtuner特性。
- postgresql是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。
- 本项目的最终目标是讲xtuner特性迁移到postgresql上。
06-29
Centos虚拟机配置
- 100G硬盘
- 设置网络
- 设置GUI
- 设置基础开发环境
- 安装vmware tools
生成pubkeys
- ssh-keygen -t rsa -C “xxx@xxx”
解压tar.gz
- tar -xvf filename
openGauss入门
- https://gitee.com/opengauss/openGauss-server
- https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.0/openGauss-third_party_binarylibs.tar.gz 解压后重命名为binarylibs
- sudo yum install centos-release-scl
- sudo yum install devtoolset-7-gcc*
- scl enable devtoolset-7 bash
解决configure failed的问题
06-30
解决configure failed的问题
- sudo yum install flex bison
- sudo yum install libaio-devel
- sudo yum install ncurses-devel
- sudo yum install glibc-devel
- sudo yum install patch
- sudo yum install lsb
- sudo yum install readline-devel
yum 安装指定版本
- yum list | grep mariadb
向公司申请硬件资源,Y9000电脑一台
文档
- https://opengauss.org/zh/docs/2.0.1/docs/Quickstart/Quickstart.html 官方文档,编译指导
- https://www.modb.pro/db/27588 一篇比较详细的博客
闪退与重启的问题
- https://opengauss.org/zh/docs/2.0.1/docs/Compilationguide/FAQ.html
GitWeb使用
- 直接git clone ‘URL’即可
postgresql安装与编译
- https://blog.csdn.net/sybmv/article/details/51209950 安装Makemaker, yum install perl-ExtUtils-MakeMaker
- yum install perl-ExtUtils-Embed
- yum install zlib-devel
- 编译方法目前参考的是这一篇博客:https://zhuanlan.zhihu.com/p/356300088
- 目前我在虚拟机中尝试的方法是从GitWeb上clone的源码,似乎也可以从官网上下载源码。
07-01
今日目标
- 如果新设备到场则争取完成openGauss的编译,未到场则先阅读文档与源码。
xtuner源码阅读
这里我比较关注的是,如何与数据库进行连接、如何进行特征表示建立数据集、如何进行性能评价等。
- main函数入口,调用procedure_main函数,传入mode, db_info, config三个参数
- mode为args输入,分为train, tune, recommend三种;db_info同为args输入,包含数据库相关信息与IP、端口;config由文件xtuner.conf提供;此外还有一些正确性检查。
- 若干参数与变量解释:
- knobs
- xtuner调用模块如下:
- benchmark模块:benchmark运行环境,进行性能检查,得到一个instance
- db_agent模块:封装好了一个DB_Agent类,通过db_info中的参数构造。
- recommend模块中的recommend_knobs函数。(理解knobs的作用和意义是关键)
- recorder模块:
- db_env模块:
- procedure_main函数为xtuner部分主函数。该函数首先会进行如下预处理过程:
- 根据db_info生成db_agent
- 在db_agent中设置scenario,即workload工作场景
- 设置config[‘tune_strategy’],有rl和gop两种类型。
- recommend_knobs,或根据config给出设置(默认为前者)
- 训练过程
- train: rl_model函数,传入mode, Env, config,其中Env为一个DB_Env类实例
- 算法及相关资料
- policy gradient: https://zhuanlan.zhihu.com/p/21725498
- 强化学习:https://zhuanlan.zhihu.com/p/150451604
- ddpg算法:https://zhuanlan.zhihu.com/p/111257402
07-02
尝试安装并使用postgresql
- 三篇指导博客相互印证:
- https://zhuanlan.zhihu.com/p/356300088
- https://www.cnblogs.com/zengkefu/p/5666932.html
- https://www.cnblogs.com/vicowong/p/10912558.html
- 分为编译安装、配置服务、配置环境变量、数据库初始化与启动几个步骤。需要额外引入非root系统账号。