<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Nov 10, 2014, at 4:30 PM, Angus Salkeld <<a href="mailto:asalkeld@mirantis.com" class="">asalkeld@mirantis.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class=""><div class=""><div class="">Hi all<br class=""><br class=""></div>I just wanted to make sure we are all under the same understanding of the outcomes and what the next steps for the versioned objects session are.<br class=""><br class=""></div>1. There is a lot of interest in other projects using oslo versioned objects and it is worth progressing with this (<a href="https://review.openstack.org/#/c/127532" class="">https://review.openstack.org/#/c/127532</a>).<br class="">2. <span class=""> jpipes and jharlow suggested experimenting/investigating google protocol buffers (</span><span class=""><a href="https://developers.google.com/protocol-buffers/%29" class="">https://developers.google.com/protocol-buffers/)</a></span><span class=""> instead of</span><span class="">
the custom serialization and version code. This *could* be an
implementation detail, but also could make the adoption by nova more complicated (as it has a different mechanism in place).<br class=""></span></div><span class="">3. vish brought up one draw back of versioned objects: the difficulty in cherry picking commits for stable branches - Is this a show stopper?.<br class=""></span><div class=""><div class=""><div class=""><div class=""><br class=""></div></div></div></div></div></div></blockquote><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><div class=""><div class=""><div class="">Next steps:<br class=""></div><div class="">- Jay suggested making a second spec that would lay out what it would look like if we used google protocol buffers.<br class=""></div><div class=""></div><div class="">- Dan: do you need some help in making this happen, do we need some volunteers?<br class=""></div><div class="">- Are there any other concrete things we can do to get this usable by other projects in a timely manner?<br class=""></div><div class=""><br class=""></div><div class="">Regards<br class="">Angus<br class=""></div></div></div></div></div></div></blockquote></div><br class=""><div class="">I am personally very interested in seeing what the spec for adopting protobuf ends up looking like in comparison to the current Nova implementation. The main reason is that there is already a fairly well driven mechanism in place to utilize the objects across different languages. This would allow for better consumption of any/all notifications from outside of the OpenStack ecosystem as well as cases (such as tokens) that might legitimately need to evolve the format in the longer-term without breaking *everything*. I also think that it would largely be possible to provide a way to wrap the current Nova object model into protobuf as a conversion/transition plan.</div><div class=""><br class=""></div><div class="">This doesn’t discount that protobuf may in-fact not be a good fit for our use cases and the Nova model does have some reasonable drive-time on it. It very well might be a good solution for all the projects.</div><div class=""><br class=""></div><div class="">Regarding stable patches, largely if the object is versioned differently it would be more difficult to back port a change. I, however, am going to hazard a guess that most of the issues are not directly revolving around the serialization/deserialization code (nor the data directly driven by it) meaning that the incremental difference in back port headaches would be relatively minor. In short, I think breaking the hard-tie between the underlying storage model and the in-memory/serialization mechanism would be good for all of the projects.</div><div class=""><br class=""></div><div class="">Jay/Dan/Angus, please let me know if I can be any help with exploring protobuf.</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Morgan</div></body></html>