この連載はOSSコンソーシアム データベース部会のメンバーがオープンソースデータベースの毎月の出来事をお伝えしています。
Project Tsurugi(劔)の経過報告会が開催
前回 に開催をお知らせした、国産の新DBエンジンを開発するプロジェクト Project Tsurugi(劔)のユーザー会兼経過報告会が10月11日に開催されました 。
Project Tsurugiは、メニーコア・大容量メモリの現在のハードウェア環境に合致したモダンアーキテクチャなRDBをOSSでつくるプロジェクトです。また複数の大学の研究者も参画しており、OLTPやOLAPの高速化、メニーコアを前提とした高速インデックスなどの研究も同時並行で行われています。さらに、Tsurugiの特徴を活かすプロトタイプアプリケーションの開発も行われています。報告会ではこれら同時並行で進んでいる各種サブプロジェクトの状況が一同に報告されました。
前回のこの連載で「外部インタフェースはPostgreSQL互換になるようです」と書きましたが、これはちょっと正しい書き方ではありませんでした。TsurugiはPostgreSQLと互換なDBMSとして使えるわけではありませんので注意が必要です。Tsurugiを操作するインタフェースの1つとしてPostgreSQLを使うことができます。そしてPostgreSQLが標準で持っている機能であるFDW(Foreign Data Wrapper)を使ってTsurugiのDBエンジンに接続します。したがって、ユーザが操作する部分はたしかにPostgreSQLそのものです。
しかし、DBエンジンの動作ではトランザクションの扱いの違いなどで、挙動が異なる部分があり、すべてがPostgreSQLと完全に互換もののとして使えるわけではありません。また、Tsurugiの全ての特徴をPostgreSQLのFDWから使えるわけでは無いため、超高性能なOLTPを実現するには、Tsurugi独自のAPI(Tsurugi Direct)を使用する必要があります。ただ、これらは併存して使えるので、用途によって使い分けることはできるでしょう。
Project Tsurugiは、国立研究開発法人新エネルギー・産業技術総合開発機構(NEDO)のプロジェクトとして、2023年2月までを期間として進行中です。そして、プロジェクトが終了する2023年2月の時点で成果が公開されることになっています。TsurugiのRDBの部分はOSSとして公開になります。その他の部分はどの様な公開の仕方になるのかは未確定の部分もあるようですが、一部のアプリケーションはOSS公開の範囲になりそうです。研究成果については論文としての発表だけになるのか、一部は実装までされるのかは今後の状況次第となる面もあるようです。
なお、以前の報告会で話されていた、α版の段階で2022年に公開予定については、今回の報告会では特に触れられていませんでした。プロジェクト終了が2022年度のほぼ年度末ですので、このタイミングまで待つことになるのかもしれません。
今回の報告会の発表資料はOSSコンソーシアム分散コンピューティング部会のWebページにて公開されています 。2時間半で12セッションの超高レベルで高密度な発表が行われました。発表に着いていくのがたいへんな報告会でしたので、筆者もこの公開資料でまだ復習中です。もしかしたら今回も一部に正しくない記述があるかもしれませんがご容赦ください。
[MySQL]2021年10月の主な出来事
2021年10月のMySQLの製品リリースは、MySQLサーバー8.0.27、5.7.36の各マイナーバージョンをはじめ、MySQL NDB Clusterや各種Connector, MySQL Shell, MySQL Workbenchなどのクライアントプログラムの商用版およびコミュニティ版のほぼ全ての製品のマイナーバージョンアップ が行われました。MySQLのマネージドサービスMySQL Database Serviceのイメージも8.0.27にアップデート されています。原稿作成時点ではHeatWaveのアップデートは行われていません。
MySQL InnoDB ClusterSet ―災害対策構成を簡単に実現
2021年10月にリリースされたMySQL 8.0.27およびMySQL Shell 8.0.27では、MySQL InnoDB ClusterSet が新機能として追加されています。MySQL InnoDB ClusterSetは、MySQLのクラスタリング機能であるMySQL InnoDB Cluster を複数のデータセンターで運用し、クラスター間を非同期レプリケーションで連携させることによってデータベースの災害対策(DR)構成を実現する機能です。
MySQL Shellからのコマンドだけで非同期レプリケーションの構成を構築できるMySQL ReplicaSet やクラスタリング機能のInnoDB Clusterと同様に、InnoDB ClusterSetもMySQL Shellからのコマンドだけで災害対策構成の構築が可能です。
MySQLプロトコルに対応したソフトウェアルーターであるMySQL Routerの設定もMySQL Shellから可能 なため、複雑になりがちな災害対策構成の運用負荷を抑えることができます。
図1 MySQL InnoDB Clusterの構成概要
InnoDB Clusterによってデータセンター内でのノード障害時にはトランザクションを損失することなく自動フェールオーバーが行われます。災害などによってデータセンターに障害が発生した場合、現在のInnoDB ClusterSetでは自動フェールオーバーは行われないため、プライマリー・クラスターとよばれる更新処理を担当するクラスターの強制的な切り替え を行います。なおデータセンター間では非同期レプリケーションが利用されているため、場合によっては更新トランザクションが損失する可能性があります。
データセンター規模の障害が発生した場合でもトランザクションの損失が許容できないようなシステムでの対策としては、InnoDB Clusterの各ノードを別のデータセンターに配置する構成が考えられます。InnoDB Clusterではコミットごとに各メンバーノードとトランザクションの「合意形成」を行うために、この構成ではデータセンター間での通信によるレイテンシーが更新処理へのオーバーヘッドとなる点に注意が必要です。InnoDB ClusterSetでコミット時の通信がデータセンター内のみのためオーバーヘッドは限定的です。
図2 InnoDB Clusterが利用しているグローバル・レプリケーションの合意形成プロトコル
(MySQL 8.0リファレンスマニュアルより )
MySQL 8.0.27時点でのInnoDB ClusterSetのおもな制限事項 は以下の通りです。
スプリット・ブレイン・シンドロームへの対策機能は未実装
非同期レプリケーションのみサポート
準同期レプリケーションは非サポート
データセンター間での自動でのフェールオーバー未実装
InnoDB Clusterのマルチ・プライマリー・モードは未サポート
MySQL 8.0.27ではInnoDB ClusterSet以外にも、多要素認証(MFA)サポートが追加 され、コミュニティ版では複数パスワードの利用が可能になっています。商用版のEnterprise Editionでは、指紋認証デバイスやセキュリティ・キーなどFIDO(Fast IDentity Online)対応デバイスを利用可能するプラグイン が提供されます。なおクライアントプログラムにはコミュニティ版でもFIDOデバイスが利用可能なプラグインが提供されています。
レプリケーションの機能拡張としては、レプリカサーバーでのマルチスレッドがデフォルト(スレッド数4) になったほか、レプリケーションの非同期接続フェールオーバー が拡張されています。
[PostgreSQL]2021年10月の主な出来事
前回「PostgreSQL 14はリリースされた?」と思わせぶりなタイトルを付けてしまったPostgreSQL 14ですが、めでたく9月30日に予定通りの正式リリースとなりました。9月と10月に開催されたオープンソースカンファレンス(OSC)ではこの新バージョンを取り上げたセッションが行われていました。また、新バージョン情報以外の関連セッションも合わせて紹介します。
「PostgreSQL 14がやってくる」
これは9月に開催されたOSC 2021 Online/Hiroshimaでの日本PostgreSQLユーザー会(JPUG)の発表 です。発表者はこの連載でも紹介させていただいたQiitaの「PostgreSQL 14がやってくる」 の執筆者である原田登志さんです。Qiitaの記事と同様にベータ版を使った動作検証の結果を中心にして、PostgreSQL 14の新機能や改善点を説明されています。発表の様子はYouTubeのOSPN.jpチャンネルでアーカイブ配信されています 。
「PostgreSQL 14 最新情報解説 ~PostgreSQLスペシャリストがPostgreSQLの概要から最新バージョンまで解説~」
10月22日〜23日に開催された通算“ 約” 200回記念の「OSC 2021 Online/Fall」でのSRA OSS 高塚遥さんの発表です。こちらもPostgreSQL 14の代表的な新機能をいくつかピックアップして解説されています。上記の原田さんとはあまりかぶらずに、次の点を取り上げてくれています。
Btreeインデックス肥大化防止
高速なデータ圧縮格納
ロジカルレプリケーションのストリーミング対応
グラフデータに使える再帰問い合わせ新機能
参照専用システムロール
発表では特徴を示すだけでは無くて、実際に稼働させて効果を測定した結果を報告されています。Btreeインデックスの肥大化を例にすると、PostgreSQL 13ではautovacuumオフだと2倍以上に肥大化するケースにおいて、PostgreSQL 14では同じくautovacuumオフでも肥大化を抑えている様子がよくわかります。
このセッションの発表資料ですが、本記事執筆時点ではOSCのWebサイトには載っていないようですが、SRA OSSのセミナー資料のページには掲載されています 。
その他のPostgreSQLセッション
新しいメジャーバージョンのリリース直後ですので、どうしてもそちらへの関心が高くなりますが、その他にもPostgreSQLの有益な、または興味深い挑戦の発表もありました。「 OSC 2021 Online/Fall」では会期の2日間に、全部で4つのPostgreSQLの発表がありました。
「PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能」 は、DBの安定運用には欠かせないモニタリング(監視)についての技術情報の発表です。PostgreSQLが持っているモニタリングのための機能、pg_stat_database、pg_stat_activity、pg_stat_statement、pg_locksなどがひととおり説明されました。後半はNTTデータが開発して新バージョンのPostgreSQL 14に取り込まれているモニタリングのための新機能が紹介されました。
「PostgreSQLをK8s上で活用するためのOperator入門」 では、Kubernetes(k8s)上でPostgreSQLを稼働させるのに有益なOperatorの総まとめ的なレクチャーでした。PostgreSQL用のOperatorが複数あることは知られていますが、それらの特徴や違いについてよく整理して発表していただいたので、これから選択する際には有益な情報源となります。
「PostgreSQLとArrowとGPUで楽々大量データ処理」 は、GPUを使ったPostgreSQLの処理を高速化するPG-Stromを開発されているHeteroDB海外さんによる発表です。このPG-Stromは最近のOSCでは常連のセッションで、これだけでも技術好きには興味深いものですが、今回はさらに列指向データストアであるApache Arrowを組み合わせたチャレンジを発表されました。
今回記事の冒頭でも紹介したProject Tsurugiもそうですが、DBを劇的に速くする工夫は、実はまだまだ可能性がたくさんあることがよくわかりますし、実際に取り組まれている方の発表は良い刺激を受ける機会になります。
OSCの発表は、資料や発表動画が事後に公開されるものがたくさんあります。ただ、今回紹介したOSC 2021 Online/Fallは開催から日数も浅いので、記事執筆時点では未掲載のセッションが多数あります。興味を持たれたセッションがあれば、ときどき「OSC 2021 Online/Fall」のWebサイト をチェックされると良いでしょう。
2021年11月以降開催予定のセミナーやイベント、ユーザ会の活動
日程
2021年11月12日(金)10:00~18:00
場所
AP日本橋(東京都) (東京駅より徒歩5分)※会場での通常開催です。インターネット配信の予定はありません。
内容
ユーザ会(JPUG)主催の、PostgreSQLの総合カンファレンスです。午前の基調講演と午後の12セッションで構成され、それらのプログラムが公開されています。チケットは現在販売中です(早期割引は終了しています) 。また、検討中だった懇親会ですが今年も開催は見送りとなった様です。懇親会も含めての完全な開催は来年を楽しみにしましょう。
主催
日本PostgreSQLユーザ会
日程
2021年11月9日(火) ~12日(金)
場所
オンライン(Zoom)
内容
本イベントでは、既存のITシステムのModernizationを実現された事例、データの利活用によりビジネス・イノベーションやDXを実現された事例、さらには最新のクラウドテクノロジーを活用してビジネスの成長を実現された事例などを紹介いたします。
MySQL関連の事例講演として、11月9日にはトヨタ自動車様の先進モビリティ・サービスに関するセッションで「MySQL HeatWaveでの車両データ解析の検証結果」をご紹介いただきます。
また11月11日には「Amazon AuroraからMySQL Database Serviceへの移行」事例として株式会社りらく様がご登壇。さらに最終日には「基幹データベースとしてAutonomous Database & 分析基盤としてMySQL HeatWave」を採用された株式会社ファンコミュニケーションズ様に他のクラウドからの移行の理由と効果をご講演いただきます。
主催
日本オラクル株式会社
日程
2021年11月13日(土)10:45~18:00
場所
オンライン開催
内容
「オープンソースならびにコミュニティが元気に交流できる場を関西でも作ろう」と有志が集まり2002年にスタートしました。関西各地のオープンソースを始めとするさまざまなITコミュニティ、企業、行政が集まり、関西以外からも参加者が多数来場するお祭り的なイベントです。2021年の開催はコロナ禍のため、YouTube等を使ったオンライン配信を予定しています。オラクルのMySQL Community Teamが協賛に加わっておりセミナーも予定しています。
主催
関西オープンフォーラム実行委員会
日程
2021年11月17日(水) -19日(金)09:30~18:15
場所
オンライン開催
内容
国内最大規模のデータベース技術カンファレンスです。今年は、これまでのデータベースの技術セッションに、AI/機械学習、クラウド、IoTなどのセッションが加わっています。OSSデータベース関連ではオラクルのMySQL Community Team、EnterpriseDB、SRA OSSなどが協賛しています。MySQLやHeatWave、PostgreSQLをはじめ、数多くのセミナーが予定されています。
主催
株式会社インサイトテクノロジー
日程
2021年11月20日(土)10:00~18:00
場所
オンライン開催(ZoomおよびYouTube Live)
内容
オープンソースカンファレンス(OSC)は、オープンソースの「今」を伝える総合イベントとして、東京だけでなく、北は北海道、南は沖縄まで全国各地で開催しています。例年は福岡で開催されていたこの回もオンライン開催となりました。セミナープログラムは近日公開される予定です。OSSデータベース関連のセミナーについては公開されるプログラムをご参照ください。2021年のOSC開催はこれが最後です。2022年は、1月にオンライン大阪、3月頃にオンライン春の回が計画中とのこと。OSCは、まだもう少しオンラインでの開催が継続しそうです。
主催
オープンソースカンファレンス実行委員会
日程
2021年11月26日(金)15:00~17:00
場所
オンライン(Zoom)
内容
今回のセミナーでは、MySQL 8.0が備える基本的なセキュリティ機能(暗号化・監査・認証・データマスキング・ファイヤーウォール) 、基本設定およびその確認方法を解説します。MySQL8.0のデフォルトで安全な設定、変更すべき設定などを確認することができます。
後半は、外部からの攻撃や情報の悪用からデータを保護し、規制遵守するためのMySQLの高度なセキュリティ強化機能やセキュリティ強化策、最新のアップデートについても掘り下げてご紹介します。データベースセキュリティに関心のあるエンジニアの方、データベースセキュリティの基礎的な知識を確認したいシステム管理者の方に必見の内容となっています。
主催
日本オラクル株式会社 MySQL Global Business Unit
日程
12月17日(金)13:00~17:45
場所
オンライン開催(Zoom)
内容
Oracleテクノロジーの最新情報を入手し、システムのインフラストラクチャとアプリケーションデザイン、オペレーションの最適化に向け、Oracle Developer Dayをぜひ活用ください。MySQL関連では「チューニング不要でSQLを高速化するHeatWaveとは?」と題してMySQL HeatWaveの最新アップデートをご紹介予定です。
主催
日本オラクル株式会社 Developer Marketing
日程
2021年11月10日(水)12:05-12:45
場所
オンライン開催(Zoomウェビナー)
内容
PostgreSQLは、MVCC(Multi-Version Concurrency Control)とよばれる機構を使って、並列実行するトランザクションが相互に邪魔することなく動作できるようにしています。MVCCの原理、PostgreSQLでどのようにこれが使われているのか、これによってトランザクションの並列実行、ひいてはアプリケーションがどのような恩恵を受けているのかを説明します。
主催
エンタープライズDB株式会社