On 03 Apr 2014, at 12:49, Kirill Izotov <enyk...@stackstorm.com> wrote:

> Actually, the idea to make the concept more expandable is exactly my point =) 
> Mistral's Workbook is roughly the same as TaskFlow Flow and have nothing to 
> do with TaskFlow LogBook. The only major difference in case of Workbook is 
> that we have to store it after it was created using API or DSL. I very much 
> like the idea to inherit form basic Flow and add serialization and additional 
> metadata on top of it, but the concept of retrying within a Workbook\Flow is 
> not exactly what we have in mind. Instead of repeating the Flow, we are 
> repeating the Task (which has the same differences between Mistral and 
> TaskFlow as Workbook has) and to use the trick you have proposed we would 
> have to translate the Task into a Flow. How much sense does it make in 
> respect to expandability and generality?

Just one clarification. Workbook is a wider abstraction. Along with workflow 
itself it includes action definitions, triggers (even though it’s still 
controversial even within the team itself). Potentially it may include 
something else. So having a workbook in TaskFlow with strictly defined 
behaviour is not a good decision.

>> Ya, I think u are hitting this issue, if a worker acks a message saying its 
>> 'working on it' then the worker dies, this is where a message queue ack 
>> model won't really help in solving, the engine will believe that the worker 
>> is working on it (since hey the worker acked it) but the engine will really 
>> have no idea that the worker is actually dead. Of course timeouts can be 
>> used to get around this but imho that’s really un-elegant when something 
>> like zookeeper (or similar) can be used to be notified of this worker death 
>> immediately; which means no timeouts are needed at all, and this separate 
>> process or engine can be notified of this death (and resolve it 
>> immediately). I don't believe this kind of 'liveness' connection is possible 
>> with rabbit (we also must think of other things besides rabbit, like qpid 
>> and such) but I might be wrong, I thought once a worker acks a message then 
>> whoever receives that ack will believe the work has started and will be 
>> finished someday in the future (aka, no connection that the work is actually 
>> in progress). Anyways, we can discuss this more since I think its a common 
>> confusion point :-)
> As far as i understand, what Renat is proposing here is not to acknowledge 
> the message until it was successfully executed. I'm not sure how exactly 
> RabbitMQ will react in that case, though you are right in the idea that we 
> must investigate the other solutions more carefully.

Joshua, I think your understanding of how it works is not exactly correct (or 
my understanding actually :)). Let’s talk in IRC, we’ll explain it.

I’d suggest we talk in IRC on Thursday at 8.30 pm (Friday 10.30 in our 
timezone).

Renat Akhmerov
@ Mirantis Inc.

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to