inotify & upnp-plugin

  • Ich versuche gerade eine Verbesserung des Indizierungsprozesses für das UPnP-Plugin zu konzipieren und bin dabei über inotify gestoßen, was als Kernel-Funktion ab .13 verfügbar sein soll, also ohne Probleme nutzbar ist.


    Im bisherigen Plugin wird zu Beginn des Serverstarts der gesamte Folderkram eingelesen und in die DB als Referenz geschrieben. Das ist extrem inperformant, weil er das auch noch in regelmäßigen abständen wiederholt. Wenn Dateien gelöscht werden, verschwinden sie nicht aus der DB und manuelle Änderungen an den Dateien werden erst recht nicht wahrgenommen. Alles Mist also :unsch ...


    Ich habe mir das nun so vorgestellt:


    Der Server wird unverändert zu Beginn eine Indizierung durchführen. Dabei sollen - wenn möglich - alle Dateien gefunden werden, damit die Datenbank erst einmal aufgebaut ist. Leider kann das sehr lange dauern, daher soll das nun im Hintergrund passieren und bestenfalls über ein Schema erfolgen. Zum Beispiel zuerst LiveTV und dann Aufnahmen oder andersherum. Die Indizierungsoptionen sollen im Setup einstellbar sein.


    Zweite Änderung an der Indizierung: Bisher habe ich mir mühsam die Aufnahmen vom VDR geholt und ausgewertet. Das funktioniert soweit ganz gut, wenn man sich durch ständiges pollen beim VDR Änderungen mitteilen lässt. Das funktioniert auch nur bedingt, nämlich nur mit Aufnahmen. Sobald andere Dateien angeboten werden sollen, hängts. Hier möchte ich ein Indizierungswerkzeug nutzen, was mir dynamisch Änderungen anzeigt.


    Hier kommt jetzt inotify ins Spiel: Ich liebe Hollywood. Das Plugin soll nicht mehr selbst im Dateisystem suchen sondern diese Sachen dem Kernel überlassen. Jetzt seh ich aber ein grundlegendes Problem: Wie verhalte ich mich zwischen Stop und Start des Servers. Der Server wird gestoppt und anschließend Videodateien in das Videoverzeichnis gelegt. Der Server bekommt die Änderung nicht mit, weil er ja nicht läuft.


    Gibt es eine Möglichkeit, auch Änderungen ohne laufenden Server mitzubekommen? Angenommen ich lösche oder ändere eine Datei in einem überwachten Verzeichnisbaum, wird auch das MODIFY-Datum nach unten durchgereicht oder muss ich den ganzen Pfad prüfen?


    Während des Betriebs scheint inotify eine sehr gute Sache zu sein, um keine Updatezyklen mehr fahren zu müssen.


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Hört sich nach großer belastung im hintergrund an, aber grundsätzlich könnte ja ein inotify als dienst aufgesetzt werden, sowas wie (nur ein Beispiel)

    Code
    inotifywait -r /tmp -m -c -q -e CLOSE_WRITE -e DELETE >>$MODIFYSPOOL


    das tracken der änderungen wird so vom plugin entkoppelt und sollte während der gesamten uptime der maschine, nicht des servers laufen.
    lediglich ein initial-sync muss erfolgen

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!