arcanum_jp’s blog

おっさんの日記

オープンソースソフトウエアの世界?

今日、作業場に行きがてら駅でポスター発見。面白そうなんでみてみたいな。仕事次第かな・・・

nigredoな日々 〜 arcanum.jpの出張所 〜


 行ってきました。と言っても「進化するオープンソースデータベースPostgreSQL」の方だけ。どちらかと言うと前半の方が聞いてみたかったのですが・・・内容はデータベースを知らない人向けにやさしく教える感じの内容で、8.5での新しい機能などを紹介するのと、プレゼンテーターが作っている「pgpool ?」なるOSSの紹介でした

 主催が大学なので、参加者名簿をチラっと見た感じでも学生さんが多かったような気がします。(几帳を見れるってのはどうかと思ったけどね)GISや図形を保存できるってのは驚き。あとは聞いていて気になった言葉の羅列

Join Removal

 ORマッピングとか言ったミドルウェアが吐き出すSQLには効率の悪い結合などがあるが、それをオプティマイザをよくすることによって、「結合の排除」を行う。結果に関してはExplainなどのコマンドを見ると一目瞭然だそうな。この辺はデータベース屋とアプリケーション屋の攻防だなと思った。開発効率を上げるためのORマッピング。その吐き出すSQLを最適化してくれんだったらいいんじゃない?

垂直パーティショニング

 時に列数が多くなるテーブル定義を、列を分けることによって検索効率を上げる方法??時に列数が100なんて設計はみるけど、それを10個列ずつにテーブルを分割するイメージ。ここでも分割したテーブル同士のデータの紐付けを結合で行うけど、PostgreSQL8.5では先のJoin Removalで効率を上げるってことか??

MIXIの件

 よくMIXIなんかで日記を書くと、「反映されるまでちょっと待ってね」的なメッセージがでるけど、あれって何でっておもっていたけど、データベースをレプリケーションしているので、そのすべてのデータベースに反映されるまで時間がかかるので、そういった処置をしているってこと。スゲー。MIXIの場合は1台のマスターのデータベースサーバーを非同期でスレーブに更新していると思われるのでそんな感じになるとのこと。

pgpool-?

 PostgreSQLは個人で使う分にも非常に簡単なデータベースですし、個人的にもつかっていますが、あまり新バージョンなんてのには疎いので「へぇ〜」って聞いていました。また、仕事でもPostgreSQLをバリバリってのは無いと思うので、PostgreSQLで負荷分散やレプリケーションなんて殆どお目にかからないけど、pgpool-?については覚えておきたいと思います。以下にpgpool-?についての説明を羅列


 クライアントとPostgreSQLの間にいて、負荷分散機能、レプリケーション(複製)コネクションプーリングなどの機能を提供する。基本的な方式はクライアントから受け取ったSQLをコピーして複数のPosgreSQLサーバーに投げる形式でレプリケーションする。レプリケーション時の時間的な誤差を意識するようなことは無い。(少しはあるので、今まではTIMESTAMP型は使えなかったらしいが、新バージョンでは対応できている)


 個人のOSSからスタートしている。





 しかし・・・司会者さん・・・変すぎ!学長なんすね。