3 Replies Latest reply on Feb 18, 2014 2:28 PM by william.burns

    Infinispan Network Partitions/split brain behavior

    jmya

      Hi,

       

      What's is the default behavior of Infinispan when

      • split-brain is detected
      • split-brain is healed

       

      Does it do any state merge automatically or it must be done by the user?

       

      Thanks,

        • 1. Re: Infinispan Network Partitions/split brain behavior
          william.burns

          Currently Infinispan doesn't do anything in the case of a split brain.  It is planned to add some support with Infinispan 7.0 with [ISPN-263] Handle cluster partitions - JBoss Issue Tracker.  The plan so far is to prevent certain nodes from doing writes thus sacrificing availability for some consistency.

           

          Therefore, we will not be adding merging of different versions, this will be tackled in [ISPN-999] Support eventual consistency - JBoss Issue Tracker which I am not sure if we have a plan setup for 7.0 even though it has the fixed version atm.

          • 2. Re: Infinispan Network Partitions/split brain behavior
            jmya

            Thanks.

             

            So this means that after a partition is created/merged the application needs to transfer/merge states, otherwise stale/non-existent data can be read causing inconsistencies?

             

            Is there a specific Infinispan listener to detect partitions?

            • 3. Re: Infinispan Network Partitions/split brain behavior
              william.burns

              So this means that after a partition is created/merged the application needs to transfer/merge states, otherwise stale/non-existent data can be read causing inconsistencies?

              During and after you can have inconsistencies, yes.  During a partition there isn't usually a whole lot you can do rectify it though.

               

               

              Is there a specific Infinispan listener to detect partitions?

              It is difficult to detect a partition occurring in any system.  You can use the TopologyChanged listener to get notifications of the cache or the ViewChanged at the cache manager level, which can hint to you if the partition has occurred.  The Merged listener (cache manager) would be used to tell you when the partition heals as it is fired when JGroups generates a Merge view which would be sent when you have 2 separate clusters merging back together.