DBObjectMap::header_lock forcing filestore threads to be sequentail

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

 



Hi, everone.

Recently, we did some stress tests on mds. We found that, when doing
file creation test, the mdlog trim operations are very slow. After
doing some debugging, we found that this could be due to execution of
the OSD's filestore theads being forced to be nearly sequential. This
can be found out in our result of gdbprof probing, which is attached
with this email. In the gdbprof result, we can see that the most time
consuming work of the filestore threads is the sizing of
DBObjectMap::caches, and the reason of sequential execution of
filestore threads is the locking of DBObjectMap::header_lock.

After reading the corresponding source code, we found that
MapHeaderLock is already doing the mutual exclusion of access of the
omap object header. It seems that the locking of
DBObjectMap::header_lock is not very necessary, or at least, it's not
needed when adding the header to DBObjectMap::caches, which would lead
to the sizing of the cache.

Is this right?

Attachment: gdb.create.rocksdb.xfs.log
Description: Binary data


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux