On 10/21/2016 11:57 PM, Zane Bitter wrote: > On 21/10/16 08:37, Michał Dulko wrote: >>> > Finally, a note about Oslo versioned objects: they don't really help >>> > us. They work great for nova where there is just nova-conductor >>> > reading and writing to the DB, but we have multiple heat-engines >>> doing >>> > that that need to be restarted in a rolling manner. See the >>> references >>> > below for greater detail. >> They do help in case you're changing RPC arguments *content*. In >> particular they make it easier to modify schema of dict-like structures >> sent over RPC. > > This is technically true, but there's a much simpler solution to that > which we already have: just don't change the content in > non-backward-compatible ways (i.e. you can add stuff but not > change/rename/remove stuff). > > We have to do that anyway, because this is effectively our user > interface, so if we didn't we'd break clients. For that reason, we're > already much more strict about this than required to avoid this > problem in the RPC layer.
Sure, it's about compatibility, so if nothing ever changes, then you're fine. > > As Crag said, the problem we do have is when we add flags/arguments to > a message, how can we ensure that older versions of the engine still > interpret it correctly. In Cinder we're assuming you cannot send a message containing some new flags/arguments if the environment is running services in various versions. It's better to fail fast and possibly with a message to the user, than to do something he haven't asked for. Thanks, Michal __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev