BIND 10 #1603: replace name compression with more efficient one
BIND 10 Development
do-not-reply at isc.org
Fri Mar 9 07:37:25 UTC 2012
#1603: replace name compression with more efficient one
-------------------------------------+-------------------------------------
Reporter: | Owner: jinmei
jinmei | Status: reviewing
Type: task | Milestone:
Priority: | Sprint-20120320
medium | Resolution:
Component: | Sensitive: 0
libdns++ | Sub-Project: DNS
Keywords: | Estimated Difficulty: 7
Defect Severity: N/A | Total Hours: 0
Feature Depending on Ticket: auth |
performance |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Comment (by jinmei):
Replying to [comment:8 vorner]:
First, about this one:
> And, I forgot to note, the systest fails for me in ixfr/in-2 (produces a
really large diff of missing entries, looks like xfrin is not starting up
for some reason). Does it fail for you too?
Good catch, there was a serious bug in the code (btw what happened was
xfrout died due to the bug of the renderer): if we tried to render
many names the placeholder vector for names would need to be extended,
and when that happens some resource of the originally stored names may
be released (as a result of copy). Then LabelSequences that refer to
that resource could trigger a crash.
On thinking about it, I ended up with somewhat reverting to the
original design: still using the render's internal buffer for
placeholder but using a hash table for performance improvement.
Unfortunately that required a heavy rewrite. The internal
implementation of messagerenderer.cc was almost fully revised, so
could you review it again as a whole rather than checking the diff?
(Sorry for the duplicate efforts...)
One note: in the revised version we heavily use
OutputBuffer::operator[] again. So, (if this version is finally
adopted) we'll need #1568 in the end. The trac1603bench branch
contains both trac1603 and trac1568 changes, and its benchmark test
shows the final improvement we'd get from both.
This redesign affects other points you raised in the previous comment.
I'm going to answer them (in a separate ticket comment) on top of this.
--
Ticket URL: <http://bind10.isc.org/ticket/1603#comment:9>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list