RubyConf 2008: Ruby Heavy-Lifting
Ruby is great for scripting, what about the heavy-lifting? In this talk we’ll disassemble the lessons learned at AideRSS, and how we’ve optimized our Ruby infrastructure to handle millions of RSS feeds on a daily basis – building a spider, processing content, and optimizing process coordination and communication.
“Green Threads” and global interpreter lock (GIL) impose a lot of performance constraints on every developer using Ruby 1.8. We’ll explore the limitations of the MRI, the dreaded global interpreter lock (GIL), and look at the existing and upcoming alternatives – Ruby 1.9 concurrency model (Fibers and Actors) & JRuby threading. In similar fashion, we’ll walk through architectural patterns which can help us alleviate these problems: asynchronous and event driven processing, lazy data loading and processing, and common optimization paths for improving performance (ranging from syntactic optimizations, to writing custom C extensions).
You don’t have to leave the comfort of your Ruby shell to build a high performance system!
About Ilya Grigorik
Ilya Grigorik is the founder and CTO of AideRSS, Inc. After narrowly escaping certain death beneath an avalanche of unread RSS feeds, he knew that something must be done to protect future generations from the menace of information overload, and voila – AideRSS was born. An avid Ruby and RoR blogger (for which he received the ‘Ruby Hero’ award at RailsConf ’08), and a tinkerer at heart, Ilya is often found researching or evangelizing the latest web-development practices, software architectures, and web standards in general.