Gli alberi B vengono spesso utilizzati per indici di database su hard disk, ma presentano vantaggi anche come struttura dati in memoria, data la moderna gerarchia di memoria con più livelli di cache e con memoria virtuale. Anche se la memoria virtuale è su un SSD, ciò non cambierà.
Uso una libreria ad albero a più vie in memoria B + che ho scritto parecchio in C ++. può avere vantaggi in termini di prestazioni - il motivo per cui è stato originariamente scritto era cercare di usare meglio la cache - ma devo ammettere che spesso non funziona in questo modo. Il problema è il trade-off, il che significa che gli oggetti devono spostarsi all'interno dei nodi su inserimenti ed eliminazioni, cosa che non accade per gli alberi binari. Inoltre, alcuni degli hack di codifica di basso livello che ho usato per ottimizzarlo - beh, probabilmente confondono e sconfiggono l'ottimizzatore, a dire la verità.
Comunque, anche se i tuoi database sono memorizzati su un SSD, è ancora un dispositivo di archiviazione orientato ai blocchi e c'è ancora un vantaggio nell'usare B-Trees e altri alberi a più vie.
MA circa dieci anni fa, sono stati inventati algoritmi e strutture dati cache-ignari. Questi sono ignari delle dimensioni e della struttura delle cache, ecc. - rendono (asintoticamente) il miglior uso possibile di qualsiasi memoria dell'erarchia. Gli alberi B devono essere "sintonizzati" su una particolare gerarchia di memoria per utilizzarli al meglio (sebbene funzionino abbastanza bene per una vasta gamma di variazioni).
Le strutture dati ignare della cache non sono spesso viste in natura ma, se non del tutto, ma potrebbero anche rendere obsoleti i soliti alberi binari in memoria. Inoltre, potrebbero rivelarsi utili anche per dischi rigidi e unità SSD, dal momento che non si preoccupano delle dimensioni della pagina della cache del cluster o del disco rigido.
Il layout di Van Emde Boas è molto importante nelle strutture dati cache-ignote.
Il corso sugli algoritmi OpenCourseware del MIT include una copertura delle strutture di dati della cache ignari.