Commit Graph
65 Commits
Author SHA1 Message Date
euzu 6f776782f1 Playlist Update Optimization: Reduced Memory Usage
An optimization has been introduced to reduce memory consumption during playlist updates.

Overview
Previously, provider playlists were fully loaded into memory during the update process. For large playlists (e.g. hundreds of thousands of entries or multiple providers), this could result in significant RAM usage.
With the new implementation, it is now possible to optionally read provider playlists directly from disk instead of keeping them entirely in memory.

How It Works
 - users can configure whether:
     - Provider playlists are loaded into memory (previous behavior), or
     - Provider playlists are streamed to/from disk to minimize RAM usage.

Processing remains sequential and batch-based, ensuring identical functional behavior.
This approach significantly lowers peak memory usage, especially on systems with limited resources.

Benefits

- Reduced peak RAM consumption during playlist updates
- Better scalability for large playlists and multiple providers
- Full backward compatibility

Trade-offs / Drawbacks

 - Increased processing time due to reduced in-memory caching
 - Higher disk I/O usage, especially for large or fragmented playlists
 - Performance depends more strongly on disk speed (Nvme SSD, HDD)
 - Slightly increased CPU overhead due to repeated parsing and deserialization
 - Not optimal for environments where fast updates are more important than memory usage

Recommendation

 - Use in-memory mode for systems with sufficient RAM and a focus on update speed
 - Use disk-based mode for large playlists, multiple providers, or memory-constrained environments
2026-01-08 15:54:12 +01:00
euzu 8cc9283a31 Playlist Update Optimization: Reduced Memory Usage
An optimization has been introduced to reduce memory consumption during playlist updates.

Overview
Previously, provider playlists were fully loaded into memory during the update process. For large playlists (e.g. hundreds of thousands of entries or multiple providers), this could result in significant RAM usage.
With the new implementation, it is now possible to optionally read provider playlists directly from disk instead of keeping them entirely in memory.

How It Works
 - users can configure whether:
     - Provider playlists are loaded into memory (previous behavior), or
     - Provider playlists are streamed to/from disk to minimize RAM usage.

Processing remains sequential and batch-based, ensuring identical functional behavior.
This approach significantly lowers peak memory usage, especially on systems with limited resources.

Benefits

- Reduced peak RAM consumption during playlist updates
- Better scalability for large playlists and multiple providers
- Full backward compatibility

Trade-offs / Drawbacks

 - Increased processing time due to reduced in-memory caching
 - Higher disk I/O usage, especially for large or fragmented playlists
 - Performance depends more strongly on disk speed (Nvme SSD, HDD)
 - Slightly increased CPU overhead due to repeated parsing and deserialization
 - Not optimal for environments where fast updates are more important than memory usage

Recommendation

 - Use in-memory mode for systems with sufficient RAM and a focus on update speed
 - Use disk-based mode for large playlists, multiple providers, or memory-constrained environments
