On 11/22/22 21:11, Mark Michelson wrote:
> For the series:
> 
> Acked-by: Mark Michelson <[email protected]>

Thanks, Mark, for the review!

Han, I know you were testing v2, I'll wait for your confirmation before
merging v3.

> 
> The lexer_str thing on patch 3 is ... interesting :)
> 

I'm open to suggestions. :)

Thanks,
Dumitru

> On 11/22/22 09:14, Dumitru Ceara wrote:
>> Sometimes network components are compute node-specific.  Sometimes such
>> components are replicated, almost identically, for multiple nodes
>> in the cluster.
>>
>> One such example is the case of Kubernetes NodePort services which
>> translate (in the ovn-kubernetes case) to Load_Balancer
>> objects being applied to each and every node's logical gateway router.
>> These load balancers are almost identical, the main difference being
>> the fact that they use different VIPs (the node's IP).
>>
>> With the current OVN load balancer design, this becomes a problem at
>> scale because the number of load balancers that must be configured is
>> N x M (N nodes times M services).
>>
>> This series proposes a new concept in OVN: virtual network component
>> templates.  The goal of the templates is to help reduce resource
>> consumption in the OVN central components in specific cases like the one
>> described above.
>>
>> To achieve that, the CMS will instead configure a "templated" load
>> balancer for every service and apply that single template record to
>> the cluster-wide load balancer group.  This template is then
>> instantiated differently on different compute nodes.  This translation
>> is controlled through per-chassis "template variables" configured by
>> the CMS in the new NB.Template_Var table.
>>
>> Patch 5/5 introduces a synthetic benchmark simulating what an OpenShift
>> router (using NodePort services) scale test would do.  The benchmark
>> allows us to compare the "standard" (no-template) configuration
>> against the configuration that uses component templates:
>>
>> +----------+-------+-------------------+--------------------+----------+---------+-----------+---------------------------+
>> |          |       |                   |     NB             |     SB  
>> |         |  northd   |            ovn-controller |
>> +----------+-------+-------------------+--------------------+----------+---------+-----------+---------------------------+
>> | Template | Nodes | NodePort Services | Size(MB) | RSS(MB) | Size(MB)
>> | RSS(MB) | loop(sec) | RSS (MB) | recompute(sec) |
>> |          |       |    (5 backends)   |          |         |         
>> |         |           |          |                |
>> +----------+-------+-------------------+----------+---------+----------+---------+-----------+----------+----------------+
>> | No       |  60   |       1000        |     25   |    116  |   118   
>> |   589   |    2.70   |    463   |      0.20      |
>> | Yes      |  60   |       1000        |      6   |     25  |     8   
>> |    46   |    0.07   |     44   |      0.20      |
>> +----------+-------+-------------------+----------+---------+----------+---------+-----------+----------+----------------+
>> | No       | 120   |       2000        |     67   |    865  |   471   
>> |  9000   |   15.60   |   1016   |      0.40      |
>> | Yes      | 120   |       2000        |     23   |     96  |    28   
>> |   225   |    0.22   |     83   |      0.40      |
>> +----------+-------+-------------------+----------+---------+----------+---------+-----------+----------+----------------+
>> | Yes      | 120   |       10000       |    118   |    440  |   136   
>> |   668   |    0.72   |    311   |      1.77      |
>> +----------+-------+-------------------+----------+---------+----------+---------+-----------+----------+-----------------
>> | Yes      | 250   |       10000       |    244   |    870  |   263   
>> |  1502   |    1.26   |    318   |      1.87      |
>> +-------------------------------------------------------------------------------------------------------------------------
>>
>> For the N=120 S=2000 case:
>> - NB size reduced by ~65%
>> - NB RSS  reduced by ~90%
>> - SB size reduced by ~95%
>> - SB RSS  reduced by ~98%
>> - ovn-northd loop time reduced by ~98%
>> - ovn-controller RSS reduced by ~92%
>>
>> Dumitru Ceara (5):
>>        lflow: Factor out the lflow reference handling code into a new
>> module.
>>        Add NB and SB Template_Var tables.
>>        controller: Add support for templated actions and matches.
>>        lb: Support using templates.
>>        tutorial: Add scripts to simulate node-port ovn-k8s services.
>>
>>
>>   TODO.rst                     |  11 +
>>   controller/lflow.c           | 242 ++++++++++++++-----
>>   controller/lflow.h           |   8 +-
>>   controller/ofctrl.c          |  13 +-
>>   controller/ofctrl.h          |   3 +-
>>   controller/ovn-controller.c  | 350 +++++++++++++++++++++++++--
>>   include/ovn/expr.h           |   4 +-
>>   include/ovn/lex.h            |  54 ++++-
>>   lib/actions.c                |   9 +-
>>   lib/expr.c                   |  18 +-
>>   lib/lb.c                     | 452 ++++++++++++++++++++++++++++++-----
>>   lib/lb.h                     |  40 +++-
>>   lib/lex.c                    |  54 +++++
>>   lib/objdep.c                 |   1 +
>>   lib/objdep.h                 |   1 +
>>   lib/ovn-util.c               |   3 -
>>   northd/en-northd.c           |   4 +
>>   northd/inc-proc-northd.c     |   8 +-
>>   northd/northd.c              | 128 ++++++----
>>   northd/northd.h              |   4 +
>>   ovn-nb.ovsschema             |  17 +-
>>   ovn-nb.xml                   |  96 +++++++-
>>   ovn-sb.ovsschema             |  12 +-
>>   ovn-sb.xml                   |  15 ++
>>   tests/ovn-controller.at      |  50 ++++
>>   tests/ovn-nbctl.at           |  23 +-
>>   tests/ovn-northd.at          |  42 ++++
>>   tests/ovn.at                 | 211 +++++++++++++++-
>>   tests/system-ovn.at          | 183 ++++++++++++++
>>   tests/test-ovn.c             |  16 +-
>>   tutorial/automake.mk         |   4 +-
>>   tutorial/ovn-lb-benchmark.py | 234 ++++++++++++++++++
>>   tutorial/ovn-lb-benchmark.sh |  31 +++
>>   utilities/ovn-nbctl.c        | 123 +++++-----
>>   utilities/ovn-sbctl.c        |   3 +
>>   utilities/ovn-trace.c        |  36 ++-
>>   36 files changed, 2198 insertions(+), 305 deletions(-)
>>   create mode 100755 tutorial/ovn-lb-benchmark.py
>>   create mode 100755 tutorial/ovn-lb-benchmark.sh
>>
> 

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

Reply via email to