<div dir="ltr">Recently [1] was found.  The underlying cause is that now initial state transfer is enabled by default including invalidation caches.<div><br></div><div>When thinking about this I didn&#39;t even realize that we utilize a Replicated consistent hash for invalidation mode.  This all strikes me as just wrong.  To me an invalidation cache is just a local cache that sends broadcasted invalidation messages to other members.  It shouldn&#39;t have any need for a consistent hash.</div><div><br></div><div>Currently though we have an invalidation cache that will try to acquire remote locks [2], reports ownership of keys by the consistent hash (instead of each node owning every key as it would be in a local cache [3]), which will participate in initial state transfer (REPL based) [4] among other things.  We even have invalidation commands that are tied to given topologies [5].</div><div><br></div><div>I was originally planning on cutting the cord between invalidation caches and state transfer, but I am finding so many places that assume we have a topology that it requires more code that I would have thought.  So I wanted to check if anyone had any objections.  If there are objections I can end up taking the quick and easy route of just forcing disabling of initial state transfer and leaving everything as it is otherwise.  I personally feel we should completely separate these concepts to guarantee what I would think as proper behavior.</div><div><br></div><div>Thanks,</div><div><br></div><div> - Will<br><div><br></div><div>[1] <a href="https://issues.jboss.org/browse/ISPN-5560">https://issues.jboss.org/browse/ISPN-5560</a></div></div><div>[2] <a href="https://github.com/infinispan/infinispan/blob/master/core/src/test/java/org/infinispan/lock/InvalidationModePessimisticLockReleaseTest.java">https://github.com/infinispan/infinispan/blob/master/core/src/test/java/org/infinispan/lock/InvalidationModePessimisticLockReleaseTest.java</a></div><div>[3] <a href="https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/interceptors/locking/ClusteringDependentLogic.java#L300">https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/interceptors/locking/ClusteringDependentLogic.java#L300</a></div><div>[4] <a href="https://github.com/infinispan/infinispan/blob/master/core/src/test/java/org/infinispan/statetransfer/NonTxStateTransferInvalidationTest.java#L56">https://github.com/infinispan/infinispan/blob/master/core/src/test/java/org/infinispan/statetransfer/NonTxStateTransferInvalidationTest.java#L56</a></div><div>[5] <a href="https://issues.jboss.org/browse/ISPN-4016">https://issues.jboss.org/browse/ISPN-4016</a></div></div>