I've read the API and documentation but can't quite figure out a clear indicator when to use Cache.evict(node, recursive) vs Cache.removeNode(node). They both look similar in the CacheInvocationDelegate on the surface. What's the difference between those two methods - does removeNode(node) issue invalidation messages in ASYNC mode? Is one more efficient than the other?
Remove removes stuff in cache loaders as well. Evict just evicts from memory. Also, evict will fail (no-op) if someone else has a lock on the node. Remove will wait for lockAcquisitionTimeout millis to try and acquire the lock and succeed before failing.