[Biocorba-l] BSANE and bioCORBA
Michael Dickson
mdickson@netgenics.com
Fri, 01 Jun 2001 08:04:59 -0400
Sorry for the delay in the response, yesterday was a pretty nutty day:
Ewan Birney wrote:
>On Thu, 31 May 2001, Philip Lijnzaad wrote:
>
>>On Thu, 31 May 2001 12:59:03 +0100 (BST),
>>"Ewan" == Ewan Birney <birney@ebi.ac.uk> wrote:
>>
>>Ewan> I need to revisit CosPropertyService and CosLifeCycle - if I remember
>>Ewan> right they make life a pain in the arse for implementors -
>>
>>CosProperty should be OK; CosLifeCycle is evil. It was just added because it
>>provides a remove() The others, move() and copy(), are completely
>>unimplementable, even the OMG agrees on that (in BSA, it's intended that
>>copy() and move() raise the NO_IMPLEMENT exception). So I would say drop
>>LifeCycle, and cut-n-paste remove()
>>
This isn't completely correct (IMHO). There's general agreement that
move() is only implementable in limited circumstances. Its effectively
unimplementable in a general way. copy() and remove() are fine and give
standard life cycle behaviour for the persistent state of an object.
Referencing counting and life cycle stuff are really solving different
problems.
>>
>>Note: the semantics of remove() are that it destroys the CORBA object; after
>>this, noone who happens to have a reference to that same object, can do
>>anything with it anymore
>>
>>Ewan> I prefer the GNOME reference counting system and just a short a simple
>>Ewan> key - list-value system as in BioCorba.
>>
>>I think I agree, but I also think Bonobo confuses the CORBA Object management
>>with the implementation object management, whereas they are (or can be)
>>largely orthogonal.
>>
I very much agree with this. I strongly believe that reference counting
in a distributed system is fundamentally broken. That doesn't mean I
think its innaproriate for use in a document model like bonobo where
essentially all the resources are on the local machine and you can clean
up the whole mess when reference counts get frotzed up with a reboot.
Reference counting doesn't scale in large distributed systems. This is
one of the key things that the OMG got right. Its being abandoned in
RMI with the adoption of RMI/IIOP, and M$.NET, which will eventually
replace DCOM (through adoption of SOAP as its core transport) doesn't do
it either.
>> Firstly, it relies on clients always calling ref() when
>>wanting to pass their object reference around; secondly, clients allways have
>>to call deref() when done with an object. Neither can be guaranteed,
>>especially with crashing clients and backhoes roaming the surface of the
>>earth.
>>
Oh yeah, its a pain in the ass for clients using it too...
>
>
>For sure but it works, even across distances. Agreed you *have* to restart
>servers at some point, but for well behaved clients the server gets a big
>win.
>
I just don't see this. You fundamentally can't guarantee the behaviour
that the whole model is based upon. Besides, in current systems that
can deactivate/reactivate statefull objects in a transparent way
management of the in-memory lifecycle of the objects is completely
transparent to the client.
>
>
> I like the GNOME ref() unref model - it has been used now for >10 years
>first in DOM and now Bonbo object frameworks v.well
>
This would be a complete non-starter for me. I wouldn't want to force
my servers to have to implement the semantics. I suppose there's no
serious downside to ignoring the ref/unref calls in the server.
Reference counting can be made to work in DOM style code on a local
machine. I still think there's better ways to do it but if you do use
it thats the logical use. In distributed systems it actually limits
scalability because I can't use restartable servers without preserving
reference counts across restarts, or by ignoring them. If I ignore them
why bother with the messaging traffic for the reference counting.
Mike
>>The only scalable way to keep the resources under control is to periodically
>>restart the server (requires persistent iors), or to use an evictor queue, and
>>killing things that are drop off the queue and/or are too old.
>>
>>But this is probably nothing new. Cheers,
>>
>> Philip
>>--
>>If you have a procedure with 10 parameters, you probably missed some. (Kraulis)
>>-----------------------------------------------------------------------------
>>Philip Lijnzaad, lijnzaad@ebi.ac.uk \ European Bioinformatics Institute,rm A2-08
>>+44 (0)1223 49 4639 / Wellcome Trust Genome Campus, Hinxton
>>+44 (0)1223 49 4468 (fax) \ Cambridgeshire CB10 1SD, GREAT BRITAIN
>>PGP fingerprint: E1 03 BF 80 94 61 B6 FC 50 3D 1F 64 40 75 FB 53
>>
>
>-----------------------------------------------------------------
>Ewan Birney. Mobile: +44 (0)7970 151230, Work: +44 1223 494420
><birney@ebi.ac.uk>.
>-----------------------------------------------------------------
>
>_______________________________________________
>Biocorba-l mailing list
>Biocorba-l@biocorba.org
>http://www.biocorba.org/mailman/listinfo/biocorba-l
>