Eu sei mais sobre estruturas de dados puramente funcionais do que estruturas de dados de memória externa, mas vou tentar.
Uma árvore B pode ser escrita de maneira puramente funcional através da cópia do caminho. O caminho será curto ( ), mas a cópia de cada bloco exige que O ( B ) escreva nos blocos O ( 1 ) .O ( logBn )O ( B )O ( 1 )
Se você deseja permitir que a estrutura seja totalmente persistente, e não puramente funcional, acho que você pode reduzir o número de gravações em uma cópia do nó para esperado amortizado, onde w é a largura da palavra, usando o matrizes totalmente persistentes em "Tentativas Confluentemente Persistentes para Controle de Versão Eficiente"O ( lgw )W
Você pode assistir a esta apresentação sobre o RethinkDB , que usa estruturas de dados puramente funcionais devido ao custo de gravações em SSDs.