Jeremy Kemper wrote:
Charlie Bowman wrote:
> What's in your wishlist for rails?
1) Thread safety in ActionPack
2) Thread pooling in ActiveRecord
These are 'magic beans' features whose importance deserve to be
I disagree. Thread safety in ActionPack would allow you to use fewer
processes in production, which would help memory usage. I'm not saying
it is very important, but that doesn't mean it doesn't belong on a
A bigger isssue is the lack of connection/thread pooling in
ActiveRecord, which makes it pretty unusable for web frameworks such as
Ramaze. With allow_concurrency = false, if two requests need access to
the database at the same time, one fails, as there is no thread safety.
If you set allow_concurrency = true, every request gets its own
connection, but garbage collection doesn't kick in and you eventually
run out of resources (that could be a problem with the database adapter
and or Ramaze leaving references to the thread open, though).
These features are obviously important to the people designing
alternative ruby web frameworks such as Ramaze and Merb and ORMs such
as Sequel and DataMapper.
Obviously it is easier to ignore thread safety, but do you believe that
ActionPack would be worse off if it were thread safe, or that
ActiveRecord would be worse off if it supported connection pooling?
3) Smaller memory footprint
4) Saner Ruby GC that takes copy-on-write into account (would help a lot
These are extremely valuable. Some folks have been making great
strides here in the past 6 months.
Hongli Lai has modified Ruby GC to be CoW-friendly and Matz has
expressed interest in merging with Ruby 1.9:
I've read about this work, but I did not know that Matz was interested.
I certainly hope it gets applied.
The Acunote crew have been doing extensive memory profiling and their
patches are going straight to Rails trunk:
That's good to know.