Using "monitor" for _Server means that every bump to Database.index sends a large "update" notification containing a lot of data including the Database schema text. This updates the Python IDL to use "monitor_cond" as the C IDL does.
There is a difference in logic between the two IDL implementations. Python IDL's Idl takes a SchemaHelper object as a required object for instantiation, while the C IDL will transition through calling "get_schema" on first the _Server DB and data DB if that errors out. Although the Python version calls get_schema for _Server, it has never called it on data, presumably because the schema is passed at instantiation. This implementation instead of adding support for getting and using the schema via "get_schema" on the data db, transitions from an error retreiving the schema from _Server to directly monitoring the data DB (since we already were passed a schema at instantiation). It would be good to, in the future, add support for not having to specify the schema at Idl creation, but that kind of API change should be done on its own (hopefully in a backward-compatible way). Terry Wilson (2): ovsdb-idl: Add C IDL test for "monitor" fallback python: ovsdb-idl: Use monitor_cond for _Server DB python/ovs/db/idl.py | 28 ++++++++++++++-------------- tests/ovsdb-idl.at | 16 +++++++++++++++- 2 files changed, 29 insertions(+), 15 deletions(-) -- 2.34.3 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev