{"action":"created","issue":{"url":"https://api.github.com/repos/ptaoussanis/carmine/issues/148","labels_url":"https://api.github.com/repos/ptaoussanis/carmine/issues/148/labels{/name}","comments_url":"https://api.github.com/repos/ptaoussanis/carmine/issues/148/comments","events_url":"https://api.github.com/repos/ptaoussanis/carmine/issues/148/events","html_url":"https://github.com/ptaoussanis/carmine/issues/148","id":119472688,"number":148,"title":"Optimal use of Carmine with core.async","user":{"login":"jeroenvandijk","id":27645,"avatar_url":"https://avatars.githubusercontent.com/u/27645?v=3","gravatar_id":"","url":"https://api.github.com/users/jeroenvandijk","html_url":"https://github.com/jeroenvandijk","followers_url":"https://api.github.com/users/jeroenvandijk/followers","following_url":"https://api.github.com/users/jeroenvandijk/following{/other_user}","gists_url":"https://api.github.com/users/jeroenvandijk/gists{/gist_id}","starred_url":"https://api.github.com/users/jeroenvandijk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeroenvandijk/subscriptions","organizations_url":"https://api.github.com/users/jeroenvandijk/orgs","repos_url":"https://api.github.com/users/jeroenvandijk/repos","events_url":"https://api.github.com/users/jeroenvandijk/events{/privacy}","received_events_url":"https://api.github.com/users/jeroenvandijk/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-11-30T11:21:50Z","updated_at":"2015-11-30T15:51:14Z","closed_at":null,"body":"Hi there,\r\n\r\nFirst, we're using Carmine successfully in production for a while now, so thanks a lot!\r\n\r\nRecently, Redis has become the main bottleneck in our application. We think Redis pipelining over multiple requests (GET/SET KEY commands mostly) will remove this bottleneck for now. To coordinate this batching we think core.async is a good fit. One option is to use core.async's `thread` macro to do this, but I have the feeling there is also some callback process going on in Carmine's code, which would make it suitable for use in normal `go` blocks. I haven't been able to find this though. Is my intuition wrong?\r\n\r\nThanks in advance,\r\nJeroen"},"comment":{"url":"https://api.github.com/repos/ptaoussanis/carmine/issues/comments/160668462","html_url":"https://github.com/ptaoussanis/carmine/issues/148#issuecomment-160668462","issue_url":"https://api.github.com/repos/ptaoussanis/carmine/issues/148","id":160668462,"user":{"login":"ptaoussanis","id":160011,"avatar_url":"https://avatars.githubusercontent.com/u/160011?v=3","gravatar_id":"","url":"https://api.github.com/users/ptaoussanis","html_url":"https://github.com/ptaoussanis","followers_url":"https://api.github.com/users/ptaoussanis/followers","following_url":"https://api.github.com/users/ptaoussanis/following{/other_user}","gists_url":"https://api.github.com/users/ptaoussanis/gists{/gist_id}","starred_url":"https://api.github.com/users/ptaoussanis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ptaoussanis/subscriptions","organizations_url":"https://api.github.com/users/ptaoussanis/orgs","repos_url":"https://api.github.com/users/ptaoussanis/repos","events_url":"https://api.github.com/users/ptaoussanis/events{/privacy}","received_events_url":"https://api.github.com/users/ptaoussanis/received_events","type":"User","site_admin":false},"created_at":"2015-11-30T15:51:14Z","updated_at":"2015-11-30T15:51:14Z","body":"> because we are just doing GET's and SET's\r\n\r\nOkay if that's the case, then the slowlog won't be of much help. If you're already maxing out your hardware's GET/SET capacity for one Redis server, then your only real options are:\r\n1. More aggressive Redis command pipelining\r\n2. Better hardware\r\n3. Try run multiple Redis servers on the same hardware (may or may not be useful depending on the particular cause of your bottleneck)\r\n\r\nTbh really can't think of anything that core.async would be helpful with here, but it's possible I'm still misunderstanding something about your architecture or goals.\r\n\r\n> Thanks a lot for your time! I'll let you know what I find.\r\n\r\nSure, no problem- good luck! :-)\r\n\r\n"}}