Performance und SkalierbarkeitDie beiden Begriffe Performance und Skalierbarkeit werden teilweise synonym verwendet, was mich immer wieder wundert. Der Unterschied ist eigentlich recht einfach: Performance ist die Leistungsfähigkeit, Skalierbarkeit die Möglichkeit, durch mehr Ressourcen mehr Leistung zu erreichen.
Eine Anwendung sollte natürlich in beiden Bereichen ausreichende Qualität haben. Wenn man aber die beiden Ziele gegeneinander abwägt, ist Skalierbarkeit eigentlich wichtiger. Warum? Weil an verschiedenen Stellen das Hinzufügen von Ressourcen sehr billig ist. Wenn man davon nicht profitieren kann, dann hat man sich eine einfache Möglichkeit genommen, für wenig Geld mehr Leistung zu erhalten. Beispiele, wo Skalierbarkeit wichtig ist, sind zum Beispiel Blades, mit denen man für wesentlich weniger Geld als bei Mulit-CPU Maschinen neue CPUs bekommen kann. Wenn man nun zum Beispiel seine Web-Anwendung sinnvoll strukturiert hat, kann man so sehr billig viele Nutzer unterstützten.
Ein anderes Beispiel sind Multi-Core CPUs. Auch hier gilt, dass man nur bei Skalierbarkeit der Anwendung von den neuen CPUs profitiert. Gerade in der Mac-Community, die dieses Thema mit den G5s schon etwas länger hat, gab es lustige Ergebnisse und auch bei den Intel Multi-Core CPUs gab es Anwendungen, die damit nicht umgehen konnten. Die interessante Sache ist nun, dass wir in Zukunft wahrscheinlich noch mehr Cores sehen werden, Suns Niagara geht zum Beispiel in diese Richtung.
Das bedeutet, Parallelisierung wird ein Thema - ein klassisches Informatik-Problem. Meiner Meinung nach aber nicht auf der Ebene der Algorithmen, sondern auf der Ebene von parallelen Requests, die bearbeitet werden müssen. Dieses Thema wird noch wichtiger, als es heute schon ist.