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
