Current sheepdog never recycles VIDs. But it will cause problems
e.g. VID space exhaustion, too much garbage inode objects.

Keeping deleted inode objects is required because living inodes
(snapshots or clones) can point objects of the deleted inodes. So if
every member of VDI family is deleted, it is safe to remove deleted
inode objects.

v2:
 - update test scripts

Hitoshi Mitake (5):
  sheep: let vdi state have parent VID
  sheep: construct data structures for representing family tree
  libsheepdog: provide atomic_clear_bit
  sheep: garbage collect needless VIDs
  tests/functional: update test scripts for VID GC feature

 include/bitops.h         |   5 +
 include/internal_proto.h |   1 +
 sheep/group.c            |   6 +-
 sheep/ops.c              |   8 +-
 sheep/plain_store.c      |   4 +-
 sheep/sheep_priv.h       |   5 +-
 sheep/vdi.c              | 269 ++++++++++++++++++++++++++++++++++++++++++++++-
 tests/functional/016.out |  12 +--
 tests/functional/044.out |  12 +--
 tests/functional/046.out |   6 +-
 tests/functional/086.out |   6 +-
 tests/functional/092.out |   6 +-
 tests/functional/093.out |   6 +-
 13 files changed, 309 insertions(+), 37 deletions(-)

-- 
1.9.1

-- 
sheepdog mailing list
sheepdog@lists.wpkg.org
https://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to