Hi Andreas,
Wieso verwendet Ihr für dei neue Version eigentlich C? Ist das nicht
sehr viel aufwändiger und ist C soviel schneller als PERL?
da Christian hier nicht eingestiegen ist, versuche ich mal, aus meiner
Erinnerung zu plaudern. Ich bin nicht ganz auf dem Stand der Entwick-
lung, glaube aber, die Zielsetzung halbwegs verstanden zu haben.
Das, was das Forum im Moment langsam macht, ist weniger Perl an sich,
sondern mehrere andere Probleme:
1. Es müssen ständig XML-Strukturen geparsed werden, und dafür wird
ein Perl-Modul verwendet, das nicht so irre schnell ist, dafür aber
viel mehr kann, als das Forum mit seinen relativ einfachen XML-
Strukturen braucht.
2. Da beliebig viele Benutzer gleichzeitig auf das Forum zugreifen
und dabei potentiell gleichzeitig posten können, müssen viele der
Zugriffe synchronisiert werden.
3. Zudem führt jedes Posting zur Änderung nicht nur des kompletten
Threads, sondern zudem noch zur Änderung der Hauptdatei - also muß
all dies während eines Posting-Vorgangs gesperrt werden (deshalb
behindern mehrere Posting-Versuche einander).
4. Und all dies auf einem Server, der ohnehin nicht beliebig leistungs-
fähig ist und zudem ab und zu von unfreundlichen Leuten mit Daten-
müll beschossen wird.
Das neue Forum soll diese Probleme lösen:
a) Es soll ein neuer, selbst geschriebener (einfacher, aber schneller)
XML-Parser entstehen, der auf die Bedürfnisse der Forums-Daten-
formate optimiert arbeitet. (Ich glaube, lex und yacc dienen ent-
weder als Grundlage oder doch wenigstens als Ideengeber.)
b) Die gesamte Kommunikationsstruktur soll geändert werden. Bisher
"reden" alle CGI-Skripte direkt mit der Festplatte; künftig sollen
die CGI-Skripte selbst nur noch Clients sein, die Anforderungen
an einen zusätzlichen, permantent laufenden Forums-daemon stellen
(über Interprozeßkommunikation, z. B. ein socket).
Dieser daemon serialisiert dabei alle Anforderungen, und es sind
keinerlei gegenseitigen Sperren mehr notwendig, weil nur noch der
daemon auf die eigentlichen Datenobjekte zugreifen darf.
Außerdem kann der daemon natürlich das gesamte Forum im Haupt-
speicher halten (so viel kosten die paar hundert Dateien ja nicht
an RAM), was erheblich an Festplattenzugriffen einspart; damit
würde nicht nur das Posten, sondern ggf. auch das Lesen schneller
werden bzw. den Server weniger belasten.
Du siehst, daß diese neue Version nicht mal eben in der Änderung von
ein paar hundert Zeilen Code besteht - da werden ganz neue Konzepte
aus dem Boden gestampft.
Und die müssen nicht nur implementiert, sondern vor allem auch gut
getestet werden - bei der Kommunikation zwischen dem daemon und seinen
Clients darf nichts schief gehen, sich nichts aufhängen usw. - wenn
der daemon kaputt gehen sollte, wäre das gesamte Forum lahm gelegt
und müßte manuell neu gestartet werden. Das funktioniert dann eher
wie eine Datenbank, also ganz anders als eine Handvoll CGI-Skripte.
Dafür aber könnte das Ergebnis im Vergleich zum bisherigen Forum
wirklich _rasend_ schnell werden - weil ein großer Teil dessen, was
bisher immer wieder gemacht werden muß, durch eine intelligentere
Architektur überflüssig wird.
Das doofe ist nur, eine C-Verion kann man nicht auf jedem gehoste-
ten Webserver installieren, oder kann man das einfach wie andere
Tools installieren?
Für bestimmte häufig vorkommende Plattformen (Linux etc.) kann man
natürlich Binaries zum Download bereit stellen - beim Apache ist das
ja genauso, den übersetzt auch fast niemand unter Windows selbst.
Viele Grüße
Michael