-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Upserts partially committed during node restart #4626
Comments
Hey @tekumara, since
qdrant doesn't not guarantee consistency of this specific operation. Qdrant expects external process to re-apply the operation and fix inconsistency without performing potentially expensive data sync. Internally, consistency is only guaranteed if the operation was accepted. If the |
Oh I see, so I think what I expected here but didn't make clear, is when the write fails to apply to
|
This would require either two-phase commit schema, or sequential writes. Both options would likely damage performance, so we decided against it. |
I can confirm that with
As a suggestion, could the docs could be updated with something along these lines (unless I've missed it somewhere)? |
to ensure consistency when 1 node restarts see qdrant/qdrant#4626 (comment)
@tekumara I've added the following: qdrant/landing_page#1013 Please feel free to leave a review. |
In a 3-node cluster with replication factor 3, during upserts (via batch updates with ordering weak or strong):
Result: data inconsistency across nodes, ie: missing points on the restarted node.
Steps to Reproduce
make all
make restart-with-upserts
make healthcheck
and observe different counts across the nodes. eg:Expected Behavior
A node can be restarted during upserts, and when it rejoins the qdrant cluster it should be consistent with the rest of the cluster.
Context (Environment)
Observed in production because qdrant node restarts are not uncommon on kubernetes and may occur during a rolling upgrade of the pods, or because they are OOMKilled, or general kubernetes rescheduling/maintenance.
qdrant 1.10.0
The text was updated successfully, but these errors were encountered: