In distribution mode, the cache performs a remote
GET command before a write command. This occurs because certain methods (for example,
Cache.put()) return the previous value associated with the specified key according to the
java.util.Map contract. When this is performed on an instance that does not own the key and the entry is not found in the L1 cache, the only reliable way to elicit this return value is to perform a remote
GET before the
GET operation that occurs before the
PUT operation is always synchronous, whether the cache is synchronous or asynchronous, because Red Hat JBoss Data Grid must wait for the return value.
7.8.1. Distributed GET and PUT Operation Resource Usage
In distribution mode, the cache may execute a
GET operation before executing the desired
This operation is very expensive in terms of resources. Despite operating in an synchronous manner, a remote
GET operation does not wait for all responses, which would result in wasted resources. The
GET process accepts the first valid response received, which allows its performance to be unrelated to cluster size.
Flag.SKIP_REMOTE_LOOKUP flag for a per-invocation setting if return values are not required for your implementation.
Such actions do not impair cache operations and the accurate functioning of all public methods, but do break the
java.util.Map interface contract. The contract breaks because unreliable and inaccurate return values are provided to certain methods. As a result, ensure that these return values are not used for any important purpose on your configuration.