Hello,
I have been working on a PR for some time now which minimizes the runtime 
impact that a snapshot has on Traffic Router. These changes will help to 
support the ‘Delivery Service Snapshots’ feature and generally make the CDN 
more stable.  The main thrust of the PR, changes the implementation of TR’s 
ConfigHandler and ZoneManager classes so that they compare the current CDN 
configuration (CrConfig) with the most recent snapshot and then only applies 
the differences.

The current version of Traffic Router (without the PR)  does not perform a 
comparison between the snapshot configuration and the previous CrConfig.  It 
simply loads the new snapshot into memory and performs a runtime swap with the 
previous version of the configuration. This invalidates everything that TR has 
cached including the DNS Zones and causes TR to reload the cache and re-sign 
all of the zones which are secured with DNSSec. This new PR allows all of this 
cached configuration to stay intact and thus only new or changed DNS Zones will 
have to be signed and cached.

This PR also changes the process which monitors changes to the zone signing 
keys and key signing keys in RIAK. This new PR will examine the key sets for 
changes and only regenerate and resign the zones which have new keys. Again the 
difference here is that the previous version of TR would always regenerate and 
re-sign all of the DNS zones if any key changed. Therefore, once this new PR is 
in place, the monthly zone signing key rolls will no longer cause all of the TR 
nodes to reload and resign all of the DNS zones.

Lastly this new feature can be turned on and off using a new parameter setting. 
If the parameter ‘deliveryservice.snapshots’ is set to false, then TR will 
fallback to the method of just reloading the entire configuration whenever 
there is a new snapshot.

This PR is currently under review @ 
https://github.com/apache/trafficcontrol/pull/2785 so please offer any 
suggestions or concerns you have soon.

Thank You,
Andy

Reply via email to