Moin!
Das ist mir dann wohl doch (noch) etwas zu hoch.
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, komplett.
Es gibt zwei RAM-Bereiche (shared memory), in die wechselseitig entsprechende Datenstrukturen geschrieben werden. Nach einer Schreiboperation wird der dann neu ergänzte Bereich zum Lesen (das passiert viel häufiger, als Schreiben) genutzt, der zweite Bereich wird zum nächsten Schreibvorgang vorbereitet.
Genaueres weiß ich aber auch nicht.
Und wenn das XML nur (Sicherheits-)kopie ist, wozu dann eine Datenbank?
Wird für das Archiv auch keine Datenbank verwendet?
Nein, wozu? Die Threads liegen als XML vor, und damit die Auslieferung schneller geht, gibt es noch einen Cache, in dem ein Zwischenwandlungsergebnis abgelegt ist.
Die gesamten Daten wären wohl zu umfangreich, um sie immer im RAM zu halten?
Guck dir den Umfang der Archivdaten in der Suche an, dann beantwortet sich das von selbst.
Die RAM-Speicherung geschieht nur, weil das die schnellste Methode ist, den Schreibvorgang, der Locking erfordert, über die Bühne zu kriegen. Unsere alte Forumssoftware hatte noch Dateien verwendet - und war am "Ende" wegen intensiver Forumsnutzung eklig lahm geworden.
- Sven Rautenberg
"Love your nation - respect the others."