Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[blog] Qdrant Version 1.14 #1529

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open

[blog] Qdrant Version 1.14 #1529

wants to merge 13 commits into from

Conversation

davidmyriel
Copy link
Contributor

@davidmyriel davidmyriel commented Mar 25, 2025

@davidmyriel davidmyriel requested a review from timvisee March 25, 2025 15:33
Copy link

netlify bot commented Mar 25, 2025

Deploy Preview for condescending-goldwasser-91acf0 ready!

Name Link
🔨 Latest commit 08e2435
🔍 Latest deploy log https://app.netlify.com/sites/condescending-goldwasser-91acf0/deploys/67e3f65e59b7420008c59a9d
😎 Deploy Preview https://deploy-preview-1529--condescending-goldwasser-91acf0.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link
Member

@timvisee timvisee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First review draft:


**Ending our Reliance on RocksDB**

The **mutable ID tracker no longer relies on RocksDB**. This continues our journey toward minimal external dependencies. With our custom-built [**Gridstore**](/articles/gridstore-key-value-storage/), you can expect fewer random compactions and more predictable disk usage.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new mutable ID tracker does not rely on RocksDB.

It's another kind of custom storage, which is very specialized to its purpose - the mutable ID tracker.

How it works is actually very simple: we have point mappings, and we store all changes to these mappings in a file simply by appending each change as an entry.

If we add a point, we create a mapping, thus we append a 'create point mapping for point x' entry to the file. If we delete a mapping, a 'delete point mapping for point x' is appended to the file. On load we simply walk over all change entries and reconstruct the mappings in memory.

Of course, this could grow forever if there are a lot of changes.

But, this integrates very well with our optimizers. The optimizers ensure that if the ID tracker grows large, it is picked up for optimization. In that case it is transformed into the immutable ID tracker, which benefits from other optimizations. That's why this simple mechanism in the mutable ID tracker is very effective here.

Copy link
Member

@kacperlukawski kacperlukawski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Just a few nitpicks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants