Skip to content

Comment on Ask HN: What is your favorite data structure, what have you done with it?

Comments

Aguri tries, which are bounded-sized radix trees with an LRU aggregation rule of joining sibling nodes.

The motivating use case is tracking metrics for IP addresses. You insert individual IP addresses into the tree, and when the tree fills, it starts rolling nodes for /32s into /31s, /30s, &c. Eventually, you get a picture of ranges of IP addresses in the data. That's neat, because, of course, IP packets themselves don't tell you anything about what subnets their IP addresses belong to.

The goofy thing I've done with them is apply them to memory addresses, so that I can collect individual pointers and bubble them up into allocation ranges, without instrumenting allocators.

Sounds cool. Thanks for writing. I found some links to followup:

What is an Aguri tree? http://goo.gl/mBWdbJ (this question on SO mentions your comment from previous HN threads on data structures)

Aguri: Coolest Data Structure You've Never Heard Of https://news.ycombinator.com/item?id=101969

Aguri: An Aggregation-based Traffic Profiler http://goo.gl/zA4Vl8

//links shortened for length

Does it collapse under IPv6?

Nope, should work fine. (The idea, I mean; I don't think there's an Aguri implementation that does v6 right now).

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.