スレッドセーフRuby on Railsが意味することは、Rails 2.2でスレッドセーフ

    後藤大地  [2008/08/18]

    Ruby on Rails

    Ruby on Railsの主要開発者であるDavid Heinemeier Hansson氏は16日(米国時間)、RailsコアチームメンバーにJosh Peek氏を正式に迎えいれたことを発表した。Josh Peek氏はこれまでもRailsのコアコミッタとしてデファクトのポジションにあったが、これで正式なチームメンバーになったことになる。

    Josh Peek氏はGoogle Summer of Codeプロジェクトの一環としてRailsをスレッドセーフに変更する取り組みをおこなった。Josh Peek氏をコアチームに迎え入れたことで、次期RailsとなるRuby on Rails 2.2にはスレッドセーフ実装が取り込まれることになる。Rails実装がスレッドセーフになることで、並列処理が高速になるほか要求するリソースが少なくてすむようになる。Railsをアクセスが多いサイトで使っている場合には朗報といえそうだ。

    スレッドセーフRailsの発表に対してJRubyの主要開発者であるCharles Nutter氏はQ/A: What Thread-safe Rails Meansにおいて、スレッドセーフRailsの詳細とその効果を紹介している。スレッドセーフRailsは、随所に入っている荒いロック処理を最低限必要とされる部分だけの最小ロックに変換したものになる。これで、これまでよりも並列処理が改善されることになる。

    JRuby

    同氏は動作例を紹介してスレッドセーフRailsの効果を説明している。まず従来の方法であれば並列にしたい分だけインスタンスを用意する。こうすることでマルチコア/プロセッサの性能を発揮しつつ簡単に並列化ができる。難点はメモリなどのリソースを大量に消費する点にある。スレッドセーフRailsではグリーンスレッドの性能が向上しているため、最大でマルチコア/プロセッサ数だけインスタンスを生成して処理すればいい。スレッドセーフRailsではない場合と比較してリソースが少なくてすむ。

    Charles Nutter氏はさらにJRubyの開発者らしく、JRubyを使えばそれが1つのインスタンスにまで削減できることを主張している。JRubyではRubyスレッドはJavaを経由してカーネルネイティブスレッドへ展開される。1つのインスタンスのままでRubyスレッドを複数のコア/プロセッサに分配できるというわけだ。このようにRailsのスレッドセーフ化はJRuby on Railsにも効果があり、Charles Nutter氏は採用するプロダクトとしてJRuby on Railsも採用検討の対象にしてほしいと主張している。

    関連記事

    1,600超えるパッチ集大成、Ruby on Rails 2.1登場 [2008/6/4]
    Rails、SubversionからGitへ - zipファイルでもOK [2008/4/15]
    Ruby on Rails 2.0.2登場 - デフォルトDBがMySQLからSQLite3へ [2007/12/18]
    待望のRails 2.0登場 - 多くの機能追加と改善、パフォーマンス向上 [2007/12/10]
    Rails最終準備リリース公開、12月中にはRails 2.0の登場へ [2007/11/30]
    Rails、セキュリティ修正版公開 - 2.0への準備も兼ね、アップグレード推奨 [2007/11/26]
    Rails 2.0へ向けた準備リリースはじまる - 早ければ数週間後にもリリース [2007/11/12]
    Ruby on Rails 1.2.5公開 - JSON XSS脆弱性を修正、迅速なアップグレードを [2007/10/15]
    Rails 1.2.4登場 - 2.0での対応予定者も本バージョンで警告チェックを [2007/10/9]
    Patrick Lenz氏のRails本PDFが60日間無償ダウンロード [2007/10/3]
    Rails 2.0向けアダプタ登場 - Oracle、SQL Serverもサポート [2007/10/3]
    次期Railsの開発プレビュー版"Ruby on Rails 2.0: Preview Release"登場 [2007/10/2]
    ドリコム、Ruby on Railsのコンテストを開催 - 賞金100万円 [2007/7/2]
    Rails 1.2と1.1、速いのはどっち? - Railsbenchによる性能レポートを公開 [2007/4/3]
    Ruby/Rails最新版 - Ruby on Rails 1.2.3、Ruby 1.8.6公開 [2007/3/15]
    Rails 1.2.1/1.2.0-REST志向の機能マルチバイトも、Leopard搭載も予定通り [2007/1/22]
    Ruby on Railsセキュリティフィックス、全ユーザにアップグレードを推奨 [2006/8/10]
    Rails on OS X !? - Ruby on Rails、Mac OS X Leopardに搭載へ [2006/8/9]
    祝2歳!! Ruby on Rails 1.1 + MySQL Administratorで日記システムを作ろう [2006/7/29]
    おめでとうRuby on Rails、満2歳の誕生日むかえる [2006/7/27]
    Ruby on Railsセキュリティフィックス"やり直し"-ユーザはアップグレードを [2006/7/4]
    Ruby on Railsセキュリティフィックス、全ユーザにアップグレードを推奨 [2006/6/28]
    Ruby on Railsまたも進化、1.1 公開 [2006/3/29]
    ついに1.0! Ruby on Rails [2005/12/15]
    Ruby on Rails RC2 - 待望のリリース1.0まであと少し [2005/10/21]

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン