Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-6740

Client topologies not updated when cache topology loaded from persistent state

XMLWordPrintable

    Infinispan Caches now support storing persistent views. When these are loaded, these might be loaded with topology ID 0:

    2016-05-31 10:20:04,254 INFO  [org.infinispan.globalstate.impl.GlobalStateManagerImpl] (MSC service thread 1-3) 
    ISPN000389: Loaded global state, version=9.0.0-SNAPSHOT timestamp=2016-05-30T12:03:33.822Z
    ....
    2016-05-31 10:20:07,867 TRACE [org.infinispan.statetransfer.StateTransferManagerImpl] (MSC service thread 1-6) 
    Installing new cache topology CacheTopology{id=0, rebalanceId=0, currentCH=DefaultConsistentHash{ns=20, owners = (3)[node5: 7+5, node4: 7+7, node6: 6+8]}, 
    pendingCH=null, unionCH=null, actualMembers=[node5, node4, node6], persistentUUIDs=[
    bb76729d-2b30-4e54-8108-4ac1db9a04cf, bb76729d-2b30-4e54-8108-4ac1db9a04cf, bb76729d-2b30-4e54-8108-4ac1db9a04cf]} on cache default
    

    If there's no further view changes, the topology ID will remain 0. When a Hot Rod client first connects, it sends its view topology as 0 so that it receives a newly installed topology, but if the topology is already 0 in the server, the server won't send the installed topology, even though it should be newer than having no topology.

    We should start numbering topologies in server starting from 1 instead. That avoids this issue. This is easier than forcing clients to send -1 as initial topology because the topology ID is currently defined as VInt that can only 0 or positive number.

    Also, some extra log messages indicating that the cache topology installed comes from persisted state would be handy for debugging.

            dberinde@redhat.com Dan Berindei (Inactive)
            rh-ee-galder Galder ZamarreƱo
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: