Phusion Passengerのメーカーである Phusionは、Ruby Enterprise Edition (REE) のサポートを近く終わりにする、と発表した。REEは、MRI Ruby 1.8.7をベースにしているが、1.8.7もその内消える(1.8.7は2012年6月まで正規メンテナスを受けられ、セキュリティ修正は2013年6月まで)。
REEには、Ruby 1.8.7 の以下の不具合を修正するパッチが含まれていて、典型的なサーバー指向の使用シナリオでは、パフォーマンスが改善される。
- copy-on-write friendly ガーベッジコレクターがRailsアプリケーションでメモリー使用量を削減する。
- tcmallocメモリーアロケータがメモリー使用量を減らす。
- チューニング可能メモリー使用量を削減する 。
- Brent Roman氏のMBARI パッチセット。
- 分析とデバッグフィーチャが増加。
フェーズアウトするけれども、 Phusionはまだ新しいバージョンを出す予定である。最新リリース 1.8.7-2012.02は、基になっているRubyを 1.8.7-p358へ、RubyGemsを1.8.15にアップデートし、最新のMBARI パッチも入っている。 これでXcode が4以上で、OS X Lionに互換になる。
Phusionは、Ruby 1.9に移行始めることを推奨しており、更なるメンテナスを引き受けてくれる新しいメンテナーを探している。
我々は当分の間小さな修正とアップデートを計画していますが、ユーザーがゆっくりと Ruby 1.9に移行することを薦めています。 Phusion Passenger 3.1以下のユーザーは、同一サーバー上で複数のRubyバージョンを走らせるために、リバースプロキシ設定を使うことができます。Phusion Passenger 3.2 から始めれば、、リバースプロキシ設定無しでネイティブに複数のRubyバージョンを走らせることができます。
我々はRuby Enterprise Edition がその目的を果たしてきた、と信じます。すなわち、多くの人々が互換性の問題のために、当分の間尚もRuby 1.8使うのを我々は理解しています。 なので Ruby Enterprise Editionのメンテナスを引き受けたいと考えるボランティアを探していたいのです。もし興味があれば連絡して欲しい。
InfoQ はPhusionの Hongli Lai 氏になぜREE1.9をリリースしないのかを聞いた。
REEのほとんどのパッチは、1.9では必要ありませんが、いくつかはREE同等ではありません。例えば、 MBARIパッチセットは極めて1.8特有です。 MBARIパッチのいくつかは、すでに上流の MRI 1.8にマージされ、他のいくつかは1.9には存在しない問題を解決するものです。別例として、 caller_for_all_threadsパッチは1.9では廃止されたいます。1.9には、同様な機能を持つ公式のAPIがあるからです。Ruby 1.9にはGCチューニングオプションは、全く有りませんが、全体的にGCは改善されており、GCをチューニングできることによる恩恵は、全くなくなりました。
InfoQ:Phusion Passenger 3.2 は複数のRubyバージョンをサポート予定ですが、 Passengerの将来計画についてもう少し話してくれませんか?
多くの興奮するようなことが計画されています。すべてをお話しするわけにはいきませんが、我々が今開発しているものの1つが Phusion Passengerを現行のマルチスレッド化されたI/Oアーキテクチャからイベント化されたI/Oアーキテクチャに変えることです。これによって、我々はずっと堅牢な方法でI/Oを処理することができ、事実上無制限の並列性を手に入れることができます。これは将来ストリーミングやWebSocketのようなものをちゃんとサポートするための、道を敷いてくれるのです。
最新のREE がダウンロードできる。あなたは既に Ruby 1.9に乗り換えましたか?未だなら、何が障害なのですか?