Dave Page氏
PostgreSQL 8.0
リリース記念セミナー
 「Windows版PostgreSQL 8.0は正式リリース後の5日間で4万5000件ダウンロードされた」(Windows版PostgreSQL 8.0の中核開発者Dave Page氏)。2月18日,日本PostgreSQLユーザ会が「PostgreSQL 8.0リリース記念セミナー」を開催,150名の定員を上回る参加申し込みが寄せられる活況となった。セミナーではイギリスから来日したPage氏が講演,開発の苦労やその人気ぶりなどを披露した。

 オープンソースのDBMS PostgreSQLの最新版8.0は1月19日に正式リリースされた。8.0の目玉は,データベース・ファイル本体が壊れても,トランザクション・ログが残っていればデータを復旧できる「ポイント・イン・タイム・リカバリ」機能と,初めてWindowsにネイティブで対応したことなどだ(関連記事「【PostgreSQLウォッチ】第14回 ついに正式リリース!PostgreSQL 8.0を徹底解説」)。Windows版PostgreSQL 8.0は,GUI管理ツールpgAdmin IIIやウィザード形式のインストーラを備え,OLE DBや.NETからの利用も可能な本格的なWindows DBMSとなっている。その中心となった開発者がPage氏である。

 pgAdmin IIIは,Microsoft SQL Serverの管理ツールのように,エクスプローラ形式の管理ツールで,テーブルやユーザーなどを管理できる。インストーラpgInstallerは,ユーザーが質問に答えて選択していけば,ユーザーの作成やcontib(ユーザーが寄付したツール類)のインストールまで行う。

 Windowsへの移植にあたって苦労したことは,UNIX/Linuxのfork()システム・コール,シグナル,sync()システム・コールをWindowsでどう扱うかという点だったという。fork()はUNIX/Linuxでプロセスを生成するシステム・コール。「WindowsにはCreateProcess()というAPIがあるが,fork()が親プロセスの環境をコピーするのに対し,CreateProcess()は親プロセスの環境を引き継がない」(Page氏)。この問題に対しては,パラメータ・ファイルにより新しいプロセスに環境設定データを渡すという対策を採用した。

 次の問題はシグナルだった。プロセスにその処理を終了させるKILLシグナルなどを送るシグナル機能はWindowsにはない。そのため「かわりにWindowsの名前付きパイプを使用した」(Page氏)。

 また,メモリー・キャッシュ上のデータをすべてディスクに書き込むsync()システム・コールもWindowsにはそのまま相当する機能はない。ただし,この問題は,8.0でバックグラウンド・ライター・プロセス(変更されたバッファを少しずつディスクに書き込むプロセス)が導入されたことにより,対策の必要がなくなった。

 最後にPage氏は,C,VB6(ADO),C#という3つの言語でのWindowsでのアプリケーション記述例を紹介した。特にC#はPage氏が「最近気に入っている言語の一つ」(同)だという。

 セミナーではPage氏のほか,片岡裕生氏が「PostgreSQL8.0の新機能」,多度純一氏が「MS-Office(Excel)を使ったデータマイグレーション」,志村伸弘氏が「Npgsqlを使ったWeb構築 ASP.NET(C#)」,坂田哲夫氏が「PostgreSQL8.0の新機能アーカイブログを用いた高信頼データベースの運用」,尾高保氏が「PostgreSQL VS Oracle(商用RDBMSユーザのためのPostgreSQL入門 その2)」,石川俊行氏が「PostgreSQLドキュメント翻訳とこれまでの成果」と題し講演した。

(高橋 信頼=IT Pro)