Bertrand Delacretaz wrote:

Le 14 avr. 04, � 11:55, Sylvain Wallez a �crit :

...Blocks are running inside the same VM and although a wiring can switch, it cannot suddenly disappear. And we can find a lot of strategies to make this transparent to client code (including my idea of deferring actual switch which strangely had no feedback)....


Deferring, does that mean keeping the "old" block around as long as it's in use, while the "new" block is used by clients that have recently started using it?


Exactly! This solves most (if not all) problems related to statefull components, since the user would be guaranteed to use the same component between lookup and release [1].

If yes, this is (AFAIK) exactly what unix/linux has been doing for ages with executables: you can replace an executable that is already running, and processes which are already running keep using the old version.

It works very well combined with "kill" to cleanup old processes and restart them with the new version, so maybe in the case of blocks some kind of "kill" and "ps" equivalents would be needed to make this work well.


Very good comparison, as I suggested their should be a means to force old blocks to garbage if ever some client code "forgets" to release them [2].

Sylvain

[1] http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=108033164725441&w=2
[2] http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=108143449906750&w=2

--
Sylvain Wallez                                  Anyware Technologies
http://www.apache.org/~sylvain           http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }



Reply via email to