The hassle involved in updating software means many of us don't do it, leaving our computers exposed to crash-prone, insecure code. But now two major objections to installing updates – the fact that you have to stop running the software to upgrade it and the fear that an update will introduce bugs – could be removed thanks to an ingenious idea from engineers at Imperial College London.
Computer scientists Petr Hošek and Cristian Cadar have worked out how to employ the unused cores in "multicore" microprocessors to make the update process invisible to the user.
Whenever an update is available, their trick is to leave the old version of the software running on one core – so you can carry on using it – while running the update in parallel on an unused core. They then synchronise the execution of the two programs in such a way that only the most reliable, dependable parts of the two programs run – an idea that limits damage from fresh bugs introduced by the update.
"You end up with what we call a multi-version application," says Cadar. "These run in parallel and their behaviour is combined in such a way as to increase overall reliability and security. But it looks and feels exactly the same to users."
Fear of the new
They developed the system after discovering that even those who should know better habitually ignore updates. In a Swiss survey, 70 per cent of a sample of 50 system administrators admitted they don't always update software for fear of the downtime it will cause – and because 25 per cent of updates can introduce new bugs.
The Imperial team have now successfully tested their idea, they told the International Conference on Software Engineering in San Francisco last month. They found it worked well on Lighttpd, a server package used by Wikipedia and Youtube, and Redis, a server program used by Flickr and GitHub.
The pair are now considering how to manage their system when yet another update comes along. Cadar says their trick could be applied to apps on smartphones as well as to server applications, but it is best suited to larger systems needing "increasing reliability, availability and security".
Ben Laurie, a researcher at Cambridge University's computer lab and a senior security engineer at Google is guardedly impressed. "I find it plausible that this idea could work quite well sometimes. At worst it would only revert to the behaviour you would have had anyway," he says.
"It seems rather expensive in terms of managing the extra processing and disc space it will need – but it's definitely cute."
If you would like to reuse any content from New Scientist, either in print or online, please contact the syndication department first for permission. New Scientist does not own rights to photos, but there are a variety of licensing options available for use of articles and graphics we own the copyright to.