Memory Centric Storage (MCS) – Flexible Toolbox für skalierbares Speichermanagement

Speicher neu gedacht: Daten dort verarbeiten, wo sie liegen

Mit dem Memory Centric Storage (MCS) entwickeln wir die europäische Open-Source-Toolbox, die skalierbares und domänenspezifisches Speichermanagement vereint. Anwendungen greifen über eine einheitliche Schnittstelle auf unterschiedliche Speicher zu und profitieren von Zero-Copy-Datentransport sowie Task-Offloading. So reduzieren wir Datenbewegungen und bringen Rechenprozesse dorthin, wo die Daten entstehen – für maximale Performance.

Die ständig wachsenden Rechenkapazitäten stellen hohe Anforderungen an Speicher und Speichersysteme. Diese müssen nicht nur größer und schneller werden, sondern auch flexiblere Schnittstellen bieten. MCS begegnet dieser Herausforderung, indem es die traditionelle Trennung zwischen Heap-Speicher und Dateispeicher aufbricht und eine gemeinsame, intelligente Datenverwaltung ermöglicht.

Hintergrund: Warum herkömmliche Speicherarchitekturen an ihre Grenzen stoßen

Bisher zwingt die klassische Architektur Anwendungen dazu, zwei voneinander getrennte Speicherwelten zu managen – den flüchtigen Heap-Speicher und den verteilten dauerhaften Dateispeicher. Beide nutzen unterschiedliche Schnittstellen, was bedeutet, dass Daten ständig zwischen ihnen hin- und hertransportiert werden. Alternativ kann der Linux-Kernel den Dateispeicher in den Heap-Speicher einbinden, doch auch diese Lösung kann die Datentransfers nicht vermeiden.

Beide Ansätze arbeiten mit  Schnittstellen (wie malloc/free und open/read/write/close), die keinerlei Wissen über den tatsächlichen Datenzugriff berücksichtigen. So weiß das System nicht, ob ein Datenblock unveränderlich ist, ob er nur einmal gelesen wird oder ob er exklusiv von einer Ressource genutzt wird. Das fehlende semantische Wissen führt dazu, dass Speicherprozesse oft ineffizient ablaufen: Anwendungen warten auf Daten, statt sie zu verarbeiten.

Architektur: Schichten für maximale Flexibilität und Kontrolle

MCS ist speicherzentriert aufgebaut und versteht sich als Verallgemeinerung klassischer Speicher- und Dateiverwaltung. Es arbeitet mit Datenblöcken in einem verteilten Netzwerk von Speichern und ist in mehrere Schichten gegliedert:

Kernschicht – direkte Kontrolle über Speichersegmente

Sie verwaltet Speichersegmente und ermöglicht den direkten Zugriff auf Datenblöcke. Dabei hat sie keine Kenntnis über den Inhalt, sondern konzentriert sich auf Effizienz und Performance. Die Kernschicht stellt skalierbare Funktionen zur Kontrolle von Speichern und zum Datentransport zur Verfügung. Sie kann um neue Speicher und um neue Transportnetzwerke erweitert werden.

Präsentationsschicht – sichere und semantisch reiche Datenverwaltung

Die Präsentationsschicht ergänzt die Funktionen der Kernschicht um übliche und häufige Konstruktionen. Sie verhindert Race Conditions und »Use-after-free«-Fehler und ergänzt semantische Informationen wie »Datei«, »Objekt«, »persistent« oder »atomar«. Die Präsentationschicht ist modular aufgebaut und kann einfach domain-spezifisch erweitert werden.

Anwendungsschicht – Integration in reale Softwarelösungen

In der Anwendungsschicht werden die Begriffe und Semantiken der Anwendung bereit gestellt. Sie nutzt die Funktionen der unteren Schichten und bindet sie nahtlos in Anwendungen ein – für eine sichere und anwendungsspezifische Speicherverwaltung.

So bietet MCS eine flexible, offene und zukunftsfähige Grundlage für effizientes Speichermanagement in datenintensiven Anwendungen.