[core-dev] Re: [codepatch] PATRICIA

[email protected] Sat, 7 May 2005 20:41:47 -0400
Newsgroups gmane.network.gnutella.limewire.core.devel
Message-ID <[email protected]>
What is ardverk going to be?

Thanks
-greg
Quoting Roger Kapsi <[email protected]>:
> Thanks for the link and Gaston Gonnet for "Figure 4". Prefix
> searching is significantly faster now (altogether about 20% compared
> to a standard Trie).
>
> Well, to prevent confusion. PAT Tree and PATRICIA Trie (and sometimes
> also called Radix Tree) are all the same. PATRICIA was discovered by
> D. R. Morrision.
>
> Gonnet is using the entire String as a whole to build the PAT Trie by
> storing only the starting position of a word rather than splitting
> the String into separate words and storing the words in the Nodes.
> The idea for regex searching seems to be very interesting and has
> maybe potential in LimeWire; PAT Arrays seem to be his invention!?
>
> Hmm, the idea to store only the indices rather than the actual
> objects in the Nodes is also supported by my implementation. Only a
> slightly different KeyCreator model is needed and you could store for
> example pointers to a file rather than loading all records from a
> file into the Trie. Abstracted through ByteBuffers + Memory Mapped I/
> O and you have a nice DB. :)
>
> Anyway, should I continue posting PATRICIA stuff here or is it too
> off-topic? I wrote it originally for my small sideproject
> (ardverk.com) where I need auto-completion functionality on a much
> larger set keys (>800k).
>
> Cheers
>   Roger
>
>
>
> On May 7, 2005, at 1:55 AM, [email protected] wrote:
>
> > That's interesting because I always asked Chris Rohrs who built the
> > Tries the
> > difference between them and PATRICIA trees.  I used those back
> > pre-1990 at the
> > Center for the new Oxford English Dictionary with SGML.  Only
> > relevant ref to
> > this work I found was this:
> > http://citeseer.ist.psu.edu/gonnet91lexicographical.html
> >
> > Gaston Gonnet built Pat as well as Maple (I believe).
> >
> > Thanks
> > -greg
> >
> > Quoting Roger Kapsi <[email protected]>:
> >
> >> Hi all,
> >>
> >> I have something for you here. I dunno if it is of any use for you
> >> but here we go...
> >>
> >> PATRICIA is an acronym for "Practical Algorithm To Retrieve
> >> Information Coded In Alphanumeric". It is essentially a Digital
> >> Search Tree without the flaws of standard Tries, namely the one-way
> >> branching. More info can be found in the JavaDoc!
> >>
> >> Prefix searching is only slightly faster than LimeWire's current Trie
> >> but iterating over all values is more than twice as fast and it needs
> >> about 40% less memory than the current Trie! The actual highlight is
> >> the remove operator b/c it is somewhat tricky (I believe people who
> >> know how it works try to keep it for them self but I'm breaking with
> >> this tradition :)).
> >>
> >> Besides the ability to search for strings and prefixes there are
> >> other very interesting aspects of the PATRICIA Trie. Google a bit for
> >> Patricia, Route Table, Radix Tree...
> >>
> >> cu
> >>   Roger
> >>
> >>
> >>
> >
> >
> >
> >
>
>



_______________________________________________
core-dev mailing list
[email protected]
http://www.limewire.org/mailman/listinfo/core-dev