Magic Multi-Connections

railsで定義する一つのクラスで、複数のデータベースを扱う法。すげ。

http://magicmodels.rubyforge.org/magic_multi_connections/
http://www.rubyist.net/~matz/20070416.html#p06
http://drnicwilliams.com/2007/04/12/magic-multi-connections-a-facility-in-rails-to-talk-to-more-than-one-database-at-a-time/

ふむ。スケーラビリティを上げるために、というのがそもそものモチベーションらしい。ふむふむ... あ!

ひらめいた。Bio::DB::GFFなDBを利用するとき、bioperlモジュールではなくActiveRecordsモデリングを使う利点がここで出てくる。つまり、現在のbioperlモジュールでは、一つのDBしか扱えない。つまり、GBrowseで扱いたいデータはすべて、一つのデータベースに押し込めておくしかない。もちろんDASを経由することで他のアノテーションを表示できるんだけれども、DASを利用するとパフォーマンスはますます落ちることになる。しかし、ActiveRecordモデリング + magic_multi_connectionsを利用すると、複数のDBが扱える。論理的・作業的に区切りの良いところで別個にデータベースを構築しておき、viewerを設定するときに適切なデータベースにアクセスするようconfigureすれば良い。

素敵!

ちなみに、違うモデルで異なるDBを利用することは、素のrailsできる。

http://ar.rubyonrails.com/classes/ActiveRecord/Base.html

なんかそんなコトを以前、bio/railsなヒトたちと話してた気がするのだけれど...記憶の彼方に。探しきれなかったのでとりあえずマニュアルだけリンクしとく。