On 2010/11/04 (Nov), at 12:29 PM, Gerard Krol wrote:

> I suggest we advertise a specific (testing) version for a certain  
> time slot:
> version 3000, in effect from Thursday November 11 2010 12:00 UTC to
> Thursday November 11 2010 13:00 UTC
> If you start advertising it early (on the 7th for example) then all
> nodes will have had plenty of time to download the testing version.
> After an hour of testing (of after an hour of fatal Freenet outage),
> every node will revert to the stable version and everything will be
> back to normal.
>
> We already had a small discussion about this over IRC. A possible
> problem that came up was that it would be bad if the clock on some of
> the nodes would be out of sync. I suppose it wouldn't really matter if
> it is only a small fraction of the nodes.
>
> - Gerard

While I think that would be *possible*, it sounds like mass chaos.

Rather, how about this...

Split off the auto-updater and the link layer and the client layer.
Have every node run two instances of the core node logic (as a client  
to the link layer, etc): "freenet-stable" & "freenet-next".
Client requests are sent round-robin (alternatingly) into each core.
Auto-updater will replace the "freenet-next" app whenever a newer  
version is available (much like now; maybe slight delay).
Auto-updater will replace the freenet-stable app only...
        IF it has enough uptime, and
        IF there is a version difference between stable/next, and
        IF freenet-next outperforms freenet-stable (chk success?), and
        IF all the peers of freenet-next are running the same version

You could even account for link-layer updates and still package it the  
same way if there was a bit of logic to fallback to the old stable if  
the newest one faulted (not start, no peers after X minutes, ...???),  
and not thrash (startup failure of 'next' implies we stick with stable  
till a new 'next' comes out).

Then we could have a redundant, automatically tested, regression- 
resistant test bed; and the work could be counted towards the os- 
integration (package the link layer). Kind of like "tip-toeing"  
forward rather than... hiccup, BANG, "that didn't work"... revert.

--
Robert Hailey


Reply via email to