Hi Jie, I think you’re right in both cases you describe. There are inherent limitations to any algorithm based on the distribution of requests to multiple servers that are themselves not interchangeable (i.e., a given request must go to a specific server). It seems to me dmclock does a relatively good job without requiring explicit and direct coordination between the servers and instead using the clients to help coordinate the distributed aspect of the algorithm. Eric On Jul 4, 2017, at 9:11 PM, Lijie <li.jieA@xxxxxxx> wrote: > > Hi Eric, > We applied dmclock in ceph, but in actual environments only the limitation worked while the reservation and proportion had no real effect at all. > After careful analysis, we find that the dmclock algrithm developed from the mclock algrithm, has great defects in theory. > > First of all , a corepremise of attaining reservation is that all requests which should be scheduled in reservation phase have been completed before > it going into proportion phase.This means if the reservation heap has requests with R-tag smaller than current time, it should not process requests > in proportion phase. It is very easy to get this point in single server. But in multi-server situation, some servers are in reservation phase while some > in proportion phase. So the reservation can not be guaranteed at all. > > Second of all, a similar problem remains for proportion. Let's consider an extreme situation . There are 2 servers ,S1 and S2;2 clients C1,C2. All of requests > from C1 go to S1 while all requests from C2 go to S2. In this case, proportion cannot be guaranteed . And requests are not equally distributed in real wolrd like > ceph, which leads to the failure in proportion. > > So in conclusion,we think that dmclock can only work for limitation in theory. > > So what about your idea about our conclusion ? -- 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