レプリケーション
今回のバージョンでは、レプリケーションが大きく進化している。
まず、MySQL 5.7では、レプリケーションのトポロジの限界を打ち破った!!MySQL 5.6までのバージョンでは、スレーブはひとつのマスターしか持つことができないという制約があったのだが、それがなくなった。すなわち、スレーブが複数のマスターからデータを連続的に複製することができるようになったのである。それにより、これまで以上に様々なトポロジを取ることが可能になった。例えば複数のMySQLサーバーインスタンスのデータを集約し、一括してバックアップを取ったり、シャーディングをおまとめしたり、という具合である。
もうひとつオススメしたい新機能は、マルチスレッドスレーブの進化である。MySQLレプリケーションのスレーブは、皆さんよくご存知のとおり、IOスレッドとSQLスレッドという2種類のスレッドにより処理されている。そういう意味では元からマルチスレッドじゃないか!!というツッコミもあるだろう。だが、MySQL 5.5までのバージョンでは、それぞれのスレッドは一つしか作成されなかった。これは、複数のスレッドで同時にガンガン更新を行うマスターに比べて、スレーブが遅延する原因となってしまっていたのである。そこで、MySQL 5.6でSQLスレッドを複数化する機能が加わったのだが、この時点ではまだ複数化の単位がデータベースごとという大きな制約があり、使い物にはならなかった。MySQL 5.7ではその制約がなくなり、例え同一データベース内のテーブルを更新する場合であっても、複数のスレッドによって処理することができるようになったのである。
セキュリティ
先日の、MySQL 8.0.0 DMRについて紹介した記事では、ロールが追加されたことを紹介した。皆さんに色濃く印象づけて覚えて頂くために、えの素をネタに挟んで解説したが、ロールは極めて便利な機能であると言える。MySQL 5.7では、そこまで抜本的な機能追加はないものの、セキュリティを向上させるための嬉しい機能が多数追加されている。例えばSSL環境のセットアップの簡略化などである。
マルチスレッドスレーブの詳細 by 瀬島さん
ユーザー会では、言わずと知れたInnoDB大好きMySQLerの瀬島さんによる、マルチスレッドスレーブのディープな解説が行われた。バイナリログとInnoDBの2PCなどについて詳しく解説されており、詳細を知りたい人はぜひ見て欲しい。
0 件のコメント:
コメントを投稿