[Linux-cluster] Locking and performance questions regarding GFS1/2

Mathieu Avila mathieu.avila at seanodes.com
Mon Jan 14 14:06:26 UTC 2008


Hello GFS developpers,

I have a few questions regarding how locking is performed in GFS, and
the improvements brought by GFS2.

When I perform "ls" on a root directory of GFS1 that's been freshly
mounted, it takes a time linear to the size of the FS. Nevertheless, it
appears that the number of locks taken by GFS is always the same.
When i perform this a second time, the command returns almost directly.
What's the problem ? Was it solved in GFS2 ?

When I perform "mkdir" or "touch" on either the root of a freshly
mounted GFS1, or either on a subdirectory, it takes a time linear to
the size of the FS. I understand that it must determine the best RG to
put the dinode into, therefore reading a number of RG linear to the
size of the FS (if I don't play with the RG size), and taking a number
of locks also linear to the size of the FS.... This is the same
behaviour as when I perform "df", i guess.
Is this behaviour different in GFS2 ? Wouldn't be a possibility for
better behaviours, like, for example, taking the first free RG, if
we encounter such a RG (which is the case when the FS has just
been formated) ? Or maintaining fuzzy data about RG in an inode
(just like it is done for the fuzzy statfs)  ? Or maybe this is useless,
since it happens only at the first time after the FS is mounted on the
first node, and you consider that a FS is not mounted/unmounted
frequently ?
However, has this been changed in GFS2 ?

When i read this:
http://sourceware.org/cluster/faq.html#gfs_tuning
I understand that i should increase the size of the RG on big FS.
However, the code says that some data structures are loaded in memory
for each RG that's being locked (notably 2 bitmaps). So there's a
memory overhead when I increase the size of the RG. I also understand
that increasing the size of the RG increases the risk to have 2 or more
nodes working in the same RGs (is this right ?). What is the maximum
size of RG I should be using ?

More generally, is there the list of hard points in GFS1 that you've
been trying to solve with GFS2, somewhere accessible on the web ? Also,
what is actually the maximum size that GFS2 is known to be working on ?
(both in terms of nodes and real size)

Thanks for reading this (too long) list of questions :-)

--
Mathieu


--------------------------------------------------------------------------------
Les opinions et prises de position emises par le signataire du present
message lui sont propres et ne sauraient engager la responsabilite de la
societe SEANODES.

Ce message ainsi que les eventuelles pieces jointes constituent une
correspondance privee et confidentielle a l'attention exclusive du
destinataire designe ci-dessus. Si vous n'etes pas le destinataire du
present message ou une personne susceptible de pouvoir le lui delivrer, il
vous est signifie que toute divulgation, distribution ou copie de cette
transmission est strictement interdite. Si vous avez recu ce message par
erreur, nous vous remercions d'en informer l'expediteur par telephone ou de
lui retourner le present message, puis d'effacer immediatement ce message de
votre systeme.


The views and opinions expressed by the author of this message are personal.
SEANODES shall assume no liability, express or implied for such message.

This e-mail and any attachments is a confidential correspondence intended
only for use of the individual or entity named above. If you are not the
intended recipient or the agent responsible for delivering the message to
the intended recipient, you are hereby notified that any disclosure,
distribution or copying of this communication is strictly prohibited. If you
have received this communication in error, please notify the sender by phone
or by replying this message, and then delete this message from your system. 




More information about the Linux-cluster mailing list