tom__bo’s Blog

MySQL!! MySQL!! @tom__bo

MySQL Diversを募集します

MySQLにより詳しくなるために、2週間に1回程度で少人数の勉強会を開催したいと思います。
なんとなくMySQL Diversと名付けてみました。
興味がある方は twitter:@tom__boにDMやメンションをお願いします。

目的

  • MySQLの内部を理解するためにソースコードを読んで、そこで得られた知見を共有・相談する
  • 他のDBMSとの比較や最近のDBMS関連の研究について議論する

基本的には自分の気になる部分を読んでわかったことを発表し、わからない部分について相談するといった形になると良いと思います。 また、そもそもRDBMSオプティマイザーがする最適化として基本的なものに何があるのか、MVCCと排他ロックを使ってどのように整合性を担保しているのかといった知識を先に調べる必要があるかもしれません。そういった内容の調査や発表もできると良さそうです。

参加条件

  1. 独力でもソースコードを読む予定の人
  2. 毎回何かしらの調査内容について発表できること

目安として推奨条件を書いてみます

  1. MySQLデバッグビルドができること
  2. 1年程度以上のMySQL運用経験

2についてはB+ tree, Online DDL, Metadata lock, Optimizer Traceとかを聞いて何のことだか分かるくらいの知識はあるほうが良いかなと思います。

一方で、僕のMySQL運用経験は2年程度で、コードレベルの理解は殆ど無いので、参加して質問を投げられても答えられることはまずありません。 なので、どっちにしろ自分で読むけど相談したり雑談できる仲間がいると良いよねという程度と考えてください。

最近僕がソースコードを読んだり、step実行したりして調査・実験したものだと以下があります。

tombo2.hatenablog.com

tombo2.hatenablog.com

tombo2.hatenablog.com

今特に気になっているものとしては、以下があります。 誰か助けてくださいw

  • Table lock, Metadata Lockの仕組み
  • Optimizerの最適化・コスト計算と実行計画の決定方法
  • Buffer pool, dirty pageの管理方法、Adaptive flushing
  • InnoDB内部のロック
  • Online DDL
  • MVCCの実現方法
  • MTSの実装と限界
  • 8.0以降のibdファイルの中身
  • Redo, Undoログとrecovery

会の運営について

人が集まるかは不明ですが、最大でも4~5人程度でクローズドな勉強会にしたいと思っています。 少人数・クローズドな勉強会にしたい理由は以下です

  • 詳細な議論まで徹底的にしたい
  • パブリックな会では参加できない人に参加してほしい(そういった人が参加してくれるかは不明)
  • 実運用と紐付いた状況についても話したい
    • ある程度状況を話さないと現象を説明できないけど、技術的な部分を切りだしたとしても公で話せないということもありそう(もちろん社外秘にあたる内容はクローズドでも無理ですが)

上記の理由から少人数かつ発表内容はプライベートにする前提の会にしたいと思っています。 (センシティブでない内容については当然自由です)

開催日時・場所・期間

  • 頻度: 隔週(予定)
  • 日時: 土日のどこかで1~3時間程度を予定(参加者の都合に合わせて調整)
  • 場所: オンライン開催 via 無料で多人数通話・画面共有ができるなにか (現状Google Meetが良さそう)
  • 期間: とりあえず2年くらい?

初回について

Kickoffを6/28日(日)に行う予定です。
今の所、 @lhfukamachiさん が参加してくれそうです。
これ以降でも随時募集するつもりなので、興味があればお願いします。