5 Replies Latest reply on Jun 26, 2009 7:03 AM by galder.zamarreno

    Transfered objects during a cluster state transfer event

    clajoie

      I just want to check my understanding here. When a cluster transfer event is occurring the object being transferred is an org.jboss.cache.Fqn. That is, the object I would receive when calling org.jgroups.Message#getObject() would be an Fqn.

      Is this correct?

        • 1. Re: Transfered objects during a cluster state transfer event
          galder.zamarreno

          No, the FQN is only the location of the data. The object passed around is a bit more complex, varies depending on the situation, but generally contains an FQN plus key+value pair(s) sent around.

          • 2. Re: Transfered objects during a cluster state transfer event
            clajoie

            Hoi Galder, thanks for the reply.

            Unfortunately I'm still lacking some information. The reason I was asking is that I'm trying to understand how to write some code that would merge the state of a cluster after a partition. I know how to detect the start of the merge process via the MergeView and how to retrieve the state from the underlying JChannel but I'm unclear as to which object(s) exactly I'd get back from the state request.

            Is there some documentation that indicates which object types are used within the cluster and when they are used?

            • 3. Re: Transfered objects during a cluster state transfer event
              galder.zamarreno

              Ah, I see what you're trying to do now. What JBoss Cache version are you using exactly? I need that info to be able to help you further.

              • 4. Re: Transfered objects during a cluster state transfer event
                clajoie

                It's a new project so there is no version requirement. The project need not be complete for another 6-9 months so it can even be an in development version (e.g. 3.2) if that makes this particular task easier. I don't mind coding to development code.

                • 5. Re: Transfered objects during a cluster state transfer event
                  galder.zamarreno

                  We haven't got such information published in a wiki or documentation but I believe you should be able to figure out what the state is composed of by looking at the code in the different org.jboss.cache.remoting.jgroups.ChannelMessageListener.setState calls that effectively delegate the state handling to
                  org.jboss.cache.statetransfer.DefaultStateTransferManager.setState().

                  Check this code in the JBossCache version that you're using or preferably, since JBoss Cache is now in maintenance mode, I'd suggest you use Infinispan instead. Note that Infinispan, even though it's a new project, it's based on some code from JBoss Cache, so it's pretty robust already for all features JBoss Cache provided (non blocking state transfer, async/sync replication, mvcc locking...etc). Besides, we have switched from a tree structure to a map and I believe it'll be easier to deal with such structure from a client's perspective.