{"action":"created","issue":{"url":"https://api.github.com/repos/killbill/killbill/issues/297","labels_url":"https://api.github.com/repos/killbill/killbill/issues/297/labels{/name}","comments_url":"https://api.github.com/repos/killbill/killbill/issues/297/comments","events_url":"https://api.github.com/repos/killbill/killbill/issues/297/events","html_url":"https://github.com/killbill/killbill/issues/297","id":62695667,"number":297,"title":"Optimize push notifications configuration caching","user":{"login":"pierre","id":51940,"avatar_url":"https://avatars.githubusercontent.com/u/51940?v=3","gravatar_id":"","url":"https://api.github.com/users/pierre","html_url":"https://github.com/pierre","followers_url":"https://api.github.com/users/pierre/followers","following_url":"https://api.github.com/users/pierre/following{/other_user}","gists_url":"https://api.github.com/users/pierre/gists{/gist_id}","starred_url":"https://api.github.com/users/pierre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pierre/subscriptions","organizations_url":"https://api.github.com/users/pierre/orgs","repos_url":"https://api.github.com/users/pierre/repos","events_url":"https://api.github.com/users/pierre/events{/privacy}","received_events_url":"https://api.github.com/users/pierre/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/killbill/killbill/labels/performance","name":"performance","color":"006b75"}],"state":"open","locked":false,"assignee":{"login":"pierre","id":51940,"avatar_url":"https://avatars.githubusercontent.com/u/51940?v=3","gravatar_id":"","url":"https://api.github.com/users/pierre","html_url":"https://github.com/pierre","followers_url":"https://api.github.com/users/pierre/followers","following_url":"https://api.github.com/users/pierre/following{/other_user}","gists_url":"https://api.github.com/users/pierre/gists{/gist_id}","starred_url":"https://api.github.com/users/pierre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pierre/subscriptions","organizations_url":"https://api.github.com/users/pierre/orgs","repos_url":"https://api.github.com/users/pierre/repos","events_url":"https://api.github.com/users/pierre/events{/privacy}","received_events_url":"https://api.github.com/users/pierre/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/killbill/killbill/milestones/8","html_url":"https://github.com/killbill/killbill/milestones/Release-0.13.6","labels_url":"https://api.github.com/repos/killbill/killbill/milestones/8/labels","id":1009935,"number":8,"title":"Release-0.13.6","description":"","creator":{"login":"pierre","id":51940,"avatar_url":"https://avatars.githubusercontent.com/u/51940?v=3","gravatar_id":"","url":"https://api.github.com/users/pierre","html_url":"https://github.com/pierre","followers_url":"https://api.github.com/users/pierre/followers","following_url":"https://api.github.com/users/pierre/following{/other_user}","gists_url":"https://api.github.com/users/pierre/gists{/gist_id}","starred_url":"https://api.github.com/users/pierre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pierre/subscriptions","organizations_url":"https://api.github.com/users/pierre/orgs","repos_url":"https://api.github.com/users/pierre/repos","events_url":"https://api.github.com/users/pierre/events{/privacy}","received_events_url":"https://api.github.com/users/pierre/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":0,"state":"open","created_at":"2015-03-06T21:05:16Z","updated_at":"2015-03-18T14:10:01Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2015-03-18T13:35:02Z","updated_at":"2015-03-18T15:31:52Z","closed_at":null,"body":"Currently, for each bus event, we're going back to the database to look-up the push notification URL. While the tenant query `TenantKVSqlDao.getTenantValueForKey` is fast (tp99 of 6ms in my testing), we end up doing dozens of seconds for nothing.\r\n\r\nNote that we already do go through Ehcache, but because we return `null`, we trigger a miss each time. Maybe `TenantKVCacheLoader` should return an empty list instead?\r\n\r\nNote that we should also optimize `PushNotificationListener` and bail earlier if there is no push notification configured (instead of preparing the post body for nothing)."},"comment":{"url":"https://api.github.com/repos/killbill/killbill/issues/comments/83022228","html_url":"https://github.com/killbill/killbill/issues/297#issuecomment-83022228","issue_url":"https://api.github.com/repos/killbill/killbill/issues/297","id":83022228,"user":{"login":"sbrossie","id":246910,"avatar_url":"https://avatars.githubusercontent.com/u/246910?v=3","gravatar_id":"","url":"https://api.github.com/users/sbrossie","html_url":"https://github.com/sbrossie","followers_url":"https://api.github.com/users/sbrossie/followers","following_url":"https://api.github.com/users/sbrossie/following{/other_user}","gists_url":"https://api.github.com/users/sbrossie/gists{/gist_id}","starred_url":"https://api.github.com/users/sbrossie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sbrossie/subscriptions","organizations_url":"https://api.github.com/users/sbrossie/orgs","repos_url":"https://api.github.com/users/sbrossie/repos","events_url":"https://api.github.com/users/sbrossie/events{/privacy}","received_events_url":"https://api.github.com/users/sbrossie/received_events","type":"User","site_admin":false},"created_at":"2015-03-18T15:31:52Z","updated_at":"2015-03-18T15:31:52Z","body":"Interesting. Isn't the {k,v} cached with the new cached i introduced for the tenant_kvs table?\r\n"}}