[Backgroundrb-devel] [Rails] Re: Is drb much slower than memcached ?

hemant gethemant at gmail.com
Wed Sep 27 05:39:06 EDT 2006


Using Eventmachie and MemCache......i am on verge of phasing
out....backgroundrb.

I am not sure, if it is such a nice decision.but turns out pretty fast
and since i developed it....I can be little bit sure about it.

The flipside is...i use TCPSocket to pass messages to the background daemons.

On 9/26/06, Ezra Zygmuntowicz <ezmobius at gmail.com> wrote:
>
> Hi-
>
>         YEah memcached is pure C and is very fast. DRb is a bit slower for
> caching. Backgroundrb has caching features but I recommend you use
> memcached for scalable cache. Backgroundrb is more for the worker
> classes then for caching.
>
>
> Cheers-
> -Ezra
>
>
> On Sep 25, 2006, at 7:00 PM, awatermail wrote:
>
> >
> >
> > I do some test, surprising to find seeming to access drb much
> > slower than
> > access memcached.
> >
> > If it's true, should we use more memcached directly than drb based
> > things
> > (like backgrounddrb) in scale situation ?
> >
> > Before the test, I can't decide whether to do(such as get/set
> > global data
> > operations) in drb/backgrounddrb or just access memcached in
> > actioncontrollers.
> >
> > I have thought of that doing save(or some read) operations in
> > drb/backgroundrb asynchronous will improve the performance highly.
> >
> > Hope for your idea, thank you.
> >
> > water
> >
> > The test:
> >
> > ?summary?
> > just loop 100 times doing a simple action with drb & memcached, see
> > how long
> > they will take.
> >
> > ?background?
> > ruby 1.8.4 (2006-04-14) [i386-mswin32]
> > Rails 1.1.6
> > memcache-client-1.0.3
> > Distributed Ruby: _dRuby_ version 2.0.4  # from ruby/lib/rub/1.8/
> > drb/drb.rb
> >
> > ?begin?
> > # RAILS_ROOT/config/enviroments/development.rb
> > # new drb object here to ensure just new it once at the beginning
> > require 'drb'
> > DRb.start_service()
> > DRB_OBJ = DRbObject.new(nil, 'druby://localhost:9000')
> >
> > # In a simple actioncontroller
> > class TestController < ApplicationController
> >   def test
> >     start_time = Time.now.to_f
> >     100.times do
> >       DRB_OBJ.doNothingInSide() # just invoke a simple drb
> > function, do
> > nothing inside
> >     end
> >     end_time = Time.now.to_f
> >     flash['tm2'] = sprintf("DRB access take (%0.9f)", end_time -
> > start_time)
> > # log the duration to show in view
> >
> >     start_time = Time.now.to_f
> >     100.times do
> >       Cache::put('test', {'test' => 'just test'}) # just set the
> > memcached
> > through memcache-client's put method
> >     end
> >     end_time = Time.now.to_f
> >     flash['tm1'] = sprintf("Memcache access take (%0.9f)", end_time -
> > start_time) # log the duration to show in view
> >   end
> > end
> >
> > # In the simple view
> > <p>tm1=#<%=flash['tm1']%>#</p>
> > <p>tm2=#<%=flash['tm2']%>#</p>
> >
> > # run & see the results
> > tm1=#Memcache access take (0.546000004)
> > tm2=#DRB access take (3.141000032)
> >
> >
> > The running results different every time, but all show memcached
> > much faster
> > than drb access.
> >
> >
> > >
>
>
> --~--~---------~--~----~------------~-------~--~----~
> You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
> To post to this group, send email to rubyonrails-talk at googlegroups.com
> To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe at googlegroups.com
> For more options, visit this group at http://groups.google.com/group/rubyonrails-talk
> -~----------~----~----~----~------~----~------~--~---
>
>


-- 
There was only one Road; that it was like a great river: its springs
were at every doorstep, and every path was its tributary.


More information about the Backgroundrb-devel mailing list