プレスリリースを読もう!
ユーザーのコメント
"We process over 18,000 queries per second on over 300GB of user data on our PostgreSQL servers, and those numbers go up every month," said Gavin Roy, CTO of social networking site MyYearbook.com. "We are very excited about HOT, shared buffer scan improvements and integrated Tsearch indexing. Preliminary testing shows that 8.3 will improve our database load profile while decreasing response times. We're really looking forward to it."
これはSNSサイト、MyYearbook.comの最高技術責任者(CTO)ギャバン・ロイさんのコメントです。事例紹介ですので全文試訳をしてから解説します。
「使用しているPostgreSQLサーバーで300GBのユーザーデータに対し、1秒当たり18,000を越える問い合わせを処理しています。この数字は毎月更新されています。HOT、共有バッファスキャンの改良、本体に取り込まれたTsearchインデックスにときめきを押さえることができませんでした。実運用の前のテストでも8.3は応答時間を低下させることなくデータベース検索を向上させることがわかりました。期待に違わないことを望んでます」
では、解説に入りましょう。ここで"HOT"という用語がでてきました。HOTは"Heap Only Tuples"の略語です。技術的な説明はこの連載の範囲を超えますので省略しますが、もともとPostgreSQLは「追記型」と言われるアーキテクチャに基づいているため、タプル(テーブルの行)の更新を行う場合は、内部的に更新前のタプルに印をつけ、見かけ上削除されたようにしてから、新規タプルを挿入するといった手順を採用せざるを得ませんでした。
タプルの列(筆者:タプルという用語を使うからには「列」ではなくて「属性」と書いてほしいのですが...)には当然検索機能性能の向上のためにインデックスも張られているので、更新処理(UPDATE)においてPostgreSQLの性能が問題視されていました。
見かけ上削除されたタプルの格納領域を再確保するためには、定期的にVACUUMの実行が不可欠で、これがPostgreSQL採用のネックとした潜在的利用者も多々ありました。この増加する不要領域を削減するために考え出されたのがHOTと言われる技術です。HOTに加え、リリース8.1からはAUTO VACUUMの機能も付加され、現在の8.3バージョンではデフォルトでONとなっていますので、通常の運用ではVACUUMを考えなくてもよいでしょう。"excited"は「ときめきを覚える」と訳しました。
PostgreSQLのライセンス
PostgreSQL uses the BSD license, which only requires that the licensed source code maintain its copyright and licensing information. This OSI-certified license is widely appreciated as flexible and business-friendly, since it does not restrict the use of PostgreSQL with commercial and proprietary applications.
オープンソースと一言で言っても、そのライセンスの形態は数多く存在します。その中で、PostgreSQLはライセンスされたソースコードは著作権とライセンス情報を保持するだけというBSDライセンス形態を取っています。"maintain"が「ちゃんと残す」ということを意味します。BSDライセンスはOSI(Open Source Initiative)認定の中で最もゆるい条件です。ほかの商用システム、既存システムとの混在運用も制限しません。
Together with multi-company support and public ownership of the code, the BSD license makes PostgreSQL very popular with vendors wanting to embed a database in their own products without fear of fees, vendor lock-in, or changes in licensing terms.
ですから、自社製品にデータベースを組み込みたいベンダーにとって、PostgreSQLは人気があります。導入するユーザーとしても特定のベンダーによる囲い込みを回避できます。"vendor lock-in"はあるベンダーの製品群から逃れられなくなる状況を言います。そして、ある日突然ライセンスの内容を変える(changes in licensing terms)こともありません。
今回はプレスリリースを読んでみましたが、いかがでしたでしょうか。初回と言うことでわかりやすいものを選び、丁寧に解説をしました。「もう少し読み応えがあるものを!」などご意見があればぜひ記事評価にてお聞かせください。次回はPostgreSQLの開発の歴史をベースに機能の説明を行います。