Thread Schnelles Auslagern von wenigen, aber großen binären Hashvalues (7 answers)
Opened by GoetzM at 2016-09-20 10:05

clms
 2016-09-22 14:50
#185419 #185419
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
Hallo,

wenn ich es recht verstehe, hast Du momentan eine Anwendung, der wegen großer Datenmengen das RAM ausgeht und stark ins Swappen kommt. Jetzt willst Du selbst Teile deiner Daten auf die Festplatte auslagern. Wie Du sehe ich dafür zwei Ansätze: Die Daten in eine Datenbank oder einzelne externe Files schreiben.

Ich bin jetzt kein Experte bzgl. Swapping, aber ich vermute, dass eine solche Lösung nur dann performanter als das normale Swappen deines Betreibsystems arbeitet, wenn du applikationsspezifisches Wissen ausnutzen kannst. Weist Du vorher auf welche deiner 200-1000 Datensätze du in nächster Zeit zugreifen musst und auf welche nicht, so dass sich dort das Auslagern lohnt? Wieviele deiner durch Hashkeys selektierten Datensätze brauchst Du gleichzeitig im RAM? Wie schnell/oft ändert sich die Auswahl?

Andere Fragen: Was für Zugriffe hast Du überhaupt? Ausschließlich oder überwiegend Read-Zugriffe? Wenn Du Write-Zugriffe hast, werden dann eher kleine Teile eines Datensatzes geändert oder praktisch alles auf einen Schlag? Brauchst Du immer den kompletten, durch einen Key ausgewählten Datensatz im RAM? Oder würden oft nur Teile davon ausreichen? U.U. kann es Sinn machen, statt den Datensatz in einem einzigen kompakten Blob zu speichern, ihn in einem weniger platzsparenden Format auf der Festplatte abzulegen, wenn dafür der Zugriff auf ausgewählte Teile schneller wird.

Ein gänzlich anderer Ansatz wäre der Versuch, die Daten im RAM möglichst kompakt zu speichern.

View full thread Schnelles Auslagern von wenigen, aber großen binären Hashvalues