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 <i.maxim...@ovn.org>
> ---
>  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 <dce...@redhat.com>

Regards,
Dumitru

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to