rob05c opened a new pull request #4419: ORT Speed Improvements
URL: https://github.com/apache/trafficcontrol/pull/4419
 
 
   ## What does this PR (Pull Request) do?
   
   This makes a number of changes to speed up ORT runs.
   - changes `atstccfg` to not retry 404's from Traffic Ops. If TO returns a 
404, it's not going to succeed on retries. With the exponential backoff retry, 
this saves about a minute on a TO missing Server Capabilities
   - changes the default `atstccfg` cache format to Gob instead of JSON. This 
cuts the time of a total ORT run in about half, and for an individual cache 
file, reduces the parse time to about 1/5 the JSON time.
   - changes Delivery Service Servers cache format to CSV, which takes about 
half the time of Gob, and is by far the largest file to load and parse.
   - Changes the default cache time to 15m instead of 1m. The time was always 
intended to be a full ORT run, and 1m is far too short. This also exposes the 
flag in ORT itself, so users can change it if they want. It also changes ORT to 
delete the cache when it starts, to ensure the `atstccfg` cache is never reused 
by different ORT runs.
   - Incidentally, this also abstracts the cache encoding, making it very easy 
for anyone to change or add new cache formats, if they find something faster, 
or prefer the easier-to-debug JSON. I left the JSON encoder in, and it's a 
1-line compile-time change. I also tested CBOR, which is preferable to Gob as a 
standard, but it was over twice as slow as Gob, and `atstccfg` currently has 0 
external dependencies, so I decided not to include it; but it's trivial to add.
   
   Altogether, this cuts the new ORT total run time to about 1/3 what it was, 
and puts it close to the time it took before the `atstccfg` client-side config 
generation was added.
   
   Includes tests. No docs, no changelog, no interface change.
   
   - [x] This PR is not related to any other Issue
   
   ## Which Traffic Control components are affected by this PR?
   - Traffic Ops ORT
   
   ## What is the best way to verify this PR?
   Run unit tests. Run ORT, verify it still creates correct config files.
   
   ## If this is a bug fix, what versions of Traffic Control are affected?
   Not a bug fix.
   
   ## The following criteria are ALL met by this PR
   
   - [x] This PR includes tests OR I have explained why tests are unnecessary
   - [x] This PR includes documentation OR I have explained why documentation 
is unnecessary
   - [x] This PR includes an update to CHANGELOG.md OR such an update is not 
necessary
   - [x] This PR includes any and all required license headers
   - [x] This PR ensures that database migration sequence is correct OR this PR 
does not include a database migration
   - [x] This PR **DOES NOT FIX A SERIOUS SECURITY VULNERABILITY** (see [the 
Apache Software Foundation's security 
guidelines](https://www.apache.org/security/) for details)
   
   
   ## Additional Information

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to