Doubts on replication strategy in CODA

"Sundaram, Arunkumar" <[email protected]> Tue, 18 May 2004 21:58:21 +0530
Newsgroups gmane.comp.file-systems.coda.general,gmane.comp.file-systems.coda.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.

------_=_NextPart_001_01C43CF5.2257B7B5
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi Everyone,
=20
First of all a big kudos to CODA community, it's a wonderful job you =
guys are doing.
=20
In one of the documents I read that CODA uses read-one, write-all =
approach for server replication. I am a little bit concerned here.
=20
Let's assume that there are three replicated servers A, B and C.
And let's assume that client Ac is connected to A, client Bc is =
connected to B and client Cc is connected to C.
=20
In this scenario let's say there is a file named "CommonFile" under root =
directory of CODA share. Consider a sequence of following operations on =
this file
=20
Ac opens "CommonFile" for write
Bc opens "CommonFile" for write
Ac appends some content =E4A to "CommonFile"
Bc appends some content =E4B to "CommonFile"
Ac propagates =E4A to other replicated servers
Bc propagates =E4B to other replicated servers
lets say at this time =E4A is propagated to servers in the following =
order; first to A then to C and then to B
lets say at the same time =E4B is propagated to servers in the following =
order; first to B then to C and then to A
In this situation there is a chance for
server A to have "CommonFile" + =E4B and lost =E4A
server B to have "CommonFile" + =E4A and lost =E4B
=20
Basically I would like to know whether there is any locking done when =
accessing a single file, if yes who is responsible for it.
Or is it a limitation that files cannot be used simultaneously at two =
clients connected to two different duplicated servers.
=20
Please feel free to clarify anything in this question with me; I may =
have not stated things clearly. Thanks in advance.
=20
Cheers,
Arun

------_=_NextPart_001_01C43CF5.2257B7B5
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">


<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 10">
<meta name=3DOriginator content=3D"Microsoft Word 10">
<link rel=3DFile-List href=3D"cid:[email protected]">
<!--[if gte mso 9]><xml>
 <o:OfficeDocumentSettings>
  <o:DoNotRelyOnCSS/>
 </o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:DocumentKind>DocumentEmail</w:DocumentKind>
  <w:EnvelopeVis/>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	mso-style-noshow:yes;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:Arial;
	mso-ascii-font-family:Arial;
	mso-hansi-font-family:Arial;
	mso-bidi-font-family:Arial;
	color:windowtext;}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes;}
span.GramE
	{mso-style-name:"";
	mso-gram-e:yes;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */=20
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";}
</style>
<![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple =
style=3D'tab-interval:.5in'>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Hi Everyone,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>First of all a big kudos to CODA community, =
it&#8217;s a wonderful
job you guys are doing.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>In one of the documents I read that CODA uses =
read-one,
write-all approach for server replication. I am a little bit concerned =
here.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Let&#8217;s assume that there are three replicated =
servers A,
B and C.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>And let&#8217;s assume that client Ac is connected to =
<span
class=3DGramE>A</span>, client <span class=3DSpellE>Bc</span> is =
connected to B and
client Cc is connected to C.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>In this scenario let&#8217;s say there is a file =
named &#8220;<span
class=3DSpellE>CommonFile</span>&#8221; under root directory of CODA =
share. Consider
a sequence of following operations on this =
file<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Ac opens &#8220;<span =
class=3DSpellE>CommonFile</span>&#8221; for
write<o:p></o:p></span></font></p>

<p class=3DMsoNormal><span class=3DSpellE><span class=3DGramE><font =
size=3D2
face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>Bc</span></font></span></spa=
n><font
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'> opens &#8220;<span
class=3DSpellE>CommonFile</span>&#8221; for =
write<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Ac appends some content <span class=3DSpellE><FONT =
FACE=3D"Courier New">=E4</FONT>A</span> to &#8220;<span
class=3DSpellE>CommonFile</span>&#8221;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><span class=3DSpellE><span class=3DGramE><font =
size=3D2
face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>Bc</span></font></span></spa=
n><font
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'> appends
some content <span class=3DSpellE><FONT FACE=3D"Courier =
New">=E4</FONT>B</span> to &#8220;<span =
class=3DSpellE>CommonFile</span>&#8221;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Ac propagates <span class=3DSpellE><FONT =
FACE=3D"Courier New">=E4</FONT>A</span> to other
replicated servers<o:p></o:p></span></font></p>

<p class=3DMsoNormal><span class=3DSpellE><span class=3DGramE><font =
size=3D2
face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>Bc</span></font></span></spa=
n><font
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'> propagates <span
class=3DSpellE><FONT FACE=3D"Courier New">=E4</FONT>B</span> to other =
replicated servers<o:p></o:p></span></font></p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>lets</span></font></span><fo=
nt
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'> say at this
time <span class=3DSpellE><FONT FACE=3D"Courier New">=E4</FONT>A</span> =
is propagated to servers in the following
order; first to A then to C and then to B<o:p></o:p></span></font></p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>lets</span></font></span><fo=
nt
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'> say at the
same time <span class=3DSpellE><FONT FACE=3D"Courier =
New">=E4</FONT>B</span> is propagated to servers in the
following order; first to B then to C and then to =
A<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>In this situation there is a chance =
for<o:p></o:p></span></font></p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>server</span></font></span><=
font
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'> A to have &#8220;<span
class=3DSpellE>CommonFile</span>&#8221; + <span class=3DSpellE><FONT =
FACE=3D"Courier New">=E4</FONT>B</span> and lost <span
class=3DSpellE><FONT FACE=3D"Courier =
New">=E4</FONT>A</span><o:p></o:p></span></font></p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>server</span></font></span><=
font
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'> B to have &#8220;<span
class=3DSpellE>CommonFile</span>&#8221; + <span class=3DSpellE><FONT =
FACE=3D"Courier New">=E4</FONT>A</span> and lost <span
class=3DSpellE><FONT FACE=3D"Courier =
New">=E4</FONT>B</span><o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Basically I would like to know whether there is any =
locking done
when accessing a single file, if yes who is responsible for =
it.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Or is it a limitation that files cannot be used
simultaneously at two clients connected to two different duplicated =
servers.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Please feel free to clarify anything in this question =
with
me; I may have not stated things clearly. Thanks in =
advance.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Cheers,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Arun<o:p></o:p></span></font></p>

</div>

</body>

</html>

------_=_NextPart_001_01C43CF5.2257B7B5--