[Allegro] Mysteriöse Variable
Thomas Berger
ThB at Gymel.com
Do Mai 3 10:27:33 CEST 2012
Lieber Herr Eversberg,
>> Es gibt auch keinen Grund, diesen Schalter ueberhaupt einzufuehren:
>> Wenn ein Job "get edit" benoetigt, muss er eben "get edit" setzen...
>>
> Nur, dann muß u.a. update.job auch entsprechend geändert werden UND/ODER
u.a.: m.W. "nur"
> wir müssen mit dem "find" noch was machen, damit es wahlweise beim
> Laden des (ersten) gefundenen Satzes auch schon, wie bei "get edit",
> die Sperre setzt und die Schlüssel berechnet und dies nicht erst
> durch ein nachgeschobenes und u.U. erst Minuten später nach vielen
> anderen Änderungen real ausgeführtes "set lock" veranlaßt wird,
> worauf dann später beim Speichern zwar nichts kaputtginge aber die
> Meldung "jemand anders war schneller" käme.
Im Prinzip darf die Schluesselberechnung (fuer den Originalsatz) erst
beim "put" erfolgen, denn selbst wenn der konkrete Satz vor einigen
Sekunden mit "get edit" gegen direkte Veraenderungen gesperrt wurde,
haengen seine Schluessel u.U. von anderen, nicht gesperrten Saetzen
ab.
Es ist moeglicherweise etwas ineffizient, direkt nach einem
(evtl. impliziten) "get first" noch ein "get edit" zu geben
!!!
(ich darf doch davon ausgehen, dass "get edit" zuerst den
Satz sperrt, ihn dann noch einmal frisch einliest und damit
bereits evtl. vorher im Arbeitsspeicher unternommene Aenderungen
zunichte macht?),
!!!
eigentlich genauso typisch ist aber, dass ich den geholten Satz
zunaechst einmal teste und daraufhin erst entscheide, ob ich ihn
anfassen moechte: Je nach Anteil der zu verwerfenden Saetze kann
das doppelte Einlesen dann sogar effizienter sein, weil viel
seltener tatsaechlich ein Satz gesperrt werden muss.
viele Gruesse
Thomas Berger
Mehr Informationen über die Mailingliste Allegro