Connection Pooling in AR
前記事の補足です。
ActiveRecordは、現状データベースに対して1接続しかキャッシュできないようです。
そのため現状のJRoRでは、データソースを使ってもほぼ何の効果もない状況になっているようです。
それを改善すべく、Nick Siegerが取り組んでいるようで、ActiveRecord自体に手を入れ、Rails2.1のリリース後にRailsのtrunkにマージされるようです(まだ未定)。
Nickが行っているActiveRecordのコネクションプーリングの実装は、
- AR::Base.establish_connection が呼ばれると、コネクションプールオブジェクトが生成され、キャッシュされる。
- コネクションプールがそれぞれの接続を管理する
- Connection APIは大幅には変更しない
- JRoRから透過的にJNDIのデータソースを使えるようにする
詳細は、こちら。改良版ARのソースはこちら。
Connection Poolを有効に使えるRailsが登場するのはもう少しかかりそうですが、透過的にJRoRから使えるようになれば、大規模システム等でもRoRがより有効になるかもしれません。
2008/04/30 by Tomo Nozawa
« What's coming on in... | メイン | Glassfish gem v.0.2.... »