phpbar.de logo

Mailinglisten-Archive

[php] Performanter php Chat

[php] Performanter php Chat

Dennis Sterzenbach lists at darknoise.de
Mit Nov 5 13:13:09 CET 2003


Daniel Lorch wrote:
> uhm halt. Weiter vorne im Thread hat ja jemand den Term "HTTP Streaming" er-
> funden. Gemeint sein soll, dass der Browser die Verbindung zu einem Script
> offen hält anstatt zu "pollen" und sukzessive ein Script hämmern. Das klingt
> Webserver-freundlicher, ist es aber nicht.
Bei mir wird mit "HTTP Streaming" gearbeitet... und es läuft ohne
Probleme. Nur passt meine Chatlösung überhaupt nicht in das gewünschte
Konzept, um das es hier geht. Der Grund: Mein WebChat Server ist in
purem Java, mit MySQL Connector an eine MySQL Datenbank für die
Benutzerdaten Verwaltung.
Abgesehen davon, dass Du Recht hast mit Deiner Aussage über die
Einstellungen, Limitierungen und Probleme, die mit einem Webserver
auftreten, ist das Streaming keine dumme Idee.
Ich muss immer wieder den Gedanken aus meinem Kopf schmeißen,
dass PHP eine Scriptsprache ist und das einzige große Problem für
einen solchen Chat die Persistenz ist. (Ohne die hat man automatisch
einen hohen Arbeits- bzw. Resourcenaufwand, mit ist dieser
überschaubarer und besser einteilbar, planbar).

> S'geht. Was tut Chat schon? Nimmt Deine Message und verteilt sie an alle. Was
> ist daran CPU-intensiv. Das ist hauptsächlich i/o.
CPU-intensiv ist es, wenn man nicht daran denkt, die letzte
Dateiposition (bis zu der ein Benutzer Meldungen das letzte mal
zugeschickt bekommen hatte) zu speichern und direkte Zugriffe
dadurch zu ermöglichen. Die Lösung, die anfänglich hier kurz
dargestellt wurde, immer die letzten 20 Meldungen zu holen ist
immer schlecht (ich möchte hier nicht auf jemand oder jemandes
Idee rumreiten damit, bitte also nicht misverstehen).

Kurz und Bündig: Das Problem ist die Suche nach den, für einen
bestimmten Client, neuen Meldungen.

Die Entscheidung für Text-basiert oder Datenbank-basiert ist eher
eine Geschmacksfrage und die Frage danach, was das System über den
Chat hinaus ermöglichen soll.

Featurereicher könnte das System ausfallen, wenn über eine Datenbank
Möglichkeiten wie Statistiken, Suche in Chats oder Halten und Erzeugen
von (gefilterten) Logs geboten wären. Diese Dinge würden IMO Zeit und
Performance kosten, wenn man sie über Textdateien lösen würde.

Performanter ist (auch bei großen Systemen) für den Chatbetrieb wohl
die dateibasierte Lösung bzw. eine SharedMemory Lösung.

Man muss sich also _vorher_ schon im Klaren sein, was man braucht und
vor allem: was man _nicht_ braucht.

Gruß
-- 
   Dennis Sterzenbach



php::bar PHP Wiki   -   Listenarchive