On 3/27/23 21:42, Ilya Maximets wrote:
> This patch set aims to solve the issue of database conversion for
> reasonably sized databases in high-scale OVN setups discussed here:
>   https://mail.openvswitch.org/pipermail/ovs-discuss/2022-December/052140.html
> 
> The general approach is described in this email:
>   https://mail.openvswitch.org/pipermail/ovs-discuss/2023-January/052158.html
> 
> The first patch in the set is a pure bug fix that should be backported.
> The second patch also can be considered as a bug fix, though not very
> important one.

I think both patches can be safely backported.

> 
> Patch 3 is a ground work for the database file format change.
> Patch 4 is an actual file format change that allows performance
> improvements.
> 
> Patch 5 is an additional performance improvement on top of 4.
> 
> The last patch is covering a bit different area and can generally be
> considered outside of this patch set.  It is aimed to solve the
> initial monitor request storm caused by the conversion.  Without it,
> conversion is passing, but it may take up to an hour to catch up
> all the clients, with ovsdb-server being non-responsive for tens
> of minutes, depending on a scale.
> 
> More details are in commit messages of each patch.
> 
> We may consider backporting patch 3 to branch 3.1 (earlier?) in order
> to simplify upgrades for OpenStack or ovn-kubernetes deployments.
> 

+1 for backporting patch 3.

> The patch set allows to successfully perform database conversion
> on a 250-node cluster loaded with ovn-heater's cluster-density test.
> 
> 500-node version of the test can also succeed with a small hiccup
> caused by a short RAFT disconnection due to busy-sending of 100 GB
> of initial monitor replies to all the clients.  In my testing, cluster
> recovers from it in just 30 seconds though (16 second election timer).
> There are ways to solve this as well, but the issue is outside of
> the scope for this patch set.  See the last patch for more details
> on the issue.
> 
> Before this change, conversion with either 250 or 500 nodes in this
> test is practically impossible.
> 

Great work!

Regards,
Dumitru

> 
> Ilya Maximets (6):
>   ovsdb-tool: Fix cluster-to-standalone for DB conversion records.
>   ovsdb: Check for ephemeral columns before writing a new schema.
>   ovsdb: Allow conversion records with no data in a clustered storage.
>   ovsdb: Perform conversion with no data for clustered databases.
>   ovsdb: Avoid converting database twice on an initiator.
>   ovsdb: monitor: Keep and maintain the initial change set.
> 
>  Documentation/ref/ovsdb.7.rst | 63 +++++++++++++++++++++++++++
>  NEWS                          | 10 +++++
>  ovsdb/log.c                   | 17 ++++++++
>  ovsdb/log.h                   |  3 ++
>  ovsdb/monitor.c               |  5 ++-
>  ovsdb/ovsdb-server.c          | 80 ++++++++++++++++++++++++++---------
>  ovsdb/ovsdb-tool.c            | 43 +++++++++++++++++--
>  ovsdb/ovsdb.c                 | 34 +++++++++++++++
>  ovsdb/ovsdb.h                 |  3 ++
>  ovsdb/relay.c                 | 20 +++++++--
>  ovsdb/relay.h                 |  9 +++-
>  ovsdb/storage.c               | 24 ++++++++---
>  ovsdb/storage.h               |  2 +-
>  ovsdb/transaction.c           |  8 ++--
>  ovsdb/transaction.h           |  4 +-
>  ovsdb/trigger.c               | 53 ++++++++++++++++++-----
>  ovsdb/trigger.h               |  7 +++
>  tests/ovsdb-tool.at           | 69 ++++++++++++++++++++++++++++++
>  18 files changed, 399 insertions(+), 55 deletions(-)
> 

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

Reply via email to