Mailinglisten-Archive |
<-- Hallo, Da sein Logfile jede Minute rotiert wird, entstehen so Dateien bis zu 24MB. Nun muesste das Auswertungsscript pro Minute die 77.400 Zeilen einlesen, auswerten und in die Datenbank schreiben. Das klappt natuerlich _nicht_ ! --> Hallo auch, nachdem du so viele Transaktionen in einer Minute machen möchtest und die Scripte länger laufen als eine Minute musst du auf jeden fall am Backend neue Server hinzufügen (mehr Rechenpower). Ein beispiel wäre hier z.b.: Du hast eine Datenbank die verwaltet für jede Minute einen Eintrag für jede Textdatei und zuständigem Datenbankserver. Du hast mindestens 2 Datenbankserver, auf welchen auch die Scripte laufen. Durch den Datenbankserver auf dem die Datenbank mit den Textdateieinträgen angelegt ist (kann natürlich auch wieder ein extra Server sein) wissen die "Arbeits"-Server welche Textdatei sie sich holen müssen (Netzwerktraffic - sollte ausreichen für diese Datenmenge). Nachdem die "Arbeits"-Server die Datei verarbeitet und in der lokalen Datenbank hinterlegt haben können sie auf einem weiteren Datenbank-Cluster gespeichert werden (Cluster und "Arbeits"-Server können hier evtl. verbunden werden). In diesem Beispiel nehme ich an, dass die Daten, welche in die Datenbank geschrieben werden wesentlich kleiner sind als die in den Textfiles. Du musst dann mindestens soviele "Arbeits"-Server aufstellen, wie das Script zum Auswerten der Files benötigt und noch in paar Sekunden mit dran hängen. Desweiteren ist mit dieser Lösung feststellbar, welche Textdatei bereits bearbeitet worden ist und welche nicht, so kann man bei einem Fehler einfach unterbrechen und das Script wieder starten. Ich hoffe das hat dir ein bischen geholfen. Grüße, Michael
php::bar PHP Wiki - Listenarchive