I checked the current python OVSDB IDL implementation, and found out that
the way local cache is handled during transaction commit is like this, as
commented in idl.py:

        Committing a transaction rolls back all of the changes that it made
to
        the IDL's copy of the database.  If the transaction commits
        successfully, then the database server will send an update and,
thus,
        the IDL will be updated with the committed changes."""

If a transaction commit is successfully returned, the client will always
see the new data from local cache. It seems this behavior is guaranteed by
the order of transaction commit response and update notification for the
same commit: the update notification always come BEFORE the response of the
same commit. I didn't check ovsdb server code to verify. Please correct me
if I am wrong.

If I am right, then I didn't see this order being specified in RFC 7047.
Would this order be always guaranteed in ovsdb-server implementation? Is it
better to be specified in RFC?

If I am wrong, could someone educate me how does the python IDL
implementation guarantee new data is immediately seen after commit
successfully returns?

Personally I like this ordering because it simplifies IDL client cache
implementation.

Thanks,
Han
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to