In einem früheren Blog-Beitrag wurden neue Entwicklungen im Storage-Umfeld diskutiert, speziell Intel Optane und Computational Storage, die die Geschwindigkeit von nichtflüchtigem Speicher weiter erhöhen. Aber was, wenn selbst das für die eigenen Anwendungen nicht schnell genug ist?
In-Memory Computing
Brauche ich noch schnelleren Zugriff auf meine Daten, bleibt nur die Nutzung des Arbeitsspeichers. Die jeweilige Software ist dann so konzipiert, dass sie sämtliche Daten im Arbeitsspeicher hält und verarbeitet. Aber Arbeitsspeicher ist teuer und pro System auf 1,5 bis 2 TB pro CPU-Sockel begrenzt. Wenn die Software mehr Speicher nutzt, muss er über mehrere Systeme verteilt werden. Und wenn man die Daten über mehrere Systeme verteilen kann, kann man auch ein optimales Preis-Leistungs-Verhältnis durch mehr Server mit jeweils weniger Arbeitsspeicher erreichen.
Bringe ich diese beiden Punkte, die ausschließliche Nutzung des Arbeitsspeichers als Speichermedium und die Verteilung über mehrere Hosts zusammen, spricht man von „In-Memory Computing“ (IMC). Prominente Beispiele für kommerzielle IMC-Produkte sind SAP HANA und Oracle Exadata. Die Performance einer solchen Software liegt deutlich oberhalb einer vergleichbaren Software ohne IMC-Ansatz. Auch in der Finanz- und Werbebranche, wo die Verarbeitung von Daten quasi in Echtzeit geschehen muss, ist IMC weit verbreitet.
Konkrete Beispiele für den Einsatz von IMC gibt es viele. Häufig wird einfach eine fertige In-Memory-Datenbank genutzt, um Antwortzeiten aus dem Backend zu verringern. Andererseits gibt es auch interessante Eigenentwicklungen: Es wurde beispielsweise ein Anmeldeportal für Studenten einer Universität in Eigenregie IMC-fähig gemacht. Damit reduzierten sich die Antwortzeiten für die Studenten von 45 Minuten auf weniger als 5 Minuten.
Fazit
In-Memory Computing ist ein spannender Ansatz zur Beschleunigung der eigenen Anwendungslandschaft. Ob man dabei nur im Backend mit fertigen Produkten arbeiten oder einen eigenen IMC-fähigen Software-Stack einsetzen will, muss individuell entschieden werden.