CephFS code deep dive

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

 



I spent a few days this week discussing CephFS with some new
contributors working at Red Hat, and I managed to record some of it.
We decided to share the recordings publicly, but let me be clear about
what these are not:
*) These are not prepared. There are no slides; I say "um" a lot
*) These are not the word of god. I said untrue things and caught
it/got caught a few times, but probably still lied somewhere else that
wasn't noticed.
*) These are not user discussions or designed as an intro to CephFS.
If you aren't comfortable following the source code and trying to
relate it to concepts in Sage's thesis
(http://ceph.com/papers/weil-thesis.pdf) on your own, these won't help
you.

What these are, is about 8 hours of a fairly one-sided conversation
about the CephFS source code and some of its design.

All that said, the video links and an outline of their contents:

https://bluejeans.com/s/9QN_/
Chapter 1: The messenger/dispatcher model; how mknod works from the client side

https://bluejeans.com/s/9QO5/
Chapter 1: client-side structs: Inode, Dentry, Fh, MetaSession
server-side: MDS ranks versus daemons, and their major components; MDS
dispatch routing; handle_mds_map; Mutation/MDRequestRefs; the
beginnings of mknod; traversing the cache
Chapter 2: Selecting and acquiring locks; more mknod; bunches of
metadata projecting/logging code; some file cap handling

https://bluejeans.com/s/9QRO/
Unfortunately, starting from this point I no longer have video of the
terminal I was using to display code. Stuff will be a lot less useful
without that, but I think I still reference enough function names for
dedicated listeners to follow along. :)
Chapter 1: setattr code from both sides; file capabilities and
flushing from both sides; locks.c (our lock transitions)
Chapter 2: metadata on-disk storage; encoding functions
Chapter 3: unlink, from the client and server; leading into file
purging code (stray directories!); beginning of layouts and backtraces

https://bluejeans.com/s/9QTk/
again, no terminal content
Chapter 1: purging and backtraces finished; rename on both client and server
Chapter 2: This has got to be totally unintelligible rambling about
snapshots, since I gave up on displaying code and started drawing on a
whiteboard

If anybody does manage to watch these and get something out of them,
feel free to ask questions either here on the list or on #ceph-devel.
:)
-Greg
--
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