Skip to content

feat: cap total download storage with least-recently-watched cleanup - #263

Open
peterdeme wants to merge 1 commit into
s4pp1:mainfrom
peterdeme:main
Open

peterdeme wants to merge 1 commit into
s4pp1:mainfrom
peterdeme:main

Conversation

@peterdeme

@peterdeme peterdeme commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Hali!

Ezt a funkciót azért építettem, mert se a hit n run, se az utoljára nézett alapú törlés nem optimális számomra.

Az én logikám: van kb 500 GB tárhelyem összesen. A torrentek nyugodtan maradjanak seed-ben, nem kell törölni őket. Viszont azt sem szeretném, hogy rádurrantsak két remuxot és be is telik instant a storage.

Ne felejtsük, hogy csak napi 1x fut a cleanup job (amúgy miért? miért nem mondjuk 5 percenként?).

Ezzel a funkcióval be tudod állítani, hogy az 500 gigás tárhelyeden mondjuk 350 GB foglaljanak max a fájlok. Így pl amíg mondjuk csak 200 gigát foglalnak, addig a végtelenségig seedelve lesznek. Amint elérik pl a 365GB-t, az már túllépést jelent, a job beindul és letörli a legrégebbi torrentet.

A job tiszteletben tartja a hit n run't, tehát tárhely túllépés előfordulhat, erre figyelmeztet is egy doboz a UI-on.

A job 15 percenként megy a napi 1 helyett. Ez azért van mert aki több profilt használ (pl szüleinél is), és kevés tárhelye van, a napi 1 futással hamar szorult helyzetbe kerülhet. (Velem megtörtént, csak 80GB tárhely volt a VPS-emen. :D Azóta kicsit bővítettem, de nem sokkal.)

Ezen felül picit újra szerveztem a UI-t, hogy a cleanup jobok saját boxban legyenek. Lokálban tesztelve - 1GB max tárhelyet beállítottam, és elindítottam csomó filmet.

Megjegyzés

Nem lenne hülyeség a cron scheduler-t a DB-ben tartani in-memory helyett. Mert akkor tudnánk on-demand triggerelni is job-okat. Pl.: ha egy új torrent letöltés elindul, triggereljük azonnal a cleanup jobot:

update cron_jobs set next_run_time = now() where name = 'job neve'

Megjegyzés 2

A kövi PR erre a PR-re épül: #264

Screenshot-ok

Alap beállítás

Screenshot 2026-08-11 at 22 17 28

Hit n run is be van kapcsolva

Ilyenkor a job figyelembe veszi.
Screenshot 2026-08-11 at 22 17 38

Lokál teszt

Screenshot 2026-08-11 at 22 17 58

Nothing bounded disk usage until now, so a filling disk could only be handled
by hand or by waiting for the nightly tracker-obligation sweep, which is a poor
fit for a streaming server that grows its library continuously. The new quota
evicts least-recently-watched torrents every 15 minutes, but leaves pinned,
actively streamed and unsatisfied hit-and-run torrents alone, and fails closed
when a tracker is unreachable so a full disk can never cost you an account.
@s4pp1

s4pp1 commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Szia @peterdeme!

Köszönöm a PR-t, de ezt jobban át kell még gondolnom, hogy miként működhetne egy ilyen megoldás. A problémám az vele, hogy modhatja azt a felhasználó, hogy ő nem akar HnR-t és lejátszás alapú törlést sem, de bekapcsolja ezt a lehetőséget és beállít 1GB-ot, ami azt fogja jelenteni, hogy folyamatosan törli a rendszer a torrenteket.

Értem, hogy pont ezt szeretné pár felhasználó, de az én torrentel kapcsolatos elveimmel ellentétes.

Ne felejtsük, hogy csak napi 1x fut a cleanup job (amúgy miért? miért nem mondjuk 5 percenként?).

Azért van így, mert ha 5 percenként lefutna, akkor folyamatosan meghívá az indexer-t, ami nem biztos, hogy annyira szerencsés. Ezen felül pedig minden indexer más időközönként frissíti a HnR listát így ha még nem jelent meg a torrent az oldalon, akkor simán törölné azokat is, amiket nagyon nem lenne szabad.

@peterdeme

Copy link
Copy Markdown
Contributor Author

@s4pp1 köszi a választ.

A problémám az vele, hogy modhatja azt a felhasználó, hogy ő nem akar HnR-t és lejátszás alapú törlést sem, de bekapcsolja ezt a lehetőséget és beállít 1GB-ot, ami azt fogja jelenteni, hogy folyamatosan törli a rendszer a torrenteket.

Ha HnR-zni akar, ezt egyébként is megteheti. Kitörölheti manuálisan stremhu-ból. Meg ha ilyet csinál, akkor valószínűleg stremhu-n kívül is ezt csinálná. Illetve HnR-nal önmagát égetné meg, hisz kibannolnák az adott oldalról.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants