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なヒトたちと話してた気がするのだけれど...記憶の彼方に。探しきれなかったのでとりあえずマニュアルだけリンクしとく。