[Allegro] Nochmals zu Grenzen

Thomas Fischer fischer at sub.uni-goettingen.de
Fr Dez 18 12:25:21 CET 2009


Hallo Herr Eversberg,

> > Zum genaueren Verständnis also noch einmal nachgefragt:
> > Bezieht sich diese Speicherkapazität auf die Summe aller möglichen 
> > Einträge, oder werden nur verschiedene Einträge wirksam? (Z.B. wird 
> > bei der Indexierung von Wortpaaren zur Phrasensuche im 
> > ersten Fall der benötigte Speicherplatz im wesentlich verdoppelt,
> > im  zweiten Fall aber vervielfacht.)

> Die 20K gelten für das, was bei einem einzelnen ak-Befehl herauskommt.

Zum Schluss, wenn zusammengefasst ist, oder wird zwischendurch erst eine
Liste aller möglichen Einträge gesammelt? Konkret: wenn ich in einem Text 5
Mal "München" stehen habe, brauche ich dafür 7 oder 5*7=35 Bytes? Oder wie
viel?

> Wenn er sich auf mehrere Felder bezieht, wie ak=2.." "+X, 
> dann gelten die 20K für jedes einzelne davon separat, nicht 
> für die ak-Zeile als Ganzes. Damit sollte man ganz gut leben können.

Das heißt aber, dass ich (wegen des Umfangs) aufgeteilte Felder nicht ohne
weiteres in einer Variablen zusammenfassen und dann bearbeiten kann (das
würde die Bearbeitung von Teilfeldern erleichtern). Oder sehe ich das
falsch?

> > Und wäre es möglich, beim Erreichen der Grenzen ein sanftes 
> > Abfangen  statt eines Absturzes zu implementieren?

> Muß geprüft werden. An wen soll die Meldung gehen? Es schaut ja u.U.
> nicht gerade einer zu. Oder Abbruch an der Stelle? Oder die 
> Daten eben unvollständig einmischen und was in die "protok" 
> schreiben? Aber wenn die keiner liest, was ja normal ist?

Grundsätzlich würde ich sagen, das ist Ihre Sache, weil Absturz keine Option
ist.
Wenn Sie aber schon fragen: bei A99 wird automatisch nach dem Neuaufbau des
Index der Inhalt der beiden Protokolldateien angezeigt, da wären Warnungen
sinnvollerweise unterzubringen.
Möglichst *am Anfang* der Datei und mit einem auffälligen Hinweis. Außerdem
mit Angabe 
– des Datensatzes
– des Feldes
– und des Abbruchgrundes
Dann kann einfach weiter indexiert werden.

Über den Inhalt der Anzeige könnte auch noch einmal nachgedacht werden. So
etwas wie

  2000       5          149823      29964
        100001 Schlüssel werden vorsortiert, ii3 (aac_1.gld)
und

Zwischendateien 1 - 10 sind gemischt
Zwischendateien 10 - 19 sind gemischt
Endphase: nur noch 2 Dateien

brauche ich eigentlich nicht zu sehen, während

INDEX d1 enthält 13844 Einträge
...
Gesamtzahl Indexeinträge = 1782993
verschiedene = 351395

und

max. Anzahl Schlüssel je Satz: 397  (= Satz# 13948)
Gesamtzeit: 71 sec

(da ist er wieder!) schon interessant ist.
Mein Wunsch wäre also: eine Protokolldatei mit den wichtigen Informationen,
und die dann anzeigen, alle anderen Informationen in eine zweite Datei, in
die man gegebenenfalls hineinschaut, wenn etwas schief gelaufen ist. Also
wahrscheinlich am einfachsten protoq noch ein wenig aufräumen und nur die
anzeigen.

Außerdem noch ein Phänomen, dem ich jetzt nicht direkt nachgehen kann: eine
meiner Versionen der Datenbank mit dem besagten Satz stürzt ab (verschwindet
klanglos), wenn ich den Datensatz zu bearbeiten versuche (beim Drücken der
Return-Taste nach Änderungen im Eingabefeld). Das gilt mit A99 v29.10 vom
28.10.2009 und auch nach Neuaufbau der Datenbank (was ohne Probleme
gelingt).

Mit freundlichen Grüßen
Thomas Fischer 




Mehr Informationen über die Mailingliste Allegro