Re: [LSF/MM TOPIC] Parallelize file operation (like creation, unlink) under large shared directory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/22/2012 05:55 AM, Boaz Harrosh wrote:
On 01/21/2012 10:54 PM, wangdi wrote:
Single directory performance is a critical in some use cases. For
example the multiple application threads might create hundreds of
thousands of files in a single directory simultaneously within a short
window of time.

read NFSD here ;-)

Currently, both filename lookup and file system modifying operations
(such as create and unlink) are protected with a single lock for the
entire directory. It might be useful to remove this lock, so multiple
application threads can access the directory simultaneously.

I agree about create, unlink, and so on. But don't we have some lockless
look up in place since a few Kernels ago?

 The lockless lookup is only for lookups in the dcache and not in the backing filesystem, which is serialized by i_mutex in the VFS(real_lookup).


But yes the topic is very interesting, though I'd suspect its hard to
implement.

We actually already implemented this for ext4, and we saw a lot performance improvement(at least 30% improvements for open/create in a single directory)for lustre stack,
but we want to make this improvement accessible through the VFS. Probably XFS and Btrfs could also benefit from this.

Thanks
WangDi


Thanks
WangDi

Thanks
Boaz

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux