Tim Tepaße: mich würde Interessieren...

Beitrag lesen

Hallo steckl,

Die aktiven Forumsdaten liegen im RAM.
Nach meinem Verständnis müsste jeder neue Forumseintrag neu dazugelinkt (wenn nicht sogar alles neu kompiliert) werden, so dass anschließend jedesmal alles neu in den RAM geschrieben werden müsste.
Ist diese Vermutung falsch?

Ja. Stell es Dir vor wie der sehr vereinfachte Vergleich mit Kurz- und Langzeitgedächtnis. Die XML-Dateien sind das Langzeitgedächtnis des Forums. Wenn die Forumssoftware nun startet, liest sie das Langzeitgedächtnis (die XML-Dateien der aktiven Threads) aus und packt diese Informationen in ihr Kurzzeitgedächtnis (das RAM), einfach, weil sie dort einen sehr viel schnelleren Zugriff hat, anstatt sich langfristig erinnern zu müssen. Und neu zum RAM-Speicher hinzugefügt Daten werden dann in die XML-Dateien wieder gespeichert, damit man keinen Datenverlust hast.

Das kann natürlich nur funktionieren, wenn die Forumssoftware nicht für jeden Request aufgerufen und wieder beendet wird, wie CGI-Programme. Stattdessen ist sie im Client-Server-Modell implementiert. Für obiges zuständig ist der Forumsdämon (fo_server, wenn ich mich recht erinnere), der einmal gestartet wird und dann durchläuft. Mit dem kommunizieren dann nach Bedarf Clients wie fo_view (zuständig für die Darstellung) und fo_post (fürs Posten) die in das Kurzeitgedächtnis von fo_server zum schnellen Auslesen und Schreiben nutzen.

(Wenn ich das noch richtig in Erinnerung habe)

Tim