Uploaded image for project: 'Red Hat 3scale API Management'
  1. Red Hat 3scale API Management
  2. THREESCALE-4528

Improve performance of the proxy config & /admin/api/service.json endpoints

    XMLWordPrintable

Details

    • 3scale 2020-03-09, 3scale 2020-03-23, Invalid Sprint

    Description

      Current behaviour

      Create a large number of services ~400, and try to download all service configurations with APIcast. APIcast takes more than 12 minutes to retrieve all configurations which impacts either the boot time of the gateway or the latency of requests when in lazy mode.

      Expected behaviour

      APIcast can connect to 3scale to download all the service configurations in a reasonable amount of time.

      Notes: APIcast makes an initial request to /admin/api/services.json to get all service IDs, it then parses those IDs to retrieve all the proxy configurations from the proxy config endpoint. It looks like the first response is quite reasonable, 11s, but APIcast takes a long time to process this so we might need to consider returning a much lighter response. The request to the proxy config endpoint for each service takes a very long time because every request is individual and sequential and is taking a few seconds to get the response to APIcast. Could be related to database indexing.

      Note:
      This is not reproducible on-prem.

      Dev notes

      • It might be an index issue so adding the appropriate indices would solve it
      • We could cache the value on background.

      Triage

      The assignee must investigate on slow queries and missing indices

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              rhn-support-avilatus Anna Vila Tusell
              Jakub Smadis Jakub Smadis (Inactive)
              Marta Noya Marta Noya (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: