a question about “lease issued to client” in ceph mds

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

 



Hi:

        I want to ask a question about "lease issued to client".

        In ceph source, src/mds/Locker.cc: Locker::issue_client_lease:


        if(... &&

               (!diri->filelock.can_lease(client) &&

                (diri->get_client_cap_pending(client) &
(CEPH_CAP_FILE_SHARED | CEPH_CAP_FILE_EXCL)) == 0) &&

                 dn->lock.can_lease(client)) {

                ...

                // issue a dentry lease

               ClientLease *l = dn->add_client_lease(client, session);

                ...

                LeaseStat e;

                ...

                e.duration_ms = (int)(1000 *
mdcache->client_lease_durations[pool]);

                ...

        } else {

                // null lease

                LeaseStat e;

                ...

                e.duration_ms = 0;
                ...

        }

        So my understanding is:

        If parent directory has no lease, but has CEPH_CAP_FILE_SHARED
mask, then the dentry can get a lease of 30s(caculated from
duration_ms).

        Else if in other conditions, then the dentry get a lease of 0s.

        I am confused here, in what situation does the parent
directory and the child dentry share a lease?

        And in what situation does the child dentry have no
lease(lease of zero seconds?)?

        Could you please explain further?


Thank you for your reading, I really appreciate your response. Thanks.
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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