2002-10-06, 21:26
wegen transaktionsprinzip: ist mir klar. Ist übrigens eine MySQL Datenbank, die mir hier noch nie Probleme gemacht hat.
Aber ich hab ein Counter-Script in Perl. War quasi mein erstes Perl-Programm überhaupt. Anfangs nie Probleme, aber dann ist hin und wieder plötzlich das Datenfile abgeschnitten worden. Ist klar: Wenn der Server überlastet ist, oder abstürzt, während das Counterfile gerade geschrieben wird, dann ist es nicht mehr vollständig vorhanden. Vorallem das mit der Überlast ist vermutlich ein Problem: Dann gibt's ein Script-Timeout und das Script bricht einfach ab. Und je öfter das Script aufgerufen wurde (mehr Besucher), desto wahrscheinlicher, dass es passiert, wenn der Server mal überlastet ist.
Damals habe ich mich noch nicht sonderlich ausgekannt. Ich habe dann die Schreiboperationen, die im ganzen Script verteil waren auf eine Zeile zusammengefasst. Also von Array oder String direkt in File. Ist zwar besser geworden, aber je mehr Besucher, desto öfter gab's wieder Probleme (so alle paar Monate).
Dann habe ich's komplett umgeschrieben: Ich verwende zwei Counter Files: Zuerst schaue ich mir beide an: Jenes, dass vollständig geschrieben wurde, und dass das neuere ist, verwende ich. Dann schreibe ich in das andere File. Sobald das Schreiben abgeschlossen ist, und die Datei geschlossen wurde, lösche ich das anderer Counter-File. Und trotzdem gibt es auch hier hin und wieder Probleme. Keine Ahnung warum. Zwar ganz, ganz selten (1, 2 mal pro Jahr), aber trotzdem. Verstehe ich net.
Grad am Forum wird ja extrem viel in die DB geschrieben. Da hat's mich echt gewundert, dass da noch nie was passiert ist. Aber ich denke, das ist deshalb, dass die Datenbank unter einem eigene User läuft, der kein Timeout hat. Dadurch kann die Datenbank wirklich nur dann beschädigt werden, wenn deer Rechner komplett abstürzt, und dass ist extrem selten.
nòóx
www.dh-rangers.com :: www.xgolf-forum.com
Aber ich hab ein Counter-Script in Perl. War quasi mein erstes Perl-Programm überhaupt. Anfangs nie Probleme, aber dann ist hin und wieder plötzlich das Datenfile abgeschnitten worden. Ist klar: Wenn der Server überlastet ist, oder abstürzt, während das Counterfile gerade geschrieben wird, dann ist es nicht mehr vollständig vorhanden. Vorallem das mit der Überlast ist vermutlich ein Problem: Dann gibt's ein Script-Timeout und das Script bricht einfach ab. Und je öfter das Script aufgerufen wurde (mehr Besucher), desto wahrscheinlicher, dass es passiert, wenn der Server mal überlastet ist.
Damals habe ich mich noch nicht sonderlich ausgekannt. Ich habe dann die Schreiboperationen, die im ganzen Script verteil waren auf eine Zeile zusammengefasst. Also von Array oder String direkt in File. Ist zwar besser geworden, aber je mehr Besucher, desto öfter gab's wieder Probleme (so alle paar Monate).
Dann habe ich's komplett umgeschrieben: Ich verwende zwei Counter Files: Zuerst schaue ich mir beide an: Jenes, dass vollständig geschrieben wurde, und dass das neuere ist, verwende ich. Dann schreibe ich in das andere File. Sobald das Schreiben abgeschlossen ist, und die Datei geschlossen wurde, lösche ich das anderer Counter-File. Und trotzdem gibt es auch hier hin und wieder Probleme. Keine Ahnung warum. Zwar ganz, ganz selten (1, 2 mal pro Jahr), aber trotzdem. Verstehe ich net.
Grad am Forum wird ja extrem viel in die DB geschrieben. Da hat's mich echt gewundert, dass da noch nie was passiert ist. Aber ich denke, das ist deshalb, dass die Datenbank unter einem eigene User läuft, der kein Timeout hat. Dadurch kann die Datenbank wirklich nur dann beschädigt werden, wenn deer Rechner komplett abstürzt, und dass ist extrem selten.
nòóx
www.dh-rangers.com :: www.xgolf-forum.com