{"action":"created","issue":{"url":"https://api.github.com/repos/gluster/glusterfs/issues/363","repository_url":"https://api.github.com/repos/gluster/glusterfs","labels_url":"https://api.github.com/repos/gluster/glusterfs/issues/363/labels{/name}","comments_url":"https://api.github.com/repos/gluster/glusterfs/issues/363/comments","events_url":"https://api.github.com/repos/gluster/glusterfs/issues/363/events","html_url":"https://github.com/gluster/glusterfs/issues/363","id":276833757,"number":363,"title":"Adaptive read replica selection based on queue length","user":{"login":"manojtpillai","id":29243998,"avatar_url":"https://avatars2.githubusercontent.com/u/29243998?v=4","gravatar_id":"","url":"https://api.github.com/users/manojtpillai","html_url":"https://github.com/manojtpillai","followers_url":"https://api.github.com/users/manojtpillai/followers","following_url":"https://api.github.com/users/manojtpillai/following{/other_user}","gists_url":"https://api.github.com/users/manojtpillai/gists{/gist_id}","starred_url":"https://api.github.com/users/manojtpillai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/manojtpillai/subscriptions","organizations_url":"https://api.github.com/users/manojtpillai/orgs","repos_url":"https://api.github.com/users/manojtpillai/repos","events_url":"https://api.github.com/users/manojtpillai/events{/privacy}","received_events_url":"https://api.github.com/users/manojtpillai/received_events","type":"User","site_admin":false},"labels":[{"id":486943741,"url":"https://api.github.com/repos/gluster/glusterfs/labels/CB:%20afr","name":"CB: afr","color":"006b75","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":16,"created_at":"2017-11-26T15:41:42Z","updated_at":"2018-03-12T06:24:29Z","closed_at":null,"author_association":"NONE","body":"Current AFR read replica selection based on options like cluster.choose-local and cluster.read-hash-mode can sometimes lead to performance that is much worse than optimal. These options don't adapt to changing load and service times on the replicas. It would be good have the capability to distribute requests to replicas with a proportionally higher share going to faster ones. Such a capability would also hopefully reduce the need for manual tuning in most situations.\r\n\r\nOne approach, that is inspired by an option available in dm-multipath (see queue-length option for path_selector tunable parameter in dm-multipath documentation), is to select the replica based on shortest queue-length (smallest number of outstanding requests to the replica).\r\n\r\nFor random I/O workloads this approach would probably work quite well. In which case, it can be part of the tuning profile for use-cases primarily focused on random-io, e.g. gluster-block.\r\n\r\nThe challenge is probably to factor in brick-side caching effects into dynamic replica selection. For sequential reads, where caching and read-ahead at the brick is often hugely beneficial, we might need additional complexity to make this work well or may even have to fall back to current methods.\r\n"},"comment":{"url":"https://api.github.com/repos/gluster/glusterfs/issues/comments/372204976","html_url":"https://github.com/gluster/glusterfs/issues/363#issuecomment-372204976","issue_url":"https://api.github.com/repos/gluster/glusterfs/issues/363","id":372204976,"user":{"login":"gluster-ant","id":19686786,"avatar_url":"https://avatars1.githubusercontent.com/u/19686786?v=4","gravatar_id":"","url":"https://api.github.com/users/gluster-ant","html_url":"https://github.com/gluster-ant","followers_url":"https://api.github.com/users/gluster-ant/followers","following_url":"https://api.github.com/users/gluster-ant/following{/other_user}","gists_url":"https://api.github.com/users/gluster-ant/gists{/gist_id}","starred_url":"https://api.github.com/users/gluster-ant/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gluster-ant/subscriptions","organizations_url":"https://api.github.com/users/gluster-ant/orgs","repos_url":"https://api.github.com/users/gluster-ant/repos","events_url":"https://api.github.com/users/gluster-ant/events{/privacy}","received_events_url":"https://api.github.com/users/gluster-ant/received_events","type":"User","site_admin":false},"created_at":"2018-03-12T06:24:29Z","updated_at":"2018-03-12T06:24:29Z","author_association":"NONE","body":"A patch https://review.gluster.org/19698 has been posted that references this issue.\n  Commit message: afr: add new value for read-hash-mode volume option"}}
{"actor":{"display_login":"gluster-ant"}}