Re: [code] [for discussion] map-trie

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Wed, 04 Jun 2014 03:52:21 +1200

On 4/06/2014 2:40 a.m., Kinkie wrote:
> Hi all,
> as an experiment and to encourage some discussion I prepared an
> alternate implementation of TrieNode which uses a std::map instead of
> an array to store a node's children.
>
> The expected result is a worst case performance degradation on insert
> and delete from O(N) to O(N log R) where N is the length of the
> c-string being looked up, and R is the size of the alphabet (as R =
> 256, we're talking about 8x worse).
>
> The expected benefit is a noticeable reduction in terms of memory use,
> especially for sparse key-spaces; it'd be useful e.g. in some lookup
> cases.
>
> Comments?
>

Since this is in libTrie used for ESI message body parsing the major
operations being done on it are insert and delete. These happen a
relatively large number of times per-request as the XML payload/body
gets parsed and a whole tree is constructed+destructed.

So the worst-case areas are worse thay they would be for example in ACLs
based on Trie.

Amos
Received on Tue Jun 03 2014 - 15:52:33 MDT

This archive was generated by hypermail 2.2.0 : Tue Jun 03 2014 - 12:00:17 MDT