{"action":"created","issue":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcsfuse/issues/35","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/gcsfuse/issues/35/labels{/name}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcsfuse/issues/35/comments","events_url":"https://api.github.com/repos/GoogleCloudPlatform/gcsfuse/issues/35/events","html_url":"https://github.com/GoogleCloudPlatform/gcsfuse/issues/35","id":65839755,"number":35,"title":"Clean up temporary space more proactively","user":{"login":"jacobsa","id":202895,"avatar_url":"https://avatars.githubusercontent.com/u/202895?v=3","gravatar_id":"","url":"https://api.github.com/users/jacobsa","html_url":"https://github.com/jacobsa","followers_url":"https://api.github.com/users/jacobsa/followers","following_url":"https://api.github.com/users/jacobsa/following{/other_user}","gists_url":"https://api.github.com/users/jacobsa/gists{/gist_id}","starred_url":"https://api.github.com/users/jacobsa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacobsa/subscriptions","organizations_url":"https://api.github.com/users/jacobsa/orgs","repos_url":"https://api.github.com/users/jacobsa/repos","events_url":"https://api.github.com/users/jacobsa/events{/privacy}","received_events_url":"https://api.github.com/users/jacobsa/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"jacobsa","id":202895,"avatar_url":"https://avatars.githubusercontent.com/u/202895?v=3","gravatar_id":"","url":"https://api.github.com/users/jacobsa","html_url":"https://github.com/jacobsa","followers_url":"https://api.github.com/users/jacobsa/followers","following_url":"https://api.github.com/users/jacobsa/following{/other_user}","gists_url":"https://api.github.com/users/jacobsa/gists{/gist_id}","starred_url":"https://api.github.com/users/jacobsa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacobsa/subscriptions","organizations_url":"https://api.github.com/users/jacobsa/orgs","repos_url":"https://api.github.com/users/jacobsa/repos","events_url":"https://api.github.com/users/jacobsa/events{/privacy}","received_events_url":"https://api.github.com/users/jacobsa/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcsfuse/milestones/1","html_url":"https://github.com/GoogleCloudPlatform/gcsfuse/milestones/beta","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/gcsfuse/milestones/1/labels","id":1030190,"number":1,"title":"beta","description":null,"creator":{"login":"jacobsa","id":202895,"avatar_url":"https://avatars.githubusercontent.com/u/202895?v=3","gravatar_id":"","url":"https://api.github.com/users/jacobsa","html_url":"https://github.com/jacobsa","followers_url":"https://api.github.com/users/jacobsa/followers","following_url":"https://api.github.com/users/jacobsa/following{/other_user}","gists_url":"https://api.github.com/users/jacobsa/gists{/gist_id}","starred_url":"https://api.github.com/users/jacobsa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacobsa/subscriptions","organizations_url":"https://api.github.com/users/jacobsa/orgs","repos_url":"https://api.github.com/users/jacobsa/repos","events_url":"https://api.github.com/users/jacobsa/events{/privacy}","received_events_url":"https://api.github.com/users/jacobsa/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":14,"state":"open","created_at":"2015-03-19T23:14:49Z","updated_at":"2015-05-07T05:45:34Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2015-04-02T05:12:35Z","updated_at":"2015-05-08T01:19:45Z","closed_at":null,"body":"Currently we destroy an inode's temporary files only when the kernel tells us to forget it. I believe the kernel does this only when it is running out of space in its inode cache, at least if the file hasn't been unlinked. In contrast, one temporary file per inode can grow to a lot of disk space, and we may want to clean up earlier.\r\n\r\nConsider setting a (configurable) limit on the amount of disk space devoted to temporary files. The limit may be exceeded if we have dirty inodes that add up to more than the limit. But if we are over the limit and have any clean inodes, we will throw away their content (in least recently used order?) until we are under the limit or run out of clean inodes.\r\n\r\nHow to plumb this in? Some sort of central object used by the object proxies. They use a \"grab file if still exists\" method when clean, and a \"register dirty file\" and \"unregister dirty file\" methods when transitioning into and out of the dirty state. Something like that."},"comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcsfuse/issues/comments/100061056","html_url":"https://github.com/GoogleCloudPlatform/gcsfuse/issues/35#issuecomment-100061056","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/gcsfuse/issues/35","id":100061056,"user":{"login":"jacobsa","id":202895,"avatar_url":"https://avatars.githubusercontent.com/u/202895?v=3","gravatar_id":"","url":"https://api.github.com/users/jacobsa","html_url":"https://github.com/jacobsa","followers_url":"https://api.github.com/users/jacobsa/followers","following_url":"https://api.github.com/users/jacobsa/following{/other_user}","gists_url":"https://api.github.com/users/jacobsa/gists{/gist_id}","starred_url":"https://api.github.com/users/jacobsa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacobsa/subscriptions","organizations_url":"https://api.github.com/users/jacobsa/orgs","repos_url":"https://api.github.com/users/jacobsa/repos","events_url":"https://api.github.com/users/jacobsa/events{/privacy}","received_events_url":"https://api.github.com/users/jacobsa/received_events","type":"User","site_admin":false},"created_at":"2015-05-08T01:19:45Z","updated_at":"2015-05-08T01:19:45Z","body":"The tool reports [1888 blobs](https://gist.github.com/jacobsa/12d5122e889e26804975) as not having CRC32C/MD5 info in the input text file, probably due to being from older backups. Moving them to a different place in the key space."}}