[ovs-dev] [PATCH ovs v3] ovsdb idl: Try committing the pending txn in ovsdb_idl_loop_run.

Numan Siddique numans at ovn.org
Wed Jun 17 04:11:48 UTC 2020


On Wed, Jun 17, 2020 at 2:49 AM Ben Pfaff <blp at ovn.org> wrote:

> On Fri, Jun 05, 2020 at 02:00:29PM +0530, numans at ovn.org wrote:
> > From: Numan Siddique <numans at ovn.org>
> >
> > The function ovsdb_idl_loop_run(), after calling ovsdb_idl_run(),
> > returns a transaction object (of type 'struct ovsdb_idl_txn').
> > The returned transaction object can be NULL if there is a pending
> > transaction (loop->committing_txn) in the idl loop object.
> >
> > Normally the clients of idl library, first call ovsdb_idl_loop_run(),
> > then do their own processing and create any idl transactions during
> > this processing and then finally call ovsdb_idl_loop_commit_and_wait().
> >
> > If ovsdb_idl_loop_run() returns NULL transaction object, then much
> > of the processing done by the client gets wasted as in the case
> > of ovn-controller.
> >
> > The client (in this case ovn-controller), can skip the processing
> > and instead call ovsdb_idl_loop_commit_and_wait() if the transaction
> > oject is NULL. But ovn-controller uses IDL tracking and it may
> > loose the tracked changes in that run.
> >
> > This patch tries to improve this scenario, by checking if the
> > pending transaction can be committed in the ovsdb_idl_loop_run()
> > itself and if the pending transaction is cleared (because of the
> > response messages from ovsdb-server due to a transaction message
> > in the previous run), ovsdb_idl_loop_run() can return a valid
> > transaction object.
> >
> > CC: Han Zhou <hzhou at ovn.org>
> > Signed-off-by: Numan Siddique <numans at ovn.org>
>
> This seems reasonable to me, so I committed it.
>

Thanks for committing it.

>
> It would have been nice to have a report on how much difference it made,
> though.


I'll keep this in mind for future patches which tries to improve
performance.

Thanks
Numan


>

_______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
>


More information about the dev mailing list