Skip to content

🔔 NotifySync v5.7.8.0

Latest

Choose a tag to compare

@ElieMFR ElieMFR released this 20 Jun 23:29
· 1 commit to main since this release

A scalability fix for multi-user servers: marking something watched no longer makes every other user's bell recompute. No visible change on small servers.

Un correctif de scalabilité pour serveurs multi-utilisateurs : marquer un contenu comme vu ne force plus le recalcul de la cloche de tous les autres utilisateurs. Aucun changement visible sur les petits serveurs.


🇬🇧 English

⚡ Performance

  • Per-user cache invalidation — When a user marked an item as watched (or favorited it), the plugin invalidated every user's cached bell view, forcing a server-wide recompute on each play event. That work scaled with your user count and was pure waste — a played/favorite change only affects the person who made it. It now invalidates just that user's view. Real library changes (a new item added/removed) still refresh everyone, as they should.

On a small server (a handful of users) you won't notice a thing. On a busy multi-user server (tens to hundreds of users), this removes the bulk of the redundant recompute load.

🛠️ Under the hood
  • OnUserDataSaved now bumps the affected user's per-user state version instead of the global version counter; the global counter is reserved for library add/remove/update events that genuinely affect every user's notifications.
  • No DB schema changes, no API contract changes, no client changes.

🇫🇷 Français

⚡ Performance

  • Invalidation de cache par utilisateur — Quand un utilisateur marquait un contenu comme vu (ou le mettait en favori), le plugin invalidait la vue en cache de la cloche de tous les utilisateurs, forçant un recalcul à l'échelle du serveur à chaque évènement « vu ». Ce travail augmentait avec le nombre d'utilisateurs et était du pur gaspillage — un changement « vu »/favori ne concerne que la personne qui l'a fait. Il n'invalide désormais que la vue de cet utilisateur. Les vrais changements de bibliothèque (un ajout/suppression) rafraîchissent toujours tout le monde, comme il se doit.

Sur un petit serveur (quelques utilisateurs), vous ne remarquerez rien. Sur un serveur multi-utilisateurs chargé (dizaines à centaines d'utilisateurs), cela retire l'essentiel de la charge de recalcul redondante.

🛠️ Sous le capot
  • OnUserDataSaved incrémente maintenant la version d'état de l'utilisateur concerné au lieu du compteur de version global ; le compteur global est réservé aux évènements d'ajout/suppression/maj de bibliothèque qui concernent réellement les notifications de tous.
  • Aucun changement de schéma DB, aucun changement de contrat API, aucun changement côté client.

📦 Upgrading / Mise à jour

Auto-updates from the stable channel on your next Jellyfin restart. Nothing to reconfigure.

Mise à jour auto depuis le canal stable au prochain redémarrage Jellyfin. Rien à reconfigurer.