PredictiveCaching

Summary

Make Ubuntu Desktop seems faster, by preloading applications based in user habits.

Rationale

Currently, the Ubuntu system is a 'reactive' system, this is: you click in an icon, and them, the program is loaded, if the program needs a library, the library is loaded, if the program needs to read a config file, the file is loaded and parsed, and so. The currently Ubuntu system make the most to 'react' fast enough to look and feel responsive and fast.

Currently, the competence, have diferent technologies to seems quicker in the same hardware that Ubuntu. For example, Microsoft includes prefetch technologies since XP version, and brings the things one more step ahead with superfetch and readyboost in Vista version.

The faster application load time in windows (XP and Vista versions) is explained with this technologies, because this technologies tries to do one big read instead of tens of smaller read. Prefetch creates a 'hidden' file that, when the main application executable is launched, windows read the hidden file, containing a copy of the other files and libraries needed. This technique is faster because the seek times of classic harddisk is around 10-13ms tipical (7200rpm harddisk is assumed).

Linux has a prefetch patch, but seems don't be well received by the comunity. The problem is that, with the superfetch and readyboost technologies out, prefetch is simply not fast enough to compete.

PredictiveCaching aims to compete with Microsoft's superfetch.

Use Cases

Fred normally leave the computer allways on, in sleep mode. When he arrive at house after work, he shake the mouse to wakeup the system and launch Firefox and Amarok. PredictiveCaching must understand this behaviour, wake up the system around 2 minutes before regular Fred's arrival and preload firefox and amarok.

Martha open openoffice after bootup around 80% times, but this time is different, she loads amarok after bootup. PredictiveCaching must understand this behaviour and start preloading openoffice inmediately after desktop load. But as soon as Martha clicks amarok icon, abort openoffice preload, and start amarok.

John makes a repetitive task everyday. He open firefox, browse to a webpage, copy the content, open openoffice spreadsheet, paste the content, save the file, close firefox, close openoffice, open thunderbird, create a new mail, attach the file created with openoffice, send it and finally close thunderbird. PredictiveCaching must understand this, and after firefox load, start preloading openoffice spreadsheet. after spreadsheet load, start preload of thunderbird.

Matt open Eclipse, after that usually open a terminal for compilation helper and firefox for internet and library browsing. PredictiveCaching must preload firefox and terminal after Eclipse load.

Design

Implementation

Related Bugs

Outstanding Issues

Test/Demo Plan

BoF agenda and discussion


CategorySpec

PredictiveCaching (last edited 2008-11-11 16:35:40 by 212)