DeadAir copies are kept as long as the episode, doubling its space #179

Closed
opened 2026-10-09 17:24:31 -07:00 by rays · 2 comments
Owner

A DeadAir copy is kept beside its original until download::remove takes both (src/deadair.rs, module doc), so every episode of a DeadAir show takes nearly twice its space for as long as it is kept. On 2026-10-10, the 11 copies in /mnt/user/ipx/downloads came to 639 MB.

Proposal: give the copy a lifetime of its own.

  • Remove a copy 7 days after it was last played, or made if never played. Keep its deadair row's cuts and saved time, and clear its path.
  • The background queue (deadair_todo) must not remake a copy expired this way, or it would make it again at once. Only pressing play does, through the on-demand path in #178 (about 10s, with the original playing meanwhile).

Depends on #178: without making a copy on demand, an expired copy would never come back.

A DeadAir copy is kept beside its original until `download::remove` takes both (src/deadair.rs, module doc), so every episode of a DeadAir show takes nearly twice its space for as long as it is kept. On 2026-10-10, the 11 copies in /mnt/user/ipx/downloads came to 639 MB. Proposal: give the copy a lifetime of its own. - Remove a copy 7 days after it was last played, or made if never played. Keep its `deadair` row's cuts and saved time, and clear its path. - The background queue (`deadair_todo`) must not remake a copy expired this way, or it would make it again at once. Only pressing play does, through the on-demand path in #178 (about 10s, with the original playing meanwhile). Depends on #178: without making a copy on demand, an expired copy would never come back.
rays added the enhancement label 2026-10-09 17:24:31 -07:00
Author
Owner

Fixed in f29d493. When a copy is served, deadair.played_at notes it (at most once an hour). Each pass of the maker removes copies unplayed, or unmade, for 7 days: the file goes, and the row keeps its cuts with its path cleared, so the background queue does not make it again at once. Playing the original of such an episode puts it back on the queue, so the copy comes back within a pass; switching to it mid-play is #178. Deployed as 0.11.1-dev; the container is healthy.

Correction to the description: copies are named name.deadair.mp3, and there were 2 on disk (119 MB), not 11. The 639 MB counted unrelated -2.mp3 files.

Fixed in f29d493. When a copy is served, `deadair.played_at` notes it (at most once an hour). Each pass of the maker removes copies unplayed, or unmade, for 7 days: the file goes, and the row keeps its cuts with its path cleared, so the background queue does not make it again at once. Playing the original of such an episode puts it back on the queue, so the copy comes back within a pass; switching to it mid-play is #178. Deployed as 0.11.1-dev; the container is healthy. Correction to the description: copies are named `name.deadair.mp3`, and there were 2 on disk (119 MB), not 11. The 639 MB counted unrelated `-2.mp3` files.
rays closed this issue 2026-10-09 19:52:57 -07:00
Author
Owner

Replaced by #181 in 089202f: there are no copies left to expire, and the expiry code was removed before any release shipped it.

Replaced by #181 in 089202f: there are no copies left to expire, and the expiry code was removed before any release shipped it.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rays/ipx#179