Skip to content

Clarification on C++ function flow and asynchronous execution in 3FS #423

Open

Description

@jsramesh1990

Hi,

I am trying to understand the asynchronous execution model used in 3FS.

When a client performs a read/write operation, I see that the operation
eventually completes asynchronously.

Could someone explain the C++ function call flow for one complete request?

Specifically:

  1. Which function is the initial entry point?
  2. Which object owns the asynchronous request?
  3. How is the request submitted?
  4. What mechanism is used to notify completion?
  5. Where is the callback/future/promise triggered?
  6. How does the result finally return to the original caller?
  7. How are object lifetimes managed while the operation is pending?

A simplified example such as:

request()
-> submit()
-> async operation
-> RDMA/network
-> completion
-> callback
-> return result

would help me understand the C++ architecture.

I am mainly interested in the actual C++ classes/functions involved and
their call sequence.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions