Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IndexBuilder optimieren #85

Open
j3nsch opened this issue Aug 23, 2022 · 2 comments
Open

IndexBuilder optimieren #85

j3nsch opened this issue Aug 23, 2022 · 2 comments

Comments

@j3nsch
Copy link
Member

j3nsch commented Aug 23, 2022

Nach dem Solr Update indiziert der IndexBuilder jedes Dokument einzeln, was für eine deutlich schlechtere Performanz sorgt. Das muss wieder geändert werden, so daß wieder mehrere (default = 10) Dokumente auf einmal indiziert werden, bevor ein Solr Commit durchgeführt wird.

Die größe der Blöcke sollte konfigurierbar sein, und der Code zeitgleich aufgeräumt werden. Der eigentliche Code sollte in Klassen in die Library wandern, so daß er auch unabhängig getestet werden kann. Das Skript SolrIndexBuilder sollte so schlank wie möglich sein.

Intern: https://tickets.zib.de/jira/browse/OPUSVIER-3554

@j3nsch
Copy link
Member Author

j3nsch commented Aug 23, 2022

Es wurden bereits einige Verbesserungen umgesetzt. Dokumente werden in Blöcken indexiert. Das kann auf der Kommandozeile beim Aufruf der Indexierung konfiguriert werden.

Der Hash wird für jede Datei dreimal (3) berechnet. Es ist noch nicht klar wodurch das passiert. Diese "Kleinigkeiten" summieren sich und beeinflussen die Performanz negativ. Die Ergebnisse des Profiling mit XDebug sind schwer zu interpretieren. Die Anzeige in IntelliJ scheint seltsam.

@j3nsch
Copy link
Member Author

j3nsch commented Aug 23, 2022

Im Volltextcache wird der Hash der Datei für den Dateinamen verwendet. Das macht auf den ersten Blick Sinn, aber sorgt auch dafür, daß bei jeder Indizierung der Hashwert berechnet werden muss. Das dauert nicht lange, aber die größe der Dateien ist begrenzt (16 MB?), womit gerade die großen Dateien, bei denen die Extraktion noch teuerer ist, nicht im Cache landen, sondern immer wieder neu extrahiert werden müssen. Es sollte ein alternativer Algorithmus für die Namen der Cache-Dateien gefunden werden.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant