Re: Question about per MDS journals

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

 



On Wed, Feb 24, 2021 at 9:10 AM 조규진 <bori19960@xxxxxxxxx> wrote:
>
> Hi.
>
> I'm a newbie in CephFS and I have some questions about how per-MDS journals
> work.
> In Sage's paper (osdi '06), I read that each MDSs has its own journal and
> it lazily flushes metadata modifications on OSD cluster.
> What I'm wondering is that some directory operations like rename work with
> multiple metadata and It may work on two or more MDSs and their journals,
> so I think it needs some mechanisms to construct a transaction that works
> on multiple journals like some distributed transaction mechanisms.
>
> Could anybody explains how per-MDS journals work in such directory
> operations? or recommends some references about it?

Your intuition is correct: these transactions span multiple MDS journals.

The code for this stuff is somewhat long, in src/mds/Server.cc, but
here are a couple of pointers if you're interested in untangling it:
- Server::handle_client_rename is the entry point
- The MDS which handles the client request sends MMDSPeerRequest
messages to peers in rename_prepare_witness, and waits for
acknowledgements before writing EUpdate events to its journal
- The peer(s) write EPeerUpdate(OP_PREPARE) events to their journals
during prepare, and EPeerUpdate(OP_COMMIT) after the first MDS has
completed.

John



>
> Thanks.
> kyujin.
> _______________________________________________
> ceph-users mailing list -- ceph-users@xxxxxxx
> To unsubscribe send an email to ceph-users-leave@xxxxxxx
_______________________________________________
ceph-users mailing list -- ceph-users@xxxxxxx
To unsubscribe send an email to ceph-users-leave@xxxxxxx




[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux