Quite right, I flipped them while writing the mail - oops. John On Thu, Feb 25, 2021 at 6:04 PM Mykola Golub <to.my.trociny@gmail.com> wrote:
On Thu, Feb 25, 2021 at 09:59:41AM +0000, John Spray wrote:
osdc/Journaler is for RDB, client/Journaler is for CephFS.
Actually, src/journal/(Journaler.h) is for RBD (it is more generic, but currently is used by RBD only).
And src/osdc/Journaler.h is for cephfs.
On Thu, Feb 25, 2021 at 8:26 AM 조규진 <bori19960@snu.ac.kr> wrote:
Hi, John.
Thanks for your kind reply!
While i'm checking the code that you recommend to check and other .cc files about journal, I find that there is two Journaler class. One is at "src/osdc/Journaler.h" and the other one is at "src/journal/Journaler.h". If you don't mind, could you tell me which one is for MDS journal? and the differences between them?
Thanks. kyujin
2021년 2월 25일 (목) 오전 1:15, John Spray <jcspray@gmail.com>님이 작성:
On Wed, Feb 24, 2021 at 9:10 AM 조규진 <bori19960@snu.ac.kr> 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@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
_______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
-- Mykola Golub