1
0
mirror of https://github.com/gluster/glusterfs.git synced 2026-02-06 18:48:16 +01:00
Files
glusterfs/doc/developer-sessions/README.md
Pranith Kumar Karampuri 76d7bb0b80 Doc: Developer session 18 (#2959)
This session covers fuse and its trade offs. Details of the session include:
    - various parts of fuse code in the glusterfs source tree
    - the story FUSE version macros tell
    - the tale of FUSE and fuse (historical context, terminology)
    - to libfuse or not to libfuse?
    - FUSE proto breakdown
    - mount and INIT

updates: #2308
Change-Id: I764f925c8de4a2be0461e71d2c720005b9e617e3
Signed-off-by: Pranith Kumar K <pranith.karampuri@phonepe.com>
2021-11-27 11:56:18 +05:30

5.6 KiB

Table of Contents

  1. Disk Filesystems - video - slides
    This session covers the concepts of disk filesystems that are important to understand glusterfs.

  2. 1 Layer above Disk Filesystems(Posix) - video - slides
    This session covers how posix xlator converts File Operations(FOPs) in glusterfs to system calls on the underlying disk filesystems.
    Following internal data structures are discussed as part of the session.

    • inode_t
    • dentry_t
    • fd_t
  3. Xlator interface - video - slides
    This session covers xlator interface in glusterfs which is how all functionality/modules are divided into in glusterfs.

  4. Programming Model - video - slides
    This session covers programming model used in glusterfs along with the data structures used to achieve it.

  5. inode_t, fd_t lifecycles - video - slides
    This session covers lifecycles of inode_t and fd_t data structures. Debugging ref leaks for these structures is also briefly covered.

  6. Understanding Gluster's communication layer - video - slides
    This session covers Gluster's communication layer. How XDR is used to serialize/deserize data in rpc calls from pov of both client and server xlators.

  7. Client-Server interactions - video - slides
    Client, server interactions for connecting/disconnecting/reconnecting are covered in this session

  8. Memory tracking in glusterfs, io-threads xlator - video - slides

    • Memory tracking infra and how statedumps are used to debug memory leaks is covered
    • io-threads xlator implementation is covered.
  9. Index xlator - video - slides
    Index xlator design and implementation are covered in this session.

  10. Locks xlator inodelks - video - slides

    • Gives brief introduction about the purpose of this xlator
    • Introduces and code walkthrough of inodelk part of locks xlator
  11. Locks xlator entrylks - video - slides

    • Introduces and code walkthrough of entrylk part of locks xlator
    • Explains the connection between entrylk and inodelk in deletion code paths
  12. Locks xlator posixlk - video - slides

    • What is the behavior of posixlks
    • Code walkthrough
  13. Replication xlator introduction - video - slides

    • Replicate xlator graph placement
    • On-disk data representation
    • On-disk data manipulation with xattrop
    • Common functioning of fops
    • Lookup
    • Open
    • readdir/readdirp
    • Flush
    • Statfs
  14. Replication update transaction - video - slides

    • Update transaction
    • Data/Metadata operation
    • Optimizations to reduce the network communication
  15. Replication optimizations & Read transaction - video - slides

    • read transaction
    • Handling of faults by the transaction
    • Load balancing strategies
  16. Self heal daemon of replication - video - slides

    • Intro to self-heal daemon (shd)
    • Types of crawls in shd
    • Code walkthrough
  17. Self heal daemon - data, metadata, entry self-heals - video - slides

    • Types of heal needed for a given file/directory
    • Code walkthrough of data, metadata, entry self-heals
  18. Intro to FUSE and its trade offs - video - slides

    • various parts of fuse code in the glusterfs source tree
    • the story FUSE version macros tell
    • the tale of FUSE and fuse (historical context, terminology)
    • to libfuse or not to libfuse?
    • FUSE proto breakdown
    • mount and INIT