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