{"action":"created","issue":{"url":"https://api.github.com/repos/ipfs/go-ipfs/issues/2384","repository_url":"https://api.github.com/repos/ipfs/go-ipfs","labels_url":"https://api.github.com/repos/ipfs/go-ipfs/issues/2384/labels{/name}","comments_url":"https://api.github.com/repos/ipfs/go-ipfs/issues/2384/comments","events_url":"https://api.github.com/repos/ipfs/go-ipfs/issues/2384/events","html_url":"https://github.com/ipfs/go-ipfs/pull/2384","id":135110832,"number":2384,"title":"refactor merkledag fetching methods","user":{"login":"whyrusleeping","id":1243164,"avatar_url":"https://avatars.githubusercontent.com/u/1243164?v=3","gravatar_id":"","url":"https://api.github.com/users/whyrusleeping","html_url":"https://github.com/whyrusleeping","followers_url":"https://api.github.com/users/whyrusleeping/followers","following_url":"https://api.github.com/users/whyrusleeping/following{/other_user}","gists_url":"https://api.github.com/users/whyrusleeping/gists{/gist_id}","starred_url":"https://api.github.com/users/whyrusleeping/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/whyrusleeping/subscriptions","organizations_url":"https://api.github.com/users/whyrusleeping/orgs","repos_url":"https://api.github.com/users/whyrusleeping/repos","events_url":"https://api.github.com/users/whyrusleeping/events{/privacy}","received_events_url":"https://api.github.com/users/whyrusleeping/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-02-20T19:07:17Z","updated_at":"2016-02-21T06:11:47Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ipfs/go-ipfs/pulls/2384","html_url":"https://github.com/ipfs/go-ipfs/pull/2384","diff_url":"https://github.com/ipfs/go-ipfs/pull/2384.diff","patch_url":"https://github.com/ipfs/go-ipfs/pull/2384.patch"},"body":"I refactored the dagservice have one new `GetMany` method that just mimics the interface of the blockservices similar method. It takes some keys and returns a channel of nodes in no particular order.\r\n\r\nI then removed the `GetDAG` and `GetNodes` methods from the dagservice interface and refactored them to `GetMany`. \r\n\r\nfinally, I refactored `FetchGraph` to use `GetMany`, and in doing so, it has better error cases (can actually fail through from the blockservice layer) and uses wayyyy fewer goroutines. (though still a good number of them).\r\n\r\ncc @noffle @lgierth for CR\r\ncc @mildred since youre working on similar cleanup type stuff"},"comment":{"url":"https://api.github.com/repos/ipfs/go-ipfs/issues/comments/186755562","html_url":"https://github.com/ipfs/go-ipfs/pull/2384#issuecomment-186755562","issue_url":"https://api.github.com/repos/ipfs/go-ipfs/issues/2384","id":186755562,"user":{"login":"whyrusleeping","id":1243164,"avatar_url":"https://avatars.githubusercontent.com/u/1243164?v=3","gravatar_id":"","url":"https://api.github.com/users/whyrusleeping","html_url":"https://github.com/whyrusleeping","followers_url":"https://api.github.com/users/whyrusleeping/followers","following_url":"https://api.github.com/users/whyrusleeping/following{/other_user}","gists_url":"https://api.github.com/users/whyrusleeping/gists{/gist_id}","starred_url":"https://api.github.com/users/whyrusleeping/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/whyrusleeping/subscriptions","organizations_url":"https://api.github.com/users/whyrusleeping/orgs","repos_url":"https://api.github.com/users/whyrusleeping/repos","events_url":"https://api.github.com/users/whyrusleeping/events{/privacy}","received_events_url":"https://api.github.com/users/whyrusleeping/received_events","type":"User","site_admin":false},"created_at":"2016-02-21T06:11:47Z","updated_at":"2016-02-21T06:11:47Z","body":"mmm, this ones not quite ready yet. now that things can fail instead of hang, its flushing out new failures in the pinning sharness tests: https://travis-ci.org/ipfs/go-ipfs/jobs/110680509"}}