From: David Teigland <teigland@redhat.com>
To: Mark Fasheh <mark.fasheh@oracle.com>
Cc: linux-kernel@vger.kernel.org, linux-cluster@redhat.com,
ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] Re: [Linux-cluster] [RFC] nodemanager, ocfs2, dlm
Date: Tue Jul 19 23:11:30 2005 [thread overview]
Message-ID: <20050720041630.GC9747@redhat.com> (raw)
In-Reply-To: <20050720004826.GH14505@ca-server1.us.oracle.com>
On Tue, Jul 19, 2005 at 05:48:26PM -0700, Mark Fasheh wrote:
> For OCFS2 that would mean that an ocfs2_nodemanager would still exist,
> but as a much smaller module sitting on top of 'nodemanager'.
Yep, factoring out the common bits.
> So no port attribute. The OCFS2 network code normally takes port from the
> node manager in order to determine how to talk to a given node. We'll have
> to figure out how to resolve that. The easiest would be to add 'port' back,
> but I think that might be problematic if we have multiple cluster network
> infrastructures as we do today.
The port is specific to the component using it (ocfs2, dlm, etc), so
defining port as a node property doesn't make sense if nodemanager is
providing node info to multiple components.
> Another way to handle this would be to have userspace symlink to the node
> items as an attribute on an ocfs2_tcp item. We could store 'port' as a
> second attribute. This would have the added benefit of pinning node
> information while OCFS2 uses it.
I expect each component will probably use another per-node configfs object
for component-specific attributes, using the common bits from the
nodemanager object.
> > + char nd_name[NODEMANAGER_MAX_NAME_LEN+1];
> An accessor function for this would be nice for pretty prints - maybe strcpy
> into a passed string.
ok
> > + int nd_nodeid;
> This definitely won't work with OCFS2... Nodeid (what used to be called
> node_num) needs to be unsigned. Otherwise this will break all our nodemap
> stuff which uses a bitmap to represent cluster state.
ok
> > + struct list_head nd_status_list;
> What are these two for? They don't seem to be referenced elsewhere...
Missed ripping them out with the other ocfs-specific stuff.
> > + if (!tmp && cluster->cl_has_local &&
> > + cluster->cl_local_node == node->nd_nodeid) {
> > + cluster->cl_local_node = 0;
> I think we might want to be setting cl_local_node to NODEMANAGER_MAX_NODES
> here. It seems that ocfs2_nodemanager also does this so we might have just
> caught a bug you inherited :)
yep
> You removed o2nm_configured_node_map but we need some sort of method for
> enumerating over the set of configured nodes.
>
> Also we need a method for querying the existence of a node.
> The OCFS2 code usually uses o2nm_get_node_by_num(..) != NULL for this but a
> simple boolean api call would be cleaner and would avoid exposing the node
> structure.
Right, those should be on the TODO.
Thanks,
Dave
WARNING: multiple messages have this Message-ID (diff)
From: David Teigland <teigland@redhat.com>
To: Mark Fasheh <mark.fasheh@oracle.com>
Cc: linux-kernel@vger.kernel.org, linux-cluster@redhat.com,
ocfs2-devel@oss.oracle.com
Subject: Re: [Linux-cluster] [RFC] nodemanager, ocfs2, dlm
Date: Wed, 20 Jul 2005 12:16:30 +0800 [thread overview]
Message-ID: <20050720041630.GC9747@redhat.com> (raw)
In-Reply-To: <20050720004826.GH14505@ca-server1.us.oracle.com>
On Tue, Jul 19, 2005 at 05:48:26PM -0700, Mark Fasheh wrote:
> For OCFS2 that would mean that an ocfs2_nodemanager would still exist,
> but as a much smaller module sitting on top of 'nodemanager'.
Yep, factoring out the common bits.
> So no port attribute. The OCFS2 network code normally takes port from the
> node manager in order to determine how to talk to a given node. We'll have
> to figure out how to resolve that. The easiest would be to add 'port' back,
> but I think that might be problematic if we have multiple cluster network
> infrastructures as we do today.
The port is specific to the component using it (ocfs2, dlm, etc), so
defining port as a node property doesn't make sense if nodemanager is
providing node info to multiple components.
> Another way to handle this would be to have userspace symlink to the node
> items as an attribute on an ocfs2_tcp item. We could store 'port' as a
> second attribute. This would have the added benefit of pinning node
> information while OCFS2 uses it.
I expect each component will probably use another per-node configfs object
for component-specific attributes, using the common bits from the
nodemanager object.
> > + char nd_name[NODEMANAGER_MAX_NAME_LEN+1];
> An accessor function for this would be nice for pretty prints - maybe strcpy
> into a passed string.
ok
> > + int nd_nodeid;
> This definitely won't work with OCFS2... Nodeid (what used to be called
> node_num) needs to be unsigned. Otherwise this will break all our nodemap
> stuff which uses a bitmap to represent cluster state.
ok
> > + struct list_head nd_status_list;
> What are these two for? They don't seem to be referenced elsewhere...
Missed ripping them out with the other ocfs-specific stuff.
> > + if (!tmp && cluster->cl_has_local &&
> > + cluster->cl_local_node == node->nd_nodeid) {
> > + cluster->cl_local_node = 0;
> I think we might want to be setting cl_local_node to NODEMANAGER_MAX_NODES
> here. It seems that ocfs2_nodemanager also does this so we might have just
> caught a bug you inherited :)
yep
> You removed o2nm_configured_node_map but we need some sort of method for
> enumerating over the set of configured nodes.
>
> Also we need a method for querying the existence of a node.
> The OCFS2 code usually uses o2nm_get_node_by_num(..) != NULL for this but a
> simple boolean api call would be cleaner and would avoid exposing the node
> structure.
Right, those should be on the TODO.
Thanks,
Dave
next prev parent reply other threads:[~2005-07-19 23:11 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-18 1:10 [Ocfs2-devel] [RFC] nodemanager, ocfs2, dlm David Teigland
2005-07-18 6:15 ` David Teigland
2005-07-19 11:24 ` [Ocfs2-devel] " Lars Marowsky-Bree
2005-07-19 15:52 ` Lars Marowsky-Bree
2005-07-19 22:30 ` David Teigland
2005-07-20 3:35 ` David Teigland
2005-07-20 11:33 ` Lars Marowsky-Bree
2005-07-20 16:26 ` Lars Marowsky-Bree
2005-07-19 17:19 ` [Linux-cluster] " Daniel Phillips
2005-07-19 19:48 ` [Ocfs2-devel] " Mark Fasheh
2005-07-20 0:48 ` Mark Fasheh
2005-07-19 23:11 ` David Teigland [this message]
2005-07-20 4:16 ` David Teigland
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050720041630.GC9747@redhat.com \
--to=teigland@redhat.com \
--cc=linux-cluster@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.fasheh@oracle.com \
--cc=ocfs2-devel@oss.oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.