<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Apr 30, 2015 at 9:25 PM, Jastrzebski, Michal <span dir="ltr"><<a href="mailto:michal.jastrzebski@intel.com" target="_blank">michal.jastrzebski@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
After discussions, we've spotted possible gap in versioned objects: backporting of too-new versions in RPC.<br>
Nova does that by conductor, but not every service has something like that. I want to propose another approach:<br>
<br>
1. Milestone pinning - we need to make single reference to versions of various objects - for example heat in version 15.1 will mean stack in version 1.1 and resource in version 1.5.<br>
2. Compatibility mode - this will add flag to service --compatibility=15.1, that will mean that every outgoing RPC communication will be backported before sending to object versions bound to this milestone.<br>
<br>
With this 2 things landed we'll achieve rolling upgrade like that:<br>
1. We have N nodes in version V<br>
2. We take down 1 node and upgrade code to version V+1<br>
3. Run code in ver V+1 with --compatibility=V<br>
4. Repeat 2 and 3 until every node will have version V+1<br>
5. Restart each service without compatibility flag<br>
<br>
This approach has one big disadvantage - 2 restarts required, but should solve problem of backporting of too-new versions.<br>
Any ideas? Alternatives?<br></blockquote><div><br></div><div>AFAIK if nova gets a message that is too new, it just forwards it on (and a newer server will handle it).</div><div><br></div><div>With that this *should* work, shouldn't it?</div><div>1. rolling upgrade of heat-engine</div><div>2. db sync</div><div>3. rolling upgrade of heat-api</div><div><br></div><div>-Angus</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Regards,<br>
Michał<br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div><br></div></div>