meilisearch / arroy

Spotify/Annoy-inspired Approximate Nearest Neighbors in Rust, based on LMDB and optimized for memory usage :boom:

Home Page:https://docs.rs/arroy

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Implement incremental updates

Kerollmops opened this issue · comments

By keeping a list of unreachable_items that corresponds to the newly added or modified items we can make sure that the Writer::build method keeps track of them and insert them incrementally into all of the trees.

However, it must keep the split plane balanced and therefore recompute some of the normal along the way.

It must also make sure that the tree depth is growing with the number of items too. By appending new split plane if necessary and reducing the branch size. That could be a rebuild method that erase everything and start from the beginning to keep a good balance.