I am a research student from India working on QoS for distributed storage systems. I was studying the implementation of mClock in ceph for my research purposes. I am stuck with some doubts. It would be really helpful if someone can clarify some of them.
If possible please help me understand these. Also please correct me if anything is wrong here.
- I was checking https://www.slideshare.net/ssusercee823/implementing-distributed-mclock-in-ceph, there it was mentioned that dmClock is implemented in ceph. But when I checked the master branch of ceph, rho and delta are not sent from the client and add_request()
function is called with null_req_params. Is dmClock implemented in some other branch of ceph?
- When an MOSDRepOp is received in an OSD node, PullPriorityQueue::add_request() is called with a client id that corresponds to the primary OSD which sent the MOSDRepOp. Why actual client which sent the MOSDOp is not taken as the client id? Is there any particular
reason for this?
- When an MOSDRep has reached the primary osd node, it goes to the mclock queue. When it is dequeued and MOSDRepOps are sent to replica nodes, these requests will again have to wait in replica node's mclock queue(client id corresponds to primary osd). Will
this cause an inefficiency since it waits two times in queues?