第一周实习记录

Posted by DAC on June 29, 2021

本周任务

编译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系统账号。