Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug 2014332: [4.8z] Scale fixes for pods/exgws #798

Merged
merged 5 commits into from
Nov 5, 2021

Commits on Oct 15, 2021

  1. CARRY: remove locking around address sets

    Address set operations like add and remove are idempotent. We can get
    away with only RLocking there, which will greatly improve pod add
    performance. There is also no need to store the ips in the addressSet
    struct.
    
    Signed-off-by: Tim Rozet <trozet@redhat.com>
    trozet committed Oct 15, 2021
    Configuration menu
    Copy the full SHA
    4abbabc View commit details
    Browse the repository at this point in the history
  2. addGWRoutesForPod: don't fail if the routes are already added

    This happens when the pod was already created but a new event of the pod
    is generated. I managed to see it after a ovnkube-master manual restart.
    
    Signed-off-by: Federico Paolinelli <fpaoline@redhat.com>
    (cherry picked from commit 7828dff)
    fedepaol authored and trozet committed Oct 15, 2021
    Configuration menu
    Copy the full SHA
    65a2557 View commit details
    Browse the repository at this point in the history
  3. Delete per pod nat when adding gw routes to namespace

    When a gw pod gets the external gateway annotation, it adds the specific
    routes to the external gateway for existing pods, but it does not remove
    the SNAT that was added when the pod was created.
    
    Signed-off-by: Federico Paolinelli <fpaoline@redhat.com>
    (cherry picked from commit 8783628)
    fedepaol authored and trozet committed Oct 15, 2021
    Configuration menu
    Copy the full SHA
    22389c8 View commit details
    Browse the repository at this point in the history
  4. Reduce nsInfo contention on external gateway ops

    Previously nsInfo was holding not only a map of gateways per namespace,
    but all of the routes per pod in an external gateway enabled namespace.
    This means that during all external gateway route adds/deletes nsInfo
    would need to be locked. This creates heavy contention in cluster
    specifically using external gateway functionality.
    
    This breaks out the pod routes portion into its own cache, which has
    individual locks on a per pod basis. This allows exgw routes to be added
    and removed without needing nsInfo lock. Additionally, since locks are
    on a per pod basis, it provides less overall contention across the
    cache.
    
    Signed-off-by: Tim Rozet <trozet@redhat.com>
    (cherry picked from commit c6db422)
    trozet committed Oct 15, 2021
    Configuration menu
    Copy the full SHA
    47ec775 View commit details
    Browse the repository at this point in the history
  5. Reduce 501 logical route policy creates/deletes

    When a pod n number of gateways there will be n number of calls to create
    the same 501 policy. This commit reduces it to a single call.
    
    Signed-off-by: Tim Rozet <trozet@redhat.com>
    (cherry picked from commit dd836a7)
    trozet committed Oct 15, 2021
    Configuration menu
    Copy the full SHA
    e55038f View commit details
    Browse the repository at this point in the history