Jellyfin riconcilia la maggior parte delle modifiche tra dispositivi tramite un server centrale, che rileva gli aggiornamenti della libreria, registra lo stato condiviso e fornisce ai client la visualizzazione risultante.
Di norma, telefono, televisore, browser e tablet non negoziano direttamente tra loro lo stato corretto della libreria multimediale. Comunicano con lo stesso server Jellyfin, che gestisce i metadati indicizzati della libreria e lo stato specifico di ciascun utente, come l’avanzamento della visione. Il rilevamento nel filesystem, gli aggiornamenti della riproduzione e gli aggiornamenti dei client sono fasi separate che convergono su un’unica autorità lato server; per questo i dispositivi generalmente si allineano dopo che il server accetta la modifica e ogni client si aggiorna.
Il server è l’autorità condivisa, non i singoli client
I client visualizzano le librerie e inviano le azioni degli utenti, ma il catalogo condiviso persistente risiede sul server. Questa architettura consente a un televisore e a un telefono di vedere lo stesso elemento senza copiare l’intero database tra i dispositivi. Ogni client può memorizzare nella cache lo stato di presentazione, ma il record autorevole per l’appartenenza alla libreria e l’avanzamento dell’utente rimane centralizzato.
Normalmente un media server è l’autorità per ciò che è effettivamente disponibile e per ciò che è stato riprodotto dai suoi utenti locali. Un utile modello della fonte di verità considera il media server per la riproduzione distinto dai sistemi portatili di tracciamento. La stessa logica spiega il funzionamento dei client Jellyfin: convergono sullo stato del server invece di scegliere un vincitore tra dispositivi peer.
Questo modello semplifica la gestione dei conflitti perché esiste un unico luogo in cui le modifiche accettate diventano persistenti. Un client può mostrare temporaneamente dati obsoleti nella cache, ma non diventa un secondo database equivalente solo perché non si è ancora aggiornato. Riconciliare significa riportare la visualizzazione del client allo stato accettato dal server.
Le modifiche al filesystem diventano stato della libreria tramite il rilevamento lato server
L’aggiunta, la sostituzione, la ridenominazione o la rimozione di un file multimediale modifica inizialmente lo spazio di archiviazione, non il catalogo Jellyfin. Il server deve rilevare l’evento del filesystem tramite una scansione, un trigger di monitoraggio o un segnale di automazione, analizzare il percorso interessato e aggiornare la propria rappresentazione indicizzata. Solo dopo questa registrazione i client possono ricevere la nuova visualizzazione della libreria.
Gli strumenti di automazione mirata, come gli aggiornamenti mirati della libreria, esistono perché il rilevamento può essere attivato in modo più preciso, senza attendere una scansione programmata generale. Il principio architetturale non cambia: un evento del file diventa un aggiornamento della libreria lato server prima di diventare una modifica dell’interfaccia su più dispositivi.
Durante la finestra di rilevamento, questo separa lo stato dello spazio di archiviazione da quello del catalogo. Un file può esistere sul disco mentre i client non lo vedono ancora, oppure un elemento indicizzato può rimanere visibile brevemente finché la rimozione non viene elaborata. Misurare il tempo che intercorre tra la modifica del filesystem e l’aggiornamento dell’indice del server è quindi diverso dal misurare la rapidità con cui un client si aggiorna dopo che il server ha già registrato la modifica.
L’avanzamento della riproduzione torna nello stesso stato utente lato server
L’avanzamento della visione segue un percorso di input diverso dal rilevamento del filesystem. Il file multimediale non cambia quando lo spettatore raggiunge il minuto quaranta; il client segnala lo stato della riproduzione associato all’utente autenticato e il server registra l’aggiornamento specifico per quell’utente. Un altro dispositivo connesso allo stesso account può quindi interrogare lo stato condiviso del server e riprendere dalla posizione accettata.
Per questo Jellyfin può sincronizzare la cronologia della visione tra dispositivi sui diversi client senza copiare direttamente un file locale dell’avanzamento tra televisore e telefono. I due dispositivi convergono perché leggono e scrivono nello stesso record utente sul server, non perché eseguono una riconciliazione peer-to-peer.
Il confine osservabile è rappresentato dai tempi di scrittura. Se un dispositivo si scollega prima che l’aggiornamento dell’avanzamento raggiunga il server, un altro dispositivo può mostrare legittimamente il valore precedente memorizzato sul server. Quando la connessione viene ripristinata, il risultato finale dipende dall’aggiornamento accettato dall’applicazione e dall’ordine in cui viene ricevuto. L’avanzamento locale offline non deve essere scambiato per uno stato condiviso già registrato.
I client si riconciliano aggiornandosi dal server, non unendosi tra loro
Dopo che il server ha registrato una modifica, i client hanno comunque bisogno di un aggiornamento, di un evento, di un’azione di navigazione o di una richiesta successiva che recuperi il nuovo stato. Un televisore può mantenere in memoria una griglia di locandine obsoleta mentre un browser mostra già l’aggiornamento. Questa divergenza temporanea è un problema della cache di presentazione, a meno che il server stesso non contenga record in conflitto.
La varietà dei client rende evidente questa distinzione, perché client Jellyfin diversi possono presentare lo stesso server con interfacce e comportamenti di riproduzione differenti. Se un client appare obsoleto mentre un altro è aggiornato, verifica prima lo stato del server, poi aggiorna o riconnetti il client non allineato prima di interpretare la discrepanza come un conflitto del database.
Questa distinzione è importante durante il debug. Se due client non concordano, interroga o ispeziona prima lo stato del server. Se il server contiene il valore previsto e solo un client è obsoleto, il problema è probabilmente legato all’aggiornamento o alla cache. Se invece il server non contiene l’aggiornamento, analizza il rilevamento, i permessi o l’evento di scrittura prima di attribuire la colpa al secondo client.
Limite di errore: server separati non riconciliano automaticamente i propri database
Il modello dell’autorità centrale si applica all’interno di una singola istanza del server Jellyfin. Se una famiglia gestisce due server indipendenti, ciascuno può accumulare i propri utenti, stati di visione, modifiche ai metadati e variazioni del database della libreria. Non si deve presumere che questi database si rilevino e si uniscano in modo sicuro solo perché puntano a file multimediali simili.
Gli strumenti tra server, come la sincronizzazione esplicita dello stato di visione, esistono proprio perché i media server indipendenti hanno bisogno di un meccanismo di riconciliazione esplicito per l’avanzamento condiviso. Questo strumento può sincronizzare un insieme definito di dati; non trasforma due database Jellyfin completi in un cluster multi-master trasparente.
Lo stesso limite vale per i dispositivi offline. Un client può conservare una visualizzazione locale obsoleta, ma non deve essere considerato un database autorevole da unire manualmente a Jellyfin. Quando vengono introdotti più scrittori o più server, occorre definire quale stato sia autorevole, quali campi vengano sincronizzati e come vengano risolti gli aggiornamenti in conflitto prima di definire il sistema “riconciliato”.
Esegui un test di riconciliazione in quattro passaggi su due dispositivi
Usa due client connessi allo stesso utente di test e un elemento multimediale noto. Per prima cosa aggiungi o rinomina un file di test e misura il tempo impiegato dal server per rilevarlo. Poi verifica che entrambi i client ricevano il nuovo stato del catalogo dopo l’aggiornamento. Successivamente modifica l’avanzamento della visione sul client A e verifica che il client B riceva il valore accettato dal server. Infine riavvia il server e verifica che lo stato registrato rimanga invariato.
La spiegazione interna della coerenza dello stato concorrente offre il limite complementare del database: le scritture accettate richiedono regole di transazione e di ordinamento affinché le attività sovrapposte non espongano aggiornamenti incompleti. Il test tra dispositivi aggiunge a questa garanzia dello stato persistente i tempi di rilevamento e aggiornamento dei client.
Considera il test superato solo quando il server diventa la stessa autorità osservabile dopo ogni passaggio: le modifiche allo spazio di archiviazione vengono indicizzate una sola volta, entrambi i client convergono sullo stesso risultato della libreria, l’avanzamento dell’utente non viene duplicato né perso e il riavvio non annulla un aggiornamento registrato. Se rimane una discrepanza, individua se l’interruzione è avvenuta durante il rilevamento, la registrazione sul server, l’aggiornamento del client o al confine tra server separati.
Domande frequenti
I client Jellyfin si sincronizzano direttamente tra loro?
Normalmente no. Telefono, televisore, browser e tablet convergono tramite il server Jellyfin: i client inviano gli aggiornamenti al server e in seguito leggono lo stato del server. Considerare i client come repliche peer fa sembrare conflitti reali dei semplici ritardi di aggiornamento.
Perché un client Jellyfin può mostrare dati obsoleti della libreria?
Il server potrebbe aver già registrato una modifica della libreria o della riproduzione mentre un client continua a mostrare una visualizzazione memorizzata nella cache. Conferma lo stato lato server da un altro client o dall’interfaccia web, poi aggiorna o riconnetti il client non allineato prima di indagare su problemi di rilevamento o del database.
Due server Jellyfin separati possono sincronizzare automaticamente l’avanzamento della visione?
I server Jellyfin separati non formano automaticamente un sistema di stato multi-master. Se lo stesso utente deve trasferire la cronologia della visione tra server indipendenti, utilizza un flusso di sincronizzazione esplicito con una fonte di verità definita e verifica il comportamento in caso di conflitto prima di farvi affidamento.
Hub Tecnologico e AI
Altro da leggere

In che modo la frequenza dei backup influisce sulla qualità del punto di ripristino di Jellyfin?
Intervalli di backup più brevi possono ridurre la perdita dello stato di Jellyfin, ma la qualità del punto di ripristino dipende anche da un’acquisizione...

Qual è un limite sicuro per l’aggiornamento di Jellyfin e perché è importante?
Gli aggiornamenti sicuri di Jellyfin mantengono runtime e stato persistente associati in modo ripristinabile, perché il ripristino di un’immagine non annulla le modifiche a...

Cosa fa sì che Jellyfin conservi più dati temporanei del previsto?
I dati temporanei di Jellyfin hanno proprietari e cicli di vita diversi; diagnostica la conservazione in base al creatore, al valore di riutilizzo e...

