JRuby + Rails 4 + Mongoid version incompatibility & Performance issues

83 views
Skip to first unread message

Manish Chakravarty

unread,
Apr 21, 2014, 9:43:41 PM4/21/14
to rubyonra...@googlegroups.com
Hello,

I am developing a JRuby on Rails 4 application. I've the following in my Gemfile:
gem "mongoid", "~> 3.1.6"

When I run a bundle update, I get the following:
Resolving dependencies...
Bundler could not find compatible versions for gem "activemodel":
  In Gemfile:
    mongoid (~> 3.1.6) java depends on
      activemodel (~> 3.2) java

    rails (= 4.1.0) java depends on
      activemodel (4.1.0)


When I switch to upstread mongoid via
gem "mongoid", github: 'mongoid/mongoid'

a 'bundle update' goes through but I am worried about taking this application to production. The upstream github Mongoid driver seems to be 50-100x slower than the Java MongoDB driver.
I have a content ingestion script where I need to repeatedly search for text-matching in an attribute. I've created the required indexes to deal speed up the lookups ( there are around 600,000 records, total number of insertions performed during the operation is about 15,000 )
The JRuby + Mongoid takes around 100 hours to complete the operation - I rewrote the script as a Java class and ran it using the Java MongoDB driver and it takes around 30 minutes!

There's obviously a problem here  - I'd like to know if you are using JRuby on Rails in production and if so, what version of Mongoid are you using?

Regards,
Manish

Carlos Figueiredo

unread,
Apr 22, 2014, 1:09:03 PM4/22/14
to rubyonra...@googlegroups.com
Only Mongoid 4.x supports rails 4.x

I've been using mongoid ~> 4.0.0.beta with satisfatory results (on ruby... i didn't try on jruby yet)


I don't recommend you get the master branch... if you wanna get directly on github sources, focus a tag 

And after all, if you still get problems, is good open an issue on mongoid repository to let them track the problem and resolve if possible.

Best regards,

Carlos Figueiredo


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/5ab1a725-dcab-48d4-8b91-a63e9b229c30%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Carlos Figueiredo

unread,
Apr 22, 2014, 1:20:31 PM4/22/14
to rubyonra...@googlegroups.com
And something i forgot... 

Mongoid only supports jruby on ruby-1.9 mode... I'm not sure if monoid-4.x already supports jruby running on ruby-2.0 compatibility mode.

So, make sure you are running jruby on ruby-1.9 mode.


Best regards,
Carlos Figueiredo

Jordon Bedwell

unread,
Apr 22, 2014, 1:26:40 PM4/22/14
to rubyonra...@googlegroups.com
On Tue, Apr 22, 2014 at 12:20 PM, Carlos Figueiredo
<carlos.fi...@gmail.com> wrote:
> Mongoid only supports jruby on ruby-1.9 mode... I'm not sure if monoid-4.x
> already supports jruby running on ruby-2.0 compatibility mode.

If it doesn't work in 2.0 mode that's a problem with jRuby, not with
Mongoid so make sure to cross post tickets to both of them.

Carlos Figueiredo

unread,
Apr 22, 2014, 1:33:42 PM4/22/14
to rubyonra...@googlegroups.com
jruby on ruby 2.0 mode works with rails 4.x without problems...

i just said that mongoid does not support jruby on ruby-2.0 mode yet... they only test on jruby 1.7.9 with ruby-1.9.3 mode

So... if you open tickets, make sure to open on mongoid repo and for the supported version of jruby... or at least ask them for support ruby-2.0 mode for jruby


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.

Jordon Bedwell

unread,
Apr 22, 2014, 1:41:52 PM4/22/14
to rubyonra...@googlegroups.com
On Tue, Apr 22, 2014 at 12:33 PM, Carlos Figueiredo
<carlos.fi...@gmail.com> wrote:
> jruby on ruby 2.0 mode works with rails 4.x without problems...
>
> i just said that mongoid does not support jruby on ruby-2.0 mode yet... they
> only test on jruby 1.7.9 with ruby-1.9.3 mode
>
> So... if you open tickets, make sure to open on mongoid repo and for the
> supported version of jruby... or at least ask them for support ruby-2.0 mode
> for jruby

Let me reiterate since obviously I wasn't clear enough... If there is
a problem running Mongoid on jRuby, you need to also file the ticket
with jRuby and let them know, because jRuby strives to match MRI 1:1,
which means that if it works in Ruby 2.0.0 and not in jRuby 2.0 mode
then you need to let them know so they can sort it out. Your lack of
wanting to file tickets in a cross-pollinating way like that is why
stupid silly mismatch feature bugs slip through and don't get noticed
until somebody does do that.

Carlos Figueiredo

unread,
Apr 22, 2014, 1:44:08 PM4/22/14
to rubyonra...@googlegroups.com
Looking mongoid's travis, I saw that they are testing rails 4.1 but it is not passing yet. (so the master branch you got have bugs not solved yet, maybe that are your problems)

Seeing the dependencies you listed, looks like you are testing rails 4.1... For me, I would wait a bit more before try rails 4.1 on production... or at least using dependencies that I know that are already supported on rails 4.1
Reply all
Reply to author
Forward
0 new messages