[ovs-dev] [PATCH v4 0/3] Refactor OVSDB IDL into two layers

Ben Pfaff blp at ovn.org
Thu Jan 7 19:41:09 UTC 2021


This series still applies, and needs a final review.

On Fri, Dec 18, 2020 at 06:44:21PM -0800, Ben Pfaff wrote:
> This series breaks the IDL into two layers: the IDL proper, whose
> interface to its client is unchanged, and a low-level library called
> the OVSDB "client synchronization" (CS) library.  There are two
> reasons for this change.  First, the IDL is big and complicated and
> I think that this change factors out some of that complication into
> a simpler lower layer.  Second, the OVN northd implementation based
> on DDlog can benefit from the client synchronization library even
> though it would actually be made increasingly complicated by the IDL.
> 
> v1->v2:
>   - Add a few patches with trivial bug fixes and improvements to idl.
>   - Make ovsdb-cs data structures exactly reproduce the ordering
>     that the idl previously used, so that the behavior is exactly
>     the same.  This fixes the behavior in the ovn-controller.  I am
>     pretty convinced that there is a bug in the idl regarding change
>     tracking, but these patches will not make it better or worse.
>     There are lots of idl patches flying around on the mailing list
>     currently; maybe one of those fixes the real problem.
> 
> v2->v3:
>   - Rebase and integrate upstream changes.
>   - Make change_seqno and conditional monitoring behavior reproduce
>     the same behavior as the existing idl.  This fixes a test failure
>     I was seeing after (but not before) rebase.
>   - I don't see any failures in upstream ovn with this applied.
>   - New patch "test-ovsdb: Log steps in idl test." that I found useful
>     in debugging.
> 
> v3->v4:
>   - Apply (and drop) several reviewed patches.
>   - Log more and fix minor nits in "test-ovsdb: Log steps in idl test.".
>   - Fix memory leak in ovsdb_cs_db_init() and in ovsdb_cs_send_transaction()
>     in "ovsdb-idl: Break into two layers."
> 
> Ben Pfaff (3):
>   test-ovsdb: Log steps in idl test.
>   ovsdb-cs: New module that factors out code from ovsdb-idl.
>   ovsdb-idl: Break into two layers.
> 
>  lib/automake.mk          |    2 +
>  lib/ovsdb-cs.c           | 2281 ++++++++++++++++++++++++++++++++++++
>  lib/ovsdb-cs.h           |  205 ++++
>  lib/ovsdb-idl-provider.h |    8 +-
>  lib/ovsdb-idl.c          | 2365 +++++++-------------------------------
>  tests/test-ovsdb.c       |  266 ++---
>  6 files changed, 3049 insertions(+), 2078 deletions(-)
>  create mode 100644 lib/ovsdb-cs.c
>  create mode 100644 lib/ovsdb-cs.h
> 
> -- 
> 2.28.0
> 


More information about the dev mailing list