Personal tools

PostgreSQLセミナー2009春:午前の部

SRA OSS, Inc. 日本支社 稲葉 香理

PostgreSQLセミナー2009春

日本PostgreSQLユーザ会(JPUG)ではこの数年、年に1回のJPUG総会に合わせて PostgreSQLに関する技術セミナー・カンファレンスを開催しています。今年は、PostgreSQLに関心をお持ちの方に役立つ情報をお知らせすることを目的として「PostgreSQLセミナー2009春」が2009年4月28日にJPUG総会と合わせて開催されました。本セミナーはNTTコムウェア様が後援企業となり、NTT品川TWINSアネックスビル17Fのセミナールームで、約100名の参 加者で盛大に開催されました。


NTTにおけるPostgreSQL展開戦略

最初のセッションは、NTTオープンソースソフトウェアセンタ(以下NTT OSSセンタ)の藤本憲司さんから『NTTにおけるPostgreSQL導入の歩み』と題して、NTTグループでのPostgreSQLへの取り組みについて講演をいただきました。

NTT藤本氏写真NTT OSSセンタは、OSSのサポート、利用ノウハウをNTTグループで集約する組織として、2006年4月に発足しました。狙いは、「TCO削減」と「ベンダロックインの回避」です。NTTでは、数百を超える社内システムのうち8割程度にOSSが活用できそうとの調査結果を得ていますが、OSS利用においては、情報収集手段の確立、保守サポート体制の確立、長期サポート、構築ノウハウの蓄積、OSSソリューションの機能強化など様々な課題がありました。その課題に対応するため NTT研究所、NTTデータ、NTTコムウェア等から人材が集合して NTT OSSセンタが設立されたとのことです。

現在では、NTTグループ内から、各種OSSについて年間1,000件程度の問合せを約100名のスタッフで対応しており、また、OSSVERT(OSSの推奨パッケージ)というものを開発し提供することで、より安心してOSSを導入する枠組みを提供しています。

PostgreSQLについては、OSSセンタ設立当初の2006年頃は、精度の高い検証データがなかったことなどから中途半端な評価が定着し、きちんとPostgreSQLを使い切れていなかった、といいます。それを払拭するために、PostgreSQL8.3に狙いを定め各種ベンチマークを積み上げながら社内に広がる性能や運用面での不安を払拭してきたそうです。その活動のいくつかをご紹介します。

ベンチマーク情報の提示

ベンチマークは、TPCの各種ベンチマークを活用し、参照:更新比率などを参考に、各種パターンを計測、8.2から8.3で約2倍の性能向上(※1)があることを示しました。

※1 TPC-W(参照:更新=5:5)において8.2では1100tpsに対し8.3では2100tpsを計測

安定した性能情報

藤本氏、説明中PostgreSQLにおいて定期的に発生するチェックポイント(*2)において、8.2ではチェックポイント時のレスポンスタイムが悪くなることに対し、8.3では最悪値を80%短縮することができデータベースの安定運用が行えることを示しました。

※2 メモリとディスク上のデータとの同期処理

HOT(Heap Only Tuple)の効用

PostgreSQLといえば、古くからVACUUMという不要領域の回収処理によって運用を悩まされるケースが多くありました。8.3で導入されたHOTの効果によって、8.2から8.3において発生するゴミ領域を数千分の一におさえられることを示し、運用面における不安を解消しました。

※ HOTの効果については当サイトの記事 HOTの効果 もご覧ください。

履歴蓄積モデルの提示

履歴蓄積モデルとは、「データベースサイズが大規模になりがちで、かつNTT社内システムで用いられるデータベースモデル」とのことです。つまり、よく使われるパターンにおいて事前に検証をし情報を提示することで採用検討時の不安を払拭するということです。履歴蓄積モデルでは、データベースサイズ、多重度の最適化、長時間運用、パーティション切り替えなどの観点から検証を行い情報を提示してきました。その結果、性能面、安定性の面で遜色がないことを提示できたそうです。

これらの活動により、現在では性能課題が解け、運用ノウハウがたまってきたらドキュメントの充実化を図りたい、というように採用に対する敷居は低くなってきているようです。また、敷居が低くなったことで商用RDBMSであるOracle Database と比べられるようになりユーザの意識の変化が見られるようです。

最後に、NTT OSSセンタで、PostgreSQLへの開発や普及促進に関わっている活動をご紹介いただきました。PostgreSQLの周辺ソフトウェアとして提供されている、高速データロードの pg_bulkload、包括的性能監視を行う pg_statsinfo、オンライン再編成を行う pg_reorg、Oracle互換関数の orafce などが紹介されました。また、普及促進の観点で当サイト Let's Postgres をご紹介いただき、編集委員の参加や記事寄稿のご紹介をいただきました。

