Menu

Horizontal clustering of "isolated" nodes?

Help
2009-03-03
2012-09-28
  • Yury Soldak

    Yury Soldak - 2009-03-03

    Hi, we are evaluating different clustering approaches now to develop redundancy for our system.

    I just didn't understand from the documentation on the site if ha-jdbc suites some special setup I want to have in my system. Is it possible to make fully horizontal clustered setup formed from "isolated" nodes using ha-jdbc?

    Under "isolated" nodes I mean computers with (one) dbms and (one) appserver running on them and communicating only for dbms synchronization (mirroring) via multicasting. Then, basically each "isolated" node knows only about it's local dbms and clustering achieved by means of jgroups multicast communication between ha-jdbc instances.

    I think following picture gives good approximation to the setup I want to have:
    http://www.usenix.org/event/usenix04/tech/freenix/full_papers/cecchet/cecchet_html/images/image016.gif

    Thanks in advance.

    Btw, on your FAQ page (http://ha-jdbc.sourceforge.net/faq.html) you should change comments for RAIDd-0 and RAIDb-1, since the first is partitioning and the second is mirroring (you state opposite in the comparison table).

     
    • Yury Soldak

      Yury Soldak - 2009-03-03

      Hm, just found other person asked near the same question here (I guess we are talking about the same setup):
      http://sourceforge.net/forum/message.php?msg_id=6323976

      And as I understood, that is not possible to achieve with ha-jdbc now :(

      Have I missed smth?

       
    • Paul Ferraro

      Paul Ferraro - 2009-03-06

      A couple clarifications:
      HA-JDBC does not use multicasting for dbms synchronization. Each application server communicates with each database directly. Multicasting is only used to communicate cluster state changes, i.e. which database are active?
      The biggest issue with this type of setup is split brain syndrome, i.e. a network partition that isolates each app server + database machine.

      This situation is handled though the use of the 'local' attribute on each database in the cluster. local="true" means the database is relatively local to the JDBC client; local="false" means the database is relatively remote to the JDBC client.

      If HA-JDBC detects a network partition - and your cluster has a local database, HA-JDBC will stop the cluster and not allow any further database access until the situation is resolved manually, and the database cluster is restarted.

       
      • Yury Soldak

        Yury Soldak - 2009-03-13

        Thanks for clarifications!

        Paul, I think it would be great if you include info about "local='true'" to FAQ or note to Documentation page. The line "Indicates that this database resides on the local machine." says particularly nothing about how system changes its behavior if you set this parameter. I was trying to experiment to understand the meaning of it, yet got no idea (now, after your explanation it is clearlier, of course).

        Maybe it is would be good to add load balancer algorithm to preferably read from local database (just idea). I'll make feature request about to track the idea.

        Another thing about the site -- it lacks examples. Examples of configuration files for different setups. I plan to do several and send to you. I believe the site and the lib will benefit from examples very much.

         
        • Paul Ferraro

          Paul Ferraro - 2009-03-14

          Yeah - I've let the docs slip a little behind - some of the newer features are only mentioned in the release notes and in forums/mailing lists.
          As I slowly make progress in trunk (future 2.1 release) I'll be re-writing all the documentation.

          I've commented on your other suggestions in their respective feature request posts.

           
          • Yury Soldak

            Yury Soldak - 2009-03-14

            Have you considered setup a wiki for the project?
            I guess in sourceforge you can enable one per project.

             
            • Paul Ferraro

              Paul Ferraro - 2009-03-15

              Yesterday I checked out the wiki options offered by sourceforge. I guess I've had my head in the sand, because I didn't know about most of these new service offerings. Perhaps I should start reading those emails Sourceforge send me every month...
              I actually enabled Trac by mistake - clicking the checkbox triggered an immediate (and uncancellable) request - I'd prefer MediaWiki and don't want to complicate things with a second bug tracking system.
              I see you've added a few pages - excellent. Once MediaWiki is ready - I'll migrate your pages.

               
            • Yury Soldak

              Yury Soldak - 2009-03-15

              Okay, I found the wiki, great!
              It was empty, so I added some examples to it :)

               

Log in to post a comment.