From: Patrick Caulfield <pcaulfie@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] DLM thoughts - multi threaded recvd
Date: Wed, 20 Dec 2006 15:01:45 +0000 [thread overview]
Message-ID: <45895059.9030506@redhat.com> (raw)
One of the things that Andrew Morton commented on when taking the DLM was that that there is a single dlm_recvd process (and sendd
too) processing incoming requests and it could become a bottleneck on large systems.
So, I've been thinking how to make this scale a little better and have come up with several things.
1. How do we decide how many threads to start?
My first thought was to start one per CPU. But how do we cope with CPU hotplug events (if we do at all). This
is also slightly wasteful in a two-node SMP cluster where you could have 2 machines each with 4 cores each running 4 dlm_recvd
threads with only really work for 1 per machine. We can't split up messages from one machine over threads because the packets may
be fragmented *
Is there a reasonable API in the kernel for getting the (current) number of CPUs in a system ?
2. Do we need an additional sysfs parameter to the DLM that tells it how many threads to start which defaults
to the number of CPUs in the system?
3. Is it worth multi-threading dlm_sendd too?
I'm not sure it is. dlm_sendd's job is very simple...to put stuff on the TCP (or SCTP) send queue. If that queue is full then the
request is simply requeued inside the DLM. It's not like dlm_recvd which does actual locking operations.
* This complicates the SCTP one rather a lot because we don't know which remote machine the request came from until we read it
because they all come down the same socket. But as SCTP is not currently reliable enough for us I'll ignore that for the moment.
patrick
next reply other threads:[~2006-12-20 15:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-20 15:01 Patrick Caulfield [this message]
2006-12-20 15:41 ` [Cluster-devel] DLM thoughts - multi threaded recvd Steven Whitehouse
2006-12-21 11:57 ` Patrick Caulfield
2006-12-20 15:53 ` 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=45895059.9030506@redhat.com \
--to=pcaulfie@redhat.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.