23. Optimaliseren van de indexaanmaak van bibliografische beschrijvingen

Auteur Richard Philips
Aanmaak 20 febr 2009
Oud BVV nr 2239

23.1. Abstract

Dit document beschrijft nieuwe technieken bij de aanmaak van indexen. De klemtoon ligt op het aanmaak van indexen van bibliografische beschrijvingen.

23.2. Inleiding

De methoden omschreven in deze tekst zijn volledig compatibel met de reeds bestaande methodes en kunnen dus ook samen worden gebruikt.

De indexaanmaak binnen Brocade is een sterke troef van de bibliotheeksoftware:

  • homogene indexstructuren voor de diverse Brocade objecten;
  • het aanpassen en uitbreiden van de index is vrij eenvoudig;
  • ‘authority controle’ is ingebed;
  • diverse sorteervormen;
  • geoptimaliseerd voor raadpleging;
  • geoptimaliseerd voor Booleaanse AND;
  • een onbeperkt aantal OPAC’s is mogelijk.

Met deze mogelijkheden komt er echter ook een nadeel: de tijd en het volume om deze indexen aan te maken is recht evenredig met het gemiddeld aantal OPAC’s.

23.3. ‘Random Access’ toegang

Filesystemen voor computers zijn steeds geoptimaliseerd voor sequentiële toegang: de onderliggende software en hardware zorgt ervoor dat toegang tot deze gegevens grotendeels via het snelle intern geheugen (de cache) kan gebeuren.

Bij het aanmaken (en raadplegen) van de indexstructuren is de toegang echter ‘random access’ en speelt de cache nauwelijks een rol. Dit zorgt ervoor dat vooral de aanmaak van de indexen traag is. Onze databanken zijn gebaseerd op binary trees. Deze hebben het nadeel dat het veelvuldig aanpassen, het werken vertraagd.

23.4. Het versnellen van de indexaanmaak

Indexaanmaak stelt enkel een probleem bij catalografische beschrijvingen. De oorzaken hiervan zijn:

  • groot aantal OPAC’s
  • groot aantal indexen
  • groot aantl hoofdvormen
  • groot aantal zoekvormen

Voorbeeld:

In het lvd regelwerk van Anet geeft een bibliografische beschrijving aanleiding tot ongeveer 500 indextermen. Dit betekent dat elke indexaanmaak neer komt op zo’n 4000 schrijf-instructies waarvan de meesten (in de indexglobals en de XSORT en XSTRING global) random access zijn.

In de volgende topics worden een aantal technieken beschreven die de aanmaak van indexen van bibliografische beschrijvingen performanter kunnen laten verlopen.

23.5. Verkleinen van het indexreservoir ^XBCAT: brute force

Dit is niet alleen belangrijk voor de snelheid waarmee indexen worden aangemaakt maar ook voor backup. De software aanpassingen, geïntroduceerd in Brocade 3.30, delen de grootte van ^XBCAT door het gemiddeld aantal OPAC’s per bechrijving. Zo heeft een beschrijving in het lvd-regelwerk van Anet gemiddeld 4 OPAC’s. De geconverteerde XBCAT zal dan ongeveer 4x kleiner zijn. De kleinere en snellere ^XBCAT biedt ook onmiddellijk voordelen voor de Lucene indexering. Deze is immers gebaseerd op ^XBCAT.

23.6. Verkleinen van het indexreservoir ^XBCAT: smart force

Dit komt neer op het herschrijven van /catalografie/index/bcasix.m: de software die de hoofdvormen en zoekvormen genereerd moet gewoon slimmer zijn en minder (hv, zv) genereren.

Dit is een taak waar in Brocade 3.30 geen aandacht wordt aan geschonken.

23.7. Inzetten van SSD geheugen

Solid State Disks (SSD) worden betaalbaar: de markleider Intel levert 64GB schijven aan 500 EUR. Deze SSD kunnen de effecten van ‘random access’ grotendeels opvangen.

Anet plant een test met deze SSDs op de nieuwe ontwikkelmachine.

23.8. Gerichte software

Bij sommige indexaanmaak processen heeft men extra kennis over wat er moet gebeuren. De indexaanmaak kan belangrijk worden versneld indien men deze kennis weet in te bouwen in het indexaanmaak proces zelf.

Toevoegen van de beschrijvingen van een nieuwe bibliotheek aan een bestaand regelwerk

Hierbij gaan we ervan uit dat dit neerkomt op:

  • Het toevoegen van een reeks plaatskenmerken bij een of meerdere, nieuwe bibliotheekacroniemen.
  • Het toevoegen van een of meerdere OPAC’s.
  • Bestaat het catalografische record reeds, dan wordt de andere data ongemoeid gelaten.

Oplossing

  1. ^BCAT wordt in orde gebracht (klassieke conversie proces waarbij er GEEN indexen worden aangemaakt).
  2. De OPAC’s worden herberekend (manueel proces).
  3. Het manueel proces %UBG^bcasfix vult de background (release 3.30).
  4. De background verwerkt de gegevens op een snelle, efficiënte manier.

Notitie

Het is niet uitgesloten dat aan een aantal van de hoger vermelde restricties niet wordt voldaan. Zo kan ik me voorstellen dat er toch een aantal gegevens aan reeds bestaande beschrijvingen worden aangepast. De indexen kunnen dan misschien in twee fasen worden aangemaakt: eerst de ‘snelle’ methode die een snel gebruik van de OPAC’s mogelijk maakt en vervolgens nog een verfijnde, trage methode die de extra gegevens verwerkt.

Dit realistisch voorbeeld is beschikbaar in 3.30

23.9. Background verwerken van de indexen

Bij elke registreer actie van een catalografische beschrijving wordt de index herberekend terwijl de catalograaf wacht ...

In de meta-informatie van het regelwerk kan men nu kiezen uit 3 verschillende mogelijkheden:

Online
Dit is de reeds bestaande werkwijze.
Background
De indexverwerking gebeurt in de background en de catalograaf kan onmiddellijk verder werken.
Interactive
Indien het om een nieuwe beschrijving gaat, gebeurt de verwerking online, reeds bestaande beschrijvingen worden in de background verwerkt.

Notitie

  • De online methode heeft het voordeel dat de indexmanipulatie in dezelfde transactie gebeuren als het registreren van de beschrijving. De andere methodes hebben dat voordeel niet.
  • Het verwerken in de background betekent NIET dat deze verwerking op het einde van de lijst te verwerken beschrijvingen komt (en dus eventueel na de VLACC, BRONCO of conversie processen worden uitgevoerd). Deze background verwerkingen hebben steeds voorrang.

Beschikbaar in 3.30

23.10. Selectief verwerken van de indexen

Bij elke registreer actie van een catalografische beschrijving wordt de index herberekend ... ongeacht wat er precies is veranderd.

De software is nu veel selectiever: na bijvoorbeeld het plaatsen van een annotatie wordt er geen indexaanmaak uitgevoerd.

Beschikbaar in 3.30