<div><br></div><div><div><br></div><div>







<p class="p1"><span class="s1">root@tgs3:~# dog vdi check galera-db-data-01</span></p>
<p class="p1"><span class="s1"> 98.4 % [=======================================================================================================================================>  ] 49 GB / 50 GB      object ea1c7900000000 is inconsistent</span></p>
<p class="p1"><span class="s1"> 98.4 % [=======================================================================================================================================>  ] 49 GB / 50 GB      object ea1c7900000002 is inconsistent</span></p>
<p class="p1"><span class="s1"> 98.4 % [=======================================================================================================================================>  ] 49 GB / 50 GB      object ea1c7900000003 is inconsistent</span></p>
<p class="p1"><span class="s1"> 98.5 % [=======================================================================================================================================>  ] 49 GB / 50 GB      object ea1c7900000001 is inconsistent</span></p>
<p class="p1"><span class="s1"> 98.8 % [========================================================================================================================================> ] 49 GB / 50 GB      object ea1c7900000034 is inconsistent</span></p>
<p class="p1"><span class="s1"> 98.8 % [========================================================================================================================================> ] 49 GB / 50 GB      object ea1c7900000035 is inconsistent</span></p>
<p class="p1"><span class="s1"> 98.8 % [========================================================================================================================================> ] 49 GB / 50 GB      object ea1c7900000036 is inconsistent</span></p>
<p class="p1"><span class="s1"> 98.9 % [========================================================================================================================================> ] 49 GB / 50 GB      object ea1c790000003e is inconsistent</span></p>
<p class="p1"><span class="s1"> 98.9 % [========================================================================================================================================> ] 49 GB / 50 GB      object ea1c790000003f is inconsistent</span></p>
<p class="p1"><span class="s1"> 98.9 % [========================================================================================================================================> ] 49 GB / 50 GB      object ea1c7900000040 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.1 % [========================================================================================================================================> ] 50 GB / 50 GB      object ea1c7900000056 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.1 % [========================================================================================================================================> ] 50 GB / 50 GB      object ea1c7900000057 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.1 % [========================================================================================================================================> ] 50 GB / 50 GB      object ea1c7900000058 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.2 % [========================================================================================================================================> ] 50 GB / 50 GB      object ea1c7900000068 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.2 % [========================================================================================================================================> ] 50 GB / 50 GB      object ea1c7900000076 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.3 % [========================================================================================================================================> ] 50 GB / 50 GB      object ea1c7900000078 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.3 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900000c80 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.3 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900000c86 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.3 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900000c87 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.4 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900000c88 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.4 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900001900 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.4 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900001905 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.4 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900001906 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.4 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900001909 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.5 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900001913 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.6 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900001911 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.6 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900001920 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.8 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900001937 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.8 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900002580 is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.9 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c790000258c is inconsistent</span></p>
<p class="p1"><span class="s1"> 99.9 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900002590 is inconsistent</span></p>
<p class="p1"><span class="s1">100.0 % [=========================================================================================================================================>] 50 GB / 50 GB      object ea1c7900002595 is inconsistent</span></p>
<p class="p1"><span class="s1">100.0 % [==========================================================================================================================================] 50 GB / 50 GB      </span></p>
<p class="p1"><span class="s1">finish check&repair galera-db-data-01</span></p><p class="p1"><span class="s1">------------</span></p><p class="p1"><span class="s1">what can i do something for eliminate these  </span><span style="line-height: 1.5;">inconsistent object?  run "dog vdi check" no </span><span style="line-height: 1.5;">effect issuer</span></p><p class="p1"><span style="line-height: 1.5;">ths!!! </span></p><p class="p1"><span style="line-height: 1.5;"><br></span></p><p class="p1"><br></p>















