begeekmyfriend / bplustree

A minimal but extreme fast B+ tree indexing structure demo for billions of key-value storage
MIT License
1.85k stars 316 forks source link

in-memory 版本在析构树时内存泄露 #13

Closed MoonChasing closed 3 years ago

MoonChasing commented 3 years ago

in-memory 版本在析构树时内存泄露,未对叶子结点和非叶子结点进行析构。

begeekmyfriend commented 3 years ago

bplus_tree.c只负责删除一个结点的时候才会释放它(non_leaf_delete and leaf_delete),我在demo里面并没有释放所有结点。你可以用范围删除所有结点。

MoonChasing commented 3 years ago

感谢。看代码可以知道,只要我们删除了所有的叶子结点,那么B+树就自然的已经销毁了。 但我觉得在 deinit 接口中,最好还是能把所有的结点删除。 想象一种使用情景就是我在程序的一个步骤中需要使用 B+ 树,后面就无需用到了,用户在使用完后也没有逐个删除叶子结点。