On 9/21/22 22:50, Ilya Maximets wrote:
> Currently, command to add one item into a large set generates the
> transaction with the full new content of that set plus 'wait'
> operation for the full old content of that set.  So, if we're adding
> one new load-balancer into a load-balancer group in OVN using
> ovn-nbctl, transaction will include all the existing load-balancers
> from that groups twice.
> 
> IDL supports partial updates for sets and maps.  The problem with that
> is changes are not visible to the IDL user until the transaction
> is committed.  That will cause problems for chained ctl commands.
> However, we still can optimize the very last command in the list.
> It makes sense to do, since it's a common case for manual invocations.
> 
> Updating the 'add' command as well as 'set' for a case where we're
> actually adding one new element to the map.
> 
> One downside is that we can't check the set size without examining
> it and checking for duplicates, so allowing the transaction to be
> sent and constraints to be checked on the server side in that case.
> 
> Not touching 'remove' operation for now, since removals may have
> different type, e.g. if elements from the map are removed by the key.
> The function will likely need to be fully re-written to accommodate
> all the corner cases.
> 
> Signed-off-by: Ilya Maximets <[email protected]>
> ---

I think this is OK:

Acked-by: Dumitru Ceara <[email protected]>

Thanks,
Dumitru

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to