As árvores B são usadas com mais freqüência para índices de banco de dados no disco rígido, mas possuem vantagens mesmo como uma estrutura de dados na memória, dada a hierarquia de memória moderna com várias camadas de cache e memória virtual. Mesmo se a memória virtual estiver em um SSD, isso não mudará.
Eu uso uma biblioteca de múltiplas árvores no estilo B + na memória que escrevi bastante em C ++. Ele pode ter vantagens de desempenho - a razão pela qual foi originalmente escrito foi para tentar usar melhor o cache - mas devo admitir que muitas vezes não funciona dessa maneira. O problema é o trade-off, o que significa que os itens precisam se mover dentro dos nós nas inserções e exclusões, o que não acontece nas árvores binárias. Além disso, alguns dos hacks de código de baixo nível que eu usei para otimizá-lo - bem, eles provavelmente confundem e derrotam o otimizador, disse a verdade.
De qualquer forma, mesmo que seus bancos de dados estejam armazenados em um SSD, ele ainda é um dispositivo de armazenamento orientado a blocos e ainda há uma vantagem em usar B-Trees e outras árvores com várias vias.
MAS, cerca de dez anos atrás, foram inventados algoritmos e estruturas de dados que ignoravam o cache. Eles são alheios ao tamanho e à estrutura dos caches, etc. - eles fazem (assintoticamente) o melhor uso possível de qualquer hierarquia de memória. As árvores B precisam ser "ajustadas" a uma hierarquia de memória específica para fazer o melhor uso (embora funcionem razoavelmente bem para uma ampla variedade de variações).
As estruturas de dados inconscientes do cache ainda não são vistas na natureza, se é que existem, mas é hora de tornarem obsoletas as árvores binárias comuns da memória. E eles também podem ser úteis para discos rígidos e SSDs, já que não se importam com o tamanho da página do cache do cluster ou do disco rígido.
O layout do Van Emde Boas é muito importante em estruturas de dados que não fazem parte do cache.
O curso de algoritmos do MIT OpenCourseware inclui alguma cobertura das estruturas de dados alheios ao cache.