Re: ref counting in Bonobo




On Wed, 29 Sep 1999, Miguel de Icaza wrote:

> 
> > If I have understood it right, we have a
> >  interface Ping {
> > 	  void Foo ();
> >  };
> > 
> > that all Gnome objects should implement, and that should be used as "ticket"
> > when a "client" want's to connect to a "server".
> 
> What if the server is just swapped out?  Or if the net connection is
> temporarly down?

What do you mean by swapped out?  That the server process is blocking on
I/O?

Let's suppose that a net connection is down, and the server incorrectly
concludes that the client is dead.  The next time the client tries to make
a request, if the server has already deleted the object, it sends back to
the client an invalid object reference exception.  This isn't any worse
than many of the other things that can go wrong for the client -- it's not
any worse than if the server had just crashed, for example.  A client can
degrade gracefully under those conditions, since they know something has
gone wrong.  For example, if a client gets a bad object reference
exception, they can try to get a new reference to the object by the same
mechanism they got the initial reference.

On the other hand, let's suppose that we don't have anything like the ping
interface.  The server would only know if a client has crashed after
making a request, but before the server sent it the reply.  Otherwise, the
server would never discover that the client was gone.  The server would
keep running, tying up resources, until either explicitly killed by a
user, or the system reboots.

> What is the metric to decide when an object must die and not?
> 
> All these and more are good interesting topics for research in
> distributed garbage collection, which I am not going to attempt to
> address myself :-)

What if someone invents a lifetime management mechanism that is clearly
better than the current one?  I'm not saying that the ping idea I through
it is necessarily it, but it's not that hard to imagine someone suggesting
something that's an improvement.  If a little effort is made now to
insulate clients and servers from the actual details of lifetime
management, then the current mechanism could be replaced by a better one
by a simple replacement of the Gnome libraries.  No Ph.D.'s in distributed
garbage collection involved. :-)

Walt



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]