</div><div style="font-size: 12px;font-family: Arial Narrow;padding:2px 0 2px 0;">------------------ Original ------------------</div><div style="font-size: 12px;background:#efefef;padding:8px;"><div><b>From: </b> "Dong Wu";<archer.wudong@gmail.com>;</div><div><b>Date: </b> May 27, 2016</div><div><b>To: </b> "Hitoshi Mitake"<mitake.hitoshi@gmail.com>; <wbr></div><div><b>Cc: </b> "sheepdog"<sheepdog@lists.wpkg.org>; <wbr></div><div><b>Subject: </b> Re: [sheepdog] questions about sheepdog write policy</div></div><div><br></div>2016-05-27 16:14 GMT+08:00 Hitoshi Mitake <mitake.hitoshi@gmail.com>:<br>><br>><br>> On Thu, May 26, 2016 at 4:19 PM, Dong Wu <archer.wudong@gmail.com> wrote:<br>>><br>>> Thanks for your reply.<br>>><br>>> 2016-05-26 10:34 GMT+08:00 Hitoshi Mitake <mitake.hitoshi@gmail.com>:<br>>> ><br>>> ><br>>> > On Tue, May 24, 2016 at 6:46 PM, Dong Wu <archer.wudong@gmail.com><br>>> > wrote:<br>>> >><br>>> >> hi,mitake<br>>> >> I have questions about sheepdog write policy.<br>>> >> for replication, sheepdog write default 3 copies, and is strong<br>>> >> consistency.<br>>> >> my doubt is<br>>> >> 1) if some  replicas write successfully, others fail, then it will<br>>> >> retry write anyway until all the 3 replicas success? but if there are<br>>> >> only less than 3 nodes left, will it write only less than 3 replicas<br>>> >> and return success to client?<br>>> ><br>>> ><br>>> > In a case of disk and network I/O error, sheep returns an error to its<br>>> > client immediately. In some case (e.g. epoch increasing caused by node<br>>> > join/leave), it will retry.<br>>><br>>> will the client retry? If the error is caused by only one of the<br>>> replica(eg, the replica's disk is error), and another two is ok, and<br>>> writed success,  then return to client error is reasonable? Why not<br>>> just return to client success, and then recover the errored replica?<br>><br>><br>> It is for ensuring 3 replica is consistent. Sheepdog's interface is virtual<br>> disk so consistency is more important than availability.<br><br>sheepdog has no journal to guarantee the replicas's consistency, so it<br>should just return to client error when any replica write failed and<br>wait to recover to consistency again and then can continue write.<br><br>without any consistent log, sheepdog recover logic will scan all the<br>replica's objects and check if the object need to recover,  am i<br>right?<br><br>><br>>><br>>><br>>> ><br>>> >><br>>> >> 2) if some replicas write success, others write fail, and return fail<br>>> >> to client, how to deal with these replicas's data consistency(write<br>>> >> success node has new data, but write fail node has old data)? if<br>>> >> client read the same block, will it read new data  or old data?<br>>> ><br>>> ><br>>> > In such a case, we need to repair consistency with "dog vdi check"<br>>> > command.<br>>> > Note that in such a case the failed VDIs won't be accessed from VMs<br>>> > anymore<br>>> > because they will be used in read-only mode.<br>>><br>>> This meas can't read data from this VDI until it recover done?<br>>> I remember in old version sheepdog, in the read I/O path, it first<br>>> check the replicas's consistency, then read data;<br>>> but i can't find the logic anymore in the lastest version.<br>><br>><br>> The data can be read and actually it would work well in many cases.<br><br>Consider such a case: a write request write success on replicaA, but<br>failed on replicaB, then return error to client(so replicaC did not<br>receive the write req), so replicaA has new data, replicaC has old<br>data, then client read the VDI, will it always read the new data or<br>old data, or just sometime read new data, sometime read old data<br>before "dog vdi check"?<br><br>And object on replicaB will be part new and part old? How to guarantee<br>write object atomic?<br><br>> I'm not sure about the feature of the old version, but it seems to be costly<br>> for ordinal read path. But reviving it as an option would be a reasonable.<br>> How do you think?<br><br>yes, it is costly.<br><br>><br>> Thanks,<br>> Hitoshi<br>><br>>><br>>><br>>> ><br>>> > Thanks,<br>>> > Hitoshi<br>>> ><br>>> >><br>>> >><br>>> >> Thanks a lot.<br>>> ><br>>> ><br>><br>><br><br>Thanks,<br>Dong Wu<br>-- <br>sheepdog mailing list<br>sheepdog@lists.wpkg.org<br>https://lists.wpkg.org/mailman/listinfo/sheepdog</div>