[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Fault Tolerant DRb?

khaines

7/1/2005 4:25:00 PM

Just pondering different things this morning, and my mind came back to
something I've thought about now and again.

Assume you are using a DRb service for....something. It doesn't matter what.
The case is the same whether one is accessing an array via DRb or a Rinda
Ring. Is there some reasonably easy way of making a service work in a fault
tolerant way? That is, one could have two processes on two different
machines both offering the same service. If one process dies, the data is
still present on the other, and the clients of that service can continue
operating without data loss?


Kirk Haines


6 Answers

Ara.T.Howard

7/1/2005 4:41:00 PM

0

Shashank Date

7/1/2005 4:46:00 PM

0

Hi Kirk,

I have written something like this a long time back to build fault tolerant database clusters.
It became pretty messy pretty quick (of course I was not as proficient in Ruby back then ;-)).
So I have some questions:

--- Kirk Haines <khaines@enigo.com> wrote:
> Assume you are using a DRb service for....something. It doesn't matter what.
> The case is the same whether one is accessing an array via DRb or a Rinda
> Ring. Is there some reasonably easy way of making a service work in a fault
> tolerant way? That is, one could have two processes on two different
> machines both offering the same service. If one process dies, the data is
> still present on the other,
^^^^^^^^^^^^^^^^^^^^^^^^^^
How do you propose to ensure that? Is it on a shared file system (like NFS).
If true, then take a look at Ara's rq package:

http://www.codeforpeople.com/lib/ruby/rq/rq-2.3....

If false, then think of some "easy" way of replication.

> and the clients of that service can continue
> operating without data loss?

I had to worry about how the clients who were in the middle of a request would know that the
service is no longer available.

>
> Kirk Haines
>

-- shanko
>




____________________________________________________
Yahoo! Sports
Rekindle the Rivalries. Sign up for Fantasy Football
http://football.fantasysports...


khaines

7/1/2005 6:24:00 PM

0

On Friday 01 July 2005 10:40 am, Ara.T.Howard wrote:

> depending on you needs you may be able to code something simple that 'good
> enough' but you'll need some sort of distributed transaction capability and
> the easist way to get that is via a real rdbms like postgresql. however,
> once you have that setup it's stilly to use drb unless your data is
> terrible to model within the relational model.

LOL. All valid points. You never know, though. Sometimes when one asks for
something magical and unlikely, someone else pipes up and delivers. It was
worth a shot. Thanks Ara (and Shashank) for the comments.


Kirk Haines


Gary Wright

7/1/2005 7:05:00 PM

0


On Jul 1, 2005, at 12:25 PM, Kirk Haines wrote:
> Assume you are using a DRb service for....something. It doesn't
> matter what.
> The case is the same whether one is accessing an array via DRb or a
> Rinda
> Ring. Is there some reasonably easy way of making a service work
> in a fault
> tolerant way?

You might want to take a look at some of the software and ideas at
http://www.cse.cuhk.edu.hk/~xychen/Group...

This page has a great summary of toolkits that implement
"process group communication" or "virtual synchrony". A variety of
toolkits
have evolved and been released in various forms. While I don't know
of any
ruby implementation or wrapper for these ideas/software it would be a
great
project.

The goal of process group communication is to send a series of
messages to a
named group of recipients and ensure that every member of the group
receives
the messages in a globally consistent order in the presence of
communication
and/or hardware failures. From this foundation you can build a
variety of
fault tolerant systems.


Gary Wright



Ara.T.Howard

7/1/2005 7:46:00 PM

0

Ara.T.Howard

7/1/2005 9:01:00 PM

0