Hi everyone, Sorry for the double post. I posted this earlier to the announcements mailing list, but didn't get any feedback. So I'm posting here in the users mailing list hoping to get more audience. Some of you might have come across the JRuby friendly ruby-pg gem https://github.com/headius/jruby-pg. Unfortunately I started this work more than a year ago. I didn't have time to fix the issues that were reported or keep it up to date with the ruby-pg gem. Recently, I got some leisure time and rewrote a big chunk of the gem to make it compatible with 0.17.1. I've tested the gem with JRuby 1.7.18 and all the tests pass. The active record (v3.2.21) tests pass as well. That makes confident to release the gem, may be a release candidate for now. It looks like the ruby-pg guys are willing to merge the changes in their repo but it might take a while to do so. I think this gem should be released separately for the now. Unless I get any feedback soon, I'll go with jruby-pg. Cheers, JS
on 2015-02-26 19:07
on 2015-02-26 21:33
What would be the advantage of this gem vs the JDBC gems?
on 2015-02-27 01:01
good question. there are two advantages that i can think of, first is asynchronous io and second is that jruby-pg is a drop in replacement for the ruby-pg gem. also afaik the jdbc interface of postgresql has some limitations regarding large object api and others that i don't remember off the top of my head. granted this isn't something that everyone needs, especially new projects, but it was a blocker to switch to jruby for some teams in the past. cheers, js
on 2015-02-27 01:15
Great. Thanks for doing the hard yards!. Do you have any performance numbers? Will the async IO result in better performance?
on 2015-02-28 00:58
Sorry about the late response. No, I currently don't have benchmark numbers for the current implementation. I'd love to throw a benchmark tool at it if one already exists for ruby-pg or rails for example. I'm also not sure how the async IO is related to performance. It is a different way of handling IO, you can use threads, async IO or some hybrid strategy. Each has it's own cons/pros regarding resource usage. Cheers, JS