Files vor parallelem Zugriff schützen

Hier könnt ihr Wünsche und Ideen posten
Antworten
corbin
Beiträge: 14
Registriert: Mi Jul 16, 2008 12:14 am

Files vor parallelem Zugriff schützen

Beitrag von corbin »

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!
LG
Corbin
elo22
Beiträge: 783
Registriert: So Mai 14, 2006 3:35 pm
Kontaktdaten:

Re: Files vor parallelem Zugriff schützen

Beitrag von elo22 »

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.
Was ist das für ein Server? Bei machen SOS kann man Dateiattribute setzen.

Lutz
kex
Beiträge: 155
Registriert: Mo Mai 19, 2008 11:00 am
Wohnort: Heidenheim a. d. Brenz
Kontaktdaten:

Beitrag von kex »

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
Und so zerbröselt der Kex nun mal ...
(frei nach Bruce Allmächtig)
Sebastian
SongBeamer Team
Beiträge: 6379
Registriert: Fr Nov 14, 2003 11:31 pm

Re: Files vor parallelem Zugriff schützen

Beitrag von Sebastian »

corbin hat geschrieben:Mein Vorschlag ist nun, dass der erste Benutzer, der in den "Song bearbeiten"-Dialog kommt, ein Lock-File anlegt.
Und was ist, wenn die Verbindung abbricht?
Gruß, Sebastian
corbin
Beiträge: 14
Registriert: Mi Jul 16, 2008 12:14 am

Re: Files vor parallelem Zugriff schützen

Beitrag von corbin »

Sorry Leute, dass ich mich nicht gleich gemeldet habe, komm aber grad jetzt erst wieder ins Forum:
Sebastian hat geschrieben:
corbin hat geschrieben:Mein Vorschlag ist nun, dass der erste Benutzer, der in den "Song bearbeiten"-Dialog kommt, ein Lock-File anlegt.
Und was ist, wenn die Verbindung abbricht?
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 überbewerten ;)) 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!
LG
Corbin
Sebastian
SongBeamer Team
Beiträge: 6379
Registriert: Fr Nov 14, 2003 11:31 pm

Beitrag von Sebastian »

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.
Gruß, Sebastian
elo22
Beiträge: 783
Registriert: So Mai 14, 2006 3:35 pm
Kontaktdaten:

Beitrag von elo22 »

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.
Vielleicht sollten wir die Diskussion hierher verlagern:
http://forum.songbeamer.de/viewtopic.ph ... highlight=

Lutz
Christian Barz
Beiträge: 198
Registriert: Mi Mai 31, 2006 2:27 pm

Beitrag von Christian Barz »

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.
Sebastian
SongBeamer Team
Beiträge: 6379
Registriert: Fr Nov 14, 2003 11:31 pm

Beitrag von Sebastian »

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.
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.

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
Gabriel
Beiträge: 497
Registriert: So Sep 03, 2006 6:47 pm
Wohnort: Göteborg
Kontaktdaten:

Beitrag von Gabriel »

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".
BenjaminB
Beiträge: 7
Registriert: Mi Feb 04, 2009 11:37 am

Beitrag von BenjaminB »

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
kex
Beiträge: 155
Registriert: Mo Mai 19, 2008 11:00 am
Wohnort: Heidenheim a. d. Brenz
Kontaktdaten:

VNC

Beitrag von kex »

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
Und so zerbröselt der Kex nun mal ...
(frei nach Bruce Allmächtig)
Christian Barz
Beiträge: 198
Registriert: Mi Mai 31, 2006 2:27 pm

Beitrag von Christian Barz »

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
Antworten