Christoph: (Mal eben Informationen speichern - was ist am schnellsten

Hallo Leute,

ich programmiere gerade ein Administrator-Tool fuer eine Web-Seite in Perl.

Ich arbeite dort mit Session IDs und mich wuerde nun interessieren, wie man eine SessionID auf dem Server abspeichern sollte. Bei jeder Aktion muss die sid ausgelesen und ihre Gueltigkeit ueberprueft werden.

Mir schweben dort verschiedene Moeglichkeiten vor und ich waere an derjenigen interessiert, die dem Server (IBM AIX4) am wenigsten Arbeit macht.

1.
Login: Eine neue Datei erstellen mit Dateiname=SessionID.
Logout: Die Datei wieder loeschen.
Timeout: Alle Dateien mit Datum vom Vortag werden geloescht.
Validitaet: Wenn es die Datei gibt, dann ist die ID gueltig.
Vorteile:

  • kein flock() weil Datei eindeutig und nicht veraendert wird
  • nur Zugriff auf FAT
  • sehr einfache Validisierung
    Nachteile:
  • bei bestimmten Aktionen (z.B. login) wird das Verzeichnis auf sid-Leichen ueberprueft.

2.
Login: neue sid und Dateum werden in eine zentrale Sammeldatei geschrieben
Logout: Diese Zeile wird aus der Datei geloescht
Timeout: Wenn das Datum vom Vortag ist
Valititaet: Es gibt die ID in der Datei.
Vorteil:

  • nur eine Datei
    Nachteil:
  • flock() sinnvoll
  • Aenderungen an einer Datei
  • die Datei muss jedesmal durchsucht werden, ob sie die gueltige sid enthaelt

3.
Gibt es Servervariablen, die man so veraendern kann, dass sie von verschiedenen Prozessen ausgelesen werden koennen? Wie stellt man dort sicher, dass nicht irgendwann der Speicher voll ist, wegen vergessenen Veriablen?

Was haltet Ihr fuer die beste Loesung? Alle drei lassen sich problemlos in meine Anwendung einbauen.

Ciao,

Chris

--
moaosid