PostgreSQL 9.4の主要な改良点、9.5以降の展望:Database Expert イベントレポート(1/3 ページ)
エンタープライズ性能を高めたPostgreSQLが次の6年で目指すのは「フレキシビリティ」。開発プロジェクト コアコミッターの講演で展望を聞いた。
2014年7月17日、東京都内でEnterpriseDBのセミナーが開催された。基調講演では米EnterpriseDBから、OSSのRDBMSであるPostgreSQL開発プロジェクトのコアコミッターでもあるシニアデータベースアーキテクト Bruce Momjian氏が講演、まもなくリリースが予定されている、PostgreSQL 9.4の主要機能と、次の9.5、そして、今後のPostgreSQL開発の展望を示した。
本稿では、講演の模様を紹介するとともに、一定のエンタープライズ性能を獲得しつつあるPostgreSQLの開発プロジェクトメンバーが見ている将来像を紹介する。
EnterpriseDBは、PostgreSQLをベースにした製品を展開しているデータベースベンダー。エンタープライズ向けのSLAでOracle Databaseとの互換性を保証する「Postgres Plus Advanced Server」などを提供している。コミュニティ版の標準SQLに準拠するPostgreSQLと比較して、Oracleの独自クエリ言語であるPL/SQLの互換性を維持するために、RDBMSのコアエンジン部分にも一定のカスタマイズを行っているのが特徴だ。2011年4月には日本法人を設立、日本国内での活動も行ってきた。今回のEnterpriseDB Summit 2014は同社日本法人が企画したもの。
Momjian氏はEnterpriseDBに参加して約8年、その間PostgreSQLはほぼ年1回のリリースを維持しており、コミュニティベースでありながら、安定した開発体制が整っていることを強調した。最新版となるPostgreSQL 9.4は今夏リリースを予定している。
Momjian氏いわく「PostgreSQL 9.4では、2020年に向けた長いロードマップの布石となる実装が盛り込まれる。PostgreSQLに関わるようになって18年になるが、今後数年は、この18年を凌駕するエキサイティングなものになるだろう」と語る(PostgreSQL開発プロジェクト自体は28年の歴史がある)。次バージョンでの主な機能追加や改善点は以下の通りだ。
PostgreSQL 9.4の主要機能
- マテリアライズドビューの改善
- Logical Decoding
- Background Worker
- JSONB(バイナリ型JSONのサポート)
- postgresql.confへのSQLアクセス
- GIN Indexesのコンパクト化、高速化
- WALのパフォーマンス改善
- Streaming Replicationへのdelayオプション実装
以下ではMomjian氏の講演に基づき、それぞれを紹介していこう。
マテリアライズドビューの改善
マテリアライズドビューは現在のPostgreSQL 9.3でも実装されている。しかし、現行の実装では、データサマリを更新する際に、データ全体をロックする必要がある。このため、データに更新が発生すると、非常に遅くなる、という問題があった。PostgreSQL 9.4では、この問題点を解消し、サマリをロックすることなく更新を行えるようになる。
論理デコーディング
「今後の機能拡充に向けた布石としての意味合いが強い」(Momjian氏)という。
PostgreSQLにはWAL(Write Ahead Logging)という、データ整合性を担保するための機構が備わっている。いわゆる物理論理ロギングの機能だ。WALは、大まかに紹介すると、チェックポイントごとにリカバリの起点となるブロックデータ(REDOポイント)を物理的に全て保存する機能だ。WALは基本的にバイナリ形式でデータを格納している。
論理的デコーディングはWALデータを構成可能な形式でストリーム化し、データベースの変更を可能にするものだ。具体的には、WALが持つバイナリデータを読み込み、希望するターゲット形式に変換することで、外部ツールによる処理を簡易化できる。この機能により、マルチマスターでのレプリケーション、ゼロダウンタイムでのアップグレードが実現する。また、レプリケーションそのものも詳細なコントロールを行えるようになるという。
Copyright © ITmedia, Inc. All Rights Reserved.