Menu

Dynamic Discovery of Clusted Databases

Help
2009-02-02
2012-09-28
  • Grant Sheppard

    Grant Sheppard - 2009-02-02

    Hello,

    Is it possible for nodes to dynamically discover the other database nodes at runtime as opposed to having to configure each node with a full set of the clustered databases?

    Regards,

    Grant

     
    • Paul Ferraro

      Paul Ferraro - 2009-02-02

      Technically, yes - though it would require significant work and would have some limitations:
      A protocol needs to be defined to publish a node's host, port, authentication info, and and extra connectivity properties.
      We would need to install a module on each database server that is capable of advertising itself via multicast/jgroups. Since the packets will contain authentication information, they will need to use a secure layer (e.g. jgroups + TUNNEL). Currently HA-JDBC does not require anything to be install on the database hosts, other than the database itself.
      HA-JDBC would need an additional module to listen for these multicast messages, parse the message body, and add the databases to the cluster.
      HA-JDBC startup will need to wait to receive discovery notifications for databases it expects to be active on startup.
      * This would only work for driver and DataSource configurations - and would not work for ConnectionPoolDataSource and XADataSource configurations, since these requires app-server specific setup.

      Thoughts?

       
      • Grant Sheppard

        Grant Sheppard - 2009-02-02

        Thanks for the prompt reply, Paul. It definitely does sounds feasible but you're right in that it would take some work.

        What we are trying to develop is a client application (backed by a lightweight database) that will continue to work if a master database (lets say located at a head office) goes offline. There would be multiple clients installed at a single location so these would all need to be able to have the same set of data available and continue running if either the master or a peer goes offline. Ideally we would like to keep the deployment of a client as simple as possible by removing the need for each client app to be configured with the other client apps databases. For our scenario we would already have a module installed on each database server (which would be the client app).

        At this stage I've no idea whether HA-JDBC will be the right tool for us but if it turns out that it is then I would be interested in looking into this further.

         

Log in to post a comment.