On Wed, Jul 09, 2014 at 02:04:00PM -0700, Chris Hydon wrote:
> I am part of a team developing a program that connects to a running
> OVSDB server via the jsonrpc interface and performs transactions. I
> noticed during testing that after sending a database REQUEST, if a
> table has a monitor active on the same socket it will receive the
> monitor NOTIFY before the REPLY corresponding to the REQUEST. That
> means if we send a transaction and wait until we receive a REPLY
> with matching ID, processing any monitor notifications that come in
> the interim, our local cache is going to be consistent with OVSDB
> when we're done.
> 
> Can we rely on this behaviour, or is it incidental and subject to
> change (i.e. is it conceivable that at some point in the future the
> NOTIFY will arrive after the REPLY)?

This is more or less an accidental property of the current
implementation.  It has always been true, and I don't have any plan to
change it, but I don't think that there's a commitment to this
behavior.

One property that I can solidly commit to is that any given NOTIFY
represents a complete transactional state of the database.  That is,
the database never breaks a transaction into two pieces and sends them
in separate notifications.  (Newer versions of ovsdb-server *will*
combine multiple transactions into a single notification, if the
database connection gets backlogged, but never splits them.)
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to