As promised, a brief article on Hoard. (For those of you who do not know, Hoard is a highly scalable, high-performance
malloc replacement that gets a fair amount of use in The Real World. I wrote it and maintain it.)
You’ll see the reason for the title in a minute.
Thomson Reuters uses Hoard in their servers. They are currently using Hoard 2.1, which is kind of old (I released it in December 2001). The new version, Hoard 3.7.1, incorporates tons of improvements which I should probably write up someday, since people keep referencing the original Hoard paper from ASPLOS 2000, which was already out of date in 2001!
Anyway, while evaluating Hoard, the good folks at Thomson Reuters discovered that the new version of Hoard occasionally leads to crashes on their Sun systems.
You never know with these things, because a new memory allocator often shakes out application bugs that previously were latent (e.g., buffer overflows that now trash different things). But they came up with clearly bug-free code that reproduces the error, which they sent me. Convincing, and stupendously useful.
I tested the code on our big Niagara box, and sure enough, boom. But Hoard is in daily use by tons of folks, in lots of servers all around the world. What’s going on?
Even with the code, it took some time to track down. I shipped Thomson Reuters a patched version today, and will soon release version 3.7.2, incorporating these fixes.
Hint — both Hans Boehm and I have this wrong (so I am in very good company). Oh yeah, the title is a bit of a clue.
2 thoughts on “Memory Models – Fuhgeddaboutit, Part 1”
I like the picture. The beer is a great touch.
Thanks. I took it at the Lady Killigrew Café — Belgian beer (yes, that was mine) + WiFi + waterfall — that shares a building (former mill) with the Montague Bookmill, a great used bookstore. It’s a good thing they don’t serve espresso, ’cause I’d probably never leave.