Mehrfacher Dateizugriff?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Mehrfacher Dateizugriff?

Beitrag von Dave »

http://www.phpbb.de/moddb/mod.php?id=190
Bei dem Mod werden ja die Statistiken in eine Datei geschrieben. Was passiert nun wenn zweimal gleichzeitig in die datei geschrieben wird? Kommt es da nicht zu fehlermeldungen? :roll:

MfG
Dave
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Re: Mehrfacher Dateizugriff?

Beitrag von Blutgerinsel »

Dave hat geschrieben:http://www.phpbb.de/moddb/mod.php?id=190
Bei dem Mod werden ja die Statistiken in eine Datei geschrieben. Was passiert nun wenn zweimal gleichzeitig in die datei geschrieben wird? Kommt es da nicht zu fehlermeldungen? :roll:

MfG
Dave
Theoretisch sollten Fehlermeldungen kommen da ich nicht auf ein und die selbe Ressource mehrmals zugreifen kann....
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Re: Mehrfacher Dateizugriff?

Beitrag von MrMind »

Blutgerinsel hat geschrieben:Theoretisch sollten Fehlermeldungen kommen da ich nicht auf ein und die selbe Ressource mehrmals zugreifen kann....
Praktisch aber nein, weil es sehr unwahrscheinlich ist, das diese Datei innerhalb einer Sekunde 2mal beschrieben wird. Sprich, das Absenden oder ähnliches von zwei User (oder dergleichen) ist eher unwahrscheinlich das es gleichzeitig erfolgt (sprich auf die Sekunde genau).l

Wenn es trotzdem mal Fehlermeldungen kommen, würde ich das schreiben über eine weitere Datei oder eine DB steuern, das, wenn eine Datei (oder genau nur diese Datei) geöffnet wird (oder beschrieben werden soll) der Timestap gespeichert wird, und bei einer erneuten absendung wird überprüft ob diese Datei gerade bearbeitet/beschrieben wird, wenn ja, dann eine eigene Fehlermeldung ausgeben und das Script enden lassen.

Wurde die Datei beschrieben und geschlossen, wird die Zeile aus der Datei oder DB die die Daten speichert, gelöscht und steht somit wieder frei ;)

Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Re: Mehrfacher Dateizugriff?

Beitrag von Jensemann »

Blutgerinsel hat geschrieben: Theoretisch sollten Fehlermeldungen kommen da ich nicht auf ein und die selbe Ressource mehrmals zugreifen kann....
Nein, auch nicht theoretisch. Die resouce ist dein Filehandle, wenn du eine Datei aber 2 mal open() machst hast du 2 filehandle auf die du beide zur selben Zeit schreiben kannst.
MrMind hat geschrieben: Praktisch aber nein, weil es sehr unwahrscheinlich ist, das diese Datei innerhalb einer Sekunde 2mal beschrieben wird. Sprich, das Absenden oder ähnliches von zwei User (oder dergleichen) ist eher unwahrscheinlich das es gleichzeitig erfolgt (sprich auf die Sekunde genau).
Unwahrscheinlich ist schonmal scheiße. Das klappt grundätzlich nie. Davon auszugehen ist schlamperei.

MrMind hat geschrieben: Wenn es trotzdem mal Fehlermeldungen kommen, würde ich das schreiben über eine weitere Datei oder eine DB steuern, das, wenn eine Datei (oder genau nur diese Datei) geöffnet wird (oder beschrieben werden soll) der Timestap gespeichert wird, und bei einer erneuten absendung wird überprüft ob diese Datei gerade bearbeitet/beschrieben wird, wenn ja, dann eine eigene Fehlermeldung ausgeben und das Script enden lassen.

Wurde die Datei beschrieben und geschlossen, wird die Zeile aus der Datei oder DB die die Daten speichert, gelöscht und steht somit wieder frei

Viel zu komplex und bei anderweitigen scriptabbrüchen ist die Datei bin in alle ewigkeit gelocked, auch mist.

Üblicherweiser nutzt man hierzu eine temporäre Datei die man anschliessend umbenent. Der rename erfolgt atomisch, weshalb man dazu auch keine locks benötigt, die bei PHP sowieso nicht funktionieren.
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Re: Mehrfacher Dateizugriff?

Beitrag von Blutgerinsel »

jensemann hat geschrieben:
Blutgerinsel hat geschrieben: Theoretisch sollten Fehlermeldungen kommen da ich nicht auf ein und die selbe Ressource mehrmals zugreifen kann....
Nein, auch nicht theoretisch. Die resouce ist dein Filehandle, wenn du eine Datei aber 2 mal open() machst hast du 2 filehandle auf die du beide zur selben Zeit schreiben kannst.
MrMind hat geschrieben: Praktisch aber nein, weil es sehr unwahrscheinlich ist, das diese Datei innerhalb einer Sekunde 2mal beschrieben wird. Sprich, das Absenden oder ähnliches von zwei User (oder dergleichen) ist eher unwahrscheinlich das es gleichzeitig erfolgt (sprich auf die Sekunde genau).
Unwahrscheinlich ist schonmal scheiße. Das klappt grundätzlich nie. Davon auszugehen ist schlamperei.

MrMind hat geschrieben: Wenn es trotzdem mal Fehlermeldungen kommen, würde ich das schreiben über eine weitere Datei oder eine DB steuern, das, wenn eine Datei (oder genau nur diese Datei) geöffnet wird (oder beschrieben werden soll) der Timestap gespeichert wird, und bei einer erneuten absendung wird überprüft ob diese Datei gerade bearbeitet/beschrieben wird, wenn ja, dann eine eigene Fehlermeldung ausgeben und das Script enden lassen.

Wurde die Datei beschrieben und geschlossen, wird die Zeile aus der Datei oder DB die die Daten speichert, gelöscht und steht somit wieder frei

Viel zu komplex und bei anderweitigen scriptabbrüchen ist die Datei bin in alle ewigkeit gelocked, auch mist.

Üblicherweiser nutzt man hierzu eine temporäre Datei die man anschliessend umbenent. Der rename erfolgt atomisch, weshalb man dazu auch keine locks benötigt, die bei PHP sowieso nicht funktionieren.
klingt plausibel und leuchtet ein.....Muss mir das mal näher anschauen
Antworten

Zurück zu „Coding & Technik“