Himmelfahrtskommando

Bernhard Eversberg EV at buch.biblio.etc.tu-bs.de
Mi Mai 23 11:41:16 CEST 2001


Achtung Grossbankiers:

Wieder einmal wurde ein Problem hoeherer Schwierigkeitsklasse
geknackt. Es tritt nur bei Grossbanken auf, das Testen war daher
extrem Zeit raubend und Geduld strapazierend. Fast wurde befuerchtet,
der Himmelfahrtstag wuerde drauf gehen, aber dann wurde die
Loesung vorfristig fertig. Man wird also dieses Jahr den
Feiertag mal Bestimmungs gemaess nutzen koennen...
(Mit der Rechtschreibung stimmt hier mit Sicherheit nicht alles, aber
diese Message wurde nicht mit WinWord geschrieben.)


Neue QRIX-Funktion -fi
----------------------

Es kann passieren, bei sehr grossen Datenbanken, dass das Kompaktieren
nicht funktioniert, sondern irgendwann mit einem "fatal error 232"
abbricht. Das ist ein sehr in der Tiefe sitzendes Problem, das sich
noch nicht vollstaendig loesen liess. Aus Konstanz erhielten wir
eine 107 MB grosse Indexdatei, mit der das Problem untersucht werden
konnte. Es gibt jetzt wenigstens eine indirekte Loesung. 

Wohlgemerkt: nur das Kompaktieren ist betroffen, nicht die Erneuerung
des Index oder der Datenbank-Neuaufbau. Normalanwender sind daher
wohl unbetroffen.
Die Befuerchtung, es sei hier eine Grenze des Indexsystems erreicht,
ist grundlos! Das Problem liegt woanders.

Abhilfe:       >>>  qrix.lzh  liegt bereit auf ac21  <<<
--------            -------------------------------

QRIX wurde so modifiziert, dass es aus der Indexdatei heraus (die
kompaktiert werden soll) eine einzelne Zwischendatei II1 erstellt.
Die ist noch kompakter als eine kompaktierte Indexdatei, kann aber
in dieser Form nicht benutzt werden. QRIX kann in einem zweiten
Durchlauf dann wieder aus II1 eine richtige, dann kompakte Indexdatei
machen, und zwar mit der Funktion -fq, die ja auch sonst aus den
II-Dateien die Indexdatei erstellt.
Der zweistufige Ablauf muss dann wie folgt gestartet werden.
Wenn auf c:\allegro\katalog die Datenbank CAT liegt, dann:
(vom ProgDir aus)

set -k=A
set -k1=A
qrix -fi  -dc:\allegro\katalog -ecat/c:\allegro\katalog 
qrix -fq0 -dc:\allegro\katalog -ecat/c:\allegro\katalog -x9999 

Die beiden qrix-Zeilen unterscheiden sich also nur durch die
Funktionsbuchstaben i und q und die 0 hinter dem q (wodurch der
bestehende Index geloescht wird, sonst wuerde er mit II1 vereinigt).
Die Option -x9999 ist nur dazu da, die Zahl der Zwischenmeldungen auf
wenige zu begrenzen (nur Zeilen mit ueber 9999 Eintraegen werden
gezeigt). Die Zahl ist beliebig, je nachdem, wieviel man waehrend des
Durchlaufs sehen will. Beim Durchlauf mit -fi sieht man nur einen
Zaehler. 
Der Durchlauf mit -fi geht schnell: ca. 3-4 Mio. Eintraege in
5 Minuten. Der Durchlauf mit -fq braucht so lange wie das Kompaktieren
im Normalfall. 
Beispiel:
Der Konstanzer Index hatte 8.2 Mio Eintraege. Die rauschten im
ersten Durchlauf in 9 Minuten durch, der zweite brauchte 13 Minuten.
Der Index schrumpfte von 107 auf 75.5 MB.

Tip: Die Batchdatei kann man so erstellen:
Zuerst CockPit mit ACP statt CP starten. Dann so tun, als wolle man
das Kompaktieren starten. Es passiert nichts, aber eine Datei CCC.BAT
kommt heraus. Darin steht eine QRIX-Zeile mit -fc. Diese verdoppelt
man und macht -fi bzw. -f10 draus.

Linux:
------
qrix.gz und uifqger liegen auch bereit. Fuer Sun ist die Sache noch
nicht durchgefuehrt!
Auf UNIX/Linux sehen die Aufrufe so aus: 
(im ProgDir, wenn DbDir=/katalog und DbName=cat)

./qrix -fi -d/katalog -ecat=/katalog -P./
./qrix -fq0 -d/katalog -ecat=/katalog -P./ -x9999


MfG B.E.

Bernhard Eversberg
Universitaetsbibliothek, Postf. 3329, 
D-38023 Braunschweig, Germany
Tel.  +49 531 391-5026 , -5011 , FAX  -5836
e-mail  B.Eversberg at tu-bs.de  




Mehr Informationen über die Mailingliste Allegro