8 messages in com.mysql.lists.clusterRe: management node question
FromSent OnAttachments
B. Keith Murphy30 Aug 2007 13:48 
Jimmy Guerrero30 Aug 2007 14:31 
Anatoly Pidruchny30 Aug 2007 14:31 
Bond Masuda30 Aug 2007 14:35 
B. Keith Murphy30 Aug 2007 20:07 
Stewart Smith30 Aug 2007 20:47 
B. Keith Murphy30 Aug 2007 21:47 
Stewart Smith02 Sep 2007 18:17 
Subject:Re: management node question
From:Stewart Smith (stew@mysql.com)
Date:09/02/2007 06:17:39 PM
List:com.mysql.lists.cluster

On Fri, 2007-08-31 at 00:47 -0400, B. Keith Murphy wrote:

Stewart Smith wrote:

On Thu, 2007-08-30 at 16:31 -0500, Jimmy Guerrero wrote:

Currently, a Management Node cannot provide configuration services, admin capabilities and default arbitration for more then one cluster.

correct.

We have gotten a request in the past for such functionality, but I don't think a patch was submitted.

No work was ever done. So not even half a patch exists.

If somebody really wants it, I can point them in the right direction though...

What would really be required to implement this? What is the code written in and just a rough guess of how long it would take to do it..

It's C/C++ (or rather "C+" :)

1. Allow multiple MgmSrvrs to be running a) remove all global variables

g_StopServer, g_restartServer (should be simple)

g_eventLogger (at least a largish patch)

**~1 day + 1 day for test case development for our casually insane stop/restart semantics**

a) specify multiple configuration files

multiple -f's ? or directory? or config file listing config files? not sure yet.

**1 day (incl some test development)**

b) create a list (database if you will) of current mgm servers. Should be dynamic so that adding/removing mgm server from running ndb_mgmd can be an online operation.

should be simple.

**1day**

2. Extend mgm protocol a) add list clusters

probably invole the adding of a generic "table" outputter and parser. We have maybe 3 places (with this patch) that will do this, seems sensible to generalise the code.

**1day, with a bunch of tests**

b) add select cluster

changes the MgmApiSession::m_mgmsrv

**few hrs**

all commands would apply to the current cluster. One cluster would be the 'default' cluster to maintain compatibility with old tools.

3. (automated) test like mad to make sure nothing broke.

add many more mgmd tests. esp around protocol semantics

**few days... there will be bugs.**

4. Management client changes

**2 days (maybe start some testing...)**

Problem areas:

- mgmd stop, restart. - logging - helper threads - auditing all the mgmapi functionality to check there's no strange side effects that would break with this.

Total: 7 days + a few hours + a few days.

Jumpstart your cluster: http://www.mysql.com/consulting/packaged/cluster.html