OPUS4 / framework

OPUS 4 Database Implementation
Other
2 stars 7 forks source link

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

Open j3nsch opened 1 year ago

j3nsch commented 1 year ago

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.