rob05c opened a new pull request #3175: WIP Add Delivery Service Snapshots
URL: https://github.com/apache/trafficcontrol/pull/3175
 
 
   WIP - Adds Delivery Service Snapshots.
   
   Still WIP, needs work, but I thought I'd make it available for public 
comment.
   
   See 
https://cwiki.apache.org/confluence/display/TC/Traffic+Control++Self+Service+Proposal+for+Change+Integrity
   
   This follows the plan, with one major exception: it creates new "snapshot" 
tables, which are copied into on snapshot. This is because Perl touches many of 
these tables, and the Perl can't be easily fixed.
   
   The idea is, if we want DS snapshots now, we can implement them much sooner, 
without rewriting all of Perl, with these "snapshot" tables. Then, when Perl 
finally goes away, we can simply create a database migration to rename the 
"snapshot" tables.
   
   IMO This shouldn't be merged without 304 Not Modified support, either. 
Because the CRConfig is now generated every time, it takes longer, and the 
Monitors are constantly polling, so this adds time to that poll and work to the 
TO/DB. It's pretty easy to add, IMO there's no legitimate reason to merge this 
without adding that support, to mitigate the cost increase.
   
   *Specifically Includes*
   - database migrations to create the "_snapshot" tables.
   - functions to copy "real" data into snapshot tables
   - a new API endpoint, `deliveryservices/{ds-name}/snapshot`
   - changes CRConfig Snapshot function to just insert the timestamp, and copy 
into snapshot tables
   - changes CRConfig Get Snapshot function to build the CRConfig on-the-fly, 
from the timestamp and snapshot tables
   - changes CRConfig Get Live Snapshot to copy into snapshot tables, and query 
their latest values (reproducing existing live behavior)
   
   *Things That Need To Happen Before This Can Be Merged*
   - [ ] Mailing List Consensus
   - [ ] Fix SQL injection vulnerabilities in `WithCDNSnapshotTimeReal` and 
`UpdateDSDSSSnapshot`
   - [ ] Traffic Portal UI button to Snapshot ("Save") Delivery Service
   - [ ] Change `monitoring.json` to also build on-the-fly from snapshot tables
   - [ ] Parity Testing
   - [ ] Decide how to deal with the next TO upgrade requiring all DSes be 
snapshotted
   - [ ] Update DB migration dates
   - [ ] Add 304 Not Modified Support
   
   #### What does this PR do?
   
   #### Which TC components are affected by this PR?
   
   - [ ] Documentation
   - [ ] Grove
   - [ ] Traffic Analytics
   - [ ] Traffic Monitor
   - [ ] Traffic Ops
   - [ ] Traffic Ops ORT
   - [ ] Traffic Portal
   - [ ] Traffic Router
   - [ ] Traffic Stats
   - [ ] Traffic Vault
   - [ ] Other _________
   
   #### What is the best way to verify this PR?
   
   
   #### Check all that apply
   
   - [ ] This PR includes tests
   - [ ] This PR includes documentation updates
   - [ ] This PR includes an update to CHANGELOG.md
   - [ ] This PR includes all required license headers
   - [ ] This PR includes a database migration (ensure that migration sequence 
is correct)
   - [ ] This PR fixes a serious security flaw. Read more: 
[www.apache.org/security](http://www.apache.org/security/)
   
   <!--
       Licensed to the Apache Software Foundation (ASF) under one
       or more contributor license agreements.  See the NOTICE file
       distributed with this work for additional information
       regarding copyright ownership.  The ASF licenses this file
       to you under the Apache License, Version 2.0 (the
       "License"); you may not use this file except in compliance
       with the License.  You may obtain a copy of the License at
   
         http://www.apache.org/licenses/LICENSE-2.0
   
       Unless required by applicable law or agreed to in writing,
       software distributed under the License is distributed on an
       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
       KIND, either express or implied.  See the License for the
       specific language governing permissions and limitations
       under the License.
   -->
   
   
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on 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