aboutsummaryrefslogtreecommitdiff
path: root/ADOPTERS.md
diff options
context:
space:
mode:
authorGravatar Ruslan Drozhdzh <30860269+rdrozhdzh@users.noreply.github.com> 2017-12-06 13:36:04 +0300
committerGravatar Miek Gieben <miek@miek.nl> 2017-12-06 10:36:04 +0000
commit45ef657d3614e5194cc906fba3d28fe00fa18ba4 (patch)
tree885255b1b274891a163647c6644aeb026bd17142 /ADOPTERS.md
parent98632cd4a644f020910ddef83845cbfb24ed5f0c (diff)
downloadcoredns-45ef657d3614e5194cc906fba3d28fe00fa18ba4.tar.gz
coredns-45ef657d3614e5194cc906fba3d28fe00fa18ba4.tar.zst
coredns-45ef657d3614e5194cc906fba3d28fe00fa18ba4.zip
Increase performance of Dnstap plugin (#1280)
- added dnstapEncoder object which incapsulates marshalling of dnstap messages to protobuf and writing data to connection - dnstapEncoder writes data directly to connection object. It doesn't use the framestream's "write" method, because it writes data to intermediate buffer (bufio.Writer) which leads to unnecessary data copying and drops the performance - dnstapEncoder reuses a preallocated buffer for marshalling dnstap messages. Many messages are added to the same buffer. They are separated with a "frame length" 4-byte values, so the buffer content is writen to connection object in the format compatible with framestream library - added test which guarantees that dnstapEncoder output is the same as framestream Encoder output - the performance increase is about 50% in (dio *dnstapIO) serve() method of dnstap plugin. The overall coredns performance increase is about 10% in the following configuration: .:1053 { erratic { drop 0 truncate 0 delay 0 } dnstap tcp://127.0.0.1:6000 full errors stdout } tested with dnsperf tool
Diffstat (limited to 'ADOPTERS.md')
0 files changed, 0 insertions, 0 deletions