Bug 2006839
| Summary: | [RFE] ovsdb-server: Deduplicate ovsdb_atom strings | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux Fast Datapath | Reporter: | Ilya Maximets <i.maximets> | |
| Component: | ovsdb2.16 | Assignee: | Ilya Maximets <i.maximets> | |
| Status: | CLOSED ERRATA | QA Contact: | Rick Alongi <ralongi> | |
| Severity: | high | Docs Contact: | ||
| Priority: | high | |||
| Version: | RHEL 8.0 | CC: | ctrautma, jhsiao, kfida, ralongi | |
| Target Milestone: | --- | Keywords: | FutureFeature | |
| Target Release: | FDP 21.I | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | openvswitch2.16-2.16.0-15.el8fdp | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 2006845 (view as bug list) | Environment: | ||
| Last Closed: | 2022-01-10 16:50:58 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: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 2006845 | |||
|
Description
Ilya Maximets
2021-09-22 14:03:03 UTC
Patch accepted in upstream: https://github.com/openvswitch/ovs/commit/429b114c5aadee24ccfb16ad7d824f45cdcea75a * Wed Sep 29 2021 Dumitru Ceara <dceara> - 2.16.0-15
- ovsdb-data: Deduplicate string atoms. [RH git: 24e7d1140e] (#2006839)
commit 429b114c5aadee24ccfb16ad7d824f45cdcea75a
Author: Ilya Maximets <i.maximets>
Date: Wed Sep 22 09:28:50 2021 +0200
ovsdb-server spends a lot of time cloning atoms for various reasons,
e.g. to create a diff of two rows or to clone a row to the transaction.
All atoms, except for strings, contains a simple value that could be
copied in efficient way, but duplicating strings every time has a
significant performance impact.
Introducing a new reference-counted structure 'ovsdb_atom_string'
that allows to not copy strings every time, but just increase a
reference counter.
This change allows to increase transaction throughput in benchmarks
up to 2x for standalone databases and 3x for clustered databases, i.e.
number of transactions that ovsdb-server can handle per second.
It also noticeably reduces memory consumption of ovsdb-server.
Next step will be to consolidate this structure with json strings,
so we will not need to duplicate strings while converting database
objects to json and back.
Signed-off-by: Ilya Maximets <i.maximets>
Acked-by: Dumitru Ceara <dceara>
Acked-by: Mark D. Gray <mark.d.gray>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2006839
Signed-off-by: Dumitru Ceara <dceara>
Per email with Dev (i.maximets), no specific test case is feasible for this change; general testing performed during the release is sufficient for regression testing. A full test suite was run for FDP 21.J using openvswitch2.16-2.16.0-32.el8fdp. Marking as Verified. SanityOnly info:
[ralongi@ralongi openvswitch2.16]$ git log --oneline --grep=2006839
24e7d1140e (tag: openvswitch2.16-2.16.0-15.el8fdp) ovsdb-data: Deduplicate string atoms.
[ralongi@ralongi openvswitch2.16]$ git show 24e7d1140e
commit 24e7d1140e4b255e0691beec765847725a3b8ffb (tag: openvswitch2.16-2.16.0-15.el8fdp)
Author: Dumitru Ceara <dceara>
Date: Wed Sep 29 13:13:10 2021 +0200
ovsdb-data: Deduplicate string atoms.
commit 429b114c5aadee24ccfb16ad7d824f45cdcea75a
Author: Ilya Maximets <i.maximets>
Date: Wed Sep 22 09:28:50 2021 +0200
ovsdb-server spends a lot of time cloning atoms for various reasons,
e.g. to create a diff of two rows or to clone a row to the transaction.
All atoms, except for strings, contains a simple value that could be
copied in efficient way, but duplicating strings every time has a
significant performance impact.
Introducing a new reference-counted structure 'ovsdb_atom_string'
that allows to not copy strings every time, but just increase a
reference counter.
This change allows to increase transaction throughput in benchmarks
up to 2x for standalone databases and 3x for clustered databases, i.e.
number of transactions that ovsdb-server can handle per second.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (openvswitch2.16 bug fix update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2022:0053 |