NSD 4.10.0
Version 4.10.0 integrates simdzone and drops the Flex+Bison zone
parser.
NSD used a Flex+Bison based zone parser since version 1.4.0. The parser
served NSD well, but zones have increased in size and zone loading
performance has been problematic for some users.
With the integration of simdzone
(https://github.com/NLnetLabs/simdzone),
performance of loading zones and IXFRs is drastically improved. Quick
measurements show improvements ranging anywhere from 3.8x to 1.6x,
depending on zone size and database type, though the improvements will
be less noticable for NSEC3 zones due to pre-hashing.
simdzone leverages SIMD instructions in modern CPUs to improve
throughput. Right now SSE4.2 and AVX2 instruction sets are supported,
other instruction sets will use the fallback implementation, which
still is a decent improvement over the Flex+Bison based parser.
The release has additional fixes from the release candidate. The
parse of lowercase type names is fixed and the x86_64 variable is
set to no for other machines.
4.10.0
FEATURES:
- Merge #278: Replace Flex+Bison based zone parser with simdzone.
Performance of loading zones and IXFRs is greatly improved by using
the simdzone project by NLnet Labs. The optimized presentation
format parser leverages SIMD instructions in modern CPUs to improve
throughput. Right now SSE4.2 and AVX2 instruction sets are
supported, other instruction sets will use the fallback
implementation, which still is a decent improvement over the
Flex+Bison based parser.
BUG FIXES:
- Fix that when the server truncates the pidfile, it does not follow
symbolic links. - Fix #317: nsd should not chown its PID file.
- For #317: Modify nsd service script to stop NSD from creating a pid
file that systemd is not using. - Fix #324: Clarify the purpose of contrib/bug390.patch.
- Fix IXFR requests upstream for zones with a long name. Thanks for the
report to Yuuki Wakisaka from Internet Initiative Japan Inc. - Unit test for dname subdomain test used by xfrd-tcp.c.
- Fix #329: TCP accept queues number.
- Fix that the reload handler for sigchild uses signal_add, and also
that the signal handler is restored when done. - Fix that when server verify is done it resets the sigchild handler.
- Fix makedist.sh for simdzone inclusion.
- Fix makedist.sh to remove simdzone git tracking information and
scripting temporaries from tarball. - Fix error output of makedist.sh.
- Use simdzone version with name parser fix.
- Bump simdzone version to fix OpenBSD build issues.
- Bump simdzone to include minor fixes.