cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pedro Roque Marques <pedro.r.marq...@gmail.com>
Subject Re: Contrail plugin
Date Wed, 09 Oct 2013 16:14:51 GMT
Darren,

On Oct 9, 2013, at 8:35 AM, Darren Shepherd wrote:

> Pedro,
> 
> I completely understand what you are saying as I think this is a gap
> too I would like to address.  I'm thinking of something a little
> bigger and grander than what you would need right now so that's not
> helpful, as I won't get around to doing anything for a couple months.
> I do not think EventBus is the correct approach.  That is complete
> overkill for what you need.  I hate to tell people that in order to
> run contrail they need to setup a HA instance of rabbitmq.  That is a
> lot of headache.
> 
> I was thinking maybe a small listener framework on API commands would
> suffice, but that leads me to my next concern.  I'm a stickler on
> reliability.  So currently with ACS AOP approach, or some listener
> framework, you can't achieve complete reliability.  99% of the time it
> will work, but since there is no way to tie your code to the
> transaction of the API code, there is a small window if the JVM dies,
> you won't be called.  I know this sounds nit picky, but I hate when
> there is a situation that could happen that there is no recovery from.

The contrail plugin can resynchronize itself on failure. It assumes that the API connection
between the management server and the contrail-api server can have transient failures... when
that API connection comes up the code synchronizes the databases. 2/3 of the code in the plugin
is actually to perform this task: being able to deal with transient failures.

> 
> Is it possible for the contrail plugin to on-demand register the
> account/projects?

Currently we do that via the ActionEvent mechanism but also assume the possibility of transient
failure / timing issues.

>  So only when the element/guru/whatever is called,
> you try to sync up the two systems?

The plugin re-sync when the API session is established and it also runs a periodic check between
the databases in order to detect  any synchronization failure... which typically implies a
bug on the plugin side.
The model is one where the CloudStack DB is consider the master and the Contrail API is updated
with the contents that are present in the CloudStack DB.

> 
> Darren


Mime
View raw message