ひさびさにオープンソース系なイベントに参加できたよ。主な目的は「PostgreSQL Updates」のセッション。
8.3では、「更新が速くなる」「性能が安定する」「データロードが速い」「VACUUM運用の手間が軽減」などが上げられていた。オレが使うパターンだと、「データロードが...」てのはあまり効果がないのだが、他の3点はかなりキキそう。
更新(UPDATE)が速くなってくれるのは良いな。多少条件があるようなので、今のアプリケーションで使っているUPDATE文が全て速くなるって訳じゃないようだけど。意識して使うとヨリ速くなるよって感じかな。でも、PostgreSQLの弱点である更新にメスが入ったのは凄い。
「性能が安定する」ってのは、checkpoint処理が「重くなり過ぎない」そうだ。これはかなり重要。checkpoint処理というのは、ストレージに大きな負荷がかかる。このcheckpointは一定のタイミングで実行されるのだが、大量のSQLを処理をしている最中(つまりストレージに負荷がかかっている状態)に処理がスタートすると、重い処理に重い処理が重なって、、、あぁ、恐ろしい。
今回の改善では、これまでwaitをせずに突っ走ってきたcheckpoint処理にスリープを入れたらしい。それだけで、重い処理を実施している最中でも「えー、もっと重い処理やれっての?無理だよオレ。やれと言われりゃやるけど時間かかるよ?」という状態にはならないらしい。
「データロードが速い」というのは、空のテーブルに対してのみに限定されているようなので、「データが入っているところに追加」などには無効なようだ。
「VACUUM運用の手間が軽減」とは、autovacuum時に「処理詰まり」を起こさないようにしてくれるようだ。これでも便利だと思うけど、8.4で実装が検討されているスケジューリング機能が付くと、autovacuumはもっと使いやすくなるだろうな。
早く実務で使ってみたいね。
その他のセッションの中では招待講演の「データベースとは何か 〜システム、コンテンツ、そして社会〜」が良かった。普段「PostgreSQLに関する事」に意識を向けることはあっても「データベースそのもの」に関してはあまり意識していなかったのだが、招待講演で普段は聴いてけなかった話を聴けて勉強になったなぁ。増永先生は、大学で教えていらっしゃるのもあるんだろうけど、話がうまくて聴いていて面白かった。
今回は懇親会にも参加して、いろいろな方とお話しさせて貰って刺激になった。みんなスゲーなぁ。