1 2 3 4 Previous Next 51 Replies Latest reply on May 23, 2006 11:23 AM by manik

    Buddy Replication in JBoss Cache (JBCACHE-61)

    manik

      Hello,

      I've started this discussion forum to talk about my initial designs for Buddy Replication.

      http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossCacheBuddyReplicationDesign

      Please have a look, and let me know your thoughts.

      Cheers,
      Manik

        • 1. Re: Buddy Replication in JBoss Cache (JBCACHE-61)
          brian.stansberry

          Very nice :)

          In your section where you describe what happens if:

          A buddy node dies

          * The Data Owner detects this, and nominates more buddies to meet its configured requirement.
          o Initiates state transfers to these buddies so backups are preserved.


          These steps should also apply in the case that a DataOwner dies as well -- once the PrimaryBuddy becomes the new DataOwner.

          • 2. Re: Buddy Replication in JBoss Cache (JBCACHE-61)
            manik

            Well, not really - if a DataOwner dies, the first buddy in the list (nominated as the PrimaryBuddy) simply merges the DataOwner's backup data with its own dataset.

            It does not need to nominate a new set of buddies because it already has a buddy group in place for its own data set for which it is a DataOwner.

            And existing replication mechanisms to replicate changes in its own dataset to its buddy group will kick in when it performs such a merge.

            • 3. Re: Buddy Replication in JBoss Cache (JBCACHE-61)

              Since Brian has another thread discussing the problem with initial state transfer. What is the implication of BR on initial state transfer then?

              Two scenarios that we have: whloe state transfer and partial state transfer.

              • 4. Re: Buddy Replication in JBoss Cache (JBCACHE-61)
                manik

                I still need to discuss state transfer details with Brian.

                I've updated details of the design, BTW. More from me shortly ...

                • 5. Re: Buddy Replication in JBoss Cache (JBCACHE-61)
                  manik

                  One more thing to consider - designing integration tests with AS for buddy replication. Not entirely relevant to the design of buddy replication, but something to keep in mind all the same.

                  • 6. Re: Buddy Replication in JBoss Cache (JBCACHE-61)
                    manik

                    Updated http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossCacheBuddyReplicationDesign with a potential solution around state transfer. Please have a look and comment accordingly.

                    • 7. Re: Buddy Replication in JBoss Cache (JBCACHE-61)
                      manik

                      Re: specifying a list of nodes to be used as buddies when using the SpecificBuddyLocator, I'm somewhat stumped. The main problem is that if you run multiple instances on the same IP address, on a JGroups level the only way to differentiate one member from the next is port number. And while this is fine when we identify members based on a JGroups View (as in NextMemberBuddyLocator or even FamilyClusterInfo in the JBoss AS HA codebase) it doesn't help at all when you need to pre-configure a list of members since the ports used by JGroups may be picked dynamically.

                      Does anyone have any ideas on this? Have I misunderstood the way FamilyClusterInfo works, perhaps, and is there a solution close at hand?

                      Thanks,
                      Manik

                      • 8. Re: Buddy Replication in JBoss Cache (JBCACHE-61)
                        belaban

                        You can always configure JGroups to run at fixed IP addresses and ports. To do this, use bind_addr and bind_port. The latter tell JGroups not to pick a random port

                        • 9. Re: Buddy Replication in JBoss Cache (JBCACHE-61)
                          manik

                          Makes sense, except that it is one more thing to demand of users.

                          What does everyone feel? Is it reasonable to expect users to specify a JGroups port in their configurations if they wish to use the SpecificBuddyLocator?

                          I don't see this as the default - the default would be to use the NextMemberBuddyLocator.

                          • 10. Re: Buddy Replication in JBoss Cache (JBCACHE-61)
                            manik

                            What are peoples' thoughts around the configuration of BR? Is it too complex, are there too many fiddly bits to set up?


                            * Buddy Locator class
                            * Buddy Locator properties
                            * num buddies
                            * specific buddy list
                            * ignore colocaled buddies
                            * colocated server list

                            * Clustered cache loader (for data gravitation)
                            * timeouts
                            * data removal on gravitation



                            • 11. Re: Buddy Replication in JBoss Cache (JBCACHE-61)

                              And is the default one to look for next member that is located on a different physical node?

                              • 12. Re: Buddy Replication in JBoss Cache (JBCACHE-61)
                                manik

                                Yes, the default is the NextMemberBuddyLocator with the ignoreColocatedBuddies property set to true.

                                • 13. Re: Buddy Replication in JBoss Cache (JBCACHE-61)
                                  brian.stansberry

                                  Is colocatedServerList just for the case where they want to exclude other physical machines (e.g. those running on the same power source)? Presumably we can detect the simpler case of two servers on the same physical machine without requiring the user to spell it out.

                                  I don't think this is too many "fiddly bits", particularly if there are reasonable defaults, so that in a simple case most things don't have to be set.

                                  • 14. Re: Buddy Replication in JBoss Cache (JBCACHE-61)
                                    brian.stansberry

                                     

                                    "manik.surtani@jboss.com" wrote:

                                    What does everyone feel? Is it reasonable to expect users to specify a JGroups port in their configurations if they wish to use the SpecificBuddyLocator?


                                    Can we parse the configuration so that if they provide the port, we respect it, and if they don't we don't? I think the port is only a problem if they are running two servers on the same machine without setting jboss.bind.address or bind.address or using the JGroups bind_addr property. Most production use case won't be like that.

                                    1 2 3 4 Previous Next