On 1/9/24 20:54, Ilya Maximets wrote: > In case the difference between 'old' and 'new' rows is readily > available, it can be used to construct added/removed datums > instead. Diffs are typically much smaller than the column > itself. This change more than doubles the performance of a > transaction replay. > > For example, with this change applied, initial read of OVSDB > file containing 136K small transactions for large OVN port > groups and address sets on my laptop takes 11 seconds vs 24 > seconds without. > > Signed-off-by: Ilya Maximets <[email protected]> > --- > lib/ovsdb-data.c | 28 ++++++++++++++++++++++++++++ > lib/ovsdb-data.h | 1 + > ovsdb/transaction.c | 15 ++++++++++++--- > 3 files changed, 41 insertions(+), 3 deletions(-) > > diff --git a/lib/ovsdb-data.c b/lib/ovsdb-data.c > index f18f74298..75cbea7cc 100644 > --- a/lib/ovsdb-data.c > +++ b/lib/ovsdb-data.c > @@ -2238,6 +2238,8 @@ ovsdb_symbol_table_insert(struct ovsdb_symbol_table > *symtab, > /* APIs for Generating and apply diffs. */ > > /* Find what needs to be added to and removed from 'old' to construct 'new'. > + * If the optional 'diff' is porvided, it can be used to speed up processing,
Typo: porvided. With that addressed: Acked-by: Dumitru Ceara <[email protected]> Regards, Dumitru _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
