When the connected vineyardd is out of memory, the client can't put anything in the vineyardd. However, in the k8s cluster, the memory of vineyardd cluster(e,g, 3 replicas) will not be maximally used.
To avoid this, we can improve the current put function:
When the NotEnoughMemoryException occurs, we can find all vineyardd info via client.meta, then create multiple clients to connect all vineyardd servers. (for each vineyardd, connect via ipc firstly)
Find the vineyardd with the least memory usage and put the object in it.
Describe your problem
When the connected vineyardd is out of memory, the client can't put anything in the vineyardd. However, in the k8s cluster, the memory of vineyardd cluster(e,g, 3 replicas) will not be maximally used.
To avoid this, we can improve the current put function:
NotEnoughMemoryException
occurs, we can find all vineyardd info viaclient.meta
, then create multiple clients to connect all vineyardd servers. (for each vineyardd, connect via ipc firstly)