I don’t have experience in NHibernate but have worked with Second level caches in Hibernate and I have been told that the same concepts are applicable to both.
The basic idea behind providing the parameter hibernate.cache.use_
minimal_puts is that before hibernate puts an object in cache it first check the second level cache whether the object is already present there, and if not then only put there.
This would be helpful ONLY when the data reads from caches are very less expensive than data updates. This is what the docs means about the following
...optimization of second-level cache operation to minimize writes, at
the cost of more frequent reads.
The case that fits perfectly for this kind of optimization is replication in clustering.
If you are using clustering then the put operation is very expensive as it activates cache replication listeners in case of clustered caches. If you are not using clustering then this put operation is comparatively very cheap.
Even in case of clustering there might be cache providers which rely on invalidation of entities instead of replicating the changes done to them. In that case too, this parameter would be useless.
One factor that can hamper performance is the kind of replication synchronous or asynchronous) used by Memcache. I have not used MemCache but EhCache supports both models.
So in your case as you are NOT using clustering and though the cache is on a remote process I seriously doubt that there would be any performance benefit by setting this parameter to true.