このページの本文へ

前へ 1 2 次へ

日本PostgreSQLユーザ会主催の「PostgreSQL Conference Japan 2017」をレポート

PostgreSQL「進化」の軌跡――誕生から20年を石井達夫氏が振り返る

2017年11月06日 11時00分更新

文● 羽野三千世/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

石井氏が注目する3つの新機能

 2017年10月5日に、PostgreSQLの最新バージョン「PostgreSQL 10.0」がリリースされた。石井氏は、バージョン10.0および最近のバージョンで追加された新機能のうち、個人的に特に重要視しているものとして、「ストリーミングレプリケーションの改良」、「パラレルクエリ」、「論理レプリケーション」の3つを挙げた。

 1つ目のストリーミングレプリケーションは、2010年リリースのバージョン9.0で初めてPostgreSQLに実装された。

 1台のデータベースがクラッシュしたときにシステムを止めたくない、性能が必要になったときに1台のデータベースをスケールアップするのではなく複数台を束ねてスケールアップできるようにしたいなどのニーズから、PostgreSQLにレプリケーションやクラスタリングの機能があったらよいという議論はずいぶん前からあった。バージョン9.0より前は、SQL文を複数サーバーに投げることによるレプリケーション、更新トリガーを利用して更新差分を転送することでレプリケーションするなどの独自実装や、dblinkを使ったサードパーティー実装でレプリケーションを実現していたが、これらの手段は性能が出ない。加えて、すべてのデータオブジェクトがレプリケーションできるわけではないという共通の問題を抱えていた。

 ストリーミングレプリケーションは、PostgreSQL本体に組み込まれたレプリケーション技術であり、オーバーヘッドが少なく、実用的にはほとんどすべてのオブジェクトをレプリケーションできる。その後もストリーミングレプリケーション機能は改良が続けられ、最新版では、スタンバイがプライマリに昇格する際にデータを失わない同期レプリケーション、レプリケーションの遅延と一貫性保証のコントロールができる機能(アプリケーションの特性により、プライマリでコミットされたデータがスタンバイに反映されるまでの時間と、プライマリとスタンバイのデータ一貫性のどちらを優先するかコントロールできる)が実装されている。

 2つ目のパラレルクエリは、2016年リリースのPostgreSQL 9.6で追加された機能だ。PostgreSQLは誕生から長らく、1つのクエリを1つのプロセスで実行する仕様だった。パラレルクエリが登場したことでこれが根本的に変わり、1つの検索クエリがパラレルワーカーと呼ばれるプロセスで分担されるようになった。「あくまで検索のプロセスのみだが(更新などの他プロセスには適用されない)、十分なメモリとCPUがある環境では、検索クエリが劇的に早くなるケースがある」(石井氏)。

 3つ目の論理レプリケーションは、最新のPostgreSQL 10.0で追加された機能。これは、データベースへの変更内容を論理的に後から操作できる形でログとして保存し、特定の変更だけ取り出せる仕組みだ。MySQLなどでは従来から実装されている。応用できるケースが広く、「例えば、マスターからスレーブ側へ特定のテーブルだけをレプリケーションする、異なるバージョン間のPostgreSQLデータベースでレプリケーションする(ストリーミングレプリケーションではできない)、複数のデータベースを1つに集約する、といったことが可能」(石井氏)。

PostgreSQLの将来への期待

 最後に石井氏は、個人的な意見として(開発コミュニティの意向とは関係ないと前置きした上で)、PostgreSQLの将来への期待を述べた。

 まず、PostgreSQL 10.0で論理レプリケーションが実装されたので、「この延長上で双方向レプリケーションが実現できるはず、是非つくってほしい」(石井氏)。また、現在は検索クエリにのみ対応しているパラレルクエリが更新処理までサポートすると嬉しいという。さらに、「複数ノードをまたがったパラレルクエリが実現されると、スケールアウトが可能になるので嬉しい。これはつまり、Postgres-XC(NTTなどが開発しているスケールアウト可能なPostgreSQLクラスタ)と同じことが、PostgreSQL本体で実現できるということだ」(石井氏)。

 もう1つ、「(すでに開発が進行中の)スキーマ変数の機能が実現されれば、商用データベースからPostgreSQLへの移行が楽になる」と石井氏は説明する。スキーマ変数は、スキーマごとに独立した変数を定義できる機能だが、これが、商用データベースが採用するパッケージ変数の代替になるため、商用データベースからPostgreSQLへの移行が容易になるという。石井氏は、そのほかの小さな期待として、「PostgreSQLのマニュアルには、なぜか図がないので分かりづらい。図を入れてほしいと切実に思う」と述べていた。

■関連サイト

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

アクセスランキング

  1. 1位

    ITトピック

    「原則出社」命じる企業とテレワーク社員の意識ギャップ/“推し活依存”自覚するZ世代が2割/シニアの利用が盛んな○○アプリ、ほか

  2. 2位

    データセンター

    600km超離れたデータセンター間でシステム全体を「完全自動復旧」 日立・NTTドコビジらが実証に成功

  3. 3位

    ビジネス・開発

    物流、病院、家事まで変える“フィジカルAI”最前線 AWSが支援する日本企業14社の挑戦

  4. 4位

    ITトピック

    SaaSに代わりAIエージェント支える“AaaS”が台頭/議事録作成AIは「意思決定支援」へ進化/生成AIの顧客満足度・1位はClaude、ほか

  5. 5位

    sponsored

    Active Directoryがサイバー攻撃の標的となる理由とその対策

  6. 6位

    TECH

    フロンティアAI対策を国内組織はどう捉えているか “内製化への意欲”と待ち望む“政府主導のガイドライン”

  7. 7位

    ビジネス・開発

    フィジカルAIを支える「攻めのIoT基盤」と「守りのOTセキュリティ」

  8. 8位

    sponsored

    高齢者をポットで見守る「みまもりほっとライン」 25年続く「サービスの温もり」とは?

  9. 9位

    デジタル

    Dropbox Protect提供開始 “過剰なファイル共有”をすべて把握し情報漏洩リスクを低減

  10. 10位

    デジタル

    「ツールは入れて終わりじゃない」 香川の建設コンサルが利用率1割だったkintoneを全社基盤に育てるまで

集計期間:
2026年09月01日~2026年09月07日
  • 角川アスキー総合研究所