Skip to content
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

dnsdist: Cache sharding, recvmmsg and CPU pinning support #5576

Merged
merged 10 commits into from Sep 27, 2017

Conversation

rgacogne
Copy link
Member

@rgacogne rgacogne commented Aug 2, 2017

Short description

  • Optionally divide the packet cache into several shards, each protected by its own lock, to reduce lock contention
  • Add support for recvmmsg(), sendmmsg() and accept4() when available to reduce the number of system calls
  • Add support for pinning UDP listener threads to specific CPU cores
  • Several small optimizations including not using errno when we don't have to and not generating a UUID if we don't need it

A large part of the PR is just moving code around to be able to process queries one-by-one (with recvmsg(), the default) or in batch (with recvmmsg()).

Checklist

I have:

  • read the CONTRIBUTING.md document
  • compiled and tested this code
  • included documentation (including possible behaviour changes)
  • documented the code
  • added or modified regression test(s)
  • added or modified unit test(s)

@ahupowerdns ahupowerdns merged commit 8b3f9b4 into PowerDNS:master Sep 27, 2017
@rgacogne rgacogne deleted the dnsdist-sharded-mmsg branch September 28, 2017 08:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants