This release introduces a massive performance overhaul to the Jellyfin and Emby plugins, reducing scheduled asset sync runtimes from 30+ minutes down to seconds while eliminating network and disk bottlenecks.
Jelly/Emby Plugin Changes:
- Persistent State Caching: Added
posterizarr_sync_cache.jsonin the plugin data directory to track file sizes, timestamps, and image metadata. Unchanged assets are skipped instantly in memory with zero network I/O. - Directory & File Caching: Added
AssetPathResolverto cache root library shares and folder file listings. Reduces tens of thousands of remote SMB/NFS round-trips to a single query per media folder. - Parallel Async Sync Task: Upgraded
PosterizarrSyncTaskto useParallel.ForEachAsyncwith adaptive concurrency, replacing single-threaded sequential processing. - Tiered Image Verification: Added 4KB header and file-length pre-checks to eliminate continuous ~30 MB/s full-file MD5 hash calculations across the network.
- Debug Mode Toggle: Debug messages (
[Posterizarr DEBUG]) are now directly controlled by the plugin'sEnableDebugModesetting and visible in the Jellyfin log viewer without changing server logging configurations. - Emby Optimization: Added same-path timestamp comparison to prevent double-hashing identical local files in Emby.
- Performance Benchmark: Successfully verified on a 39,000-item library, reducing task runtime from 32m 51s to 13 seconds (~151x faster) with near-zero network and disk utilization.
What's Changed
- Update contribution and issue templates. by @fscorrupt in #655
- Posterizarr Plugin Performance Overhaul (~150x Faster) by @fscorrupt in #657
Full Changelog: 3.3.2...3.3.3