close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 5 years ago

Last modified 3 years ago

#4191 closed Defekt

NC: Sync-Client verursacht Konflikte bei Zugriff auf Fileserver — at Version 5

Reported by: Rüdiger Kupper Owned by: Rüdiger Kupper
Priority: schnell erledigen Milestone: Nextcloud: Optimierungen
Component: Webdienst: Kepler-Cloud Severity: beeinträchtigt den Unterricht vieler Lehrer
Keywords: Cc: bau

Description (last modified by Rüdiger Kupper)

Unser nächstes Problem:
Die letztlich sinnvollste Zugangsart zur Kepler-Cloud ist der NC-Desktop-Sync-Client. Funktioniert online wie offline und ohne Netzwerkverzögerung.
Nur: Der Syncclient ist derzeit praktisch unbenutzbar, da beim Bearbeiten einer Datei nach kurzer Zeit Konflikte entstehen.
Dabei ist es immer so, dass der Client die geänderte Version hochlädt, beim nächsten Sync aber erst nochmal die Vorgängerversion vom Server geschickt bekommt.

Wenn man die Dateiattribute auf dem paedml anschaut (und auch auf dem cloud-Server, die sind identisch), dann erkennt man die Ursache: es dauert einige Zeit, bis die geänderte Version tatsächlich auf dem Fileserver geschrieben ist. Für den Sync-Client ist die Operation aber längst abgeschlossen. Ruft er die aktuelle Fileliste ab, solange die Änderungen nicht konsolidiert sind, erhält er vom Server die alte Version als aktuell, was dann zum Konflikt führt.

Change History (5)

comment:1 by Rüdiger Kupper, 5 years ago

Das Problem tritt nur in den Fileserver-Verzeichnissen auf. Im Toplevel-Verzeichnis passiert das nicht.
Damit ist klar, dass Datenbankzugriffe nicht das Problem sind (die config-Optionen habe ich auch schon mehrfach geprüft). Bleiben also SSH und NFS als Übeltäter.

comment:2 by Rüdiger Kupper, 5 years ago

Ich tippe auf NFS und zwar genauer die async Mount-Option, die wir verwenden. Die beschleunigt den Zugriff, indem sie dem NFS-Server erlaubt, Vollzug zu melden, bevor die Daten wirklich geschrieben sind.
In meinem Verständnis war das immer ein Schreib-Cache, der natürlich softwaremäßig mit dem Lese-Cache synchron gehalten wird. Liest man die Doku, dann ist dort aber nirgends von Synchronusation mit dem Lese-Cache die Rede. Da steht immer nur, dass der Server fue Operation als abgeschlossen signalisiert, bevor das wirklich der Fall ist.
Falls dad wirklich wörtlich so gemeint ist könnte es gut unsercProblem verursachen.

comment:3 by Rüdiger Kupper, 5 years ago

Todo: sync-Optiobän setzen (auf proxmoxls2) und schauen, ob es hilft.

comment:4 by Stephan Richter, 5 years ago

Mein Verständnis wäre auch so, dass wir async nicht wollen. Die Einbindung der Ordner über ssh würde ich mit einem Mount vergleichen. Da will man ja auch nicht das Volumen entfernen, bevor der Cache geschrieben wurde... .

Soweit ich weiß hat NC auch noch ein internes FileLocking, aber das bezieht sich vermutlich nur auf Dateien die in der Datenbank liegen!?

comment:5 by Rüdiger Kupper, 5 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.