Hey Jesse,

Just to clarify the use case for this, is the idea that the origin
serves the exact same content under variable paths that follow some
pattern, e.g. /foo/123/bar/index.m3u8 and /foo/321/bar/index.m3u8? And
pattern-based consistent hashing is meant to be used in concert with
the Cache Key Manipulation Plugin for ATS so that only a single copy
of the content is stored per cache?

Thanks,
Rawlin
On Tue, Sep 4, 2018 at 3:13 PM Rivas, Jesse <[email protected]> wrote:
>
> Hi Traffic Controllers,
>
>
>
> I am working on a feature that will allow for pattern-based consistent 
> hashing in Traffic Router in order to ignore variable parts of a request 
> path, such as a zip code, during cache selection to increase the likelihood 
> of hashing similar content requests to the same caches.
>
>
>
> For the implementation, I would like to propose adding a delivery service 
> regex field that would go into the CRConfig, and then be leveraged in Traffic 
> Router to modify the request path before passing the value to the 
> ConsistentHasher to select a cache. More specifically, I would like to use 
> regex grouping in order to extract the desirable parts of a request path and 
> construct the path to be used for cache selection. Here’s what this would 
> look like:
>
>
>
> For the request paths:
>
>                 /foo/123/bar/index.m3u8
>
>                 /foo/321/bar/index.m3u8
>
>
>
> Provided the regex:
>
>                 (/.*?)/\d*?(/.*?)(/*.m3u8)
>
>
>
> Resulting path to use for cache selection:
>
>                 /foo/bar/index.m3u8
>
>
>
> Due to the potentially risky nature of modifying cache selection, I plan to 
> include a front-end testing tool for verifying a provided regex against a 
> provided request path, so that the user knows that the resulting path is what 
> they expect. If the regex does not match against the request path, the 
> original request path will be used for cache selection.
>
>
>
> Here is a summary of the component changes for my proposed implementation for 
> the pattern based consistent hashing feature:
>
> -new optional field in the delivery_service table, delivery service form, 
> crconfig
>
> -TR parsing and leveraging regex field from crconfig; unit tests; API 
> endpoint for testing tool
>
> -TP testing tool that will take a regex and request path, return the 
> resulting path to be used for cache selection
>
>
>
> Please respond with any questions, comments, or concerns.
>
>
>
> Thanks,
>
> Jesse Rivas

Reply via email to