Andy Zhou <az...@ovn.org> wrote on 09/01/2016 02:02:32 AM:
> 
> On Fri, Jan 8, 2016 at 8:58 AM, Liran Schour <lir...@il.ibm.com> wrote:
> Andy Zhou <az...@ovn.org> wrote on 07/01/2016 01:04:17 AM:
> >
> > I have some comments on the patch series.
> >
> > Instead of "monitor_cond_change", why not just have a more generic
> > "monitor_update" message, so we can update
> > monitor columns as well as conditions.
> >
> 
> In case of changing conditions, there is a real need for that. I was
> getting to it from the perspective of OVN however I believe there are
> others use cases for that functionality. In case of changing the 
monitored
> columns, I am not sure there is a real need for that. If there is, we 
can
> change "monitor_cond_change" to a more generic "monitor_updtae" that 
will
> be able to change the monitored columns. However that will add 
complexity
> to the code because columns unlike conditions are being held by
> ovsdb_monitor and they are common to all jsonrpc monitor session's using
> this ovsdb_monitor. Changing the columns in the middle will force us to
> move this jsonrpc monitor session to a new ovsdb_monitor with the new
> columns. In case of the conditions, they are specific per jsonrpc 
monitor
> session from the start.
> If there is a real need for changing the monitored columns I can add 
this
> functionality to the patch series. Tell me what do you think?

> Purely from protocol stand point, it would be nice to avoid 
> introducing new methods
> if we can avoid it.  If there is not an immediate need for column 
> changes, we can
> restrict our implementation to condition changes only to begin 
> with.  The implementation
> can simply nack any monitor_updates that contains non-empty 
> <monitor-request>. 
>

I still think there is a difference between the conditions and columns and 
we should not allow changing columns during session like we trying to 
allow regarding to conditions. Columns is a more static element, we know 
all the columns from the start. In my opinion if a user wants to change 
the monitored columns it should cancel the existing monitor session and 
start a new one with the new columns. It is different in case of 
conditions. It is a trivial use case to iteratively change the conditions 
to change the monitored rows. Conditions are a more dynamic issue the 
columns.
Anyhow it seems like a specification matter and we already had a review 
over the spec in the past. Maybe we should raise this question to 
re-approve the spec before I will implement it.
What do you think?

> 
> The goal is for the client to be able tell if an update message are 
> generated before or after the condition changes.
> To be precise, the monitor_id I mentioned refers to <json-value> 
> within the monitor message.
> 

Same as above I can implement this but maybe we should have a broader 
agree about it.

> In addition, it may be good to explicitly define the timing 
> requirements for monitor updates.  Is it reasonable to require
> New updates be sent only after the monitor updates messages are acked? 
> 

Will document it in the man page.

> > Should any columns within schema be allowed in condition? or only
> > the ones being monitored?
> > From protocol viewpoint, it would make sense to allow any column.
> >
> 
> Yes, any columns should be allowed in condition.
> Perfect.   It will be nice to make this clear in the ovsdb-server man 
page.
> 
> > I see that conditions are applied when generating updates.  Could
> > this lead to inconsistency when fast and slow connections receives
> > different content
> > when condition changes?
> >
> 
> During the request for conditions change, A new change list is being
> recorded holding all the rows of the table with the changes accord since
> the last flush. This change list will be sent to the client on update
> notification and only then condition evaluation will take place. I do 
not
> see an inconsistency possibility here. Do you see one?
> Sorry,  you are right, there is no race condition here. I missed 
> that conditions are evaluated for
> each Jsonrpc connection separately.  On the other hand, Would it be 
> nice for monitors with the same
> conditions not have to evaluate the same conditions multiple times?
>

After submitting the basic functionality I plan to implement a cache that 
will be indexed by condition's clauses and will reduce the need to 
evaluate conditions per row.


_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to