Content delivery network caching rules update validator
A cache validation system receives Content Delivery Network (CDN) caching rules and a request log, such as a log of HTTP requests received by a CDN. The cache validation system generates test requests from the CDN caching rules and the request log. In a testing environment, the cache validation system determines one or more cache validation indicators, such as, but not limited to, a hit-to-miss value, from the test requests and the CDN caching rules before application of a proposed change to a CDN caching rule. The cache validation system applies the proposed change to the CDN caching rules in the testing environment. The cache validation system determines one or more updated cache validation indicators from the test requests for the CDN caching rules after application of the proposed change. If the initial and updated cache validation indicator(s) satisfy a threshold, then the cache validation system can provide a notification.
1 . A computer-implemented method comprising:
receiving a first Content Delivery Network (CDN) caching rule and a proposed change to a second CDN caching rule;
receiving a request log associated with a plurality of requests received by a CDN;
generating a plurality of test requests based at least in part on the first CDN caching rule and the request log;
determining a first hit-to-miss ratio based at least in part on the plurality of test requests, the first CDN caching rule, and a first test CDN cache;
applying the proposed change to the second CDN caching rule;
determining a second hit-to-miss ratio based at least in part on the plurality of test requests, the second CDN caching rule, and a second test CDN cache;
determining that a threshold is satisfied based at least in part on the first hit-to-miss ratio and the second hit-to-miss ratio; and
providing, to a user computing device, a notification associated with the proposed change to the second CDN caching rule.
2 . The computer-implemented method of claim 1 , wherein the first CDN caching rule comprises at least one of: a path, a query string parameter, a header parameter, a security parameter, or a cookie parameter.
3 . The computer-implemented method of claim 1 , wherein determining the first hit-to-miss ratio further comprises:
determining a match between the first CDN caching rule and a first test request from the plurality of test requests;
determining a cache key from the first CDN caching rule and the first test request; and
identifying a cached response for the cache key in the first test CDN cache.
4 . The computer-implemented method of claim 1 , wherein determining the first hit-to-miss ratio further comprises:
applying, from a plurality of CDN caching rules, individual CDN caching rules to a first test request until there is a match;
determining a cache key from a matching CDN caching rule and the first test request; and
identifying a cache miss for the cache key in the first test CDN cache.
5 . The computer-implemented method of claim 1 , wherein determining the first hit-to-miss ratio further comprises:
calculating cache hits associated with the first CDN caching rule;
calculating cache misses associated with the first CDN caching rule; and
calculating the first hit-to-miss ratio from the cache hits and the cache misses.
6 . The computer-implemented method of claim 1 , wherein determining the first hit-to-miss ratio further comprises:
calculating cache hits associated with a plurality of CDN caching rules;
calculating cache misses associated with the plurality of CDN caching rules; and
calculating the first hit-to-miss ratio from the cache hits and the cache misses.
7 . A system comprising:
a data storage medium; and
one or more computer hardware processors in communication with the data storage medium, wherein the one or more computer hardware processors are configured to execute computer-executable instructions to at least:
receive a first Content Delivery Network (CDN) caching rule and a proposed change to a second CDN caching rule;
receive a request log associated with a plurality of requests received by a CDN;
generate a plurality of test requests based at least in part on the first CDN caching rule and the request log;
determine a first cache validation indicator based at least in part on the plurality of test requests, the first CDN caching rule, and a first test CDN cache;
apply the proposed change to the second CDN caching rule;
determine a second cache validation indicator based at least in part on the plurality of test requests, the second CDN caching rule, and a second test CDN cache;
determine that a threshold is satisfied based at least in part on the first cache validation indicator and the second cache validation indicator; and
provide, to a user computing device, a notification associated with the proposed change to the second CDN caching rule.
8 . The system of claim 7 , wherein the request log comprises a first log entry comprising a redacted parameter value, wherein to generate the plurality of test requests, the one or more computer hardware processors are configured to execute further computer-executable instructions to at least:
generate a test request from the first log entry; and
replace, in the test request, the redacted parameter value with a placeholder value.
9 . The system of claim 7 , wherein the first CDN caching rule comprises at least one of: a query string parameter, a header parameter, a security parameter, or a cookie parameter.
10 . The system of claim 9 , wherein the request log comprises a first log entry, wherein to generate the plurality of test requests, the one or more computer hardware processors are configured to execute further computer-executable instructions to at least:
generate a test request from the first log entry; and
add, to the test request, the at least one of the query string parameter, the header parameter, the security parameter, or the cookie parameter.
11 . The system of claim 9 , wherein the request log comprises a first log entry, wherein to generate the plurality of test requests, the one or more computer hardware processors are configured to execute further computer-executable instructions to at least:
receive a test request configuration setting associated with the at least one of the query string parameter, the header parameter, the security parameter, or the cookie parameter; and
generate, based at least in part on the test request configuration setting, a set of test requests with different permutations for the at least one of the query string parameter, the header parameter, the security parameter, or the cookie parameter.
12 . The system of claim 7 , wherein to determine the first cache validation indicator, the one or more computer hardware processors are configured to execute further computer-executable instructions to at least:
determine a first hit-to-miss ratio based at least in part on a first time series of the plurality of test requests; and
determine a second hit-to-miss ratio based at least in part on a second time series of the plurality of test requests.
13 . The system of claim 7 , wherein to determine the first cache validation indicator, the one or more computer hardware processors are configured to execute further computer-executable instructions to at least:
determine a first hit-to-miss ratio based at least in part on the plurality of test requests in a first order; and
determine a second hit-to-miss ratio based at least in part on the plurality of test requests in a second order.
14 . A system comprising:
a data storage medium; and
one or more computer hardware processors in communication with the data storage medium, wherein the one or more computer hardware processors are configured to execute computer-executable instructions to at least:
receive a first Content Delivery Network (CDN) caching rule and a proposed change to a second CDN caching rule;
receive a request log associated with a plurality of requests received by a CDN;
generate a plurality of test requests based at least in part on the first CDN caching rule and the request log;
determine a first cache validation indicator based at least in part on the plurality of test requests, the first CDN caching rule, and a first test CDN cache;
apply the proposed change to the second CDN caching rule;
determine a second cache validation indicator based at least in part on the plurality of test requests, the second CDN caching rule, and a second test CDN cache; and
provide, to a user computing device, a test result based at least in part on the first cache validation indicator and the second cache validation indicator.
15 . The system of claim 14 , wherein the test result comprises the first cache validation indicator and the second cache validation indicator.
16 . The system of claim 14 , wherein the request log comprises a first log entry, wherein to generate the plurality of test requests, the one or more computer hardware processors are configured to execute further computer-executable instructions to at least:
determine a plurality of features from at least the first CDN caching rule;
generate a first tree of test requests from the first log entry and a first pseudo-random subset of the plurality of features; and
generate a second tree of test requests from the first log entry and a second pseudo-random subset of the plurality of features.
17 . The system of claim 16 , wherein to determine the first cache validation indicator, the one or more computer hardware processors are configured to execute further computer-executable instructions to at least:
determine a first hit-to-miss ratio based at least in part on the first tree of test requests;
determine a second hit-to-miss ratio based at least in part on the second tree of test requests; and
combine the first hit-to-miss ratio and the second hit-to-miss ratio into the first cache validation indicator.
18 . The system of claim 14 , wherein the first CDN caching rule comprises at least one of: a query string parameter, a header parameter, a security parameter, or a cookie parameter.
19 . The system of claim 18 , wherein the request log comprises a first log entry, wherein to generate the plurality of test requests, the one or more computer hardware processors are configured to execute further computer-executable instructions to at least:
generate a test request from the first log entry; and
add, to the test request, the at least one of the query string parameter, the header parameter, the security parameter, or the cookie parameter.
20 . The system of claim 18 , wherein the request log comprises a first log entry, wherein to generate the plurality of test requests, the one or more computer hardware processors are configured to execute further computer-executable instructions to at least:
receive a test request configuration setting associated with the at least one of the query string parameter, the header parameter, the security parameter, or the cookie parameter; and
generate, based at least in part on the test request configuration setting, a set of test requests with different permutations for the at least one of the query string parameter, the header parameter, the security parameter, or the cookie parameter.