Speicher-I/O und Dauerhaftigkeit

Problem

Eine Festplatte kopiert ein großes Video schnell, aber eine Datenbank, die Tausende von kleinen Updates macht, ist langsam. Später verliert ein Stromausfall eine kürzliche Dateiaktualisierung, obwohl die Anwendung berichtete, dass das Schreiben erfolgreich war.

Lösung — Zugriffsmuster und Schreibgarantien verstehen

IOPS zählt Ein-/Ausgabeoperationen pro Sekunde. Durchsatz misst übertragene Bytes pro Sekunde. Bei gleich großen Operationen entspricht der Durchsatz IOPS × Operationsgröße: 1.000 Operationen mit jeweils 4 KiB übertragen etwa 3,9 MiB pro Sekunde. Große sequentielle Übertragungen und kleine zufällige Zugriffe belasten die Speicherung unterschiedlich. Latenz, Anforderungsgröße, parallele Anforderungen und Caching beeinflussen das Ergebnis. Ein Large-File-Benchmark beschreibt nicht jeden Workload. Ein Schreiben kann Anwendungspuffer, Betriebssystem-Caches und Storage-Controller-Caches durchlaufen. Je nach API und Konfiguration kann der Erfolg bedeuten, dass ein Puffer die Daten akzeptiert hat. Es bedeutet nicht immer, dass die Daten den Stromverlust überleben können. Flush- und Write-Through-Operationen verlangen, dass Schreibzugriffe dauerhaften Speicher erreichen. Die Garantie hängt davon ab, dass der gesamte Speicherpfad einschließlich Hardware-Caches sie einhält. Entscheidend ist, welchen Erfolg ein Schreibaufruf bestätigt und welche Ausfälle die Daten danach überstehen sollen.
Kerngedanke: Speicherleistung hängt vom Zugriffsmuster ab; Dauerhaftigkeit von der tatsächlichen Garantie eines erfolgreichen Schreibzugriffs.