{"action":"opened","issue":{"url":"https://api.github.com/repos/vmware/vic/issues/2640","repository_url":"https://api.github.com/repos/vmware/vic","labels_url":"https://api.github.com/repos/vmware/vic/issues/2640/labels{/name}","comments_url":"https://api.github.com/repos/vmware/vic/issues/2640/comments","events_url":"https://api.github.com/repos/vmware/vic/issues/2640/events","html_url":"https://github.com/vmware/vic/issues/2640","id":182111864,"number":2640,"title":"Buffer imagec pulls to apply back pressure for large images","user":{"login":"fdawg4l","id":4296242,"avatar_url":"https://avatars.githubusercontent.com/u/4296242?v=3","gravatar_id":"","url":"https://api.github.com/users/fdawg4l","html_url":"https://github.com/fdawg4l","followers_url":"https://api.github.com/users/fdawg4l/followers","following_url":"https://api.github.com/users/fdawg4l/following{/other_user}","gists_url":"https://api.github.com/users/fdawg4l/gists{/gist_id}","starred_url":"https://api.github.com/users/fdawg4l/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fdawg4l/subscriptions","organizations_url":"https://api.github.com/users/fdawg4l/orgs","repos_url":"https://api.github.com/users/fdawg4l/repos","events_url":"https://api.github.com/users/fdawg4l/events{/privacy}","received_events_url":"https://api.github.com/users/fdawg4l/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/vmware/vic/labels/area/storage","name":"area/storage","color":"bfdadc"},{"url":"https://api.github.com/repos/vmware/vic/labels/component/imagec","name":"component/imagec","color":"d4c5f9"},{"url":"https://api.github.com/repos/vmware/vic/labels/component/portlayer/storage","name":"component/portlayer/storage","color":"d4c5f9"}],"state":"open","locked":false,"assignee":{"login":"jzt","id":128130,"avatar_url":"https://avatars.githubusercontent.com/u/128130?v=3","gravatar_id":"","url":"https://api.github.com/users/jzt","html_url":"https://github.com/jzt","followers_url":"https://api.github.com/users/jzt/followers","following_url":"https://api.github.com/users/jzt/following{/other_user}","gists_url":"https://api.github.com/users/jzt/gists{/gist_id}","starred_url":"https://api.github.com/users/jzt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzt/subscriptions","organizations_url":"https://api.github.com/users/jzt/orgs","repos_url":"https://api.github.com/users/jzt/repos","events_url":"https://api.github.com/users/jzt/events{/privacy}","received_events_url":"https://api.github.com/users/jzt/received_events","type":"User","site_admin":false},"assignees":[{"login":"jzt","id":128130,"avatar_url":"https://avatars.githubusercontent.com/u/128130?v=3","gravatar_id":"","url":"https://api.github.com/users/jzt","html_url":"https://github.com/jzt","followers_url":"https://api.github.com/users/jzt/followers","following_url":"https://api.github.com/users/jzt/following{/other_user}","gists_url":"https://api.github.com/users/jzt/gists{/gist_id}","starred_url":"https://api.github.com/users/jzt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzt/subscriptions","organizations_url":"https://api.github.com/users/jzt/orgs","repos_url":"https://api.github.com/users/jzt/repos","events_url":"https://api.github.com/users/jzt/events{/privacy}","received_events_url":"https://api.github.com/users/jzt/received_events","type":"User","site_admin":false},{"login":"fdawg4l","id":4296242,"avatar_url":"https://avatars.githubusercontent.com/u/4296242?v=3","gravatar_id":"","url":"https://api.github.com/users/fdawg4l","html_url":"https://github.com/fdawg4l","followers_url":"https://api.github.com/users/fdawg4l/followers","following_url":"https://api.github.com/users/fdawg4l/following{/other_user}","gists_url":"https://api.github.com/users/fdawg4l/gists{/gist_id}","starred_url":"https://api.github.com/users/fdawg4l/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fdawg4l/subscriptions","organizations_url":"https://api.github.com/users/fdawg4l/orgs","repos_url":"https://api.github.com/users/fdawg4l/repos","events_url":"https://api.github.com/users/fdawg4l/events{/privacy}","received_events_url":"https://api.github.com/users/fdawg4l/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2016-10-10T20:49:44Z","updated_at":"2016-10-10T20:49:44Z","closed_at":null,"body":"From https://github.com/vmware/vic/issues/2595#issuecomment-252110512\r\n\r\nWe're currently buffering `imagec` pulls to `tmpfs` before writing them to the PL.   We want to replace this with a (buffer pool) [https://github.com/djherbis/buffer] which can use a tmpfile (if vmdk attached to the VCH) or a page of physical memory.  We need to allocate pages from this buffer pool for each pull to work with, pulling to the buffer until full, and blocking until space is made available.  The `pull` operation should pull to the buffer and push to the PL so as to keep draining the buffer.\r\n\r\nThe expectation is if the user has a high bandwidth link, and is pulling an image with size smaller than that of vch's physical memory, the `pull` will be fast.  By and large, most images fit in this criteria.  \r\n\r\nAlso, and more importantly, pulling a large image should not cause OOM."}}
{"actor":{"display_login":"fdawg4l"}}