)]}'
{"specs/mitaka/online-schema-upgrades.rst":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c4cf8a6be9c89dee8bdd322b08884bd0598555d3","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Online DB schema upgres"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/cinder/+spec/online-schema-upgrades"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_a7008002","line":8,"updated":"2015-11-17 21:16:36.000000000","message":"s/upgres/upgrades","commit_id":"5d74479a3ed97b2cc52676d75c376c6d38028ddd"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"977b744f725e65cb445d1e7235354d622d69fec3","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Online DB schema upgres"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/cinder/+spec/online-schema-upgrades"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_fab27993","line":8,"in_reply_to":"ba8a016a_a7008002","updated":"2015-11-18 12:17:09.000000000","message":"Done","commit_id":"5d74479a3ed97b2cc52676d75c376c6d38028ddd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c4cf8a6be9c89dee8bdd322b08884bd0598555d3","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/cinder/+spec/online-schema-upgrades"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"One our of the priorities for Mitaka cycle is making Cinder able to perform"},{"line_number":14,"context_line":"rolling upgrades. This effort requires a lot of discipline to block any changes"},{"line_number":15,"context_line":"that can break interoperability of different services versions."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_870d3c39","line":13,"updated":"2015-11-17 21:16:36.000000000","message":"One of the priorities","commit_id":"5d74479a3ed97b2cc52676d75c376c6d38028ddd"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"977b744f725e65cb445d1e7235354d622d69fec3","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/cinder/+spec/online-schema-upgrades"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"One our of the priorities for Mitaka cycle is making Cinder able to perform"},{"line_number":14,"context_line":"rolling upgrades. This effort requires a lot of discipline to block any changes"},{"line_number":15,"context_line":"that can break interoperability of different services versions."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_1ab09d89","line":13,"in_reply_to":"ba8a016a_870d3c39","updated":"2015-11-18 12:17:09.000000000","message":"Done","commit_id":"5d74479a3ed97b2cc52676d75c376c6d38028ddd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c4cf8a6be9c89dee8bdd322b08884bd0598555d3","unresolved":false,"context_lines":[{"line_number":102,"context_line":"L-\u003eM (M is reading from old place)."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Once upgrade is completed admin should use a tool that will finish data"},{"line_number":105,"context_line":"migrations. This tool will be developed in cinder-manage and will operate on"},{"line_number":106,"context_line":"chunks of CG rows (to limit performance impact). It will simply iterate and set"},{"line_number":107,"context_line":"the relationship in new place."},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_1e3191ec","line":105,"updated":"2015-11-17 21:16:36.000000000","message":"In Nova\u0027s online schema changes spec, it mentioned a few new commands.  In Cinder, will we still be running \"cinder-manage db sync\" in M, N, and O?  In M, I assume I need to add cinder/db/sqlalchemy/migrate_repo/versions/061_add_consistencygroupvolumetypemapping.py, add new table and read data from volume_type_id and write to ConsistencyGroupVolumeTypeMapping during upgrade, and remove the new table during downgrade?  Please clarify whether we still need to add migration files under migrate_repo/versions.","commit_id":"5d74479a3ed97b2cc52676d75c376c6d38028ddd"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"977b744f725e65cb445d1e7235354d622d69fec3","unresolved":false,"context_lines":[{"line_number":102,"context_line":"L-\u003eM (M is reading from old place)."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Once upgrade is completed admin should use a tool that will finish data"},{"line_number":105,"context_line":"migrations. This tool will be developed in cinder-manage and will operate on"},{"line_number":106,"context_line":"chunks of CG rows (to limit performance impact). It will simply iterate and set"},{"line_number":107,"context_line":"the relationship in new place."},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_d546664e","line":105,"in_reply_to":"ba8a016a_1e3191ec","updated":"2015-11-18 12:17:09.000000000","message":"So I\u0027m not basing on the spec you mention. The code that was implementing it was recently removed from Nova. I\u0027ve added a clarification in the next patchset.\n\nGenerally you\u0027re right:\n* We still need additive DB migration in L - that is creating the mapping table.\n* Downgrading migration should remove the mapping table. Do we actually need downgrading migrations? Deployers are certainly doing backups before running cinder-manage db_sync.\n* We need to modify the DB/OVO code to read from volume_type_id, but write to both volume_type_id and mapping table (i know, this is painful, but that\u0027s the only way to keep it live).","commit_id":"5d74479a3ed97b2cc52676d75c376c6d38028ddd"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c6006c782aff8e13e08884ec5a209d3696f9ecf6","unresolved":false,"context_lines":[{"line_number":234,"context_line":"  michal-dulko-f (dulek)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Other contributors:"},{"line_number":237,"context_line":"  Engagement from whole core team is needed to make sure the code is reviewed"},{"line_number":238,"context_line":"  also from the perspective of live upgrades."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba8a016a_c2850b5a","line":237,"updated":"2015-11-19 13:24:35.000000000","message":"It won\u0027t work without tests for a such case. So I propose to remove this item and implement tests as a first step","commit_id":"ae696437bc60da436750ee580759ee33caaabd70"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"e4b690469b59e605c3d9cc850d32a4751139cf4b","unresolved":false,"context_lines":[{"line_number":234,"context_line":"  michal-dulko-f (dulek)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Other contributors:"},{"line_number":237,"context_line":"  Engagement from whole core team is needed to make sure the code is reviewed"},{"line_number":238,"context_line":"  also from the perspective of live upgrades."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba8a016a_544b8a2b","line":237,"in_reply_to":"ba8a016a_89af267c","updated":"2015-11-23 14:19:03.000000000","message":"As discussed in IRC, I\u0027m OK with such behaviour  until grenade job will be implemented","commit_id":"ae696437bc60da436750ee580759ee33caaabd70"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"73c26dd43f1c9127b7842ca6b67ed14727d1718f","unresolved":false,"context_lines":[{"line_number":234,"context_line":"  michal-dulko-f (dulek)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Other contributors:"},{"line_number":237,"context_line":"  Engagement from whole core team is needed to make sure the code is reviewed"},{"line_number":238,"context_line":"  also from the perspective of live upgrades."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba8a016a_89af267c","line":237,"in_reply_to":"ba8a016a_c2850b5a","updated":"2015-11-19 14:35:36.000000000","message":"Tests are helpful but are not a magic bullet. Simple case - you cannot have a test that\u0027s blocking data transfer in migrations (like [1]), but you need to do it in a special way now. Complicated case - some operations involving adding indexes/constraints are actually non-live. And exact behavior may differ between databases or even versions of the same software. You cannot achieve rolling upgrades without careful reviews.\n\n[1] https://github.com/openstack/cinder/blob/master/cinder/db/sqlalchemy/migrate_repo/versions/040_add_volume_attachment.py#L59-L77","commit_id":"ae696437bc60da436750ee580759ee33caaabd70"}]}
