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.
14
Jawaban:
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.O ( logBn ) O ( B ) O ( 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"O ( lgw ) w
Anda mungkin ingin menonton presentasi ini tentang RethinkDB , yang menggunakan struktur data murni fungsional karena biaya penulisan dalam SSD.
sumber
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.
sumber