データベース室の構成

北川健太郎氏(以下、北川):データベース室の発表をします。MySQL1チームでマネージャーをしています。北川といいます。よろしくお願いします。

データベース室ですが、先ほど説明があったとおり、IT Service Centerの下にVerda室、システム室、ネットワーク室と同様にデータベース室があります。

データベース室の中はそれぞれ担当するソリューションごとにチームが分かれていて、MySQL1チーム、MySQL2チーム、MongoDBチーム、HBaseチームというかたちで分かれています。

MySQL1チームとMySQL2チームの違いは、1チームは私が所属する組織ですが、主に日本のサービスに向けた開発者を担当するMySQLのチーム(です)。2チームはグローバルサービスを担当しているかたちで分かれています。

サポートしているDBMS

サポートしているDBMS(data base management system)としては、先ほどのチームにも出てしまっていますが、MySQL、Redis、Oracle Database、MongoDB。あとはSQL Server、HBase、CUBRIDといったデータベースをサポートしています。

データベース室の主な業務

サービスといえば必ずデータベースだったりデータストアを利用していると思います。そのサービスをすべて横断して、すべてのデータベースの運用と管理をデータベース室で行っています。

主な業務として大きく分けて3つ。コンサルティング、オペレーション、あとはリサーチ&デベロップメント。この3つに分かれていて、こちらについて説明していきます。

コンサルティング。これは主にサービス固有の問題を解決します。テーブル設計のレビューだったり、クエリレビュー。例えば開発者からテーブル設計に問題はないかとか、更新をした時にロックの競合は問題ないかとか。そういった、開発者がデータベースを使う上で不安に思うことを解決する。そういった仕事になります。

あとはオペレーション。こちらはMySQL全体に対する共通のお仕事です。DDL(Data Definition Language)の実行も我々DBA(Database Administrator)が担当しています。また、バックアップ・リカバリの管理、あとはトラブルシューティングだったりマイグレーションの作業も行っています。

3つ目として、リサーチ&デベロップメントです。こちらはMySQLのソースコードを解析したり、パッチを当てたり、新たにMySQLのストレージエンジンを開発したり、MySQLに対するより深い調査であったり。あとは、オペレーションに対する自動化の開発も進めています。新しいソリューションの調査として、今はTiDBのようなNewSQLの調査というのも進めています。

チームのメンバーとして全員がすべてできるわけではなく、やはりソースコードの解析は難しいので、それぞれロールを持って、チームのメンバーそれぞれが得意なことを進めています。

チーム間の協業として、データベース室は主にサービス開発者とのやり取りが多いです。先ほど説明したコンサルティングやオペレーションを提供しているし、リサーチ&デベロップメントも提供しています。システムチーム、Verdaチーム、ネットワークチーム、セキュリティチームとは支援を依頼して、いろいろ協業しています。

LINEのMySQLの状況

LINEのMySQLは日々増えていて、2022年11月現在ではだいたい6,000インスタンスほどMySQLが動いています。バージョンにおいては5.6が6パーセント、5.7が56パーセント、8.0が38パーセントとなっています。MySQL5.6はもうEOL(End Of Life)なので、こちらはすべてバージョンアップする予定が近々あります。

現在のチームの課題

現在のチームの課題。これはいくつかあって、先ほど説明したようにMySQLはどんどん増えていっています。そのため、オペレーションのコストが増えていたり、開発者とのコミュニケーションコストも増えています。

あとは、メンバーの限られたリソースの中でMySQLをもっと深く研究していったり、新しいソリューションの調査の時間の確保もすごく難しくなっています。

そのため(スライドの)下に書いている、コンサルティングとオペレーションとリサーチ&デベロップメント。今、それぞれだいたいどれぐらいの割合で仕事をしているかというものですが、コンサルティングで20パーセント、オペレーションで60パーセント、リサーチ&デベロップメントで20パーセントです。

なので、オペレーションのコストを下げてコンサルティングの量を増やす。あとは、リサーチ&デベロップメントを増やす。こういったことを考えています。オペレーションのコストを下げるために、オペレーションの自動化を強く進めています。

オペレーションの中でもデータベースマイグレーションはすごく大きな作業で、LINEだったらMySQLのバージョンアップ、MySQLのバージョンのEOLだったりCentOSのEOSだったり。あとはIDC(Internet Data Center)ルームの移動とか、そういったけっこうな頻度でマイグレーションが発生します。

その中で我々が(マイグレーションを)実施していましたが、開発者自身でMySQLのマイグレーションを実施できるWebツール(MUH-Prod)を開発して、こちらは10月にリリースしました。

開発者としては単純にクリックしていくだけでマイグレーションが完了する。そういったツールになっています。こういったかたちで、我々の今までのナレッジをツールに落とし込んで開発者に提供することをより強く進めています。

現在の取り組み

現在の取り組みとしては、「SafeDDL」というものも開発していて、これを開発者に提供予定です。現在、DDL作業はDBAが実施しています。DDLを実施すると、トラフィックによってはロック競合やロックの待ちでサービス障害になることもあるので、「安全にDDLが実施できる」コンセプトをもとに開発しています。

あとはアラートの一次対応のBot。こちらはたとえば、レプリケーションの遅延が発生した時に、アラートの内容を分析して、現在のMySQLの状態をチェック。そのまま自動復旧だったり解決案をBotが提供するツールを考えています。

それと、ヤフーとLINEでMySQLストレージエンジンの共同研究も行われていて、この次(のセッション)に大塚さんという方が登場するんですけれど、その方はストレージエンジンの開発に向けていろいろ動いています。こちらはTech-Verseでも発表があるので、興味がある方はぜひ見てみてください。ではありがとうございました。