Skalierbarkeit bzw. Skalierung ist die Fähigkeit bzw. der konkrete Prozess, der es einem System, Netzwerk oder Prozess ermöglicht, seine Größe so anzupassen, dass es effizient auf Veränderungen in der Last oder den Anforderungen reagieren kann. Skalierbarkeit ist dabei die potentielle Fähigkeit in Zukunft zu wachsen und bezeichnet damit im Gegensatz zur Skalierung als konkreten Prozess oder Maßnahme die potenzielle Fähigkeit mit wachsenden Anforderungen umzugehen.
Beide Begriffe werden in verschiedenen Bereichen wie Betriebswirtschaft aber auch in der Informationstechnologie verwendet.
In der Informationstechnologie ist die Skalierung die Vergrößerung von Rechenleistung durch Hinzufügen von weiteren Ressourcen, um die Leistung zu steigern (Mark 1990). Im Kontext von DatentreuhandmodellenDen Begriff Datentreuhandmodell hat das deutsche Bundesministerium für Bildung und Forschung (BMBF) zum Zweck der Forsc... mehr und datengetriebenen Infrastruktur ermöglicht eine Skalierung eine effiziente Verarbeitung wachsender Datenmengen.
Die Leistung eines Systems kann auf zwei unterschiedliche Arten gesteigert werden (Michael et al. 2007):
Vertikale Skalierung: Unter vertikaler Skalierung wird die Steigerung der Leistung eines Systems durch das Hinzufügen zusätzlicher Knoten durch beispielsweise das Verbinden von Softwarekomponenten verstanden
Horizontale Skalierung: Unter horizontaler Skalierung wird die Steigerung der Leistung durch das Hinzufügen von Ressourcen wie z.B. das Vergrößern von Speicherplatz oder das Hinzufügen von leistungsfähigeren Bauteilen wie Grafikkarten verstanden.
Unterschieden werden darüber hinaus vier Arten von Skalierbarkeit (Bondi 2000), wobei auf ein System auch mehrere dieser Attribute zutreffen können:
Lastskalierbarkeit (load scabability): Ein System verfügt über Lastskalierbarkeit, wenn es die Fähigkeit besitzt ohne unangemessene Verzögerung und unproduktiven Ressourcenverbrauch die vorhandenen Ressourcen gut nutzt.
Räumliche Skalierbarkeit (space scabability): Ein System gilt als
Räumlich skalierbar, wenn sein Speicherbedarf nicht auf ein untragbares Niveau ansteigt, wenn die Anzahl der unterstützten Elemente zunimmt.
Räumlich-zeitliche Skalierbarkeit (space-time scbabaility): Wir betrachten ein System als
Räumlich-zeitlich skalierbar, wenn es auch dann noch funktioniert, wenn die Anzahl der Objekte, die es umfasst, um Größenordnungen zunimmt. Ein System kann beispielsweise räumlich-zeitlich skalierbar sein, wenn die Datenstrukturen und Algorithmen, die zu seiner Implementierung verwendet werden, einen reibungslosen und schnellen Betrieb ermöglichen, egal ob das
System mäßig groß oder groß ist.
Strukturelle Skalierbarkeit (structural scabability): Ein System gilt als
strukturell skalierbar, wenn seine Implementierung das Wachstum der Anzahl der Objekte, die es umfasst, nicht behindert oder zumindest nicht innerhalb eines bestimmten Zeitrahmens. Strukturelle Skalierbarkeit ist immer relativ zu betrachten, da es von der Anzahl der Objekte abhängt, die von Interesse sind.
Literatur
Bondi, André B. 2000. Characteristics of Scalability and Their Impact on Performance. In Proceedings of the 2nd International Workshop on Software and Performance (WOSP ’00), 195–203. New York, NY: ACM. https://doi.org/10.1145/350391.350432
Hill, Mark D. 1990. What is Scalability?. ACM SIGARCH Computer Architecture News 18 (4): 18–21.
Michael, Magded, Jose Moreira, Doron Shiloach, und Robert W. Wisniewski. 2007. Scale-up x Scale-out: A Case Study Using Nutch/Lucene. In IEEE International Parallel and Distributed Processing Symposium, 1–8. 30. März 2007. https://doi.org/10.1109/IPDPS.2007.370631