Can anyone tell me the current state of Rails and threading? Do you need a bunch of mongrel processes running on a single machine or is it possible to get away with just one that handles concurrent requests? I did a bunch of Google searches and couldn’t find a definitive answer on the current request model used by Rails.
Rails can do either (config.thread_safe! turns on multithreading, and will be the default in rails 4), but the deciding factor is what ruby implementation you use: MRI doesn’t allow true concurrency in general (specific cases like blocking on IO, waiting for a mysql query do permit some concurrency). jruby doesn’t have this problem and rubinius has also done away with the global vm lock.