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> </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’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> </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> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>Let’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’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> </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’s say there is a file = named “<span class=3DSpellE>CommonFile</span>” 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> </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 “<span = class=3DSpellE>CommonFile</span>” 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 “<span class=3DSpellE>CommonFile</span>” 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 “<span class=3DSpellE>CommonFile</span>”<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 “<span = class=3DSpellE>CommonFile</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'>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 “<span class=3DSpellE>CommonFile</span>” + <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 “<span class=3DSpellE>CommonFile</span>” + <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> </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> </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> </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--