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