[Allegro] Mysteriöse Variable
Bernhard Eversberg
ev at biblio.tu-bs.de
Do Mai 3 12:44:56 CEST 2012
Am 03.05.2012 12:01, schrieb Thomas Berger:
>>> ... Beim Zugriff
>>> auf einen Datensatz (implizit bzw. "f1nd", "get", ...) wird
>>> dieser Datensatz in einem konsistenten Zustand (Locking auf
>>> Betriebssystemebene evtl. notwendig) eingelesen.
>>
>> Also bei f1nd mit Locking, bei find nicht!? Na gut, das ginge.
>
> NEIN. Ich habe mich bemueht, die allegro-Operationen als
> .TBL-Sperre und Datensatz-Sperre zu bezeichnen. Implementiert
> werden muessen sie mit Hilfe des Betriebssystems, dem
> (Range)-Locking.
>
Range-Locking würde, so wie Sie es anvisieren, in der Realität
erheblich zu komplex, wenn Sie nur an das zuverlässige und
rückstandsfreie Aufheben all der Sperren denken, insbes. wenn vorher
das Programm versagt oder mittendrin der Server oder die Verbindung
zwischen beiden. Im Hinblick darauf ist unsere Methodik stark defensiv.
Vor dem Sperren eines Satzes UND vor dem Schreiben eines Satzes wird
jeweils die .TBL gesperrt, sofort danach wieder entsperrt, dann kann
niemand gleichzeitig einen anderen oder denselben Satz sperren bzw.
speichern.
Vor dem Einlesen mit "get edit" passiert das auch, also ist auch
da, sowie bis zum "put" oder "set unlock" das gleichzeitige Schreiben
unterbunden.
Per "get edit" hat man somit eine Kopie, die mit Sicherheit
anschließend nicht anderweitig modifiziert wird, bevor man selber
wieder speichert.
Halt stopp! werden Sie rufen, der Gesamtverantwortliche könnte ja
derweilen mit dem Hexeditor was machen!!! Ja. Und DAS könnte in der Tat
allenfalls ein range locking unterbinden.
Sorry, aber die realen Möglichkeiten sind zu begrenzt, dies und noch
mehr der Eventualitäten alles mit einzubeziehen. Wir gehen von einer
mittleren Sicherheitsstufe aus, keiner Zero Tolerance Ideologie.
Da müssen wir passen. Die Erfahrung der letzten 20 Jahre zeigt
eigentlich - und das Gegenteil ist unerwiesen - daß wir da so
falsch nicht liegen.
Wer darüber hinaus mehr will, hat ja künftig die Chance dazu und kann
dann ein Hochsicherheitsprodukt anbieten, das unseres in den Schatten
stellt. Wenn das kein Anreiz ist.
Aber ich gebe Ihnen, mit Nietzsche, in letzter Instanz mehr als recht!
Wer versucht, alles zu Ende zu denken und in Praxis zu übersetzeu, kann
nur verzweifeln. Nicht nur in dieser unserer Angelegenheit. Real
operieren kann man nur mit einer Philosophie des Als-Ob oder des
entschlossenen Pragmatismus.
B.E.
Mehr Informationen über die Mailingliste Allegro