B-деревья чаще всего используются для индексов базы данных на жестком диске, но они имеют преимущества даже в виде структуры данных в памяти, учитывая современную иерархию памяти с несколькими уровнями кэша и с виртуальной памятью. Даже если виртуальная память находится на SSD, это не изменится.
Я использую многоканальную древовидную библиотеку в стиле B + в памяти, которую я довольно много написал на C ++. У него могут быть преимущества в производительности - причина, по которой он был изначально написан, заключался в том, чтобы попытаться использовать кеш лучше, - но я должен признать, что часто это не работает. Проблема заключается в компромиссе, который означает, что элементы должны перемещаться внутри узлов при вставках и удалениях, чего не происходит для двоичных деревьев. Кроме того, некоторые из низкоуровневых хакерских кодов, которые я использовал для его оптимизации - ну, они, вероятно, сбивают с толку и побеждают оптимизатора, по правде говоря.
В любом случае, даже если ваши базы данных хранятся на SSD, это еще блочно-ориентированное устройство хранения, и все еще есть преимущество в использовании B-деревьев и других многопоточных деревьев.
НО около десяти лет назад были изобретены алгоритмы и структуры данных, не обращающие внимания на кеш. Они не обращают внимания на размер и структуру кэшей и т. Д. - они (асимптотически) наилучшим образом используют любую иерархию памяти. B-деревья должны быть «настроены» на определенную иерархию памяти, чтобы наилучшим образом их использовать (хотя они работают довольно хорошо для довольно широкого диапазона вариаций).
Забытые в кеше структуры данных еще не часто встречаются в дикой природе, если они вообще есть, но сейчас они могут сделать обычные двоичные деревья в памяти устаревшими. И они также могут оказаться полезными для жестких дисков и твердотельных накопителей, так как им все равно, какой размер страницы у кластера или размер кеша жесткого диска.
Макет Ван Эмда Боаса очень важен в структурах данных, не обращающих внимания на кэш.
Курс по алгоритмам MIT OpenCourseware включает в себя некоторый охват структур данных, забывающих о кеше.