{"action":"created","issue":{"url":"https://api.github.com/repos/rabbitmq/rabbitmq-auth-backend-ldap/issues/4","labels_url":"https://api.github.com/repos/rabbitmq/rabbitmq-auth-backend-ldap/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/rabbitmq/rabbitmq-auth-backend-ldap/issues/4/comments","events_url":"https://api.github.com/repos/rabbitmq/rabbitmq-auth-backend-ldap/issues/4/events","html_url":"https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/pull/4","id":60135484,"number":4,"title":"Use a pool of workers which cache connections","user":{"login":"ash-lshift","id":6576021,"avatar_url":"https://avatars.githubusercontent.com/u/6576021?v=3","gravatar_id":"","url":"https://api.github.com/users/ash-lshift","html_url":"https://github.com/ash-lshift","followers_url":"https://api.github.com/users/ash-lshift/followers","following_url":"https://api.github.com/users/ash-lshift/following{/other_user}","gists_url":"https://api.github.com/users/ash-lshift/gists{/gist_id}","starred_url":"https://api.github.com/users/ash-lshift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ash-lshift/subscriptions","organizations_url":"https://api.github.com/users/ash-lshift/orgs","repos_url":"https://api.github.com/users/ash-lshift/repos","events_url":"https://api.github.com/users/ash-lshift/events{/privacy}","received_events_url":"https://api.github.com/users/ash-lshift/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rabbitmq/rabbitmq-auth-backend-ldap/labels/effort-medium","name":"effort-medium","color":"5080b8"},{"url":"https://api.github.com/repos/rabbitmq/rabbitmq-auth-backend-ldap/labels/enhancement","name":"enhancement","color":"009800"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/rabbitmq/rabbitmq-auth-backend-ldap/milestones/1","html_url":"https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/milestones/3.6.0","labels_url":"https://api.github.com/repos/rabbitmq/rabbitmq-auth-backend-ldap/milestones/1/labels","id":1009669,"number":1,"title":"3.6.0","description":null,"creator":{"login":"michaelklishin","id":1090,"avatar_url":"https://avatars.githubusercontent.com/u/1090?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelklishin","html_url":"https://github.com/michaelklishin","followers_url":"https://api.github.com/users/michaelklishin/followers","following_url":"https://api.github.com/users/michaelklishin/following{/other_user}","gists_url":"https://api.github.com/users/michaelklishin/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelklishin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelklishin/subscriptions","organizations_url":"https://api.github.com/users/michaelklishin/orgs","repos_url":"https://api.github.com/users/michaelklishin/repos","events_url":"https://api.github.com/users/michaelklishin/events{/privacy}","received_events_url":"https://api.github.com/users/michaelklishin/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":1,"state":"open","created_at":"2015-03-06T18:04:48Z","updated_at":"2015-04-11T00:55:07Z","due_on":"2015-09-16T12:00:00Z","closed_at":null},"comments":13,"created_at":"2015-03-06T17:53:19Z","updated_at":"2015-04-11T00:55:58Z","closed_at":"2015-04-11T00:55:07Z","pull_request":{"url":"https://api.github.com/repos/rabbitmq/rabbitmq-auth-backend-ldap/pulls/4","html_url":"https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/pull/4","diff_url":"https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/pull/4.diff","patch_url":"https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/pull/4.patch"},"body":"At the moment, the LDAP backend opens a connection to the LDAP server for each query.\r\n\r\n<del>This adds a pool of workers which can each hold a bit of state; queries are done on the workers and the state is used to cache the LDAP connections.</del>\r\n\r\n<del>The supervision tree ends up looking like this:\r\n![screenshot - 060315 - 17 48 20](https://cloud.githubusercontent.com/assets/6576021/6530465/090f5640-c429-11e4-85cf-d71e3779d4f1.png)</del>\r\n\r\n<del>`rabbit_auth_backend_ldap_pool_coord` is a `gen_server` which gets called by both:</del>\r\n\r\n- <del>clients (processes that want work to be done)</del>\r\n- <del>workers (processes that do the work)</del>\r\n\r\n<del>...and matches them up.</del>\r\n\r\n<del>Doing it this way (having the workers call the coordinator rather than the coordinator call the workers) makes the workers and supervisor pretty simple. The coordinator is somewhat less simple, but still fairly simple.</del>\r\n\r\nEDIT: removed the description of the now-removed worker pool."},"comment":{"url":"https://api.github.com/repos/rabbitmq/rabbitmq-auth-backend-ldap/issues/comments/91732945","html_url":"https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/pull/4#issuecomment-91732945","issue_url":"https://api.github.com/repos/rabbitmq/rabbitmq-auth-backend-ldap/issues/4","id":91732945,"user":{"login":"michaelklishin","id":1090,"avatar_url":"https://avatars.githubusercontent.com/u/1090?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelklishin","html_url":"https://github.com/michaelklishin","followers_url":"https://api.github.com/users/michaelklishin/followers","following_url":"https://api.github.com/users/michaelklishin/following{/other_user}","gists_url":"https://api.github.com/users/michaelklishin/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelklishin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelklishin/subscriptions","organizations_url":"https://api.github.com/users/michaelklishin/orgs","repos_url":"https://api.github.com/users/michaelklishin/repos","events_url":"https://api.github.com/users/michaelklishin/events{/privacy}","received_events_url":"https://api.github.com/users/michaelklishin/received_events","type":"User","site_admin":false},"created_at":"2015-04-11T00:55:58Z","updated_at":"2015-04-11T00:55:58Z","body":"@ash-lshift @alexethomas thank you for working on this!"}}