X-MimeOLE: Produced By Microsoft Exchange V6.5
Received: by onstor-exch02.onstor.net 
	id <01C78C4F.312B0889@onstor-exch02.onstor.net>; Tue, 1 May 2007 17:16:55 -0700
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C78C4F.312B0889"
Subject: RE: quota tree removal func spec
Date: Tue, 1 May 2007 17:16:44 -0700
Message-ID: <BB375AF679D4A34E9CA8DFA650E2B04E037975F6@onstor-exch02.onstor.net>
In-Reply-To: <BB375AF679D4A34E9CA8DFA650E2B04E037975AA@onstor-exch02.onstor.net>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: quota tree removal func spec
Thread-Index: AceMRCHOkb88bQlAT2Cxn5mnCetNBQAAhLNgAABjRDA=
From: "Jobi Ariyamannil" <jobi.ariyamannil@onstor.com>
To: "Tim Gardner" <tim.gardner@onstor.com>
Cc: "dl-Design Review" <dl-designreview@onstor.com>

This is a multi-part message in MIME format.

------_=_NextPart_001_01C78C4F.312B0889
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Thanks Tim for reviewing the document.  Please see my answers inline
below.

=20

________________________________

From: Tim Gardner=20
Sent: Tuesday, May 01, 2007 4:20 PM
To: Jobi Ariyamannil
Cc: dl-Design Review
Subject: RE: quota tree removal func spec

=20

The CLI portion needs more detail.

You need to specify that the command needs to be run in the context of
the virtual server that owns the volume.

Specify errors that will be returned if vol does not exist or belongs to
a different VS.

JOBI> I think these are true for rest of the filesystem commands as
well.

=20

Are there other commands that take a path? Do these commands split the
volume and path into two arguments or

do they use a single argument?

JOBI> Yes, all the other filesystem tree quota commands take path as the
argument.

=20

What is the syntax of path? Does it use / or \ to separate
subdirectories?

JOBI>  Same as the other filesystem tree quota commands, it uses / as
separator.

=20

The solution section needs more detail?

What happens if the filer is rebooted in the middle of deleting a quota
tree?

JOBI>  Filesystem operations are crash consistent.  That is the reason a
meta inode is introduced to track pending quota tree removals.

=20

Will the delete resume after the reboot?

JOBI>  Yes.

What happens if the VS is moved or fails over during a delete?

JOBI>  Same as a crash.

Will the delete continue on the other filer?

JOBI>  Yes.

=20

Can concurrent quota tree delete operations be performed?

JOBI>  Yes.

What happens if a delete of a nested tree is started and then a delete
of the parent quota tree is started?

JOBI>  We are not doing namespace directory removals.  Inodes are
removed by looking at the quota tree ID and in the above case, that will
be different.

Will this work?

JOBI>  Yes.

=20

The spec needs to contain some guidelines on how long the delete will
take.

JOBI>  This is an asynchronous operation.  Command will return
immediately.  We walk through the inode file in the background looking
for inodes in the quota tree and remove them.  So the time is
proportional to the number of inodes in the filesystem as well as the
number of inodes in the quota tree (and other usual things like system
load, available memory etc)

=20

Please schedule a design review meeting to discuss this document.

JOBI> ok

=20

________________________________

From: Jobi Ariyamannil=20
Sent: Tuesday, May 01, 2007 3:58 PM
To: dl-Design Review
Subject: quota tree removal func spec

=20

Hi,

=20

Please see the attached func spec for quota tree removal.

=20

Regards,

Jobi


------_=_NextPart_001_01C78C4F.312B0889
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

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

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags" =
name=3D"PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal;
	font-family:Arial;
	color:windowtext;}
span.EmailStyle18
	{mso-style-type:personal;
	font-family:Arial;
	color:navy;}
