Besseres Verhalten bei Archivanfragen
Bei Archivanfragen gibt es das Problem, dass umfangreiche Archivanfragen ggf. die Archivierung von Daten blockieren oder den Speicher voll laufen lassen. Ein weiteres Problem ist, dass eine Applikation, die Archivdaten zu langsam abruft das Archivsystem währenddessen über längere Zeit blockieren kann.
Alte Archivsystemversionen haben die ganze Zeit auf die Datenidentifikation synchronisiert während eine Archivanfrage läuft. Bei umfangreichen Anfragen oder wenn die Applikation die Daten nicht zeitnah abgenommen hat, führte dies dazu, dass währenddessen der Archivierungstask blockiert werden konnte und auch das andere Operationen wie Sicherung und Löschen diese Datenidentifikation währenddessen nicht bearbeiten konnten.
Um das zu verbessern, wurde in neueren Archivsystemversionen das Verhalten so geändert, dass das Archivsystem zuerst (synchronisiert) alle Archivdaten aus der Persistenz holt und zwischenspeichert und dann (unsynchronisiert) nacheinander so schnell wie die Applikation das zulässt an den Client überträgt. Dies hat den wesentlichen Vorteil dass die Synchronisation nur relativ kurz erforderlich ist.
Dennoch ergeben sich auch hier Nachteile:
- Bei sehr umfangreichen Anfragen bleibt die Synchronisierung trotzdem längere Zeit bestehen und blockiert andere Vorgänge.
- Bei sehr umfangreichen Anfragen kann es vorkommen, dass der Speicher des Archivsystems durch die Zwischenspeicherung voll läuft.
Das Verhalten sollte so geändert werden, dass das Archivsystem synchronisiert z. B. 1000 Datensätze aus der Persistenz ermittelt und zwischenspeichert, dann die Synchronisierung temporär aufhebt und erst wenn der Client die 1000 Datensätze abgerufen hat weitere 1000 Datensätze aus der Persistenz synchronisiert geholt werden.
Da immer nur maximal 1000 Datensätze geholt und zwischengespeichert werden, wird die Zeit der Synchronisierung reduziert und auch der maximale Speicherverbrauch begrenzt.
Hierbei muss sich das Archivsystem merken, wo es aufgehört hat, Daten abzurufen um dann an der richtigen Stelle weitermachen zu können. Da die Synchronisierung aufgehoben worden ist, kann es vorkommen, dass zwischenzeitlich Container z. B. gelöscht oder wiederhergestellt wurden oder weitere Daten archiviert wurden, damit muss umgegangen werden können.