Syncing Qdrant with another Qdrant #4622
|
I want to run 2 standalone qdrant instance that can sync each other (i.e. cross cluster replication). For example when I delete entity from qdrant instance1 that instance will delete from instance2 (update, insert, delete). Is there any way that I can do that ? |
Replies: 3 comments 6 replies
|
Yes! Please see our documentation on this here: https://qdrant.tech/documentation/guides/distributed_deployment/ More specifically, see this section describing: 1. enabling cluster mode. 2. starting the first node. 3. bootstrapping other nodes. Once you've set up a cluster you can send operations to any node. They'll be synced across the cluster. Note that if you want to prevent downtime if one of the nodes is down, you should ideally have at least 3 nodes. That is because there should be a majority if nodes, which would not be possible with 1 alive + 1 dead node. In that case, also make sure you have at least a replication factor of 2. |
|
Hi @timvisee, thanks for the detailed answers in this thread — very helpful! I have a follow-up question: What if the Qdrant instances are running in an air-gapped or isolated network environment with no external/public internet access? In that scenario, nodes can't directly discover or communicate with each other across different networks. Is there a recommended approach for syncing data between two such isolated Qdrant instances? For example:
Any guidance on the best practice for keeping two Qdrant instances in sync when they are network-isolated from each other would be greatly appreciated. Thanks! |
You cannot deploy a Qdrant cluster with air gaps between machines. Note that I'm speaking about a single Qdrant cluster here. All peers that participate in the cluster must be able to reach all other participating peers at all times. What you can do is deploy two (or more) separate clusters. You can have air gaps between them.
Yes, you can definitely do this. This is what I would suggest to do.
There is not. But you could set up some sort of a 3rd party queue that will propagate changes at a later time. Operations are idempotent and it should be fine to propagate them to the cluster at a later time. You could use Kafka for this or even build your own system for this. Note that we cannot offer real support for this scenario.
That would also work. Snapshots are easier, though they include a full copy of the data. |
Yes! Please see our documentation on this here: https://qdrant.tech/documentation/guides/distributed_deployment/
More specifically, see this section describing: 1. enabling cluster mode. 2. starting the first node. 3. bootstrapping other nodes.
Once you've set up a cluster you can send operations to any node. They'll be synced across the cluster.
Note that if you want to prevent downtime if one of the nodes is down, you should ideally have at least 3 nodes. That is because there should be a majority if nodes, which would not be possible with 1 alive + 1 dead node. In that case, also make sure you have at least a replication factor of 2.