Search the FirstSpirit Knowledge Base
Hallo zusammen,
wir mussten feststellen, dass die Lösch- und Freigabeoperation eines Ordners welcher ca. 300 Inhaltsseiten beinhaltet über die API sehr lange dauert (so ca. 5 Min. je Operation also 10 min. insgesamt). Zur Info: getestet wurde in der Entwicklungsumgebung auf einem Core i7 (4x2,5ghz)Rechner mit 8 Gig Ram. Allerdings konnte man im Monitoring auch keine deutlich erhöhte Speicher-/CPU-Auslastung feststellen.
Wir haben es sowohl mit den Server-seitigen als auch Client-seitigen Methoden probiert (AccessUtil.delete/AccessUtil.release und .delete()/.release()). Beim Client-seitigem Ansatz waren es sogar 15 min.
Meine Frage: Ist das Normalverhalten in Firstspirit oder kann man dies evtl. durch bessere Hardware optimieren? UND: gibt es evtl. einen Ansatz um solche Löschoperationen effizienter durchzuführen z.B. das Ablegen der gelöschten Revisionen im Repository verhindern o.Ä?
Vielen Dank
Jonathan
Hallo Jonathan,
welche genaue FirstSpirit Version verwendet ihr?
Viele Grüße
Tim
Hallo Tim,
5.1.605.72781
Gruß
Jonathan
Hallo Jonathan,
könntest du uns mehr Informationen bezöglich deines genaureren Vorgehens schildern?
Beim Versuch das Verhalten nachzustellen, habe ich eine Server-Seitige Freigabe auf einem Ordner mit genau 300 Seiten gestartet.
Die Freigabe lief bei mir innehralb wenigen Sekunden durch (5.1.605).
Quelltext:
AccessUtil.release(e, false, true, true, de.espirit.firstspirit.access.store.IDProvider.DependentReleaseType.DEPENDENT_RELEASE_NEW_AND_CHANGED);
Welche Parameter ggf. welche Methode genau verwendet Ihr?
Wie komplex aufgebaut sind die betroffenen Seiten?
Viele Grüße,
Sebastian
Hallo,
aus eigener Erfahrung haben die Durchlaufzeiten von Aktionen wie z.B. Freigeben, Löschen, Anlegen von Objekten (Ordnern, Sieten, Medien etc.) auf dem lokalen System leider nicht immer etwas mit dem "realen" System im betrieb zu tun.
Je nach größe des Projekts, Anzahl an Revisionen im Projekt, Anbindung des Filesystems etc. können diese massiv variieren! Persönliches Beispiel: Automatisiertes Anlegen und Freigeben einer Baumstruktur im Strukturbereich: Lokal ca. 3-5 Minuten vs. auf dem "realen" System.
Zeitfresser waren z.B. die create() Operationen, da diese aktiv auf das Filesystem zugreifen um die Objekte zu erzeugen etc. Wenn hier die Anbindung langsam ist (lokal SSD vs. "real" FileShare) geht einiges an Zeit verloren. Zusätzlich hat eine (sehr sehr) hohe ANzahl an Revisionen im Projekt einen Einfluss auf die Durchlaufzeit gehabt. (Lokal waren dies im Entwicklungsprojekt auch deutlich weniger als im realen Projekt.)
Bewährt hat sich die Verwendung von rekursiven Aufrufen, wenn möglich. Sprich nicht jedes Objekt einzeln löschen und dann den übergeordneten Ordner freigeben, sondern alles mit nur einem Aufruf.
Evtl. ist der Performance-Hund also auch im Unterschied zwischen der realen Umgebung und der Entwicklungsumgebung begraben.
Grüße
Sandro
Hallo Jonathan,
benötigst Du noch weitere Hilfe oder haben Dir die bisherigen Antworten bereits geholfen?
In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere
Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung
gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.
Viele Grüße
Sebastian