How do I know my setup is using multiple nodes with tenancy or how would I verify this state? I’ve been running a 2 node cluster playing around with the setup by loading data. However, I’m not what I would think would be the right things to ensure that this setup is working and wanted some guidance.
When I hit the endpoint /v1/nodes/<MY_COLLECTION_NAME>
I have 2 tenants loaded up at the moment so I’d expected to see at least a value for shards for node0. The only logs I see that confirms the nodes are connected is debug logs:
However, I’m not clear if these nodes are being used to store tenants individually or if I need to change my setup in some way to search across multiple ones. I also am not near to filling up a single node. The only thing I’ve seen is when I was developing this I would get error messages if my node1 wasn’t reachable.
Any advice on this? I just want to prove that multiple nodes will be used loading data for multiple tenants.
I am sorry, let me rephrase. I am running a weaviate cluster on kubernetes. I have multiple weaviate pods running across multiple kubernetes nodes. Let’s assume I have 4 pods running across 4 nodes. And each pod was allocated 8 GB of memory. So if one pod can hold n vectors, I know that my weaviate cluster can support roughly 4*n vectors. Correct?
Now instead of specifying sharding config for the collection, if I make the collection multi-tenant, can I assume that my cluster will still be able to support 4*n vectors? Does Weaviate distribute tenants evenly across all pods, or do I need to manage this manually?
That’s correct. This is considering you have replication factor of 4 (so each object will be replicated 4 times across the cluster). Now each collection/tenant will have shards spreaded on all 4 nodes.
If you have 4 nodes, and you have a replication factor of 3, Weaviate will allocate shards on the node that is use the least resources.
We do not have the feature of shard movement. This is planned in experimental mode for Weaviate 1.30.