B-Trees - Balanced Search Trees for Slow Storage(scienceblogs.com)
scienceblogs.com
B-Trees - Balanced Search Trees for Slow Storage
http://scienceblogs.com/goodmath/2008/07/btrees_balanced_search_trees_f.php
11 comments
b-trees. ugh. i wrote code around b-trees in my data structures class in college. but to my surprise, when i got out, pretty much no one in the "real world" (hiring for entry-level positions) use them. they mostly use things that we didn't ever actually play around with -- stuff like hash tables.
B-trees (and related data structures) are pervasive in the real world. Pretty much any application that requires high speed access from disk uses them. Think about filesystems, databases, etc... They're hugely useful.
But they're not useful for the same purpose as a hash table, which is also a pervasive data structure, but for a different problem area: constant time access to in-memory data.
But they're not useful for the same purpose as a hash table, which is also a pervasive data structure, but for a different problem area: constant time access to in-memory data.
yes, i know. my point is, try finding an entry-level position that requires knowledge and experience of b-trees and not hashtables.
Like a lot of things, it's good to know for the interview but most likely useless after that.
Knowing what a binary tree is turned out to be overkill for even most of the senior developer positions I've had.
Hash tables can be used on disk as well.
That's certainly true. They're also useful for distributed caches, but that doesn't make B-trees any less useful when the situation calls for it.
B-trees are basically the only sane option if you ever need to do range queries. Hash tables tend to outperform them a bit on all other operations.
(Personal anecdote: in college, I spent a nightmarish two days implementing the delete operation on a B-tree, because I had put it off until the last minute, thinking that it was "just like the insert, but with contractions". I was wrong. I don't think I've spent that much consecutive time in one chair before or since....)