Skip to content

Synchronize autopruning of sessions across volumes #241

@tasket

Description

@tasket

Problem

Currently, autoprune() finds and removes sessions on a per-volume basis. This leads to different sets of sessions being removed for each volume (when those volumes don't have an identical session history, and they often don't).

Desired result

A way to have all volumes taken into account when sessions are considered as pruning candidates, and then the marked sessions removed for all volumes at once. This makes the archive contents more coherent overall, esp. with regard to user expectations and the fact that some volumes (like Qubes -root vols) are often paired with another separate volume.

Since removal of all data for marked sessions so closely matches user expectations, this could become the default way to autoprune.

Implementation ideas

Have autoprune() accept a list of volumes. Extend the date-session tuple to include a weighting factor (a count of volumes in the session) affecting the likelihood that the session will be marked for removal. Possibly reference session objects instead of their names.

When all candidate sessions have been marked, run merge_sessions() for each volume with the usual grouping of adjacent sessions. However, it may be better to cycle through the volumes repeatedly so that each group of sessions is completely removed from the archive before removing the next group.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions