-
Notifications
You must be signed in to change notification settings - Fork 844
Hostdb Restructure #8953
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hostdb Restructure #8953
Conversation
The default duration of time_since_epoch() is std::chrono::high_resolution_clock::duration, which will not generally be seconds. hostDB.refcountcache->put expects the epoch count to be a number of seconds. This explicitly casts to seconds so we get that expected value. This also makes some other std::chrono time updates. Co-authored-by: bneradt <bneradt@yahooinc.com>
* Debug_bw updates. And clang-format fix. * If HostDB returns only failed parents, try serving from cache. Before this change, the parent cache logic would give up if it couldn't resolve the origin name for a request. This will attempt to retrieve a cached response if the resolution fails.
bneradt
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. Yahoo is running with this internally, FWIW.
rob05c
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I don't see anything obviously concerning.
This is massive, I'm not sure it's possible for a human to really thoroughly review. But I don't think it can avoid being massive, and it needs done. And Yahoo running it in Prod adds considerable confidence.
HostDB restructure introduced a regression where DNS resolution for parent proxies would be skipped and the origin's address would be used instead. Fixes: apache#8953 Signed-off-by: Fatih Acar <facar@scaleway.com>
HostDB restructure introduced a regression where DNS resolution for parent proxies would be skipped and the origin's address would be used instead. Fixes: apache#8953 Signed-off-by: Fatih Acar <facar@scaleway.com>
|
Changing the milestone to 10.0.0 from 10-Dev since this went into master. |
HostDB restructure introduced a regression where DNS resolution for parent proxies would be skipped and the origin's address would be used instead. Fixes: #8953 Signed-off-by: Fatih Acar <facar@scaleway.com> Co-authored-by: Fatih Acar <facar@scaleway.com>
This is a major restructuring of the HostDB internals, which should (externally) be backwards compatible. The original goal of this work was to provide better control of sending requests to down upstreams. That turned out to require rewriting the internal data structures to support atomic operations on shared state (otherwise it is not possible to have fine grained control of requests to the same upstream). Additional work was done to be in compliance with the long term L7 Routing strategy as defined by the L7 Working group.
This has been tested in production but more should be done.
The documentation needs a lot of work.
Originally #7874 but was closed by a branch accident.