Skip to content

Getting rid of internally soft-linked hard-links #855

@enkore

Description

@enkore

Today in the Borg "Getting rid of…" show: soft-linked hard-links.

This distinction between "regular files" and "regular files with nlink>1" has been a bit of a troublemaker in various places, because it makes it hard to work on subsets of all items. The original solution with the 'source' attribute is nice, because it avoids storing the chunk id list twice, and because it makes it straightforward to link all links together when extracting (the full archive, not a subset).

When working with subsets this solution fails and we kludged stuff together to make it work, but it ain't nice.


Ideas

  • Let it be
  • Just put the "chunks" in every file, ignore 'source' except when extracting (to link 'em together)
    • the chunk id list will probably need more space, but for really large files the deduplication of the item metadata should kick in nicely.
    • 1.0 still does the right thing, but if we drop the compat code we have now the troubles for old archives are still there. We could shift blame to "recreate" and reduce the compat code to that single occurrence.
  • Could drop 'source' entirely (=> 1.0 would extract each link independently), index of hard links outside of the 'items' stream
  • ?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions