Hallo,
Ich habe oben zu viel zitiert. Ich bezog mich einzig und alleine
auf folgenden Satz: "Ob man die dann zu Langzeitspeicherzwecken in
eine Datei serialisiert oder woanders hin ist weitestgehend egal"Und das ist es nicht.
Für die eigentliche Frage ob ein RDMBS oder Datenstrukturen im RAM geeigneter weil schneller für die Aufgabe seien schon.
Das ist richtig. Aber -- wie gesagt -- darum ging es in meiner
Antwort auf den o.g. Satz nicht.
Ich hatte schlichtweg das Gefühl, daß der Satz zu allgemeingültig
formuliert ist, so daß ich dich korrigieren wollte.
Daß die Datenstruktur im Speicher schneller ist, ist klar.
Das der aktuelle Ansatz dieses Forums beim Speichern nicht optimal bis zum allerletzten ist, ist mir klar.
Kann es auch nicht sein, weil sonst kein Client/Server-System
notwendig wäre, das zu den genannten Problemen führt.
Die paar mal die gespeichert wird machen hier den Kohl nicht mehr fett (zumal das ganze in der Realität nicht _so_ aufwändig sein dürfte: Fragmentiert wird hier nicht werden so dass das im wesentlichen auf ein bisschen CPU-Last für das Berechnen der XML-Repräsentation + einen Bulk-Transfer an die Platte um die Repräsentation in einem Stück vom Buffer auf die Scheibe zu schreiben + ein bisschen aktualisieren in den Verwaltungsdaten hinausläuft).
ACK.
Wieso hatte das Selfforum dann eigentlich solche Perfomanz-Probleme?
(Und wieso gibt es diese Client/Server-Lösung mit verzögertem
Schreiben?)
Naja, am von mir beschriebenen Problem ändert das aber nichts. Ich
habe absichtlich nichts über die Serialisierung gesagt, weil diese
nicht übermäßig stark ins Gewicht fällt. (Nicht im Vergleich
zu den Dateioperationen, zumindest.)Doch tut es, weil durch das mmap quasi ein Teil der Festplatte in den RAM eingeblendet wird. Dass der Teil auch durch einen Dateinamen bezeichnet wird ist egal, beim Aktualisieren muß das Betriebssystem jedenfalls nur die geänderten Daten aus dem RAM auf die Platte transferieren (d.h. einmal einen DMA-Transfer anstoßen, im wesentlichen) und eben _keine_ neue Datei anlegen, alte Löschen, etc.
OK. Ich weiß nicht, was mmap genau tut. (Höre ohnehin das erste
mal davon.)
Wenn es das so macht, wie du schreibst, dann funktioniert das
natürlich wie eine Datenbank. (Das Schreiben natürich nur.) Und es
ist auf gewisse Weise immer noch eine Flatfile, ja.
Das habe ich auch bloß angeführt um zu zeigen dass es eine denkbare Implementierung gibt die auch Ludger noch als Flatfile akzeptieren müsste die nicht nur beim Lesen einem RDBMS sondern auch beim Schreiben überlegen bzw. mindestens ebenbürtig ist.
OK.
Gruß
Slyh