{"action":"created","issue":{"url":"https://api.github.com/repos/zettio/weave/issues/429","labels_url":"https://api.github.com/repos/zettio/weave/issues/429/labels{/name}","comments_url":"https://api.github.com/repos/zettio/weave/issues/429/comments","events_url":"https://api.github.com/repos/zettio/weave/issues/429/events","html_url":"https://github.com/zettio/weave/pull/429","id":59457848,"number":429,"title":"weave-225: [dns] caching (1/3)","user":{"login":"inercia","id":1841612,"avatar_url":"https://avatars.githubusercontent.com/u/1841612?v=3","gravatar_id":"","url":"https://api.github.com/users/inercia","html_url":"https://github.com/inercia","followers_url":"https://api.github.com/users/inercia/followers","following_url":"https://api.github.com/users/inercia/following{/other_user}","gists_url":"https://api.github.com/users/inercia/gists{/gist_id}","starred_url":"https://api.github.com/users/inercia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inercia/subscriptions","organizations_url":"https://api.github.com/users/inercia/orgs","repos_url":"https://api.github.com/users/inercia/repos","events_url":"https://api.github.com/users/inercia/events{/privacy}","received_events_url":"https://api.github.com/users/inercia/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/zettio/weave/labels/in%20progress","name":"in progress","color":"ededed"}],"state":"open","locked":false,"assignee":{"login":"squaremo","id":62033,"avatar_url":"https://avatars.githubusercontent.com/u/62033?v=3","gravatar_id":"","url":"https://api.github.com/users/squaremo","html_url":"https://github.com/squaremo","followers_url":"https://api.github.com/users/squaremo/followers","following_url":"https://api.github.com/users/squaremo/following{/other_user}","gists_url":"https://api.github.com/users/squaremo/gists{/gist_id}","starred_url":"https://api.github.com/users/squaremo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/squaremo/subscriptions","organizations_url":"https://api.github.com/users/squaremo/orgs","repos_url":"https://api.github.com/users/squaremo/repos","events_url":"https://api.github.com/users/squaremo/events{/privacy}","received_events_url":"https://api.github.com/users/squaremo/received_events","type":"User","site_admin":false},"milestone":null,"comments":35,"created_at":"2015-03-02T09:38:10Z","updated_at":"2015-03-19T11:21:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/zettio/weave/pulls/429","html_url":"https://github.com/zettio/weave/pull/429","diff_url":"https://github.com/zettio/weave/pull/429.diff","patch_url":"https://github.com/zettio/weave/pull/429.patch"},"body":"#225 : this pull request implements a caching mechanism in the DNS server. The cache is used for saving positive and negative replies obtained by the local discovery system as well as by the recursive resolver.\r\n\r\nReplies found in the cache are modified before being returned to clients by adjusting the remaining TTL and  shuffling answers (implementing a basic load balancing mechanism as a side effect, a first step for #226).\r\n"},"comment":{"url":"https://api.github.com/repos/zettio/weave/issues/comments/83516337","html_url":"https://github.com/zettio/weave/pull/429#issuecomment-83516337","issue_url":"https://api.github.com/repos/zettio/weave/issues/429","id":83516337,"user":{"login":"squaremo","id":62033,"avatar_url":"https://avatars.githubusercontent.com/u/62033?v=3","gravatar_id":"","url":"https://api.github.com/users/squaremo","html_url":"https://github.com/squaremo","followers_url":"https://api.github.com/users/squaremo/followers","following_url":"https://api.github.com/users/squaremo/following{/other_user}","gists_url":"https://api.github.com/users/squaremo/gists{/gist_id}","starred_url":"https://api.github.com/users/squaremo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/squaremo/subscriptions","organizations_url":"https://api.github.com/users/squaremo/orgs","repos_url":"https://api.github.com/users/squaremo/repos","events_url":"https://api.github.com/users/squaremo/events{/privacy}","received_events_url":"https://api.github.com/users/squaremo/received_events","type":"User","site_admin":false},"created_at":"2015-03-19T11:21:19Z","updated_at":"2015-03-19T11:21:19Z","body":"> I think solutions applied by others do not need to be valid or applicable for us, as we do not have the resources others have\r\n\r\nThe suggestion is to look for indications of what is the correct way to handle proxied responses -- whether it's OK to pass every record on. djbdns, for example, appears to do a lot of work to sanitise responses. If we aren't prepared to figure this out we have no business providing a caching name server.\r\n\r\n> Caching these resolutions comes for free\r\n\r\nOnly if you think development and maintenance effort on our part, and troubleshooting and operation on our users' part, are free."}}