Dear developers,

My name is Cai Yi, and I am a graduate student majored in CS of Xi’an Jiaotong 
University in China. From Ceph’s homepage, I know Sage is the author of Ceph 
and I get the email address from your GitHub and Ceph’s official website. 
Because Ceph is an excellent distributed file system, so recently, I am reading 
the source code of the Ceph (the edition is Hammer) to understand the IO good 
path and the performance of Ceph. However, I face some problems which I could 
not find the solution from Internet or solve by myself and my partners. So I 
was wondering if you could help us solve some problems. The problems are as 
follows:

1)       In the Ceph, there is a concept that is the transaction. When the OSD 
receives a write request, and then it is encapsulated by a transaction. But 
When the OSD receive many requests, is there a transaction queue to receive the 
messages? If there is a queue, is it a process of serial or parallel to submit 
these transaction to do next operation? If it is serial, could the transaction 
operations influence the performance?

2)       From some documents about Ceph, if the OSD receives a read request, 
the OSD can only read data from primary and then back to client. Is the 
description right? Is there any way to read the data from replicated OSD? Do we 
have to require the data from the primary OSD when deal with the read request? 
If not and we can read from replicated OSD, could we promise the consistency?

3)       When the OSD receives the message, the message’s attribute may be the 
normal dispatch or the fast dispatch. What is the difference between the normal 
dispatch and the fast dispatch? If the attribute is the normal dispatch, it 
enters the dispatch queue. Is there a single dispatch queue or multi dispatch 
queue to deal with all the messages?

These are the problem I am facing. Thank you for your patience and cooperation, 
and I look forward to hearing from you.

Yours sincerely

Cai

Reply via email to