{"action":"created","issue":{"url":"https://api.github.com/repos/sky-uk/cqlmigrate/issues/36","repository_url":"https://api.github.com/repos/sky-uk/cqlmigrate","labels_url":"https://api.github.com/repos/sky-uk/cqlmigrate/issues/36/labels{/name}","comments_url":"https://api.github.com/repos/sky-uk/cqlmigrate/issues/36/comments","events_url":"https://api.github.com/repos/sky-uk/cqlmigrate/issues/36/events","html_url":"https://github.com/sky-uk/cqlmigrate/pull/36","id":172685054,"number":36,"title":"issue:35 make cluster health check optional","user":{"login":"lukaszgielecinski","id":21195184,"avatar_url":"https://avatars.githubusercontent.com/u/21195184?v=3","gravatar_id":"","url":"https://api.github.com/users/lukaszgielecinski","html_url":"https://github.com/lukaszgielecinski","followers_url":"https://api.github.com/users/lukaszgielecinski/followers","following_url":"https://api.github.com/users/lukaszgielecinski/following{/other_user}","gists_url":"https://api.github.com/users/lukaszgielecinski/gists{/gist_id}","starred_url":"https://api.github.com/users/lukaszgielecinski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukaszgielecinski/subscriptions","organizations_url":"https://api.github.com/users/lukaszgielecinski/orgs","repos_url":"https://api.github.com/users/lukaszgielecinski/repos","events_url":"https://api.github.com/users/lukaszgielecinski/events{/privacy}","received_events_url":"https://api.github.com/users/lukaszgielecinski/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"chbatey","id":1866779,"avatar_url":"https://avatars.githubusercontent.com/u/1866779?v=3","gravatar_id":"","url":"https://api.github.com/users/chbatey","html_url":"https://github.com/chbatey","followers_url":"https://api.github.com/users/chbatey/followers","following_url":"https://api.github.com/users/chbatey/following{/other_user}","gists_url":"https://api.github.com/users/chbatey/gists{/gist_id}","starred_url":"https://api.github.com/users/chbatey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chbatey/subscriptions","organizations_url":"https://api.github.com/users/chbatey/orgs","repos_url":"https://api.github.com/users/chbatey/repos","events_url":"https://api.github.com/users/chbatey/events{/privacy}","received_events_url":"https://api.github.com/users/chbatey/received_events","type":"User","site_admin":false},"assignees":[{"login":"chbatey","id":1866779,"avatar_url":"https://avatars.githubusercontent.com/u/1866779?v=3","gravatar_id":"","url":"https://api.github.com/users/chbatey","html_url":"https://github.com/chbatey","followers_url":"https://api.github.com/users/chbatey/followers","following_url":"https://api.github.com/users/chbatey/following{/other_user}","gists_url":"https://api.github.com/users/chbatey/gists{/gist_id}","starred_url":"https://api.github.com/users/chbatey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chbatey/subscriptions","organizations_url":"https://api.github.com/users/chbatey/orgs","repos_url":"https://api.github.com/users/chbatey/repos","events_url":"https://api.github.com/users/chbatey/events{/privacy}","received_events_url":"https://api.github.com/users/chbatey/received_events","type":"User","site_admin":false}],"milestone":null,"comments":2,"created_at":"2016-08-23T12:23:27Z","updated_at":"2016-08-23T15:28:45Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/sky-uk/cqlmigrate/pulls/36","html_url":"https://github.com/sky-uk/cqlmigrate/pull/36","diff_url":"https://github.com/sky-uk/cqlmigrate/pull/36.diff","patch_url":"https://github.com/sky-uk/cqlmigrate/pull/36.patch"},"body":"At the moment cqlmigrate requires that all nodes in all datacentres are up before it will run. We would like to make this check optional so that it will still run if a node is down so that the migration will be attempted with the supplied consistency level - which we will plan to set to LOCAL_QUORUM for read and EACH_QUORUM for write for our migrations."},"comment":{"url":"https://api.github.com/repos/sky-uk/cqlmigrate/issues/comments/241770659","html_url":"https://github.com/sky-uk/cqlmigrate/pull/36#issuecomment-241770659","issue_url":"https://api.github.com/repos/sky-uk/cqlmigrate/issues/36","id":241770659,"user":{"login":"lukaszgielecinski","id":21195184,"avatar_url":"https://avatars.githubusercontent.com/u/21195184?v=3","gravatar_id":"","url":"https://api.github.com/users/lukaszgielecinski","html_url":"https://github.com/lukaszgielecinski","followers_url":"https://api.github.com/users/lukaszgielecinski/followers","following_url":"https://api.github.com/users/lukaszgielecinski/following{/other_user}","gists_url":"https://api.github.com/users/lukaszgielecinski/gists{/gist_id}","starred_url":"https://api.github.com/users/lukaszgielecinski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukaszgielecinski/subscriptions","organizations_url":"https://api.github.com/users/lukaszgielecinski/orgs","repos_url":"https://api.github.com/users/lukaszgielecinski/repos","events_url":"https://api.github.com/users/lukaszgielecinski/events{/privacy}","received_events_url":"https://api.github.com/users/lukaszgielecinski/received_events","type":"User","site_admin":false},"created_at":"2016-08-23T15:28:45Z","updated_at":"2016-08-23T15:28:45Z","body":"Having reviewed what we've done we now understand the problem a bit better and agree that we need a new approach. Part of the problem we're seeing is that we are currenly always running cqlmigrate at startup so that if there are new changes they are applied as part of our startup logic, rather than specifically running it from the command line. For most of our startups we don't expect any changes at all so its causing use problems when nodes are down and we need to restart our processes.  \r\n\r\nWe see that consistency level makes no difference to how DDL statements are applied although for our use case we also potentially apply data updates.\r\n\r\nThe change we propose is to only require that all nodes are up if cqlmigrate needs to make any changes at all i.e. creating the keyspace, creating the schema migration table, updating schema_migration table and any application specific migrations that have not been applied (determined by querying schema_migrations table)\r\n\r\nAt the point we determine that a change is needed, the ClusterHealth.check() would be invoked and if this fails the cqlmigrate would abort."}}
{"actor":{"display_login":"lukaszgielecinski"}}