[openstack-dev] [Mistral] Engine overview and proposal

2014-03-31 Thread Kirill Izotov
I have an idea regarding engine design i want to share with you. But first, it 
seems like we need a small overview of the current implementations.

I'm not sure how ML will react on a bunch of ASCII graphs, so here is an 
etherpad: https://etherpad.openstack.org/p/mistral-engine-overview-and-proposal

What do you think, guys, is this the way to go? 

-- 
Kirill Izotov

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


Re: [openstack-dev] [Mistral] Engine overview and proposal

2014-03-31 Thread Dmitri Zimine
I am in the full agreement with the proposed approach (risked to copy below, 
let's see if email handles your diagrams): 

* Single Engine handles multiple executions asynchronously, in non-blocking way.
* Persistence access only from API and/or Engine, Engine writes, API reads. 
* Action runes don't talk to DB - it's very simple protocol and queue is 
perfectly fine. 
* This is scalable and as fault tolerant as underlying DB and Queue. Engine 
restart is no loss of info with right persistense; ActionRunner restart  is a 
lost of Action, which can fail for 100 other reasons thus expected, and with 
the right retry policy potentially recoverable. 

I'll inline minor points in the etherpad. 



 API EngineQueueDatabaseWorkers
  |   |   | | | ||   |
--- +-+  |   | | | ||   |
 |S|  |   | | | ||   |
 |t| -- +-+  | | | ||   |
 |a| | |  - - - - - - - - ||   |
 |r| | | - - - - t - - - - - - - - -  +-+  |
 |t| -- +-+  | | | |   | |  |
--- +-+  |   | | | |   | |  |
  |   |  +-+ - r - - - - - - - - - -  +-+  |
--- +-+  |  | | - - - - - -  R|   |
 |I|  |  | | - - t - - - - - - - - -  +-+  |
 |n|  |  | | - - t - - - - - - - - - - -  +-+
 |f|  |  +-+| | |   | | | |
 |o| - - - - - - - - - - - -  |   | | | |
--- +-+  |  +-+ - r - - - - - - - - - - -+-+ | |
  |   |  | | - - - - - -  R|  | |
--- +-+  |  +-+| | ||  | |
 |S| -- +-+  | | | ||  | |
 |t| | | - - - - - - - -  ||  | |
 |o| -- +-+  | | | ||  | |
 |p|  |  +-+ - r  - - - - - - - - - - - - +-+
--- +-+  |  | | - - - - - -  R|   |
  |   |  |%|| | ||   |
  |   |  +-+| | ||   |
  |   |   | | | ||   |


On Mar 31, 2014, at 4:09 AM, Kirill Izotov enyk...@stackstorm.com wrote:

 I have an idea regarding engine design i want to share with you. But first, 
 it seems like we need a small overview of the current implementations.
 
 I'm not sure how ML will react on a bunch of ASCII graphs, so here is an 
 etherpad: 
 https://etherpad.openstack.org/p/mistral-engine-overview-and-proposal
 
 What do you think, guys, is this the way to go?
 
 -- 
 Kirill Izotov
 
 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

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