All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Durgin <josh.durgin@inktank.com>
To: Tommi Virtanen <tv@inktank.com>
Cc: ceph-devel <ceph-devel@vger.kernel.org>
Subject: Re: RBD layering design draft
Date: Mon, 18 Jun 2012 10:14:54 -0700	[thread overview]
Message-ID: <4FDF620E.7030704@inktank.com> (raw)
In-Reply-To: <CADvuQRH0J2y2-G5wWbaUiHy79y_H=wMBLnyW1ZKNdo8J2aSiKw@mail.gmail.com>

On 06/18/2012 10:00 AM, Tommi Virtanen wrote:
> On Fri, Jun 15, 2012 at 1:48 PM, Josh Durgin<josh.durgin@inktank.com>  wrote:
>>     $ rbd unpreserve pool/image@snap
>>     Error unpreserving: child images rely on this image
>
> UX nit: this should also say what image it found.
>
> rbd: Cannot unpreserve: Still in use by pool2/image2

Agreed.

>>     $ rbd list_children pool/image@snap
>>     pool2/child1
>>     pool2/child2
>
> How about just "rbd children"? Especially the underscore makes me unhappy.

Yeah, that sounds better.

>>     $ rbd copyup pool2/child1
>
> Does "copyup" make sense to everyone? Every time you say it, my brain
> needs to flip the image inside the other way around -- I naturally
> imagine a tree with the parent at the top, and children and
> grandchildren down from it, but then I can't call that operation
> "copyup" without wrecking my mental image.
>
> I also can't seem to google good evidence that the term would be in
> widespread use in the enterprisey block storage world, outside of the
> unionfs world.. What do people call the un-dedupping, un-thinning of
> copy-on-write thin provisioning?
>
> "unshare"?

I'm not sure what best term is, but there's probably something better 
than copyup.

>> In addition to knowing which parent a given image has, we want to be
>> able to tell if a preserved image still has children. This is
>> accomplished with a new per-pool object, `rbd_children`, which maps
>> (parent pool, parent id, parent snapshot id) to a list of child
>> image ids.
>
> So the omap value is a list, and you need to support atomic add/remove
> on the list members? Are you thinking of using an rbd class method
> that does read-modify-write for that?
>
> My instincts would have gone for (parent_pool, parent_id,
> parent_snapshot_id, child_id) ->  None, to get atomic operations for
> free.

The reason for making it a class method is more about hiding the
implementation from clients. It could be the mapping you describe in
an omap.

  reply	other threads:[~2012-06-18 17:15 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-15 20:48 RBD layering design draft Josh Durgin
2012-06-16  0:46 ` Sage Weil
2012-06-16  2:00   ` Yehuda Sadeh
2012-06-16 15:11     ` Sage Weil
2012-06-17 13:42       ` Martin Mailand
2012-06-18 18:04         ` Gregory Farnum
2012-06-18 16:25   ` Tommi Virtanen
2012-06-18 23:10     ` Dan Mick
2012-06-18 17:00 ` Tommi Virtanen
2012-06-18 17:14   ` Josh Durgin [this message]
2012-06-18 18:01     ` Sage Weil
2012-06-18 23:07       ` Dan Mick
2012-06-22  2:02         ` Alex Elsayed
2012-06-22 14:41           ` Guido Winkelmann
2012-06-22 14:36   ` Guido Winkelmann
2012-06-22 16:00     ` Tommi Virtanen
2012-06-21 21:51 ` Alex Elder
2012-06-22 14:37   ` Guido Winkelmann
2012-06-22 16:27   ` Tommi Virtanen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FDF620E.7030704@inktank.com \
    --to=josh.durgin@inktank.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=tv@inktank.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.