Files vor parallelem Zugriff schützen
Files vor parallelem Zugriff schützen
Hallo,
bei uns geistert die Idee herum, dass sich alle Worshipleader von zu Hause oder sonstwo per VPN auf den Server hängen können, auf dem die Songbeamer-Datenbank liegt. Deren Demoversion vom Songbeamer greift dann direkt auf das übers Netzwerk gemountete Laufwerk zu und so besteht die Möglichkeit, dass vor allem Lieder von zu Hause eingegeben werden können und gleich im Songbeamer zur Verfügung stehen (ähnlich dieser WebDav-Idee: http://forum.songbeamer.de/viewtopic.php?t=1766#10323).
Nun stellt sich jedoch die Frage, wie paralleler Zugriff geregelt wird. Meine ersten Versuche deuten darauf hin, dass davon bisher nicht ausgegangen wurde.
Mein Vorschlag ist nun, dass der erste Benutzer, der in den "Song bearbeiten"-Dialog kommt, ein Lock-File anlegt. Bei jedem Versuch, einen Song zu bearbeiten, wird zuerst die Existenz dieses Lock-Files überprüft. Ist das File bereits gelockt, wird der Dialog zB. nur grau hinterlegt dargestellt und man kann nichts bearbeiten. Ist das File nicht gelockt, verhält sich alles ganz normal.
Die Lösung ist zwar nicht 100% sicher, aber doch annähernd.
Würde sich das einfach umsetzen lassen?
Danke für's FeedbacK!
bei uns geistert die Idee herum, dass sich alle Worshipleader von zu Hause oder sonstwo per VPN auf den Server hängen können, auf dem die Songbeamer-Datenbank liegt. Deren Demoversion vom Songbeamer greift dann direkt auf das übers Netzwerk gemountete Laufwerk zu und so besteht die Möglichkeit, dass vor allem Lieder von zu Hause eingegeben werden können und gleich im Songbeamer zur Verfügung stehen (ähnlich dieser WebDav-Idee: http://forum.songbeamer.de/viewtopic.php?t=1766#10323).
Nun stellt sich jedoch die Frage, wie paralleler Zugriff geregelt wird. Meine ersten Versuche deuten darauf hin, dass davon bisher nicht ausgegangen wurde.
Mein Vorschlag ist nun, dass der erste Benutzer, der in den "Song bearbeiten"-Dialog kommt, ein Lock-File anlegt. Bei jedem Versuch, einen Song zu bearbeiten, wird zuerst die Existenz dieses Lock-Files überprüft. Ist das File bereits gelockt, wird der Dialog zB. nur grau hinterlegt dargestellt und man kann nichts bearbeiten. Ist das File nicht gelockt, verhält sich alles ganz normal.
Die Lösung ist zwar nicht 100% sicher, aber doch annähernd.
Würde sich das einfach umsetzen lassen?
Danke für's FeedbacK!
LG
Corbin
Corbin
Re: Files vor parallelem Zugriff schützen
Was ist das für ein Server? Bei machen SOS kann man Dateiattribute setzen.corbin hat geschrieben: bei uns geistert die Idee herum, dass sich alle Worshipleader von zu Hause oder sonstwo per VPN auf den Server hängen können, auf dem die Songbeamer-Datenbank liegt.
Lutz
-
kex
- Beiträge: 155
- Registriert: Mo Mai 19, 2008 11:00 am
- Wohnort: Heidenheim a. d. Brenz
- Kontaktdaten:
Mit Dateiattributen wirst du hier nichts machen können, da die Song-Datei bestimmt gelesen wird und dann wieder frei gegeben wird.
Eine andere Songbeamerinstanz könnte also mit Sicherheit auch die Datei öffnen.
Um das gewünschte umzusetzten muss man also bestimmt was an SB rumprogrammieren. Glaub aber nicht dass sich her der Aufwand lohnt.
In anbetracht dessen, dass ein gleichzeitiger Zugriff auf die Song-Dateien nicht allzu oft vorkommt (unterstelle ich jetzt einfach mal), wäre es wahrscheinlich einfacher sich dafür eine andere Vorgehensweise einfallen zu lassen.
Gruß
Kex
Eine andere Songbeamerinstanz könnte also mit Sicherheit auch die Datei öffnen.
Um das gewünschte umzusetzten muss man also bestimmt was an SB rumprogrammieren. Glaub aber nicht dass sich her der Aufwand lohnt.
In anbetracht dessen, dass ein gleichzeitiger Zugriff auf die Song-Dateien nicht allzu oft vorkommt (unterstelle ich jetzt einfach mal), wäre es wahrscheinlich einfacher sich dafür eine andere Vorgehensweise einfallen zu lassen.
Gruß
Kex
Und so zerbröselt der Kex nun mal ...
(frei nach Bruce Allmächtig)
(frei nach Bruce Allmächtig)
Re: Files vor parallelem Zugriff schützen
Und was ist, wenn die Verbindung abbricht?corbin hat geschrieben:Mein Vorschlag ist nun, dass der erste Benutzer, der in den "Song bearbeiten"-Dialog kommt, ein Lock-File anlegt.
Gruß, Sebastian
Re: Files vor parallelem Zugriff schützen
Sorry Leute, dass ich mich nicht gleich gemeldet habe, komm aber grad jetzt erst wieder ins Forum:
) oder ob er als Grundlage zur weiteren Diskussion über dieses Thema. ...weil dann würde ich mir über verschiedene Lösungsansätze den Kopf zerbrechen. Vielleicht würde ja was brauchbares dabei rausschaun!
Danke auf jeden Fall für alle Kommentare!
Gute Frage. Hab ich mir bisher noch nicht überlegt. Da der Grundtenor hier im Thread eher so ist, dass die Mehrheit den Aufwand nicht umsetzbar/notwendig findet, ist meine Frage, ob der Punkt quasi als Todesstoß zu der Überlegung gedacht ist (bitte das dramatische Bild nicht überbewertenSebastian hat geschrieben:Und was ist, wenn die Verbindung abbricht?corbin hat geschrieben:Mein Vorschlag ist nun, dass der erste Benutzer, der in den "Song bearbeiten"-Dialog kommt, ein Lock-File anlegt.
Danke auf jeden Fall für alle Kommentare!
LG
Corbin
Corbin
Also es gibt in Windows zumindest die Möglichkeit, eine Datei zu locken, nicht per File, sondern ich sage mal "Windows intern". Da wäre dann die Frage, ob das auch über WebDAV geht. Also auf einer normalen Netzwerk Dateifreigabe würde das gehen. Bis jetzt wird die Datei nur für ganz kurze Zeit während dem Schreibvorgang gelockt.
Auf der anderen Seite stellt sich die Frage, ob ihr wirklich alle gleichzeitig dieselben Songs bearbeitet. Mal so rein von der Wahrscheinlichkeit betrachtet.
Auf der anderen Seite stellt sich die Frage, ob ihr wirklich alle gleichzeitig dieselben Songs bearbeitet. Mal so rein von der Wahrscheinlichkeit betrachtet.
Gruß, Sebastian
Vielleicht sollten wir die Diskussion hierher verlagern:Sebastian hat geschrieben: Auf der anderen Seite stellt sich die Frage, ob ihr wirklich alle gleichzeitig dieselben Songs bearbeitet. Mal so rein von der Wahrscheinlichkeit betrachtet.
http://forum.songbeamer.de/viewtopic.ph ... highlight=
Lutz
-
Christian Barz
- Beiträge: 198
- Registriert: Mi Mai 31, 2006 2:27 pm
Hi,
ein weiterer Ansatzpunkt wäre, vom Song die Dateiendung (sng) zu ändern wenn sie editiert wird und nach schließen des Editors wieder in die gewohnte Dateiendung zurück umbenennen.
Ist zwar einfach, aber wirkungsvoll.
Das ganze müsste natürlich noch im Songbeamer programmiertechnisch integriert werden, vielleicht optional abschaltbar.
ein weiterer Ansatzpunkt wäre, vom Song die Dateiendung (sng) zu ändern wenn sie editiert wird und nach schließen des Editors wieder in die gewohnte Dateiendung zurück umbenennen.
Ist zwar einfach, aber wirkungsvoll.
Das ganze müsste natürlich noch im Songbeamer programmiertechnisch integriert werden, vielleicht optional abschaltbar.
Dann wäre der Song nicht mehr auffindbar, wenn die Verbindung abreißt. Ich denke, man müßte das entweder per Windows File-Locking machen, oder per Online-Song Verwaltung.Christian Barz hat geschrieben:ein weiterer Ansatzpunkt wäre, vom Song die Dateiendung (sng) zu ändern wenn sie editiert wird und nach schließen des Editors wieder in die gewohnte Dateiendung zurück umbenennen.
Eine Alternative wäre noch, wenn in der Lock-Datei drin steht, wer die Datei gelockt hat, und wenn jemand den Song bearbeiten möchte, dann gibt es eine Warnung so in der Art von "trotzdem editieren / Lock überschreiben...".
Oder das Lock muß jede Minute bestätigt werden. Dann muß die Zeit von allen PCs aber sehr genau synchronisiert sein.
Dennoch bleibt meine generelle Frage bestehen, ob es wirklich so häufig vorkommt, daß derselbe Song von zwei Leuten genau gleichzeitig bearbeitet wird. Oder ob wir hier nur versuchen, ein rein theoretisch existierendes Problem zu lösen? Oder steckt hier in Wirklichkeit etwas anderes dahinter, wie z.B. daß wir beim Editieren eines Songs den soeben geladenen Song verwenden, ohne ihn nochmals vor dem Aufrufen des Editors neu von der Festplatte zu lesen?
Gruß, Sebastian
Was ich mir aufgrund anderer Vorhaben schon öfter überlegt habe und was hier eventuell auch das Problem lösen könnte: Wäre es möglich, dass SongBeamer optional anhand einer Liste, die in einer "Textdatei" abgelegt ist, Lieder findet?
Also konkret die Songs in einer MySQL-DB speichern und Anfragen via localhost (oder webhost) über mod_rewrite auf ein PHP-Script umlenken. Das ganze funktioniert einwandfrei, hat nur den Nachteil, dass die Songs nicht mehr gefunden werden können. Aber nichts einfacher, als die entsprechende Liste per Script dynamisch ausgeben zu lassen. Nur müsste SongBeamer die Liste auch noch irgendwie "fressen".
Also konkret die Songs in einer MySQL-DB speichern und Anfragen via localhost (oder webhost) über mod_rewrite auf ein PHP-Script umlenken. Das ganze funktioniert einwandfrei, hat nur den Nachteil, dass die Songs nicht mehr gefunden werden können. Aber nichts einfacher, als die entsprechende Liste per Script dynamisch ausgeben zu lassen. Nur müsste SongBeamer die Liste auch noch irgendwie "fressen".
Hallo,
Ich persönlich würde von einer direkten Bearbeitung der Daten auf dem Server abraten.
- Wie schon mehrfach gesagt wurde, was ist, wenn die Verbindung abbricht?
- Wenn mehrere Leute tatsächlich auf den selben Songs arbeiten wollen, wäre es das beste, in einer Datenbank auf dem Server ein TimeStamp-Feld anzulegen, in das bei jedem Download der entsprechenden Datei die aktuelle Uhrzeit und das Datum hinterlegt wird.
Wenn nun eine andere Person den Song nocheinmal runterläd, wir der TimeStamp nocheinmal verändert. Wird der Song nach der Bearbeitung wieder hochgeladen, müsste die Abgleichs-Routine lokal den ursprünglichen TimeStamp vermerkt haben und eine Warnmeldung ausgeben, dass der Song in der Zwischenzeit schon bearbeitet wurde. Diues wäre technisch kein großes Problem. Wenn nun noch eine routine hinzukommt, welche die beiden Daten verlgeicht und die Veränderungen auflistet bzw. beide Versionen nebeneinander anzeigt, kann man sich entscheiden, welche Version denn nun genommen werden soll. Es könnten auch beide Dateien abgeglichen werden.
Eine direkte Beatrbeitung auf dem Server ist
a) heikel bzgl. Datenverlust (Abriss der Verbinsung)
b) je nachdem, von wo und mit welchem Internetanschluss (ISDN, UMTS, DSL) die Daten abgerufen werden, ist das bearbeiten auch sehr träge. Dies hängt auch von der Anzhal der User auf dem Server ab.
c) steigt die Serverlast nur unnötig beim Bearbeiten an, es fällt unnötiger Traffic für das Aufrechterhalten ver Verbindung, etc. an.
d) Wenn der Server eine Traffic-Limitierung hat, wird dieses Limit mit dem Direkt-Zugriff auf die Daten evtl. schneller erreicht.
Und meine ehrliche Meinung ist, wie hier schon öfters angedeutet:
(Dies soll KEINE WERBUNG SEIN!) Warum sollten wir alle unterschiedliche Wege gehen?
Mit dem Projekt der "Online-Song-Verwaltung" würde ich sowieso eine Synchronisationsmöglichkeit integrieren, welche in etwa genau dieses Szenario abdeckt. Nur eben mit dem Hauptgedanken, dass es auch für das hoch- und runterladen sowie erstellen neuer Songs eine separate Web-Oberfläche gibt. Außerdem ist keine ständige Internetverbindung von Nöten. (Personen mit Notebooks wären noch mobiler)
Gruß
Benjamin
Ich persönlich würde von einer direkten Bearbeitung der Daten auf dem Server abraten.
- Wie schon mehrfach gesagt wurde, was ist, wenn die Verbindung abbricht?
- Wenn mehrere Leute tatsächlich auf den selben Songs arbeiten wollen, wäre es das beste, in einer Datenbank auf dem Server ein TimeStamp-Feld anzulegen, in das bei jedem Download der entsprechenden Datei die aktuelle Uhrzeit und das Datum hinterlegt wird.
Wenn nun eine andere Person den Song nocheinmal runterläd, wir der TimeStamp nocheinmal verändert. Wird der Song nach der Bearbeitung wieder hochgeladen, müsste die Abgleichs-Routine lokal den ursprünglichen TimeStamp vermerkt haben und eine Warnmeldung ausgeben, dass der Song in der Zwischenzeit schon bearbeitet wurde. Diues wäre technisch kein großes Problem. Wenn nun noch eine routine hinzukommt, welche die beiden Daten verlgeicht und die Veränderungen auflistet bzw. beide Versionen nebeneinander anzeigt, kann man sich entscheiden, welche Version denn nun genommen werden soll. Es könnten auch beide Dateien abgeglichen werden.
Eine direkte Beatrbeitung auf dem Server ist
a) heikel bzgl. Datenverlust (Abriss der Verbinsung)
b) je nachdem, von wo und mit welchem Internetanschluss (ISDN, UMTS, DSL) die Daten abgerufen werden, ist das bearbeiten auch sehr träge. Dies hängt auch von der Anzhal der User auf dem Server ab.
c) steigt die Serverlast nur unnötig beim Bearbeiten an, es fällt unnötiger Traffic für das Aufrechterhalten ver Verbindung, etc. an.
d) Wenn der Server eine Traffic-Limitierung hat, wird dieses Limit mit dem Direkt-Zugriff auf die Daten evtl. schneller erreicht.
Und meine ehrliche Meinung ist, wie hier schon öfters angedeutet:
(Dies soll KEINE WERBUNG SEIN!) Warum sollten wir alle unterschiedliche Wege gehen?
Mit dem Projekt der "Online-Song-Verwaltung" würde ich sowieso eine Synchronisationsmöglichkeit integrieren, welche in etwa genau dieses Szenario abdeckt. Nur eben mit dem Hauptgedanken, dass es auch für das hoch- und runterladen sowie erstellen neuer Songs eine separate Web-Oberfläche gibt. Außerdem ist keine ständige Internetverbindung von Nöten. (Personen mit Notebooks wären noch mobiler)
Gruß
Benjamin
-
kex
- Beiträge: 155
- Registriert: Mo Mai 19, 2008 11:00 am
- Wohnort: Heidenheim a. d. Brenz
- Kontaktdaten:
VNC
Hallo Zusammen,
mir kam gerade die Idee das "Problem" mit Hilfe von VNC oder Remote Desktop zu lösen.
Ist zwar ein total anderer Ansatz und eine andere Vorgehensweise. Löst aber zumindest das Problem mit dem "gleichzeitigen bearbeiten" und die "Verbindungsabbrüche".
Wenn ihr jetzt aber sagt: Dumme Idee, das ist nicht was wir wollen, kann ich das auch verstehen
Gruß
Andreas
mir kam gerade die Idee das "Problem" mit Hilfe von VNC oder Remote Desktop zu lösen.
Ist zwar ein total anderer Ansatz und eine andere Vorgehensweise. Löst aber zumindest das Problem mit dem "gleichzeitigen bearbeiten" und die "Verbindungsabbrüche".
Wenn ihr jetzt aber sagt: Dumme Idee, das ist nicht was wir wollen, kann ich das auch verstehen
Gruß
Andreas
Und so zerbröselt der Kex nun mal ...
(frei nach Bruce Allmächtig)
(frei nach Bruce Allmächtig)
-
Christian Barz
- Beiträge: 198
- Registriert: Mi Mai 31, 2006 2:27 pm
Nun ja, das geht schon wieder in die Richtung Beamen über Netzwerk, das wäre ja mein Traum zwei Songbeamer koppeln (Client / Server). Damit ließen sich einige aktuelle Themen im Forum elegant lösen. Angefangen wenn ein Redner seine Powerpoint Präsentation vom Rednerpult aus steuern möchte, über den Schutz vor parallelem Zugriff bis hin zu wer weis nicht was. Mehr kann man in alten Beiträgen lesen wie hier