You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficcontrol.apache.org by "Jeremy Mitchell (JIRA)" <ji...@apache.org> on 2017/04/17 21:52:41 UTC

[jira] [Resolved] (TC-231) GET /api/deliveryservices is very slow when resultset gets large

     [ https://issues.apache.org/jira/browse/TC-231?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jeremy Mitchell resolved TC-231.
--------------------------------
       Resolution: Fixed
    Fix Version/s: 2.1.0

> GET /api/deliveryservices is very slow when resultset gets large
> ----------------------------------------------------------------
>
>                 Key: TC-231
>                 URL: https://issues.apache.org/jira/browse/TC-231
>             Project: Traffic Control
>          Issue Type: Improvement
>          Components: Traffic Ops API
>    Affects Versions: 2.0.0, 2.1.0
>            Reporter: Jeremy Mitchell
>            Assignee: Jeremy Mitchell
>             Fix For: 2.1.0
>
>
> With the change from mysql to postgres and when postgres is hosted in a remote environment (seperate from TO), /api/version/deliveryservices is very slow as the number of delivery services grows. This is because the code loops thru the result set and builds "example urls" for each deliveryservice. This operation is expensive.
> Rather than breaking the API and leaving out exampleURLs by default from the response, I suggest we allow the API consumer to pass thru a query parameter such as:
> ?exclude=exampleURLs
> UPDATE: actually, a better solution is to just optimize the underlying queries. This is usually solved by simply joining tables in the query. 1 complex query involving joins is better than 500 simple queries.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)