RubyWorld Conference 2015の動画を見ています。 18分ほどの短めのセッションでしたが、とても面白かったです。 MySQLにしか製品していなかった製品を大人の事情でPostgreSQLにも対応したというお話。 ORMとしてSequel を導入したがいろいろ問題があり、それらをいかにして乗り越えたという心温まるおエピソードでした。 A-5-1 「非Railsアプリケーションのマルチデータベース対応と高速化の取り組み」 Sequel導入 結果 遅くなった! 原因 ARパターンでDB接続時にテーブル構造を取得 Unixデーモンモデル(接続ごとに子プロセスをfork) マルチスレッド化 プロセス生成コスト減 クラスメソッド クラス変数 グローバル変数 シングルトン PID コネクションプール 結果 遅くなった!! 原因 Rubyは1プロセスが同時に1CPUしか使えない 複数ス