<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.7600.16722"><LINK rel=stylesheet
href="BLOCKQUOTE{margin-Top: 0px; margin-Bottom: 0px; margin-Left: 2em}"></HEAD>
<BODY style="MARGIN: 10px; FONT-FAMILY: verdana; FONT-SIZE: 10pt">
<DIV><FONT size=2 face=Verdana>Hi, Kazutaka, </FONT></DIV>
<DIV> </DIV>
<DIV>After reading the source code of the sheepdog, I have some questions
confused.</DIV>
<DIV> </DIV>
<DIV>1. sheepdog claim it is strong consistent, And I think the implemention of
the read_object() write_object() remove_object() ensure that strong
consistent? any other places to ensure it ? How about it
affect the performance of the sheepdog?</DIV>
<DIV> </DIV>
<DIV>2. About the recovery alogorithm, When the new node join or the node
left, sheepdog will call start_recovery()func and recovery in
background. The main actions of the recovery is move the object
to the new node and the epoch directory ;
while recoverying, the READ_OBJECT request arrived,
currently sys->epoch has increased, but the object maybe still
in old epoch directory ,not yet move to the new epoch, How the
sheepdog handle the situation ? And the sys->epoch increased in
update_cluster_status() before calling start_recovery()</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>Thanks~</DIV>
<DIV>yaornli</DIV>
<DIV align=left><FONT color=#c0c0c0 size=2 face=Verdana>2011-03-15
</FONT></DIV><FONT size=2 face=Verdana>
<HR style="WIDTH: 122px; HEIGHT: 2px" align=left SIZE=2>
<DIV><FONT color=#c0c0c0 size=2 face=Verdana><SPAN>jidalyg_8711</SPAN>
</FONT></DIV></FONT></BODY></HTML>