Vermische Datensätze / NFS / SMB

Anando Eger anando at aneg-dv.de
Fr Okt 13 12:00:47 CEST 2000


Liebe Liste,

ich habe mit gesteigertem Interesse die Diskussion zu den "vermischen Datensätzen"
verfolgt und möcht kurz meine Erfahrungen zum Thema darstellen:

Vor einiger Zeit habe ich mal ernsthaft versucht, Allegro-C (V16) im Netzwerk auf
einer SMB-Emulation (Samba) auf einem LINUX-Server zu installieren. Um es
vorwegzunehmen: Danach habe ich wieder einen alten Novell-Server reaktiviert.

Die Fehler, die auftraten, sahen wie folgt aus:
- "vermischte Datensätze"
- gesperrte TBL-Datei äußerst häufig
- fehlerhaft aktualisierte Indexeinträge (nicht gelöscht oder nicht ergänzt)
- fehlerhaft aktualisierte tbl-Datei ---> wrong records

Im Zuge dieses Versuchs habe ich mehrere Tage mit Debugging-Sitzungen und dem
Studium der Samba-Quellen zugebracht, was mich zu folgenden Erkenntnissen führte:

- mehrere Allegro-Programme öffnen ein- und dieselbe Datei gleichzeitig
  schreibend, bei alf ist es sogar so, das innerhalb des gleichen Programms
  einige Dateien mehrfach (!!!) schreibend geöffnet werden (offenbar vom
  Hauptprogramm und von Unterprogrammen noch einmal)

- das NFS des UNIX (LINUX ist eins) erlaubt es immer NUR EINEM PROZESS,
  eine Datei für den Schreibzugriff zu öffnen.

- das mehrfache, gleichzeitige Öffnen einer Datei für den Schreibzugriff  wird
  also entweder schon vom NFS-Clienten
  unter Windows, oder im Fall LINUX, vom SMB-System (Samba) SIMULIERT.
  Das geschieht so, dass vom simulierenden Programm implizite LOCKS erzeugt
  werden und Schreibzugriffe mehr oder weniger erfolgreich in (RE)OPEN for WRITE -
  WRITE - REOPEN for READ-Sequenzen zerlegt und dann zeitlich nacheinander
  ausgeführt werden. Das ist schon anspruchsvoll genug und würde auch noch zuver-
  lässig funktionieren, wenn nicht Windows noch mit seinen Netzwerk-Caching-
  Algorithmen "dazwischenfunken" würde. Windows erwartet nämlich, dass der
  Client vom Server benachrichtigt wird, wenn auf dem Server eine offene Datei
  durch einen anderen Prozess verändert worden ist. Empfängt der Client diese
  Meldung aus irgend einem Grund nicht oder einfach nur zu spät (es gibt
  Netzwerk-Laufzeiten!!!), gibt's Datenmüll - was in Praxis dann auch passiert
  (übriges auch in Peer-to-Peer-Netzen zwischen Windows-PC) Die Folge sind
  die oben beschriebenen Effekte.

praktische Schlußfolgerungen für mich:

- ich installiere Allegro im Netzwerk möglichst nur auf Novell-Servern, andernfalls
  weise ich die Anwender explizit auf erhöhte Fehleranfälligkeit hin

- für UNIX oder LINUX als Server-System bleibt vorerst wohl nur Avanti.

- in der .cfg wird ein möglichst großer Wert für die Anzahl der Füllzeichen eingetragen
  (bis es schmerzt). Das senkt die Häufigkeit der Umspeichervorgänge in den
  .xLD-Dateien und führt signifikant zur Verringerung der Fehlerhäufigkeit.

In dem Zusammenhang würde ich die von Herrn Eversberg schon einmal als möglich
angedeutete Bereitstellung der Allegro-Datenbank-Routinen als OpenSource bzw.
unter GNU-Lizenz seeeeeehr begrüßen .... es würde die Fehlersuche in den beschrie-
benen Fällen erleichtern.

Viele Grüße - Anando Eger

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : anando.vcf
Dateityp    : text/x-vcard
Dateigröße  : 296 bytes
Beschreibung: Visitenkarte f?r Anando Eger
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/allegro/attachments/20001013/7d6f2dc1/attachment.vcf>


Mehr Informationen über die Mailingliste Allegro