Project

General

Profile

Actions

bug #6436

open

[DISCUSS] TitleCache update strategy for related objects

Added by Andreas Müller about 7 years ago. Updated about 7 years ago.

Status:
New
Priority:
New
Category:
cdmlib
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Severity:
normal
Found in Version:

Description

Hallo Walter,

ja, das ist ein altes Problem (leider noch viel älter als Remoting). Da wir bei den Formattierern (Cache Strategies) größt mögliche Freiheit lassen wollten, war es schwierig einfach zu sagen, dass immer wenn sich eine Sache ändert, die andere getriggert werden soll, da es ja auch davon abhängt, wie Formattiert wird.

Beispiel: Wenn ich bei einer FieldUnit nur Collector und FielNumber als TitleCache nehme, brauche ich ein update bei den Gathering Daten nicht bei der FieldUnit zu triggern. Wenn ich aber Alle Sammlungsrelevanten Daten wir country, location, … mit in den Cache schreibe, muss ich das doch machen.

Zudem ist das Triggern bei Hibernate ein Hauch komplexer und bei sehr viel referrenzierten Daten auch mit der Gefahr verbunden, dass der Speicher überläuft.

Daher stehen mehrere Lösungen zur Diskussion:
1) Im Hintergrund regelmäßig einen Cacheupdater laufen lassen.
Vorteil: keine Komplexität und/oder Performance Overhead beim Speichern.
Nachteil: Zeitliche Verzögerung (je nach Implementierung kann diese erheblich sein), im Editor kann das somit immer noch irritieren, im Portal kommen die Daten aber dann recht schnell korrekt raus (was derzeit durch einen anderen Workaround, der aber nicht performant ist, glaube ich auch immer gegeben ist)

2) Aus Erfahrungswerten gewisse referenziernde Objekte immer mit Updaten, da davon auszugehen ist, dass diese Updates benötigt werden. Dies kann synchron oder asynchron geschehen. Nachteil bei ersterem, speichern kann länger dauern, Nachteil beim zweiteren, schwieriger zu implementieren, und insbesondere beim Feedback ans UI (Editor) damit dieser für Objekte, die bereits irgendwo angezeigt werden, mitbekommt, dass diese sich geändert haben.
3) Intelligente CacheStrategies: Speichern der Information, mit welcher CacheStrategy ein Objekt gespeichert wurde. Diese bringt dann die Information mit, wann sie geupdated werden muss. Nachteil: komplizierter zu implementieren als 2), dafür exakter. Auch hier synchron und asynchron möglich.

Ich schreibe dies so ausführlich, damit ich auch gleich ein Ticket draus machen kann (gibt’s in der Ausführlichkeit noch nicht). Aber vielleicht hast du ja auch zu der einen oder anderen Lösung eine Anmerkung.

Viele Grüße,
Andreas M.


Related issues

Related to EDIT - feature request #5387: Completely avoid all cache strategies during read operationsNewAndreas Müller

Actions
Related to EDIT - bug #6437: Always update titleCache for nomenclatural reference ClosedPatrick Plitzner

Actions
Actions

Also available in: Atom PDF