{"action":"created","issue":{"url":"https://api.github.com/repos/openvstorage/volumedriver/issues/179","repository_url":"https://api.github.com/repos/openvstorage/volumedriver","labels_url":"https://api.github.com/repos/openvstorage/volumedriver/issues/179/labels{/name}","comments_url":"https://api.github.com/repos/openvstorage/volumedriver/issues/179/comments","events_url":"https://api.github.com/repos/openvstorage/volumedriver/issues/179/events","html_url":"https://github.com/openvstorage/volumedriver/issues/179","id":189482283,"number":179,"title":"Edge HA needs locality knowledge in multi-dc vpool setups","user":{"login":"saelbrec","id":12733895,"avatar_url":"https://avatars.githubusercontent.com/u/12733895?v=3","gravatar_id":"","url":"https://api.github.com/users/saelbrec","html_url":"https://github.com/saelbrec","followers_url":"https://api.github.com/users/saelbrec/followers","following_url":"https://api.github.com/users/saelbrec/following{/other_user}","gists_url":"https://api.github.com/users/saelbrec/gists{/gist_id}","starred_url":"https://api.github.com/users/saelbrec/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saelbrec/subscriptions","organizations_url":"https://api.github.com/users/saelbrec/orgs","repos_url":"https://api.github.com/users/saelbrec/repos","events_url":"https://api.github.com/users/saelbrec/events{/privacy}","received_events_url":"https://api.github.com/users/saelbrec/received_events","type":"User","site_admin":false},"labels":[{"id":361398318,"url":"https://api.github.com/repos/openvstorage/volumedriver/labels/priority_urgent","name":"priority_urgent","color":"d93f0b","default":false},{"id":354273094,"url":"https://api.github.com/repos/openvstorage/volumedriver/labels/state_inprogress","name":"state_inprogress","color":"c2e0c6","default":false},{"id":436920055,"url":"https://api.github.com/repos/openvstorage/volumedriver/labels/type_enhancement","name":"type_enhancement","color":"fef2c0","default":false}],"state":"open","locked":false,"assignee":{"login":"redlicha","id":405850,"avatar_url":"https://avatars.githubusercontent.com/u/405850?v=3","gravatar_id":"","url":"https://api.github.com/users/redlicha","html_url":"https://github.com/redlicha","followers_url":"https://api.github.com/users/redlicha/followers","following_url":"https://api.github.com/users/redlicha/following{/other_user}","gists_url":"https://api.github.com/users/redlicha/gists{/gist_id}","starred_url":"https://api.github.com/users/redlicha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/redlicha/subscriptions","organizations_url":"https://api.github.com/users/redlicha/orgs","repos_url":"https://api.github.com/users/redlicha/repos","events_url":"https://api.github.com/users/redlicha/events{/privacy}","received_events_url":"https://api.github.com/users/redlicha/received_events","type":"User","site_admin":false},"assignees":[{"login":"redlicha","id":405850,"avatar_url":"https://avatars.githubusercontent.com/u/405850?v=3","gravatar_id":"","url":"https://api.github.com/users/redlicha","html_url":"https://github.com/redlicha","followers_url":"https://api.github.com/users/redlicha/followers","following_url":"https://api.github.com/users/redlicha/following{/other_user}","gists_url":"https://api.github.com/users/redlicha/gists{/gist_id}","starred_url":"https://api.github.com/users/redlicha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/redlicha/subscriptions","organizations_url":"https://api.github.com/users/redlicha/orgs","repos_url":"https://api.github.com/users/redlicha/repos","events_url":"https://api.github.com/users/redlicha/events{/privacy}","received_events_url":"https://api.github.com/users/redlicha/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/openvstorage/volumedriver/milestones/6","html_url":"https://github.com/openvstorage/volumedriver/milestones/Fargo%20RC2","labels_url":"https://api.github.com/repos/openvstorage/volumedriver/milestones/6/labels","id":2094209,"number":6,"title":"Fargo RC2","description":"","creator":{"login":"wimpers","id":8392927,"avatar_url":"https://avatars.githubusercontent.com/u/8392927?v=3","gravatar_id":"","url":"https://api.github.com/users/wimpers","html_url":"https://github.com/wimpers","followers_url":"https://api.github.com/users/wimpers/followers","following_url":"https://api.github.com/users/wimpers/following{/other_user}","gists_url":"https://api.github.com/users/wimpers/gists{/gist_id}","starred_url":"https://api.github.com/users/wimpers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wimpers/subscriptions","organizations_url":"https://api.github.com/users/wimpers/orgs","repos_url":"https://api.github.com/users/wimpers/repos","events_url":"https://api.github.com/users/wimpers/events{/privacy}","received_events_url":"https://api.github.com/users/wimpers/received_events","type":"User","site_admin":false},"open_issues":13,"closed_issues":7,"state":"open","created_at":"2016-10-26T07:39:15Z","updated_at":"2016-11-25T07:32:23Z","due_on":"2016-12-16T00:00:00Z","closed_at":null},"comments":7,"created_at":"2016-11-15T19:23:26Z","updated_at":"2016-11-25T08:51:22Z","closed_at":null,"body":"In a multi datacenter cluster setup where the vpool stretches across different datacenters the Edge HA random selection of a new volumedriver connection endpoint in case of failure can result in cross datacenter connections. This is sub-awesome and in most cases -depending on the network latency- not the desired behaviour as it can possibly have a big impact on performance.\r\nIn case Edge/volumedriver have locality knowledge they can take better decisions on their failover connection endpoints. Optionally it might even be desirable to let the user configure if cross datacenter failover should be allowed after all local possibilities are exhausted."},"comment":{"url":"https://api.github.com/repos/openvstorage/volumedriver/issues/comments/262908139","html_url":"https://github.com/openvstorage/volumedriver/issues/179#issuecomment-262908139","issue_url":"https://api.github.com/repos/openvstorage/volumedriver/issues/179","id":262908139,"user":{"login":"redlicha","id":405850,"avatar_url":"https://avatars.githubusercontent.com/u/405850?v=3","gravatar_id":"","url":"https://api.github.com/users/redlicha","html_url":"https://github.com/redlicha","followers_url":"https://api.github.com/users/redlicha/followers","following_url":"https://api.github.com/users/redlicha/following{/other_user}","gists_url":"https://api.github.com/users/redlicha/gists{/gist_id}","starred_url":"https://api.github.com/users/redlicha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/redlicha/subscriptions","organizations_url":"https://api.github.com/users/redlicha/orgs","repos_url":"https://api.github.com/users/redlicha/repos","events_url":"https://api.github.com/users/redlicha/events{/privacy}","received_events_url":"https://api.github.com/users/redlicha/received_events","type":"User","site_admin":false},"created_at":"2016-11-25T08:51:22Z","updated_at":"2016-11-25T08:51:22Z","body":"@khenderick: tentatively (PR will follow soon):\r\n* the `Distance` will be represented by a `uint32_t` with the following semantics: `0` = very close, `2**32-1` = very far away\r\n* the neighbours of a node are represented with a dict `NodeId -> Distance` (`NodeId = str`) instead of a list (rules out duplicate nodes), if a node is absent there this indicates that there is no connection to it / it's infinitely far away\r\n* the `ClusterNodeConfig` ctor actually takes an *optional* dict: `None` maintains the current behaviour, i.e. all nodes are assumed to be reachable with a cost of 0, `{}` -> all nodes are infinitely far away\r\n* filtering: with the above outlined semantics, the `max_neighbour_distance` will use a default value of `2**32 - 1`\r\n* modifications to the topology indeed have to be done with `set_node_configs`, i.e. the complete cluster config always needs to be specified in one go (and volumedrivers need to be notified if cluster members are added / removed via `update_cluster_node_configs`). So no change from currnet behaviour there.\r\n\r\nFinal interface description will end up in the PR."}}
{"actor":{"display_login":"redlicha"}}