2016」(2016年7月5日開催)の様子をレポートします。後編はこちらPostgreSQLは、1986年に米国で「Postgres」という名前で誕生しました。それ以降、多くのボランティアによって開発が進められ、名称が現在の「PostgreSQL」に変更されたのは1996年です。2016年の今年は、PostgreSQL誕生20周年の記念すべき年にあたります。Page氏から開会の挨拶とともにPostgreSQL誕生20周年の祝辞が述べられました。オンライン決済サービスのバックエンドで稼働イベントでは、ユーザ事例の1つとしてGoCardless社でのPostgreSQLの活用が紹介されました。同社は2011年に日本人を含む3名のオックスフォード大学の卒業生が立ち上げた企業で、社名のとおり、クレジットカードを使わない決済サービスを提供しています。支払や入金処理は銀行間送金による自動決済で手数料も低く抑えられていることから、現在、イギリスおよびヨーロッパを中心に2万社を超える企業が利用しています。イギリスでは、デビットカードと呼ばれるカードで支払いをすると、その時点で自分の預金口座から利用代金が引き落とされる仕組みが個人レベルで広く普及していることも後押しとなっているように思います。FinTech50」の2015年度に選出されています。このオンライン決済サービスのバックエンドでPostgreSQLが利用されており、Pacemakerを使った3ノードでの可用性構成がとられています。格納データは数百ギガバイトと大きくはないものの、システムの特性上、十数秒のAPIダウンタイムも許容されません。セッションではそのような事態を回避するための工夫がいくつか紹介されました。同システムでは、APIの機能拡張に伴って毎月20個にのぼるスキーマの置き換え作業が行われています。その作業中もユーザからのリクエストは処理できなければならないため、メンテナンスによる各オブジェクトのロック獲得処理に対して、セッションやトランザクション、SQLレベルで粒度の細かいタイムアウトを設定することで、想定を超えた時間のロック待ちがユーザのシステム利用を妨げる事態を回避しています。同社でオープンソース・ソフトウェアであるPostgreSQLが採用されたのは元々スタートアップ企業という背景があったためと推測できますが、起業から5年経過した現在も継続利用されているということは、ミッションクリティカル性の高いシステムでも十分実用に耐え得るデータベースであることを証明していると言えます。新バージョン9.6は2016年9月1日にRC1がリリースされ、いよいよ正式版を待つばかりです。新機能は大きく「性能」「DBAと管理」「レプリケーション」「開発とSQL」のカテゴリに分けることができます。近年、PostgreSQLではデータウェアハウス向けの機能が積極的に取り込まれています。9.6でもその動きが継続しており、いよいよ待望の「パラレル・クエリ」が登場します。パラレル・クエリは、1つのSQL処理を内部的に複数のプロセスで分担して実行することによって大規模データ処理を高速化する機能です。9.6ではパラレルでのシーケンシャル・スキャン、ジョイン、アグリゲート(集約)がサポートされる予定です。マルチCPUサーバ環境下での多数同時セッションにおけるOLTP系処理について、より性能を向上させる改善が入る予定です。これは、ロック競合待ちを軽減するために内部で取得するロックそのものの変更や複数のコミット処理を一括で実行することで実現しています。PostgreSQLはこれまで1ページ(8キロバイト)単位でテーブル領域を拡張する動作だったため、複数トランザクションから大量データが挿入された際、領域拡張でのロック競合により性能が劣化するという課題がありました。9.6では複数ページを一括で確保する仕組みが追加される予定で、このロック競合の軽減が期待できます。データベースでは性能劣化や処理遅延といった事象が発生する場合があります。その際、PostgreSQLではサーバログや実行時統計情報から原因を調査しますが、事象発生時に各プロセスが内部でどのような処理を行っていたのかという情報が取得できないため、原因がはっきり掴めずにトライアンドエラーで対処しなければなりませんでした。9.6では内部ロックを中心に70種類にのぼる待機イベントが提供される予定で、ピンポイントでのボトルネックの特定が可能になります。これらの仕組みや機能は、商用データベースを利用するユーザにとっては馴染みのあるものが多く、商用データベースとの機能差異がさらに小さくなることはPostgreSQLを選定する際の強力な後押しになると言えます。管理しやすく、使いやすくイギリスとヨーロッパでPostgreSQL関連サービスを提供する主な企業にEnterpriseDB社と2ndQuadrant社があります。両社にはPostgreSQL開発コミュニティの主要コミッタをはじめ開発に携わるメンバーが数多く在籍しており、PostgreSQL本体の機能はもちろん、数々の周辺ツールの開発を手がけています。今回のイベントでは、両社メンバーによるセッションが複数ありました。Page氏を中心に14年という長期メンテナンスの下、デスクトップベースのツールとして長年利用されてきました。Webベースアプリケーションが基本という昨今の流れに対応していない点や開発言語として採用していたC++の開発者を集めることが難しくなってきたこと、さらに内部で利用するサードパーティ製のライブラリが起因となる不具合の対処の負荷が高いことなど多くの課題を抱えていました。それらの課題を解決し、よりユーザニーズに即した使いやすい管理ツールにすべく、今回、pgAdmin4が新たにリリースされます。pgAdmin4ではPostgreSQLと親和性の高いPythonとJavaScript、jQueryを組み合わせる形でプログラムの置き換えが行われています。機能面ではテーブルやインデックスなどオブジェクトの作成やバックアップ、VACUUMなどメンテナンス処理といった従来からのデータベース管理に加えて、リアルタイムにデータベースの稼働状況をモニタリングできるダッシュボードが実装されます。Manager」の機能を一部取り込む形で相互に機能拡張を進めています。Installerに含まれる予定です。昨今、2ndQuadrant社が積極的に開発を進めているのはレプリケーションに関する機能が中心です。「repmgr」はPostgreSQLのストリーミング・レプリケーションによる可用性構成を管理するクラスタソフトウェアで、新バージョン3.1では計画停止に対応したスイッチオーバがサポートされました。今後はコネクションプーリング機能である「pgBouncer」やバックアップの世代管理や増分バックアップが可能な「Barman」と統合し、より強固なソリューションとして提供される予定です。その他にも、同社では論理レプリケーション環境を構築する「pglogical」やPostgreSQL間の双方向レプリケーションを可能にする「BDR」など、PostgreSQLの可用性構成の選択肢を広げる取り組みが進められています。終わりにPostgreSQL生誕20年の今年、アジア地区のPostgreSQL国際カンファレンスとして、「PGConf.ASIA」が12月2日、3日に東京で開催されます。今回、2年ぶりにライトニングトークに登壇してご紹介したところ、会場となる秋葉原を知っているという参加者も数人いて、アジアでのイベントをより多くの人に知ってもらう良い機会になりました。紀行」を題材にスピーカーとして登壇します。Postgresのサービス立ち上げに参画。「PostgreSQLなら高瀬に聞こう」と社内外から言ってもらえる存在となることを目標に日々活動。Postgresの啓蒙活動と顧客対応の後方支援を担当。Postgres(PostgreSQL)Facebookで情報をお届けしていますFacebookでは、アシストの「今」を週3回のペースでお届けしています。「めげない、逃げない、あまり儲けない」を合言葉に日々頑張っておりますので、応援よろしくお願いします。)および株式会社アシスト北海道)のコンピュータ・ソフトウェア・パッケージの販売、テクニカルサポート、研修およびコンサルティング・サービスに対してISO27001の認証を取得しています無料のセミナー/イベント開催情報や、事例、最新の製品情報など、情報収集に役立つトピックをお届けします。いつでも簡単に配信停止できますので、ぜひ一度お試しください。