tom__bo’s Blog

MySQL!! MySQL!! @tom__bo

Percona LIVE 2019参加してきた (1日目)

Percona LIVE 2019に参加してきました。 初日(Tutorial Day)から Session Day 1/2の3日間です。

会社の仕事として参加したので、会社様様です。 社内でのレポートは別途書きますが、この記事では個人的に僕が参加したセッションの概要をざっくり紹介します。

おそらく発表のスライドが公開されることと思いますが、全体が非公開になるものや非公開になるページがあるかもしれないので、ここでは概要だけと会場の雰囲気や僕の感想を書こうと思います。

(メモからの校生も面倒なので、ここから丁寧語は終了です)

Tutorial day(1日目)

チュートリアルは午前と午後で3時間ずつ1つのセッションに参加できる。 午前はスピーカーがPerconaのCTO, Peter Zaitsev氏のセッションでかつ純粋にMySQL, MySQL8.0について話が聞けそうだったので、 InnoDB Architecture and Optimization for MySQL 8.0 に参加し、午後は最近注目しているOrchestratorのハンズオン Orchestrator Hands-On Tutorialに参加。

InnoDB Architecture and Optimization for MySQL 8.0

本セッション前日の朝一のセッションだったので、わりと緩やかな感じで始まった。 最初にPerter氏から8.0 production環境で使っている人ー?などなどの声掛けがあって盛り上がった。

この辺↓

まだ本セッションが始まっていないし、チュートリアルのうちの1セッションなので、全参加者のうちどれだけの人が参加していたかわからないけれど、(会場には40~50人?) 以下のような結果だった。

  • 8.0 -> 0人
  • 5.7 -> 会場ほぼ全員
  • 5.6 -> 5.7で上げた人の7割くらい
  • 5.5 -> 2人
  • 5.1 -> 1人

5.5を聞く前に"... and this is zombie zone. but, "的なことを挟んだのでみんな怖くなって下げたでしょって思っている...
それにしても8.0, GAが出て1年, 8.0が公開されてから2年くらい立つけど誰も手が上がらなかったのはおもしろい。実際最近の8.0.16でCHECK制約入ったように、大きな機能追加がほのめかされていたのもあるけど、実際は最初の挙手のタイミングを逃した人も多そう。MySQLのコンサルとかプラットフォーム提供を商売にしている人が参加しているカンファレンスなのと、このカンファレンスに慣れた大御所はTutorial Dayから参加しないか,他の部屋で公演をしているようである。

本題はPerformance Optimizationとは何かを

  • Make Query Run Faster
  • Improve Efficiency
  • Achieve Scalability

の3つの観点に分けて、大まかな目的を整理し、さらにOptimizationの対象を

  • Hardware/Infrastructure
  • OS
  • MySQL Setting
  • Query
  • Schema

と分けてそれぞれについて深掘りしていった。 実際にはHardwareの中でもCPU, Memory, ...などと分けてさらにCPUに対してクロック数が上がるとはどういうことか、コア数が上がるとはどういうことか, コア数の増加に対してInnoDBのパフォーマンスはどのように変化するかなどの説明があった。
基本的には5.7から8.0でどのようにパフォーマンスが向上したかをPMM(Percona Monitoring Manager)のグラフをもとに紹介していった。

ここで面白かったのが, Hardwareの基準としてAWSインスタンスタイプをベースに説明が進んだことだった。Perconaでサポートしている顧客はAWSが前提のことが多いのかもしれない。

その後もNUMAノードの設定をどうすべきか、swapが発生した場合のどのくらい性能が落ちるのかなどを説明していったが、だいたいPercona Blogで説明されている内容が多いように思えたし、発表中にもリンクを紹介していた。

この辺のやつ -> https://www.percona.com/blog/tag/benchmarks/

で、これらを踏まえてMySQLのconfigで考慮すべき項目が整理された。 (冒頭に書いた理由で詳細は省略。整理されていてわかりやすいが、普段からMySQL触ってて8.0の新機能を知ってる人には目新しいものはほとんどないと思う)

全体としてとてもわかり易く、発表も丁寧だったので、僕自身の理解度が異常に高かった。 学生の頃に国際学会に参加した経験からすると、この違いはめちゃくちゃ嬉しくて、これは僕の成長やばくない??となったけど、単に内容が簡単だったのとPeter氏の発表がめちゃくちゃ上手かっただけと知ることになるw

ネイティブの熱くなった早口トークはかなり厳しい。。。

Orchestrator Hands-On Tutorial

Booking.comやVitess, Githubで運用に使われているMySQLのHA構成ツールのチュートリアル

完全に初心者を対象としていて、最初の挙手アンケートではMHAからの移行を考えている人がほとんどだった。チューターもMHAは4年前から開発とまってるからそろそろ考えないとだよね、といってメリットの説明とかは特に説明せずにサクサク進んでいった。

AWSのec2インスタンスが4台ずつ提供されていて、ある程度設定されているMySQL4台でOrchestratorを導入するというチュートリアル。 基本的にコピペで進むんだけど、アクシデントが続出して、かつ参加者の勘違いにmitaniさんが巻き込まれていて面白かった。

内容は単純で、MySQLレプリケーション, ACLを設定して、Orchestratorのconfigファイルを設置、その後Orchestratorを起動してFailover(Takeover)を試して終了。Orchestratorをドキュメントに沿って試している僕としてはまあそうだね、といった感じだった。

このチュートリアルはGTIDを前提とせずOrchestratorの目玉機能の1つであるPSEUDO GTIDの発行によるレプリケーション構成の管理を解説していて、GTIDを使っていない多段構成のreplicationクラスタをどのように管理しているかの説明があって、それが参考になった。(ドキュメント読めばあるかも。僕は非GTIDでOrchestratorを使わなくてよいのではーと思っている)

様子

初日にテンション上がりまくっていたつもりが、時差ボケと長時間フライトに疲れてそうでもない様子 (音小さいです)

www.youtube.com