... what does 'J' stand for in JRuby ?
we've come a long way (since)
it will pay off (and not just due faster tests)
serialport gem's API - simple to re-implement
on your own unless you absolutely must
Thread.new you better deal with itjruby.thread.pool.enabled=true
a (simplified)
piece
of ActionController::Live::Response
Thread.newhide the async nature of the response "under" a middleware
there's (still) no "official" rack env['async.callback'] support
Rails.logger ain't thread-safesilencing the logger is still not thread-safe (and maybe never will be)
Rails.logger.silencer is on by default (even on production)Rails.logger ain't thread-safelogger.silence got
deprecated
on 3.2 (for removal)
ActiveRecord::ConnectionAdapter::ConnectionPool
synchronizedvery appreciated step but took quite some time (4.0) to "smooth" out
SUMMARY: lots of (concurrency) issues ... along the way
pool might often be the performance bottleneck
pool: size high >= 100 (depending on server's max-requests)
config.middleware.delete 'ActiveRecord::QueryCache'this middleware forces each request to check-out a connection
what if the pool stands in your way
jndi: jdbc/MyDSpooling "hacks" ... in a relaxed 'spa' fashion!
this is an (early-stage) experiment for now
ActiveRecord::Bogacs::FalsePoolpool: size and similar)jndi: jdbc/MyDS case perfectlyActiveRecord::Bogacs::DefaultPoolinitial: size - very easy to support and quite useful in the cloudThread.current.object_id issue with JRuby's thread-backed fibersActiveRecord::Bogacs::ShareablePoolwith_shared_connection... and have fun with JRuby (on Rails)
hand-(c)rafted for JRubyConf 2014 by http://kares.org