NTT様の取り組みは、ユーザ企業の取り組みとしては、ソフトウェア自体の開発も行う、徹底的な検証などを行い社内に情報発信を行う、サポート体制も整える、ということで理想的なオープンソースソフトウェアの活用取り組みだと感じました。参加者アンケートからも非常に参考になったという声が多く、検証データなどを含めて広く公開して言って欲しいという声が聞かれました。今後も、PostgreSQLの開発への貢献とともに、先進的ユーザとしての情報発信を期待したいと思います。

日本語対応(8.4)とマニュアルドキュメントの歩き方

日本PostgreSQLユーザ会(JPUG)の文書・書籍分科会では、ボランティアベースでPostgreSQLのマニュアルを中心として各種文書の翻訳、公開を行っています。特に最近では、新バージョンがリリースされたら数日内には完全な日本語マニュアルが公開される、というユーザにとって非常にありがたい状況になっています。今回は、文書・書籍分科会の座長である本田 茂広さんよりPostgreSQL日本語マニュアルに関する解説を、分科会メンバである掘田 倫英さんより日本語メッセージへの取り組みを講演いただきました。

PostgreSQL日本語マニュアル

本田理事本田さんより、本家(PostgreSQL開発元)にて提供されている英語文書の種類と、日本語に翻訳された文書について紹介いただきました。翻訳された全ての日本語文書はJPUGのサイトから閲覧することが出来ます。続いて、PostgreSQL付属のマニュアルは、SGMLファイルをベースに、HTMLやman形式、PDFなどの文書が生成されることを紹介いただきました。よって、PostgreSQLのソースコードに付属する英語のマニュアルを翻訳すれば誰でも各種言語への様々なフォーマットのマニュアルを作成できるのです。具体的なドキュメントの構造や各種フォーマットへの変換方法をご紹介いただいたので、文書・書籍分科会の活動に興味がある方には非常に参考になる情報でした。

また、マニュアルは非常に膨大な量であることから、ユーザの背景別にお勧めマニュアルの箇所をお話いただいたのでご紹介します。リンクは、PostgreSQL8.4.0文書へのリンクになっています。

はじめてSQLを実行する方には

I. チュートリアルの1章~3章と、II. SQL言語の4章~7章がお勧めです。

別のRDBMSから移行してきた方には

II. SQL言語の8章~14章と VI.リファレンスのSQLコマンドがお勧めです。

アプリケーション開発を行う方には

V.サーバプログラミングの34章~42章がお勧めです。

マニュアルはやっぱり日本語で読みたいというのがユーザの正直な気持ちだと思いますので、こういった活動がボランティアで行われていることを非常にありがたく思いました。ユーザの皆さんにはまずは日本語マニュアルで誤字・脱字等に気がついたら報告していただくことから参加していただき、ユーザ全員でマニュアルの品質をあげていく活動が出来れば素敵だなと思いました。

日本語メッセージへの取り組み(gettextへのいざない)

掘田さんより、PostgreSQLのメッセージが日本語で表示されるということのご紹介をいただきました。 簡単に言うと、$ psql --help などと実行して表示されるメッセージが日本語になります、ということです。 これをNLS(National Language Support)といい、コマンドからのメッセージを各国語で出力する仕組みで、環境変数によって実行時に言語を選択することが可能です。これは gettext というライブラリを使って実現されており、PostgreSQLのみならず多くのOSSで採用されている仕組みです。

PostgreSQLでNLSを組み込むのは、ソースコードからのコンパイル時に configure のオプションで --enable-nls を指定するだけです。

続いてこの仕組みがどうやって実装されているかなどのお話をいただきました。基本的にはソースコードに付属するメッセージをひたすら翻訳していくという地味な作業だとおっしゃっていましたが、ソースコードに触れてみたい方にとっての敷居としては低いので、結構楽しめるのではないかと思います。興味がある方は、PostgreSQLのソースコードの src/ 以下で $ find . -name po とすると関連するファイルが出てくるのでそれらを眺めつつ勉強してみると、gettext と英語とちょこっとPostgreSQLの勉強になることでしょう。


後半は、午後のセッションの報告をご覧ください。



(2009年8月10日 公開)
  • 1
  • 2
 

You are here: Home 読み物 イベントレポート PostgreSQLセミナー2009春