On Wednesday 30 July 2008 00:33:53 ara.t.howard wrote:
> 
> On Jul 29, 2008, at 10:33 PM, David Masover wrote:
> 
> > That implies a full copy (I think), which isn't always what's needed.
> >
> > Without actually testing your implementation, what happens when I  
> > send, say, a
> > reference to an actor? (Kind of an essential feature.)
> 
> DRb handles references.  DRbUndumped provides a means to pass  
> references to remote objects around.

Alright. What if I send a complex datastructure? Strings, I can live with, but 
what about multidimensional arrays?

> > And without actually doing any benchmarks (how's that for naive?), I  
> > still
> > find it hard to believe that DRb+Queue would scale better than Thread 
> > +Queue,
> > for large numbers of actors. (Keep in mind, it's not unusual for an  
> > Erlang
> > program to have thousands of processes.)
> 
> no doubt that's true.  processes can help you now though - especially  
> since threads don't scale right now in ruby with multi processor  
> machines.

I believe work is going on to make Threads scale in 1.9 -- current 1.9 still 
has a GIL, though.

They do scale in JRuby, and probably in IronRuby (haven't tried).

> > Given that I still have a vague hope that YARV will eventually  
> > remove the GIL,
> > I'd rather stick to Threads, if I can make them safe.
> 
> 
> sure, but if you want to burn up processors you simply have to use  
> processes attm.

Or I could use JRuby. Or IronRuby.

I don't want to burn up processors atm. I want to build an architecture which 
will be able to burn up processors in the future. I want to solve concurency 
on a single machine once and be done with it -- without having to use Erlang.

> 
http://groups.google.com/group/ruby-talk-google/browse_thread/thread/b4e346478eeeead4/0cbc4a86f2237476?lnk=gst&q=threadify+jruby#0cbc4a86f2237476

From that link:

"the sync overhead is prohibitive  
for in memory stuff"

I am, specifically, interested in doing in-memory stuff. If I can solve that 
problem, I'm not as worried about the network stuff, especially as others 
have already solved that well enough (DRb and friends).