Setara Fungsional Murni dari B-Tree?


14

Saya mengeksplorasi ide menulis DBMS dengan cara yang sepenuhnya fungsional. Struktur data tradisional yang digunakan untuk pengindeksan adalah B-Tree. Saya ingin mengetahui beberapa fungsi yang setara murni dari B-Tree yang akan dioptimalkan untuk meminimalkan akses disk. Terima kasih.


Saya tidak tahu banyak tentang itu, tapi ini sepertinya tempat yang masuk akal untuk memulai.
Ritwik Bose

Mechko, saya pikir struktur data cache-aware umumnya tidak setuju dengan implementasi fungsional murni.
jbapple

Jawaban:


10

Saya tahu lebih banyak tentang struktur data yang berfungsi murni dari pada struktur data memori eksternal, tetapi saya akan mencobanya.

B-tree dapat ditulis dengan fungsi murni dengan menyalin path. Path akan pendek ( ), tetapi menyalin setiap blok membutuhkan menulis dalam blok.HAI(catatanBn)HAI(B)HAI(1)

Jika Anda ingin membiarkan struktur menjadi persisten sepenuhnya, dan bukan murni fungsional, saya pikir Anda dapat mengurangi jumlah penulisan dalam salinan node ke diharapkan diamortisasi, di mana adalah lebar kata, menggunakan array yang sepenuhnya persisten di "Tries yang Terus-menerus Bertahan untuk Kontrol Versi yang Efisien"HAI(lgw)w

Anda mungkin ingin menonton presentasi ini tentang RethinkDB , yang menggunakan struktur data murni fungsional karena biaya penulisan dalam SSD.


4

Jika Anda tertarik untuk menulis database murni fungsional, Anda mungkin harus memeriksa tesis Phil Trinder tentang hal ini. Dia memiliki bab tentang penggunaan B-Trees.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.