{"action":"created","issue":{"url":"https://api.github.com/repos/PowerDNS/pdns/issues/4565","repository_url":"https://api.github.com/repos/PowerDNS/pdns","labels_url":"https://api.github.com/repos/PowerDNS/pdns/issues/4565/labels{/name}","comments_url":"https://api.github.com/repos/PowerDNS/pdns/issues/4565/comments","events_url":"https://api.github.com/repos/PowerDNS/pdns/issues/4565/events","html_url":"https://github.com/PowerDNS/pdns/pull/4565","id":182785413,"node_id":"MDExOlB1bGxSZXF1ZXN0ODkxOTg5ODg=","number":4565,"title":"Spread DNSSEC signature inception over the week","user":{"login":"jimmybergman","id":429413,"node_id":"MDQ6VXNlcjQyOTQxMw==","avatar_url":"https://avatars2.githubusercontent.com/u/429413?v=4","gravatar_id":"","url":"https://api.github.com/users/jimmybergman","html_url":"https://github.com/jimmybergman","followers_url":"https://api.github.com/users/jimmybergman/followers","following_url":"https://api.github.com/users/jimmybergman/following{/other_user}","gists_url":"https://api.github.com/users/jimmybergman/gists{/gist_id}","starred_url":"https://api.github.com/users/jimmybergman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jimmybergman/subscriptions","organizations_url":"https://api.github.com/users/jimmybergman/orgs","repos_url":"https://api.github.com/users/jimmybergman/repos","events_url":"https://api.github.com/users/jimmybergman/events{/privacy}","received_events_url":"https://api.github.com/users/jimmybergman/received_events","type":"User","site_admin":false},"labels":[{"id":37445974,"node_id":"MDU6TGFiZWwzNzQ0NTk3NA==","url":"https://api.github.com/repos/PowerDNS/pdns/labels/auth","name":"auth","color":"eb6420","default":false},{"id":37446008,"node_id":"MDU6TGFiZWwzNzQ0NjAwOA==","url":"https://api.github.com/repos/PowerDNS/pdns/labels/enhancement","name":"enhancement","color":"cccccc","default":true},{"id":435468782,"node_id":"MDU6TGFiZWw0MzU0Njg3ODI=","url":"https://api.github.com/repos/PowerDNS/pdns/labels/needs%20review","name":"needs review","color":"f9d0c4","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/PowerDNS/pdns/milestones/32","html_url":"https://github.com/PowerDNS/pdns/milestone/32","labels_url":"https://api.github.com/repos/PowerDNS/pdns/milestones/32/labels","id":2358680,"node_id":"MDk6TWlsZXN0b25lMjM1ODY4MA==","number":32,"title":"auth-4.2.0","description":"","creator":{"login":"rgacogne","id":1086257,"node_id":"MDQ6VXNlcjEwODYyNTc=","avatar_url":"https://avatars2.githubusercontent.com/u/1086257?v=4","gravatar_id":"","url":"https://api.github.com/users/rgacogne","html_url":"https://github.com/rgacogne","followers_url":"https://api.github.com/users/rgacogne/followers","following_url":"https://api.github.com/users/rgacogne/following{/other_user}","gists_url":"https://api.github.com/users/rgacogne/gists{/gist_id}","starred_url":"https://api.github.com/users/rgacogne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rgacogne/subscriptions","organizations_url":"https://api.github.com/users/rgacogne/orgs","repos_url":"https://api.github.com/users/rgacogne/repos","events_url":"https://api.github.com/users/rgacogne/events{/privacy}","received_events_url":"https://api.github.com/users/rgacogne/received_events","type":"User","site_admin":false},"open_issues":81,"closed_issues":80,"state":"open","created_at":"2017-03-02T12:09:38Z","updated_at":"2018-05-31T10:55:03Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2016-10-13T13:11:42Z","updated_at":"2018-05-31T10:56:32Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/PowerDNS/pdns/pulls/4565","html_url":"https://github.com/PowerDNS/pdns/pull/4565","diff_url":"https://github.com/PowerDNS/pdns/pull/4565.diff","patch_url":"https://github.com/PowerDNS/pdns/pull/4565.patch"},"body":"A client uses PowerDNS as a master for a set of external slaves at a third party anycast provider that gets the zones with AXFR.\n\nThe client has a large number of zones (hundreds of thousands).\n\nThe anycast provider has for a long time been annoyed that they have to refetch all zones close to Thursday 00:00 UTC when the signatures wraps and thus the SOA serial is incremented.\n\nThis pull requests makes the signature inception be spread over the entire week, hashed over the zone name, instead of all beeing at a Thursday 00:00 UTC. The inception is still always at most a week in the past, i.e. the main logic of signature validity is the same - the difference is that we make the actual time of week of the wrap different for different zones.\n\nIt is done by taking the first 7 bits of the hash of the zone name and using this to offset when the wrap happens by dividing the week into 127 chunks and picking one of them.\n\nSince this also affects the signature caching that uses the \"blunt by effective\" method of clearing the cache on the first cache miss after the week wrapped, the commit changes this to have 128 separate caches (each containing a maximum of max-signature-cache-entries/128 records to not start using much more memory with identical config).\n\nThis has the extra benefit of not purging the signature cache for all zones at the same time, only 1/128 of the zones every 4725 seconds - which in turn should make the performance over the week more consistent.\n"},"comment":{"url":"https://api.github.com/repos/PowerDNS/pdns/issues/comments/393493775","html_url":"https://github.com/PowerDNS/pdns/pull/4565#issuecomment-393493775","issue_url":"https://api.github.com/repos/PowerDNS/pdns/issues/4565","id":393493775,"node_id":"MDEyOklzc3VlQ29tbWVudDM5MzQ5Mzc3NQ==","user":{"login":"Habbie","id":525838,"node_id":"MDQ6VXNlcjUyNTgzOA==","avatar_url":"https://avatars1.githubusercontent.com/u/525838?v=4","gravatar_id":"","url":"https://api.github.com/users/Habbie","html_url":"https://github.com/Habbie","followers_url":"https://api.github.com/users/Habbie/followers","following_url":"https://api.github.com/users/Habbie/following{/other_user}","gists_url":"https://api.github.com/users/Habbie/gists{/gist_id}","starred_url":"https://api.github.com/users/Habbie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Habbie/subscriptions","organizations_url":"https://api.github.com/users/Habbie/orgs","repos_url":"https://api.github.com/users/Habbie/repos","events_url":"https://api.github.com/users/Habbie/events{/privacy}","received_events_url":"https://api.github.com/users/Habbie/received_events","type":"User","site_admin":false},"created_at":"2018-05-31T10:56:32Z","updated_at":"2018-05-31T10:56:32Z","author_association":"MEMBER","body":"Can you rebase so we can test & review? Apologies for the delay."}}
{"actor":{"display_login":"Habbie"}}