Add TO Go cdns/routing - DO NOT MERGE#2307
Conversation
|
Refer to this link for build results (access rights to CI server needed): |
|
Refer to this link for build results (access rights to CI server needed): |
|
Refer to this link for build results (access rights to CI server needed): |
|
retest this please |
|
Refer to this link for build results (access rights to CI server needed): |
|
Refer to this link for build results (access rights to CI server needed): |
There was a problem hiding this comment.
We need to solve custom TO extensions or the ability to override for custom project's needs
There was a problem hiding this comment.
yes, because TO_golang has no concept of to_extensions (at the moment), merging this PR would kill the perl to_extension that is currently being used by Comcast in production.
|
Refer to this link for build results (access rights to CI server needed): |
|
Please DO NOT MERGE this until Traffic Ops extension-like functionality gets resolved |
|
This endpoint has already been re-written to Go, so I think this PR should be closed. |
|
This endpoint has not been re-written to Go. Just because there is a route in routes.go does not mean that it's been rewritten. If you look closely the handler is |
|
My bad |
bd0adb3 to
9bc6a5b
Compare
|
Refer to this link for build results (access rights to CI server needed): |
|
@rob05c What can we do to get this past DO NOT MERGE? |
|
@mhoppa We have a Plugins system in TO now. The "DO NOT MERGE" was added because Comcast has an non-open-source Perl TO Extension overriding this route. It's a Comcast thing, not an Open Source thing. Comcast has requested the Open Source project wait to implement this route, until Comcast has had time to rewrite its private Perl Extension into a Plugin. |
|
Okay makes sense. I am concerned that in a 1 year and half no work has been done on it to rewrite it as this will soon be blocking our completion of our rewrite. We will need to get Comcast to prioritize that work. Is the non-open-source Perl TO Extension overriding this route something that could be made open source? why did Comcast do that in the first place? |
|
It's because it uses an internal log data tool, which itself involves a large amount of infrastructure. |
|
Can this be safely merged once #4145 is merged? |
|
I question the need for our proprietary version in the first place. I think the issue was that we were adding a lot of TRs and didn't want to have to query 20ish TRs sequentially (because that's what the Perl implementation did) before returning the resulting data. If each query took a few seconds, we'd probably hit some timeouts around the 30 sec or 1 min mark. TBH I think we can just make this Go implementation query all the TRs in parallel, then aggregate the responses. That should only take as much time as the slowest query to TR, and basically gets us the exact same results as our proprietary Perl plugin. What do you guys think? |
If that was the issue I would be +1 on that approach |
|
That's fine with me, it certainly doesn't make any breaking changes to just do things in parallel. |
|
I'm unlikely to be implementing, so I'll defer to the people who will be. |
|
I'm almost certain that was the issue. We weren't very far into the Go rewrite by the point that TO extension was written, and Perl doesn't do parallelism very easily. I think we were already using telegraf to periodically query the TR API and write it to influxdb, so we said "why not just add some continuous queries over that data and write a Perl TO extension to query that?" At the end of the day, this API basically just gives you a pie-chart breakdown of routing methods (percentages of CZF, GEO, etc), and I don't really see a problem with just getting the data directly from TRs in parallel and aggregating them. @rob05c should whoever works on parallelizing this just open a PR against your fork's branch? |
Sure. Or it's not very big, they could just copy and paste the reusable parts of this, it doesn't matter to me if my name isn't on it, I know Git can be a pain. Whatever's easiest for the author. |
which appears to be broken anyhow. I'd say we remove the wip label and get this merged. |
|
If we merge as-is this API will take a very long time to return with large numbers of TRs since they're each polled sequentially -- that was the problem with the original Perl version. IMO we should parallelize it, so that the amount of time it takes doesn't scale with the number of TRs. |
|
PR #4370 replaces this |
|
closing as a new PR has been opened to replace this - #4370 |
Rewrites
/cdns/routingto Go. Closes #3781