[Gluster-devel] Minimal Design Doc for Name Space Cache

Julien Perez julien.perez at epsylonia.net
Tue Mar 13 12:58:51 UTC 2007


Sorry to be so late to reply this email about Name Space Cache, I just
wanted to let you know another gnu project is using a similar name for the
binary of the daemon, which is nscd here.
toad at vlk:~$ aptitude search nscd
p   nscd                            - GNU C Library: Name Service Cache
Daemon

It's daemon supposed to cache DNS requests / answers.

Have a nice day,

Julien Perez


On 2/14/07, Krishna Srinivas <krishna.srinivas at gmail.com> wrote:
>
> Minimal Design Doc for Name Space Cache:
> ----------------------------------------------------------------
>
> Name Space Cache is a directory tree structure of the GlusterFS but with
> empty files (not empty, file will contain the IP address of the server
> where the file exists)
> This helps us in two issues:
> 1) In case a server goes down, there are chances that a duplicate file
> name
>     is created (creation will be allowed as the original file is not seen
> as the
>     server has gone down) But if we have NSC info, we can make sure that
>     duplicate file is not created.
> 2) open() will be faster as the NSC will have the info of the server where
> the
>     file exists.
>
> NSC has two components, server and client. NSC Server can be run on one
> of the server nodes (nscd --root /home/nsc --port 7000) (or should it be a
> part
> of glusterfsd?). NSC client module can be a part of glusterfs. client vol
> spec
> can contain the line "name-space-cache-server <IP> <port>" in unify
> volume.
>
> NSC client module will give the following functions to glusterfs
> (these functions
> will mostly be used by unify xlator)
> nsc_init(IP, port)
> nsc_fini()
> nsc_query(path) - returns the IP addr of the node where file exists.
> nsc_create(path, IP) called during creation of file
> nsc_unlink(path)
> nsc_rename(oldpath, newpath, newIP)
>
> Unify create() calls nsc_create()
> Unify unlink() will call nsc_unlink()
> Unify rename() will call nsc_rename()
>
> Unify init() or glusterfs init() will call nsc_init()
> Unify fini() or glusterfs fini() will call nsc_fini()
>
> Unify open() will call nsc_query() to get the IP address of the node where
> the file exits. Then it will query all its child xlator to see which of
> them is
> associated with that IP address and call open on that xlator. (This can be
> implemented by introducing an mop function?)
>
> Comments and suggestions please.
>
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at nongnu.org
> http://lists.nongnu.org/mailman/listinfo/gluster-devel
>



More information about the Gluster-devel mailing list