<div dir="ltr">I agree, many people aren't going to want to run ZK just to run Openstack. Also, I'm not real familiar with ZK, but besides distributed locking, what other features are vital workflow management? I heard leader election mentioned earlier, but we don't necessarily have to run with a leader, I feel like a simpler design doesn't have a leader but rather just generic conductors that process workflows. Even with my large scale deployment, I would prefer to not have to incur the cost of operating ZK when I have other technologies I am already familiar with (DB, memcache, etc). I'll research ZK more so that I'm not so much in the dark, but can anyone explain why a leaderless group of conductors is bad? I think what I envision is more along the lines of what John Garbutt was explaining. Can we poke holes in that before requiring ZK?<div>
<br></div><div style>-Mike Wilson</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 2, 2013 at 12:27 PM, Alex Glikson <span dir="ltr"><<a href="mailto:GLIKSON@il.ibm.com" target="_blank">GLIKSON@il.ibm.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font face="sans-serif">Right.. Maybe this was not a good suggestion.
The thought was that in small-scale deployments, requiring ZK might be
a significant management overhead. While for large-scale ones it would
be more acceptable. So, the question is how to make this work reasonably
well on small scale without ZK, and enable flexible scale-up/out by adding
ZK.</font>
<br><font face="sans-serif">Maybe assume one conductor that would
serialize (some of the) tasks and keep enough state in DB for failure recovery
if there is no ZK, and do it in a more scalable & resilient manner
if ZK is present.</font>
<br>
<br><font face="sans-serif">Alex<br>
</font>
<br>
<br><tt><font>Joshua Harlow <<a href="mailto:harlowja@yahoo-inc.com" target="_blank">harlowja@yahoo-inc.com</a>> wrote
on 02/05/2013 08:50:29 PM:<br>
<br>
> From: Joshua Harlow <<a href="mailto:harlowja@yahoo-inc.com" target="_blank">harlowja@yahoo-inc.com</a>></font></tt>
<br><tt><font><div class="im">> To: OpenStack Development Mailing List <openstack-<br></div>
> <a href="mailto:dev@lists.openstack.org" target="_blank">dev@lists.openstack.org</a>>, Alex Glikson/Haifa/IBM@IBMIL, </font></tt>
<br><tt><font>> Date: 02/05/2013 08:50 PM</font></tt>
<br><div class="im"><tt><font>> Subject: Re: [openstack-dev] Nova workflow management
update</font></tt>
<br></div><tt><font>> <br><div><div class="h5">
> So this brings up an interesting issue, the reason ZK exists or <br>
> partially exists is that something like ZK api's over DB weren't <br>
> really possible. Or that’s what I thought :-P</div></div></font></tt>
<br><div class="HOEnZb"><div class="h5"><tt><font>> <br>
> Or they weren't possible in a accurate and provable accurate manner.<br>
> So spending time creating apis that 'sorta' work with DB's but <br>
> really don't (since ZK wouldn't exist if it was possible) does seem
<br>
> sorta awkward. I thought most cloud providers are already using <br>
> zookeeper, for these exact same reasons, and deploying it now-adays
<br>
> is pretty simple… </font></tt>
<br><tt><font>> <br>
> I just worry about providing API's that really don't work correctly
<br>
> with DB's that will cause more bugs (since certain problems just <br>
> can't be done with a DB, or at least any of the DBs that I have <br>
> used, maybe db2 can, idk) that we will have to say 'oh ya we know
<br>
> that doesn't work with a DB'. But maybe that is a compromise that
we<br>
> have to make and is a evolutionary process where the amount of bugs
<br>
> that will be caused by DB impls will eventually just cause people
to<br>
> move to the more attractive ZK backend… Its also sorta concerning
<br>
> that those types of DB like bugs will be harder than heck to trace
<br>
> down, but that might be a different issue that we can resolve.</font></tt>
<br><tt><font>> <br>
> From: Alex Glikson <<a href="mailto:GLIKSON@il.ibm.com" target="_blank">GLIKSON@il.ibm.com</a>><br>
> Reply-To: OpenStack Development Mailing List <openstack-<br>
> <a href="mailto:dev@lists.openstack.org" target="_blank">dev@lists.openstack.org</a>><br>
> Date: Thursday, May 2, 2013 7:53 AM<br>
> To: OpenStack Development Mailing List <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>
> Subject: Re: [openstack-dev] Nova workflow management update</font></tt>
<br><tt><font>> <br>
> Changbin Liu <<a href="mailto:changbin.liu@gmail.com" target="_blank">changbin.liu@gmail.com</a>> wrote on 02/05/2013 05:32:05
PM:<br>
> <br>
> > Subject: Re: [openstack-dev] Nova workflow management update
<br>
> > <br>
> > Hi Joshua,  <br>
> > <br>
> > Just to share some thoughts: <br>
> [...]<br>
> <br>
> Using ZK makes a lot of sense.. The problem is that making ZooKeeper<br>
> a mandatory component to support even basic workflow management <br>
> might be an issue. So, the approach which seems to make most sense
<br>
> is to define abstract internal interfaces for the various <br>
> capabilities that ZK can provide (distributed locking, leader <br>
> election, etc), and then have one or more implementations (one of
<br>
> which might be based on ZK). This is the approach that has been <br>
> taken for the membership service (service group monitoring APIs) --
<br>
> introducing the flexibility to use ZK backend, but keeping the <br>
> default to be DB-backed.<br>
> <br>
> Regards, <br>
> Alex <br>
> <br>
> P.S. thinking about this.. would it be possible to implement ZK APIs<br>
> over a DB? with some limitations, perhaps..</font></tt></div></div><br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</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>
<br></blockquote></div><br></div>