Bug 1957320

Summary: [RFE] Active/Passive replication should be done with update2 and not update
Product: Red Hat Enterprise Linux Fast Datapath Reporter: Terry Wilson <twilson>
Component: ovsdbAssignee: OVS RFE <ovs-rfe>
Status: CLOSED EOL QA Contact: liting <tli>
Severity: high Docs Contact:
Priority: medium    
Version: FDP 21.CCC: ctrautma, echaudro, i.maximets, jhsiao, mmichels, ralongi
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-10-08 17:49:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Terry Wilson 2021-05-05 15:22:31 UTC
Description of problem:

When using active/passive replication, ovsdb/replication.c uses "update" notifications, which means that the full change is sent across the wire instead of just the diffs. This is especially noticeable in the case of the "drop" port group (RFE for feature to allow removal here https://bugzilla.redhat.com/show_bug.cgi?id=1947807) and with Logical_Switches that have a lot of ports. In the former case, I've see 17000 entries in that port group that are sent during every single port create.

Given the load we see on ovsdb-server, it seems like not having to iterate all of those objects to create/process those notifications would be helpful.

Version-Release number of selected component (if applicable):
FDP 21.C

How reproducible:
100%

Steps to Reproduce:
1. Set up active passive replication
2. Watch the update notifications between servers
3.

Actual results:
"update" notifications are sent

Expected results:
"update2" notifications are sent


Additional info:

Comment 1 Ilya Maximets 2021-05-05 16:02:23 UTC
It's not a bug.  Replication uses simple 'monitor' method and not a 'monitor_cond'
therefore receives 'update' and not 'update2'.  To change this, support for
'monitor_cond' method should be introduced to replication.c.
This is a good change to have.  Will be useful also for 2-Tier setup.

For the implementation we might consider re-writing replication.c on top of
ovsdb-cs module to avoid code duplication, but I'm not sure about that.

Comment 2 ovs-bot 2024-10-08 17:49:14 UTC
This bug did not meet the criteria for automatic migration and is being closed.
If the issue remains, please open a new ticket in https://issues.redhat.com/browse/FDP