[Plugin] CentralizedDatabase

Discussion in 'Plugins & Erweiterungen' started by popy, February 8, 2015.

  1. popy
    • Super User

    popy Super User

    Joined:
    July 3, 2011
    Messages:
    616
    Likes Received:
    83
    Ratings:
    +141 / 2
    Show System Specs
    Mal was Wichtiges ganz zu Beginn!! Danke @antihero05 für die Idee und denn Plugin WatchedSyncronizer.
    Der WatchedSyncronizer ist mit dem Release von CentralizedDatabase veraltet und wird nicht mehr weiterentwickelt. Ich habe Ihn natürlich gefragt und er hat zugestimmt. Die ganze Geschichte hier .





    Beschreibung des Plugins:

    CentralizedDatabase ist ein "window" Plugin das verschieden Informationen über mehrere Clients verteilt. Wie der Name schon sagt, liegt die Hauptaufgabe des Plugins darin, den Gehsehen-Status, die letzte Stoppzeit sowie Verzeichnisse wie thumbs und Datenbanken Ihrer Medien auf mehreren Clients zu synchronisieren.

    Das Plugin wurde für "multiseat" Setups erstellt wo es einen Zentralen Speicher gibt (Server, NAS...) und mehrere Clients. Es wird empfohlen das Plugin so zu konfigurieren dass die Master Datenbank mit jedem Client synchronisiert wird. Wenn Sie einen Film oder eine Serie am Client schauen wird der Gehsehen Status und die letzte Stoppzeit wieder in die Master Datenbank geschrieben, und ist für andere Clients verfügbar. Es gibt auch ein Feature "Kopieren beim Starten" welches Datenbanken und Ordner (wie Vorschaubilder -> Thumbs...) beim starten des Clients vom Server zum Client kopiert. Sobald Sie also einen Client starten sind alle ihrer Datenbanken und Ordner synchron.

    Zusammenfassend ist es egal auf welchem Client Sie ein Medium anschauen, der Status wird immer zwischen den Datenbanken synchronisiert. Sie behalten die Übersicht über was Sie bereits gesehen haben und haben einen zentralen Platz (Server) wo Sie Filme und Serien hinzufügen können.

    Derzeit unterstütze Objekte für die Synchronisation:
    • MPVideo Datenbank
    • MPTVSeries Datenbank
    • MovingPictures Datenbank
    • Ordner
    • Ordner mit Löschungen (im Ziel wenn nicht in der Quelle vorhanden -> Spiegelung) -> empfohlen für Vorschaubilder (Thumbs)
    Wie funktioniert es:
    CentralizedDatabase arbeitet ein bisschen anders als vergleichbare Lösungen.
    Es kopiert jede/n Konfigurierte/n Datenbank/Ordner (wie Vorschaubilder) beim starten vom Server (zentraler Speicherplatz) zum Client. Wenn ein Benutzer nun einen Film/Serie ansieht, hört es auf folgende Ereignisse::
    • Benutzer stoppt die Wiedergabe
    • Das aktuelle Medium wird zu ende gesehen
    • Benutzer markiert ein Medium als gesehen/nicht gesehen
    Wenn das Plugin nun solch ein Ereignis empfängt, schreibt es die Informationen (Stoppzeit, Gesehen Status...) zurück in die Zentrale Server Datenbank. Die Verzögerung dabei ist <1 Sekunde.
    Sie können somit ein Medium auf Client 1 stoppen, Client 2 starten und dort weiterschauen wo Sie aufgehört haben.

    Ein weiterer vorteil ist dass Sie einen zentralen Platz haben wo Sie ihre Film/Serien Datenbanken pflegen können. Die neuen Daten werden dann beim start eines Clients abgeholt.

    Hier eine kleine Grafik die veranschaulichen soll wie es funktioniert. :p :

    de_how_it_works.png

    Konfiguration:

    Die Konfiguration ist sehr einfach. Wählen Sie den Synchronisation Typ aus (Datenbank oder Ordner) und wählen Sie die entsprechende Datei bzw. die Ordner aus (UNC Verzeichnisse werden natürlich unterstützt, auch Netzlaufwerke sind möglich). Wenn Sie "SyncFolder" als Typ auswählen, müssen Sie zusätzlich noch einen Lokalen Ziel Ordner angeben. Derzeit wird nicht geprüft ob die gewählte Datenbank Datei auch dem gewählten Sync-Typ entspricht -> Bei falsch Konfigurationen können Unbehandelte Ausnahmen auftreten. Eine Prüfung wird vll. in kommenden Versionen implementiert.

    Beispiel Konfiguration eines Clients:
    2557.png

    Download and Source:

    Download

    Source
     
    • Thank You! Thank You! x 2
    • Like Like x 1
  2. Google AdSense Guest Advertisement



    to hide all adverts.
  3. RicoHTPC
    • Super User

    RicoHTPC Super User

    Joined:
    February 4, 2011
    Messages:
    1,441
    Likes Received:
    97
    Location:
    Cuxhaven
    Ratings:
    +178 / 6
    Home Country:
    Germany Germany
    Show System Specs
    Hallo @popy und danke für deine Mühe.
    Die Idee einer zentralisierten Datenbank finde ich sehr gut und macht ein Multiseat-Setup ja eigentlich erst so richtig
    sinnvoll. In der Vergangenheit habe ich deswegen auch schon mehrfach versucht, eine zentrale Datenbank aufzubauen.
    Richtig fehlerfrei lief dies allerdings selbst mit diesem Plugin hier: https://forum.team-mediaportal.com/...ediaportal-multi-seat-synchronization.117417/ nicht.
    In Bezug auf mpsync - worin genau unterscheidet sich dein Plugin?

    Gruß,

    Rico
     
  4. schwarzrz

    schwarzrz Portal Pro

    Joined:
    May 23, 2010
    Messages:
    370
    Likes Received:
    28
    Gender:
    Male
    Location:
    Frankfurt
    Ratings:
    +57 / 1
    Home Country:
    Germany Germany
    Show System Specs
    Eine Verständnisfrage: Wenn die Datenbanken auf dem Server gepflegt werden, muss dann das Config Programm von TV Serien / Moving Pictures auf dem Server laufen um neue Filme /Serien hinzuzufügen oder stelle ich den Datenpfad der beiden Programme beider Instalation auf den Server (geht das?). Macht ja keine Sinn, wenn diese DB dabb synchronisiert werden. Ich denke ich habe hier etwas falsch verstanden?!

    Gruß

    Schwarzrz
     
  5. popy
    • Super User

    popy Super User

    Joined:
    July 3, 2011
    Messages:
    616
    Likes Received:
    83
    Ratings:
    +141 / 2
    Show System Specs
    Hey Rico.

    Genau aus diesem Grund hat @antihero05 den WatchedSyncronizer entwickelt.
    Der am Anfang "nur" den WatchedState eines Mediums zurück in die Server DB geschrieben hat.
    Ich spielte schon länger mit dem Gedanken mich mit der Thematik "Zentrale Datenbank" zu beschäftigen da Lösungen wie MPSync, Trakt ... nicht sehr zuverlässig funktionierten. Bei MPSync war nach einiger Zeit immer meine Datenbank defekt und Trakt -> die ganzen Feature brauche ich nicht, ich will auch nicht dass meine Library und anderes in der Cloud gespeichert wird.
    Nicht falsch verstehen die Entwickler dieser Plugin tun auch ALLES!!! das der Plugin rund läuft und für alles Setups funktioniert, aber für mich war es nie das Richtige. Da @antihero05 derzeit nicht so viel Zeit hat den Plugin weiterzuentwickeln habe ich mich darum angenommen und Features hinzugefügt.
    Ohne @antihero05 hätte ich wahrscheinlich NIE damit begonnen, DANKE NOCHMALS.

    Bzgl. Deiner Frage:

    MPSync versucht mittels SQLite Triggers in der Datenbank die KOMPLETTE Datenbank zu synchronisieren.
    Was bei mir auf längere Sicht immer zu defekten DBs führte.

    CentralizedDatabase mach das anders:
    Es kopiert die entsprechenden Datenbanken (movingpictures.db3...) & Ordner wie Thumbs beim Start von MP (noch vor dem laden der einzelnen plugins) lokal auf den client. MP startet und hat sofort die neuesten Daten! So lässt sich am Server was hinzufügen und jeder Client hat nach dem boot die neuesten Daten.

    Der zweite Teil sind die Gesehen Markierungen und die letzte Stoppzeit. Wird am Client so ein "Event" empfangen wird es "on the Fly" (<1 Sekunden) zurück in die Server Datenbank geschrieben. Somit sind diese Änderungen beim nächsten Start eines Clients wieder verfügbar (sofern auch CentralizedDatabase) installiert ist. Es wird sonst NICHTS an der Server Datenbank verändert.


    Genau so ist es bei mir. Ich habe einen WHS2011 wo die Daten liegen und auch eine MP Installation inkl. TV Server läuft. Auch sind die entsprechenden Plugins (Movpic, MPTVSeries ...) und Config Tools drauf. Wenn ich jetzt in den Tools am Server eine Serie hinzufüge kopiert CentralizedDatabase diese aktualisierte DB + Thumbs vom Server zum Client.

    Ein NAS (kein Windows wo die Tools der plugins laufen) als Zentralen Speicherplatz ist sicher ein Szenario dass noch nicht angedacht wurde.
    Habe dazu weas gefunden: http://wiki.team-mediaportal.com/1_MEDIAPORTAL_1/20_Reference/Databases/Central_Database.
    Du müsstest am "Master-HTPC" den Database Path & den Thumbs Path umstellen auf den UNC Pfad bzw. das Netzlaufwerk.
    Wenn du jetzt was in den Tools am master HTPC hinzufügst wird die Datenbank nicht mehr lokal sondern am Server gespeichert.
    WICHTIG, bei anderen Clients dann NICHT die gleichen Pfad einstellen sondern lokal belassen (standard).
    Statdessen nimmst du bei den anderen Client meinen Plugin.
    So sollte es gehen, habe ich aber selbst nicht probiert.

    pOpY
     
    • Thank You! Thank You! x 1
  6. BPOH_Voodoo

    BPOH_Voodoo Portal Pro

    Joined:
    May 27, 2013
    Messages:
    117
    Likes Received:
    37
    Gender:
    Male
    Ratings:
    +59 / 0
    Home Country:
    Germany Germany
    Show System Specs
  7. RicoHTPC
    • Super User

    RicoHTPC Super User

    Joined:
    February 4, 2011
    Messages:
    1,441
    Likes Received:
    97
    Location:
    Cuxhaven
    Ratings:
    +178 / 6
    Home Country:
    Germany Germany
    Show System Specs
    • Thank You! Thank You! x 1
  8. popy
    • Super User

    popy Super User

    Joined:
    July 3, 2011
    Messages:
    616
    Likes Received:
    83
    Ratings:
    +141 / 2
    Show System Specs
    So ist es, auf kurz oder lang, wenn 2 Clients gleichzeitig Daten in die DB schreiben wird die DB Crashen!
    Ich finde es toll dass jetzt endlich mal Bewegung in das ganze Thema kommt ;)
    Ich meine den von Dir verlinkten Thread.
    Mir ist klar dass dies eine "Workaround" Lösung ist, aber es ist dass was mit in MP1 noch fehlt.

    @All: hat jemand von euch vor das Plugin zu testen?

    thx
    pOpY
     
  9. popy
    • Super User

    popy Super User

    Joined:
    July 3, 2011
    Messages:
    616
    Likes Received:
    83
    Ratings:
    +141 / 2
    Show System Specs
    Neue Version 0.6.0.4 ist freigegeben, Änderungen:
    • 0.6.0.4: Fehler behoben -> Es wurden keine Synchronisation durchgeführt wenn ein Medium zu Ende gesehen wurde.
    pOpY
     
  10. mrbonsen
    • Super User

    mrbonsen Super User

    Joined:
    December 6, 2008
    Messages:
    6,424
    Likes Received:
    472
    Gender:
    Male
    Location:
    Brensbach (HE) ehemals Görlitz
    Ratings:
    +853 / 11
    Home Country:
    Germany Germany
    Show System Specs
    ich habe absolut keine ahnung bzgl. netzwerke oder ähnliches.
    kumpel brauch aber meine hilfe . . . :(
    htpc mit tv als server.
    surface mit mp als client.
    habe plugin mal auf beiden installiert und config geöffnet.
    erste drop/down feld zuordnung der db vom server - dahinter das dropdownfeld lässt sich nicht öffnen. (n)
    was mach ich falsch ?

    EDIT:
    erledigt, ich depp ;)
     
    Last edited: February 25, 2016
  11. popy
    • Super User

    popy Super User

    Joined:
    July 3, 2011
    Messages:
    616
    Likes Received:
    83
    Ratings:
    +141 / 2
    Show System Specs
    Hallo.

    Es muss kein destination folder (Ziel Ordner) ausgewählt werden.
    CentralizedDatabase weiß wo auf dem lokalen PC die Datenbanken liegen.
    Ein destination folder (Ziel Ordner) muss nur ausgewählt werden wenn "Folder Sync" als Typ ausgewählt wurde (z.B.: für tv thumbs usw. oder jegliche andere Daten)

    Wenn du einen Master PC der gleichzeitig der TVServer ist hast dann brauchst du das Plugin dort nicht!
    Nur am zweiten/Client wird das Plugin benötigt.
    Der "Sync Source" ist dann immer die am Master/Server freigegeben Datenbanken.
    Destination wird nicht benötigt -> das Plugin weiß wo die Datenbanken lokal liegen.

    Anders ist es bei folgendem Setup.

    TVServer -> MP client wird nie gestartet sondern ist nur installiert zum verwalten von MPTVseries usw. Plugin wird hier nicht benötigt
    Client 1 -> Plugin muss installiert und konfiguriert sein
    Client 2 -> Plugin muss installiert und konfiguriert sein
    ...
    Hierzu ist die Grafik oben gedacht (dass ist auch mein Setup gewesen zum Zeitpunkt wo ich das Plugin geschrieben habe).

    Die Funktionsweise bei einem Client mit installiertem Plugin ist immer:
    Nach dem einschalten des Client holt sich dieser immer die kompletten Datenbanken vom Master PC / Server.
    Wenn ein Film/Serie... am Client geschaut wird und die Wiedergabe stoppt, das Watched Flag und die Stopp Zeit wird zurückgeschrieben in die Db am Master PC / Server.

    Somit wird "Centralized Database" nicht am Master PC / Server benötigt.

    Hoffe es ist nun einigermaßen Verständlich :)

    cu
    pOpY
     
Loading...

Users Viewing Thread (Users: 0, Guests: 0)

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
  • About The Project

    The vision of the MediaPortal project is to create a free open source media centre application, which supports all advanced media centre functions, and is accessible to all Windows users.

    In reaching this goal we are working every day to make sure our software is one of the best.

             

  • Support MediaPortal!

    The team works very hard to make sure the community is running the best HTPC-software. We give away MediaPortal for free but hosting and software is not for us.

    Care to support our work with a few bucks? We'd really appreciate it!