Skip to content
This repository has been archived by the owner on Feb 8, 2023. It is now read-only.

Repo GC strategy. #11

Open
jbenet opened this issue May 29, 2015 · 2 comments
Open

Repo GC strategy. #11

jbenet opened this issue May 29, 2015 · 2 comments

Comments

@jbenet
Copy link
Member

jbenet commented May 29, 2015

@whyrusleeping @wking @tv42

Currently we explicitly mark + store indirect pins. @tv42 brought up that we perhaps should mark-and-sweep. the discussion on ipfs/kubo#1274 puts me strongly in favor of that approach. let's use this note to coordinate discussion + potential upgrades to do.

@jbenet jbenet changed the title Repo GC stragtegy. Repo GC strategy. May 29, 2015
@jbenet
Copy link
Member Author

jbenet commented May 29, 2015

  • gc must be safe (don't ever gc objects the user explicitly asked to keep)
  • @wking mentioned how git uses a time-based grace period to make gc safer.

@tv42
Copy link

tv42 commented May 29, 2015

I've pondered this a bunch for https://bazil.org/ , though I'm not at the point where I'd have written anything yet. Quick notes on what differentiates CAS GC from normal:

  • immutable objects
  • you can memoize all referred objects of a root with bloom filters etc
  • can view storage as append-only; links can only point backward in time
  • if you rely on time-based grace for new objects, linking to an object must refresh that timer

Good background material to read:

  • Erlang GC
  • papers on the Foundation project
  • the Train algorithm

There's tons more there, but I've barely scratched the surface myself.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants