Adaptive Readahead

Ein beeindruckend großes Patchset (> 70 Einzelpatches) von Wu Fengguang stattet den Kernel mit einer neuen Readahead-Architektur aus. Readahead analysiert die I/O-Zugriffe von Prozessen und versucht durch Mustererkennung, eventuell später benötigte Daten bereits im Vorfeld in den RAM zu laden. Im besten Falle steigt dadurch die Geschwindigkeit, im schlechtesten werden I/O und Hauptspeicher unnötig beansprucht.

Der Linux-Kernel kommt bereits seit Langem mit einer Readahead-Implementierung, die Neuimplememtierung ist allerdings komplexer und soll auch nicht-lineare Zugriffsmuster erkennen. Erste Benchmark-Ergebnisse (wie immer mit Vorsicht zu genießen) zeigen laut Dokumentation etwa eine bis zu dreißigprozentige Verbesserung bei PostgreSQL, was Andrew Morton prompt mit der Aussage quittierte, dass PostgreSQL dann doch vielleicht besser einen eigenen Readahead-Algorithmus mitbringen solle. Im Laufe der Diskussion stellte sich heraus, dass dies der besseren Portierbarkeit wegen bis heute nicht der Fall ist. Die wundersame Wirkung der neuen Implementierung muss sich erst noch zeigen, wird aber von den Unterstützern bereits als signifikant eingestuft.

Andrew Morton hat das Patchset bereits in seinen Kernel-Zweig aufgenommen, der Code dürfte in der kommenden Version 2.6.17-rc5-mm1 erstmals enthalten sein.