BIND 10 #539: Hash-based name compression

BIND 10 Development do-not-reply at isc.org
Wed Jan 26 21:14:48 UTC 2011


#539: Hash-based name compression
-------------------------------------+-------------------------------------
           Reporter:  vorner         |                      Owner:
               Type:  task           |                     Status:  new
           Priority:  minor          |                  Milestone:  A-Team-
          Component:  Unclassified   |  Sprint-20110209
          Sensitive:  0              |                   Keywords:
Add Hours to Ticket:  0              |  Estimated Number of Hours:  0
        Total Hours:  0              |                  Billable?:  1
                                     |                  Internal?:  0
-------------------------------------+-------------------------------------
 Name compression is expensive operation
 (isc::dns::MessageRenderer::writeName with it's inlined functions takes
 16% of our runtime (this includes NameCompare::operator() and
 NameCompare::nextPosition). The isc::dns::OutputBuffer::operator[] is used
 a lot inside these functions, which increases the cost of it even more).

 There's idea to store positions of all already written names and suffixes
 of them to a hash table. When a new name is to be written, the hash table
 is queried first to see if it is already there. If yes, the address is
 taken and written. If not, the first label is written and noted into the
 hash table, then it is repeated with next label.

 It would be nice to get the hashes precomputed form the names. They can be
 provided by the datasource for example, or whenever the hash is needed, it
 is cached in the Name and if two names are compared and one does not have
 the cached hashes, while the other does, the ones for common parts are
 copied.

 This is a largish task, maybe we can put it off after we try the simpler
 ones.

-- 
Ticket URL: <https://bind10.isc.org/ticket/539>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list