4. Test Setup and Tools
Centos 7.2 clients and server
3 FUSE Clients simultaneously performing
operation on their home directories
Latest master, with below volume options:
cluster.lookup-optimize on
readdir-optimize on
consistent-metadata no
Performance matrics collected using volume
profile
Workload is some simple scripts.
6. Create Files
Negative lookups – 11-12%
Removexattr (security.ima) – 23%
Lease on parent dir and newly created files can
eliminate, sending inodelk(25%) and
entrylk(10%) to the bricks. But only benefits
single client use cases.
Create is not a function of number of bricks.
8. mkdir recursive
Negative lookup ~10% and cache miss
In DHT, Setxattr can be compounded with mkdir?
saves inodelks and setxattr
Lease on parent dir and newly created files can
eliminate, sending inodelk and entrylk to the
bricks. But only benefits single client use cases.
It is not a function of number of dht subvol, as
mkdir is sent initially on hashed subvol followed
by parallel mkdir on the rest.
10. ls -lR
Readdirp - sequential and fn(number of dht
subvols). Hence not scalable.
Eg: reading 800 empty directories on
10*1 = 16000 sequential readdirp calls
30*1 = 48000 sequential readdirp calls
Readdir-ahead only masks part of this latency,
hence parallel readdirp in DHT.
Eliminate EOD detection readdirp call
DHT – do not NULL the readdirp entries of
directory
Md-cache – eliminate revalidate lookups
11. #rm files in one large dir
2
36
18
44
STAT/LOOKUP - 2% ENTRYLK - 36% UNLINK - 19% READDIRP - 44%
12. Delete files
Parallel readdirp – may not improve performance
drastically for large directories.
Lease on parent directory, can make entrylk only
client side. But helps only in single client use
case.
14. rmdir Recusrsive
Rmdir - fn (number of dht subvolumes). Hence
not scalable.
Inodelks are taken sequentially on all dht subvols
before rmdir (rmdir and inodelk unlock –
parallel). WIP to remove inodelk.
Lease on parent directory, can make inodelk and
entrylk only client side. But helps only in single
client use case.
Revalidate lookup – md-cache
16. Small file Create / PUT
ENTRYLK, INODELK can be made only client side
by using leases, but helps single client use case
Compound fop XATTROP + WRITE
PUT fop, only gfapi clients(Swift, core utils) will
be able to leverage.
18. Conclusion
We have not yet saturated, the perf
improvements. Performance of these
metadata operations can be improved
greatly, without compromising on
consistency.