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

Speichern eines Dokuments führt zu mehrfachen Cache Operationen #304

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

Speichern eines Dokuments führt zu mehrfachen Cache Operationen #304

j3nsch opened this issue Aug 23, 2022 · 0 comments

Comments

@j3nsch
Copy link
Member

j3nsch commented Aug 23, 2022

Beim Speichern eines Dokuments kann es zu sehr vielen Cache und damit verbundenen Datenbank Operationen kommen. Das ist bei größeren Import-Operationen ein erheblicher Mehraufwand.

Wenn Objekte wie Lizenzen gespeichert werden. ändern sich die Metadaten von verknüpften Dokumenten. Daher müssen die Dokumente aus dem XML Cache gelöscht werden und ihr Datum der letzten Änderung muss aktualisiert werden.

Wenn ein Dokument gespeichert wird, dann werden auch die Verknüpften Objekte gespeichert. Objekte die dabei nicht verändert wurden, werden anscheinend übersprungen. Das müsste aber noch mit Tests wirklich fest gemacht werden.

Auf jeden Fall kommt es bei vielen Speicheroperationen, insbesondere beim Import zu redundanten Datenbankoperationen. Dazu kommt, dass in Opus_Model_Plugin_InvalidateDocumentCache jedes Mal eine Konfigurationsdatei eingelesen wird. Da sollte noch viel Raum für Verbesserungen bei der Performanz sein.

Bei den Testdaten zeigen sich keine dramatischen Veränderungen, wenn der Cache komplett aus der Verarbeitung genommen wird. Die Daten sind sehr dünn und die Messwerte insgesamt so gering, dass etwaige Verbesserungen immer noch im Bereich des sowieso auf dem System auftretenden Schwankungen liegen.

Vermutlich sollten auch Verbesserungen an der Datenbank zur Optimierung der notwendigen Operationen durchgeführt werden. Vielleicht ein zusätzlicher Index?

Am wichtigsten ist es das Verhalten des Caches die Interaktionen zwischen den Datenobjekten und dem Cache testbar zu machen.

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