On 02/12/2015 03:21 PM, Fam Zheng wrote: > Hi Congyang, > > On Thu, 02/12 11:07, Wen Congyang wrote: >> +== Workflow == >> +The following is the image of block replication workflow: >> + >> + +----------------------+ +------------------------+ >> + |Primary Write Requests| |Secondary Write Requests| >> + +----------------------+ +------------------------+ >> + | | >> + | (4) >> + | V >> + | /-------------\ >> + | Copy and Forward | | >> + |---------(1)----------+ | Disk Buffer | >> + | | | | >> + | (3) \-------------/ >> + | speculative ^ >> + | write through (2) >> + | | | >> + V V | >> + +--------------+ +----------------+ >> + | Primary Disk | | Secondary Disk | >> + +--------------+ +----------------+ >> + >> + 1) Primary write requests will be copied and forwarded to Secondary >> + QEMU. >> + 2) Before Primary write requests are written to Secondary disk, the >> + original sector content will be read from Secondary disk and >> + buffered in the Disk buffer, but it will not overwrite the existing >> + sector content in the Disk buffer. > > I'm a little confused by the tenses ("will be" versus "are") and terms. I am > reading them as "s/will be/are/g" > > Why do you need this buffer?
We only sync the disk till next checkpoint. Before next checkpoint, secondary vm write to the buffer. > > If both primary and secondary write to the same sector, what is saved in the > buffer? The primary content will be written to the secondary disk, and the secondary content is saved in the buffer. Thanks Wen Congyang > > Fam > >> + 3) Primary write requests will be written to Secondary disk. >> + 4) Secondary write requests will be buffered in the Disk buffer and it >> + will overwrite the existing sector content in the buffer. >> + > . >