Hi clayg, thanks your suggestion, it is very helpful for me. <br>We also can store the refcount metadata in mysql or nosql,  but I think it is suitable for island, because island is just a plugin...<br><br>I run island in devstack, it look like work fine :)<br>
<br><div class="gmail_quote">2012/10/25 Clay Gerrard <span dir="ltr"><<a href="mailto:clay.gerrard@gmail.com" target="_blank">clay.gerrard@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>On Wed, Oct 24, 2012 at 1:17 PM, Rongze Zhu <<a href="mailto:zrzhit@gmail.com" target="_blank">zrzhit@gmail.com</a>> wrote:<br>
> Hi stackers,<br>
> Island is a plugin for cinder, it will allow to create volume in local<br>
> storage and back up incremental snapshots of your data to Swift for durable<br>
> recovery. Island design idea is local storage + qcow2 image + dependent<br>
> snapshot + swift.<br>
><br>
<br>
</div>So cool!<br>
<br>
So I wanted to confirm something I wasn't clear on during the<br>
discussion at the summit regarding the refcount metadata, so nice to<br>
be able to just look at the code :D<br>
<br>
In volume.island.snapshot._unlink_snapshot_block you guys use<br>
"get_object_meta" to pull in the "X-refcount" attribute, decrement it,<br>
and then set the new value with "objectpool.set_object_meta"<br>
<br>
This probably works fine with the ext IMPL, but when the swift IMPL<br>
gets out there it'll be sorta dangerous.  The object metadata (as with<br>
all objects in swift) is "eventually" consistent - if you update<br>
existing objects subsequent reads can't be guaranteed to have the<br>
latest X-refcount meta (the X-newest header helps, and may even be<br>
good enough short term, but that's really only the newest "available",<br>
in a storage node failure condition you may still be reading old<br>
data).  The story get's a lot simpler if you  can design something<br>
that only PUT's to *create new* objects (say for each snapshot) then<br>
if a GETsucceeds you know you have the "newest" copy cause theirs only<br>
one.<br>
<br>
Just something to think about.  I'm definitely going to play around<br>
with this.  Looks like it should work fine on devstack.<br>
<br>
This is awesome, great work!<br>
<br>
-clayg<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><br><span><font color="#888888">Rongze Zhu - ÖìÈÙÔó </font></span><br><span><font color="#888888"><span>Twitter:     @metaxen<br></span><span style="font-size:13px;font-family:arial,sans-serif">Blog:        <a href="http://blog.csdn.net/metaxen" target="_blank">http://blog.csdn.net/metaxen</a><br>

Weibo:     </span></font></span><span><font color="#888888"><span style="font-size:13px;font-family:arial,sans-serif"><a href="http://weibo.com/metaxen" target="_blank">http://weibo.com/metaxen</a><br>Website:  Try Free OpenStack in <a href="http://stacklab.org" target="_blank">http://www.stacklab.org</a><br>


<br></span></font></span><br>