{"action":"created","issue":{"url":"https://api.github.com/repos/ipfs/go-ipfs/issues/972","labels_url":"https://api.github.com/repos/ipfs/go-ipfs/issues/972/labels{/name}","comments_url":"https://api.github.com/repos/ipfs/go-ipfs/issues/972/comments","events_url":"https://api.github.com/repos/ipfs/go-ipfs/issues/972/events","html_url":"https://github.com/ipfs/go-ipfs/issues/972","id":65024751,"number":972,"title":"Repo Size Constraints","user":{"login":"jbenet","id":138401,"avatar_url":"https://avatars.githubusercontent.com/u/138401?v=3","gravatar_id":"","url":"https://api.github.com/users/jbenet","html_url":"https://github.com/jbenet","followers_url":"https://api.github.com/users/jbenet/followers","following_url":"https://api.github.com/users/jbenet/following{/other_user}","gists_url":"https://api.github.com/users/jbenet/gists{/gist_id}","starred_url":"https://api.github.com/users/jbenet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbenet/subscriptions","organizations_url":"https://api.github.com/users/jbenet/orgs","repos_url":"https://api.github.com/users/jbenet/repos","events_url":"https://api.github.com/users/jbenet/events{/privacy}","received_events_url":"https://api.github.com/users/jbenet/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ipfs/go-ipfs/labels/backlog","name":"backlog","color":"ededed"},{"url":"https://api.github.com/repos/ipfs/go-ipfs/labels/repo","name":"repo","color":"207de5"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/ipfs/go-ipfs/milestones/5","html_url":"https://github.com/ipfs/go-ipfs/milestones/Resource%20Constraints","labels_url":"https://api.github.com/repos/ipfs/go-ipfs/milestones/5/labels","id":1043380,"number":5,"title":"Resource Constraints","description":"","creator":{"login":"jbenet","id":138401,"avatar_url":"https://avatars.githubusercontent.com/u/138401?v=3","gravatar_id":"","url":"https://api.github.com/users/jbenet","html_url":"https://github.com/jbenet","followers_url":"https://api.github.com/users/jbenet/followers","following_url":"https://api.github.com/users/jbenet/following{/other_user}","gists_url":"https://api.github.com/users/jbenet/gists{/gist_id}","starred_url":"https://api.github.com/users/jbenet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbenet/subscriptions","organizations_url":"https://api.github.com/users/jbenet/orgs","repos_url":"https://api.github.com/users/jbenet/repos","events_url":"https://api.github.com/users/jbenet/events{/privacy}","received_events_url":"https://api.github.com/users/jbenet/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":2,"state":"open","created_at":"2015-03-29T04:54:23Z","updated_at":"2015-04-01T05:40:28Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2015-03-29T05:00:28Z","updated_at":"2015-07-15T19:32:32Z","closed_at":null,"body":"It is a common problem already that the space of go-ipfs grows unbounded. We want to have the ability to limit the growth. \r\n\r\n---\r\n\r\nComplicating factors:\r\n- pinned vs unpinned objects\r\n- capacity should be configurable\r\n- capacity should incorporate all repo contents\r\n- adding (pinning) content beyond capacity\r\n\r\n---\r\n\r\nI've been thinking of a setup with two thresholds:\r\n\r\n- gc threshold: if after this limit, all commands trigger a `repo gc`.\r\n- local storage capacity: if adding an object to repo would increase capacity, command errors. (i.e. never exceed capacity)"},"comment":{"url":"https://api.github.com/repos/ipfs/go-ipfs/issues/comments/121722003","html_url":"https://github.com/ipfs/go-ipfs/issues/972#issuecomment-121722003","issue_url":"https://api.github.com/repos/ipfs/go-ipfs/issues/972","id":121722003,"user":{"login":"jbenet","id":138401,"avatar_url":"https://avatars.githubusercontent.com/u/138401?v=3","gravatar_id":"","url":"https://api.github.com/users/jbenet","html_url":"https://github.com/jbenet","followers_url":"https://api.github.com/users/jbenet/followers","following_url":"https://api.github.com/users/jbenet/following{/other_user}","gists_url":"https://api.github.com/users/jbenet/gists{/gist_id}","starred_url":"https://api.github.com/users/jbenet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbenet/subscriptions","organizations_url":"https://api.github.com/users/jbenet/orgs","repos_url":"https://api.github.com/users/jbenet/repos","events_url":"https://api.github.com/users/jbenet/events{/privacy}","received_events_url":"https://api.github.com/users/jbenet/received_events","type":"User","site_admin":false},"created_at":"2015-07-15T19:32:32Z","updated_at":"2015-07-15T19:32:32Z","body":"From #1482, i think we should have one global maximum storage, and trigger GC when we past a watermark (say max - 1/5MB close). ideally we could also configure the GC watermark to bring it lower."}}