2026-01-08 15:11:12 +01:00
euzu 5bb32ebc72 Fixed category creation during xtream playlist save 2026-01-04 14:55:19 +01:00
euzu 538f6680da Added discord notifications 2026-01-03 20:58:28 +01:00
euzu eb087825d5 Inputs in source.yml 2026-01-03 18:06:25 +01:00
euzu df2a4e4a72 - Fix for telegram send error
- Fix for series strm generation
- Input disabled is now disabled and can't be forced through cli to be enabled
2026-01-02 13:18:08 +01:00
euzu 25d3454932 Wrong Category Id after update fix 2025-12-30 15:06:16 +01:00
euzu b3a7e6af7c added some events for playlist update,
fixed explorer view image display for channels
2025-12-30 12:31:55 +01:00
euzu 458b6741a6 refactoring for favourites
- implemented favourites config to target config
- added add_favourite() function to mapping
2025-12-29 16:43:33 +01:00
euzu 9c369c3f12 refactoring for favourites
- implemented favourites config to target config
- added add_favourite() function to mapping
2025-12-29 16:15:16 +01:00
euzu dfab797c65 refactoring for favourites
- implemented favourites config to target config
- added add_favroutie() function to mapping
2025-12-29 16:08:27 +01:00
euzu e94a869c73 refactoring for favourites
- implemented favourites config to target config
- added add_favroutie() function to mapping
2025-12-29 15:55:50 +01:00
euzu cf0c928730 stream properties refactored 2025-12-27 09:52:28 +01:00
euzu d5207e886f stream properties refactored 2025-12-26 14:09:44 +01:00
euzu c7bc0beb96 stream properties refactored 2025-12-22 17:33:18 +01:00
euzu 0be56eaac5 some refactoring for panel api config 2025-12-20 16:33:59 +01:00
euzu d33bdb6238 panel api 2025-12-19 20:54:30 +01:00
euzu aa4463b632 fetching tmdb data for series 2025-12-19 15:57:46 +01:00
knylbyte 6dc93e1b63 fix: cargo clippy 2025-12-18 21:51:54 +01:00
euzu 37985c0324 Integrate local movie file into playlist 2025-12-16 16:43:11 +01:00
euzu 1aacff84dc update guards added 2025-12-16 09:58:44 +01:00
euzu ba200135ce Merge branch 'feature/source_editor' into feature/local_media 2025-12-13 15:34:51 +01:00
euzu 4281cbc90d kick debug log added 2025-12-13 11:32:55 +01:00
euzu b84e2ca96f Merge branch 'feature/source_editor' into feature/local_media 2025-12-12 17:05:29 +01:00
euzu afc0fe4ea8 Merge branch 'feature/source_editor' into feature/local_media 2025-12-12 17:05:12 +01:00
euzu ee0441877d xtream and m3u parsing with streaming 2025-12-12 15:33:41 +01:00
euzu 55191d6c84 vod resolve refactored
Arc<Client> is now Client
2025-12-11 09:54:28 +01:00
euzu f3f7d0136d Merge remote-tracking branch 'deadc1de/feature/local-vod-module' into feature/local_media 2025-12-10 09:18:53 +01:00
knylbyte adb9e70807 feat: prevent duplicate xtream info fetches for mapping aliases 2025-11-30 20:29:00 +01:00
knylbyte d68f6df311 feat: prevent duplicate xtream info fetches for mapping aliases 2025-11-30 19:56:51 +01:00
knylbyte 5a10efe82e feat: added option to create an alias during mapping 2025-11-30 18:35:01 +01:00
euzu 0fae9f3edd Atomic ordering changed, Fixed race conditions on user access 2025-11-30 13:12:59 +01:00
euzu ee05a9e02e Atomic ordering changedFixed race conditions on user access 2025-11-30 12:53:47 +01:00
euzu 72fef10b86 Xtream Codes Batch provider accounts are now checked for expiration. 2025-11-22 11:07:50 +01:00
euzu 4e6c5209d8 Xtream Codes Batch provider accounts are now checked for expiration. 2025-11-22 10:55:46 +01:00
euzu a14253519e fixed some async file operations 2025-11-20 13:40:04 +01:00
euzu d2779a3e30 Some fixes for async handling 2025-11-20 13:00:01 +01:00
DarkBreakpoint ecd8e5657f async cleanup 2025-11-19 14:13:54 -06:00
euzu 6e0f9c96e7 Some refactorings
- HdHomerun
- WebUI GeoIP
- Playlist Updates
...
2025-10-28 20:30:04 +01:00
euzu 62db7affc3 Some refactorings
- HdHomerun
- WebUI GeoIP
- Playlist Updates
...
2025-10-28 20:21:36 +01:00
euzu cd76891ce4 Some refactorings
- HdHomerun
- WebUI GeoIP
- Playlist Updates
...
2025-10-28 19:52:46 +01:00
euzu 364e3d69df task optimizations for connection release 2025-10-27 13:58:55 +01:00
euzu 60c2e5a161 User Stream Connection table added 2025-10-24 18:37:14 +02:00
euzu c3f7912b41 Channel favourites 2025-10-23 18:26:25 +02:00
euzu 79906952c5 Telegram markdown support for structured json messages 2025-10-22 11:33:49 +02:00
euzu 8245bc4c85 Telegram markdown support for structured json messages 2025-10-22 11:09:43 +02:00
euzu c68c4ba24a Added filter to target ouput 2025-10-20 15:55:12 +02:00
euzu c992ad6731 playlist cache into memory 2025-10-16 21:19:47 +02:00
euzu 38b1cd6d31 Fixed invalid epg text content parsing 2025-10-01 16:40:22 +02:00
euzu 3a872c81ca Default sort removed,
updated steps only log if enabled
2025-09-23 16:56:56 +02:00