<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Courier New";
color:windowtext;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:"Courier New";}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoPlainText">At the blueprint review for the Trove team on April 14th, we reviewed "Allow volume snapshot as another way for data backuping" (<a href="https://blueprints.launchpad.net/trove/+spec/volume-snapshot">https://blueprints.launchpad.net/trove/+spec/volume-snapshot</a>).<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">The detailed specification is available at <a href="https://wiki.openstack.org/wiki/Trove/volume-data-snapshot-design">
https://wiki.openstack.org/wiki/Trove/volume-data-snapshot-design</a><o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">In this blueprint, the intent is to provide a mechanism by which a snapshot of the data store can be generated for the purpose of backup.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">The theory is that the backup workflow would be in three steps:<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">1. flush database and mark read-only<o:p></o:p></p>
<p class="MsoPlainText">2. take snapshot<o:p></o:p></p>
<p class="MsoPlainText">3. revert database to normal operation<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">In practice, if using something like LVM, the database need be read-only only for enough time to start the snapshot as LVM would ensure that the snapshot is consistent as of some point in time. However, even with that, many details remain
that are potentially very important.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">IMHO the blueprint should be significantly revised before re-review.
<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">(a) In particular, it would be good to understand exactly what the limitations of the proposed implementation are likely to be. This could include things like configurations that would work, storage engines that would be supported (or
not), performance considerations, etc.,<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">(b) It would also be important in this particular case to understand (for datastores that will be implemented in this iteration) how the system will achieve step 1 above.
<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">(c) Given that this is supposed to be a feature that would work for multiple datastores, ease of implementing a new data store should be given some consideration. It would be worthwhile if the blueprint included information on how this
would be for a datastore to be implemented in the future. <o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">One recommendation is that a simple illustration of the framework being implemented here (that could be shared across datastores) is provided, as well as details about the implementation (maybe only at pseudo-code level) of the datastores
that will be implemented in the initial phase. One could easily conceive of a framework that provided default stubs that meaningfully responded with a “Not Supported” error, and an implementer could provide the appropriate code for the datastore in question
and things would Just Work™ <o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">(d) Some more information about how the ‘restore’ would be orchestrated would be valuable. Similar information as requested above for the ‘backup’ would be worthwhile adding to the blueprint.
<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">(e) With respect to ‘restore’, [this point was brought up during the review by dougshelley66 and vgnbkr] the “point in time recovery” blueprint review just before this one yielded a significant discussion around restoring a backup over
top of the running instance. The concerns were that doing this could result in the loss of user data. In the end, that feature was removed from the blueprint. It seems like this blueprint has the same property on restore - that being - that restoring the snapshot
would eliminate the volume that currently houses the user's data. Why wouldn't that be a concern for this approach?
<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">I'm not intending to summarize the discussion, nor present feedback from all parties to the review; others at the review had other concerns as well and I'll let them contribute those to this mail thread if they so desire.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">-amrith<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">--<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">Amrith Kumar, CTO, Tesora<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">Twitter: @amrithkumar<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">Email: amrith@tesora.com<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">Skype: amrith.skype<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">Web: http://www.tesora.com
<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>