span.EmailStyle19
	{mso-style-type:personal-reply;
	font-family:Arial;
	color:navy;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Thanks Tim for reviewing the
document.&nbsp; Please see my answers inline =
below.<o:p></o:p></span></font></p>

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

<div>

<div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font =
size=3D3
face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>

<hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1>

</span></font></div>

<p class=3DMsoNormal><b><font size=3D2 face=3DTahoma><span =
style=3D'font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font =
size=3D2
face=3DTahoma><span style=3D'font-size:10.0pt;font-family:Tahoma'> =
<st1:PersonName
w:st=3D"on">Tim Gardner</st1:PersonName> <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Tuesday, May 01, =
2007 4:20
PM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> Jobi Ariyamannil<br>
<b><span style=3D'font-weight:bold'>Cc:</span></b> dl-Design Review<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> RE: quota tree =
removal
func spec</span></font><o:p></o:p></p>

</div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>The CLI portion needs more =
detail.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>You need to specify that the =
command needs
to be run in the context of the virtual server that owns the =
volume.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Specify errors that will be =
returned if
vol does not exist or belongs to a different =
VS.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt; I think these are true for =
rest of
the filesystem commands as well.<o:p></o:p></span></font></p>

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

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Are there other commands that take =
a path?
Do these commands split the volume and path into two arguments =
or<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>do they use a single =
argument?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt; Yes, all the other =
filesystem tree
quota commands take path as the argument.<o:p></o:p></span></font></p>

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

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>What is the syntax of path? Does it =
use /
or \ to separate subdirectories?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt;&nbsp; Same as the other =
filesystem
tree quota commands, it uses / as =
separator.<o:p></o:p></span></font></p>

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

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>The solution section needs more =
detail?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>What happens if the filer is =
rebooted in
the middle of deleting a quota tree?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt;&nbsp; Filesystem operations =
are
crash consistent.&nbsp; That is the reason a meta inode is introduced to =
track pending
quota tree removals.<o:p></o:p></span></font></p>

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

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Will the delete resume after the =
reboot?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt;&nbsp; =
Yes.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>What happens if the VS is moved or =
fails
over during a delete?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt;&nbsp; Same as a =
crash.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Will the delete continue on the =
other
filer?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt;&nbsp; =
Yes.<o:p></o:p></span></font></p>

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

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Can concurrent quota tree delete
operations be performed?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt;&nbsp; =
Yes.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>What happens if a delete of a =
nested tree
is started and then a delete of the parent quota tree is =
started?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt;&nbsp; We are not doing =
namespace directory
removals.&nbsp; Inodes are removed by looking at the quota tree ID and =
in the
above case, that will be different.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Will this =
work?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt;&nbsp; =
Yes.<o:p></o:p></span></font></p>

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

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>The spec needs to contain some =
guidelines
on how long the delete will take.</span></font><font size=3D2 =
color=3Dred
face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial;color:red'><o:p></o:p></span>=
</font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt;&nbsp; This is an =
asynchronous
operation.&nbsp; Command will return immediately.&nbsp; We walk through =
the
inode file in the background looking for inodes in the quota tree and =
remove
them.&nbsp; So the time is proportional to the number of inodes in the
filesystem as well as the number of inodes in the quota tree (and other =
usual
things like system load, available memory =
etc)<o:p></o:p></span></font></p>

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

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Please schedule a design review =
meeting to
discuss this document.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dred face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:red'>JOBI&gt; =
ok<o:p></o:p></span></font></p>

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

<div>

<div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font =
size=3D3
face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>

<hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1>

</span></font></div>

<p class=3DMsoNormal><b><font size=3D2 face=3DTahoma><span =
style=3D'font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font =
size=3D2
face=3DTahoma><span style=3D'font-size:10.0pt;font-family:Tahoma'> =
<st1:PersonName
w:st=3D"on">Jobi Ariyamannil</st1:PersonName> <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Tuesday, May 01, =
2007 3:58
PM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> dl-Design Review<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> quota tree =
removal func
spec</span></font><o:p></o:p></p>

</div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><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'>Hi,<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 see the attached func spec for quota tree =
removal.<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'>Regards,<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'>Jobi<o:p></o:p></span></font></p>

</div>

</body>

</html>

------_=_NextPart_001_01C78C4F.312B0889--
