Re: wip-crush

2012-08-22 Thread Florian Haas
On 08/22/2012 03:10 AM, Sage Weil wrote:
> I pushed a branch that changes some of the crush terminology.  Instead of 
> having a crush type called "pool" that requires you to say things like 
> "pool=default" in the "ceph osd crush set ..." command, it uses "root" 
> instead.  That hopefully reinforces that it is a tree/hierarchy.
> 
> There is also a patch that changes "bucket" to "node" throughout, since 
> bucket is a term also used by radosgw.
> 
> Thoughts?  I think the main pain in making this transition is that old 
> clusters have maps that have a type 'pool' and new ones won't, and the 
> docs will need to walk people through both...

"pool" in a crushmap being completely unrelated to a RADOS pool is
something that I've heard customers/users report as confusing, as well.
So changing that is probably a good thing. Naming it "root" is probably
a good choice as well, as it happens to match
http://ceph.com/wiki/Custom_data_placement_with_CRUSH.

As for changing "bucket" to node... a "node" is normally simply a
physical server (at least in HA terminology, which many potential Ceph
users will be familiar with), and CRUSH uses "host" for that. So that's
another recipe for confusion. How about using something super-generic,
like "element" or "item"?

Cheers,
Florian

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: wip-crush

2012-08-22 Thread Atchley, Scott
On Aug 22, 2012, at 10:46 AM, Florian Haas wrote:

> On 08/22/2012 03:10 AM, Sage Weil wrote:
>> I pushed a branch that changes some of the crush terminology.  Instead of 
>> having a crush type called "pool" that requires you to say things like 
>> "pool=default" in the "ceph osd crush set ..." command, it uses "root" 
>> instead.  That hopefully reinforces that it is a tree/hierarchy.
>> 
>> There is also a patch that changes "bucket" to "node" throughout, since 
>> bucket is a term also used by radosgw.
>> 
>> Thoughts?  I think the main pain in making this transition is that old 
>> clusters have maps that have a type 'pool' and new ones won't, and the 
>> docs will need to walk people through both...
> 
> "pool" in a crushmap being completely unrelated to a RADOS pool is
> something that I've heard customers/users report as confusing, as well.
> So changing that is probably a good thing. Naming it "root" is probably
> a good choice as well, as it happens to match
> http://ceph.com/wiki/Custom_data_placement_with_CRUSH.
> 
> As for changing "bucket" to node... a "node" is normally simply a
> physical server (at least in HA terminology, which many potential Ceph
> users will be familiar with), and CRUSH uses "host" for that. So that's
> another recipe for confusion. How about using something super-generic,
> like "element" or "item"?
> 
> Cheers,
> Florian

My guess is that he is trying to use data structure tree nomenclature (root, 
node, leaf). I agree that node is an overloaded term (as is pool).

As for an alternative to bucket which indicates the item is a collection, what 
about subtree or branch?

Scott--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: wip-crush

2012-08-22 Thread Sage Weil
On Wed, 22 Aug 2012, Atchley, Scott wrote:
> On Aug 22, 2012, at 10:46 AM, Florian Haas wrote:
> 
> > On 08/22/2012 03:10 AM, Sage Weil wrote:
> >> I pushed a branch that changes some of the crush terminology.  Instead of 
> >> having a crush type called "pool" that requires you to say things like 
> >> "pool=default" in the "ceph osd crush set ..." command, it uses "root" 
> >> instead.  That hopefully reinforces that it is a tree/hierarchy.
> >> 
> >> There is also a patch that changes "bucket" to "node" throughout, since 
> >> bucket is a term also used by radosgw.
> >> 
> >> Thoughts?  I think the main pain in making this transition is that old 
> >> clusters have maps that have a type 'pool' and new ones won't, and the 
> >> docs will need to walk people through both...
> > 
> > "pool" in a crushmap being completely unrelated to a RADOS pool is
> > something that I've heard customers/users report as confusing, as well.
> > So changing that is probably a good thing. Naming it "root" is probably
> > a good choice as well, as it happens to match
> > http://ceph.com/wiki/Custom_data_placement_with_CRUSH.
> > 
> > As for changing "bucket" to node... a "node" is normally simply a
> > physical server (at least in HA terminology, which many potential Ceph
> > users will be familiar with), and CRUSH uses "host" for that. So that's
> > another recipe for confusion. How about using something super-generic,
> > like "element" or "item"?
> > 
> > Cheers,
> > Florian
> 
> My guess is that he is trying to use data structure tree nomenclature 
> (root, node, leaf). I agree that node is an overloaded term (as is 
> pool).

Yeah...

> As for an alternative to bucket which indicates the item is a 
> collection, what about subtree or branch?

I think fixing the overloading of 'pool' in the default crush map is the 
biggest pain point.  I can live with crush 'buckets' staying the same (esp 
since that's what the papers and code use pervasively) if we can't come up 
with a better option.

On the pool part, though, the challenge is how to transition.  Existing 
clusters have maps that use 'pool', and new clusters will use 'root' (or 
whatever).  Some options:

 - document both.  this kills much of the benefit of switching, but is 
   probably inevitable since people will be running different versions. 
 - make the upgrade process transparently rename the type.  this lets 
   all the tools use the new names.
 - make the tools silently translate old names to new names.  this is 
   kludgey in that it makes the code make assumptions about the names of 
   the data it is working with, but would cover everyone except those who 
   created their own crush maps from scratch.
 - ?

sage
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: wip-crush

2012-08-22 Thread Gregory Farnum
On Wed, Aug 22, 2012 at 9:33 AM, Sage Weil  wrote:
> On Wed, 22 Aug 2012, Atchley, Scott wrote:
>> On Aug 22, 2012, at 10:46 AM, Florian Haas wrote:
>>
>> > On 08/22/2012 03:10 AM, Sage Weil wrote:
>> >> I pushed a branch that changes some of the crush terminology.  Instead of
>> >> having a crush type called "pool" that requires you to say things like
>> >> "pool=default" in the "ceph osd crush set ..." command, it uses "root"
>> >> instead.  That hopefully reinforces that it is a tree/hierarchy.
>> >>
>> >> There is also a patch that changes "bucket" to "node" throughout, since
>> >> bucket is a term also used by radosgw.
>> >>
>> >> Thoughts?  I think the main pain in making this transition is that old
>> >> clusters have maps that have a type 'pool' and new ones won't, and the
>> >> docs will need to walk people through both...
>> >
>> > "pool" in a crushmap being completely unrelated to a RADOS pool is
>> > something that I've heard customers/users report as confusing, as well.
>> > So changing that is probably a good thing. Naming it "root" is probably
>> > a good choice as well, as it happens to match
>> > http://ceph.com/wiki/Custom_data_placement_with_CRUSH.
>> >
>> > As for changing "bucket" to node... a "node" is normally simply a
>> > physical server (at least in HA terminology, which many potential Ceph
>> > users will be familiar with), and CRUSH uses "host" for that. So that's
>> > another recipe for confusion. How about using something super-generic,
>> > like "element" or "item"?
>> >
>> > Cheers,
>> > Florian
>>
>> My guess is that he is trying to use data structure tree nomenclature
>> (root, node, leaf). I agree that node is an overloaded term (as is
>> pool).
>
> Yeah...
>
>> As for an alternative to bucket which indicates the item is a
>> collection, what about subtree or branch?
>
> I think fixing the overloading of 'pool' in the default crush map is the
> biggest pain point.  I can live with crush 'buckets' staying the same (esp
> since that's what the papers and code use pervasively) if we can't come up
> with a better option.

I'm definitely most interested in replacing "pool", and "root" works
for that in my mind. RGW buckets live at a sufficiently different
level that I think people are unlikely to be confused — and "bucket"
is actually a good name for what they are (I'm open to better ones,
but I don't think that "node" qualifies).


> On the pool part, though, the challenge is how to transition.  Existing
> clusters have maps that use 'pool', and new clusters will use 'root' (or
> whatever).  Some options:
>
>  - document both.  this kills much of the benefit of switching, but is
>probably inevitable since people will be running different versions.
>  - make the upgrade process transparently rename the type.  this lets
>all the tools use the new names.
>  - make the tools silently translate old names to new names.  this is
>kludgey in that it makes the code make assumptions about the names of
>the data it is working with, but would cover everyone except those who
>created their own crush maps from scratch.
>  - ?
I would go with option two, and only document the new options — I
wouldn't be surprised if the number of people who had changed those
was zero. Anybody who has done so can certainly be counted on to pay
enough attention that a line note "changed CRUSH names (see here if
you customized your map)" would be sufficient, right?
-Greg
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: wip-crush

2012-08-22 Thread Sage Weil
On Wed, 22 Aug 2012, Gregory Farnum wrote:
> On Wed, Aug 22, 2012 at 9:33 AM, Sage Weil  wrote:
> > On Wed, 22 Aug 2012, Atchley, Scott wrote:
> >> On Aug 22, 2012, at 10:46 AM, Florian Haas wrote:
> >>
> >> > On 08/22/2012 03:10 AM, Sage Weil wrote:
> >> >> I pushed a branch that changes some of the crush terminology.  Instead 
> >> >> of
> >> >> having a crush type called "pool" that requires you to say things like
> >> >> "pool=default" in the "ceph osd crush set ..." command, it uses "root"
> >> >> instead.  That hopefully reinforces that it is a tree/hierarchy.
> >> >>
> >> >> There is also a patch that changes "bucket" to "node" throughout, since
> >> >> bucket is a term also used by radosgw.
> >> >>
> >> >> Thoughts?  I think the main pain in making this transition is that old
> >> >> clusters have maps that have a type 'pool' and new ones won't, and the
> >> >> docs will need to walk people through both...
> >> >
> >> > "pool" in a crushmap being completely unrelated to a RADOS pool is
> >> > something that I've heard customers/users report as confusing, as well.
> >> > So changing that is probably a good thing. Naming it "root" is probably
> >> > a good choice as well, as it happens to match
> >> > http://ceph.com/wiki/Custom_data_placement_with_CRUSH.
> >> >
> >> > As for changing "bucket" to node... a "node" is normally simply a
> >> > physical server (at least in HA terminology, which many potential Ceph
> >> > users will be familiar with), and CRUSH uses "host" for that. So that's
> >> > another recipe for confusion. How about using something super-generic,
> >> > like "element" or "item"?
> >> >
> >> > Cheers,
> >> > Florian
> >>
> >> My guess is that he is trying to use data structure tree nomenclature
> >> (root, node, leaf). I agree that node is an overloaded term (as is
> >> pool).
> >
> > Yeah...
> >
> >> As for an alternative to bucket which indicates the item is a
> >> collection, what about subtree or branch?
> >
> > I think fixing the overloading of 'pool' in the default crush map is the
> > biggest pain point.  I can live with crush 'buckets' staying the same (esp
> > since that's what the papers and code use pervasively) if we can't come up
> > with a better option.
> 
> I'm definitely most interested in replacing "pool", and "root" works
> for that in my mind. RGW buckets live at a sufficiently different
> level that I think people are unlikely to be confused ? and "bucket"
> is actually a good name for what they are (I'm open to better ones,
> but I don't think that "node" qualifies).

Yeah, sounds good to me.

> > On the pool part, though, the challenge is how to transition.  Existing
> > clusters have maps that use 'pool', and new clusters will use 'root' (or
> > whatever).  Some options:
> >
> >  - document both.  this kills much of the benefit of switching, but is
> >probably inevitable since people will be running different versions.
> >  - make the upgrade process transparently rename the type.  this lets
> >all the tools use the new names.
> >  - make the tools silently translate old names to new names.  this is
> >kludgey in that it makes the code make assumptions about the names of
> >the data it is working with, but would cover everyone except those who
> >created their own crush maps from scratch.
> >  - ?
>
> I would go with option two, and only document the new options ? I
> wouldn't be surprised if the number of people who had changed those
> was zero. Anybody who has done so can certainly be counted on to pay
> enough attention that a line note "changed CRUSH names (see here if
> you customized your map)" would be sufficient, right?

Yeah.  The one wrinkle is that people running old code (e.g., argonaut) 
reading the latest docs will see commands that don't quite work.

At some point we need to fork the docs for each stable release... maybe 
now is the time to do that.

sage

Re: wip-crush

2012-08-31 Thread Sage Weil
Okay, it's trivial to change 'pool' to 'root' in the default generated 
crush map, and update all the docs accordingly.  The problem is that some 
stuff built on top of ceph has 'pool=default' in there, including our chef 
cookbooks and those that other people are building.

I see a few options:

1) - Document that pool=default should be used for clusters created 
 pre-0.52, and root=default for clusters created after that (at 
 http://ceph.com/docs/...).
   - Tell new tools to use root=default
   - Encourage existing tools to use *both* root=default pool=default (if 
 the type is not present, it will be ignored).  They will break on 
 newly created clusters with new code, but it will at least happen 
 quickly (on cluster creation).
   - Make noise in the release notes+announcement.

2) Make 'pool' be silently translated to 'root' (and the other way around) 
   if the type is not present.  That way new tools with old clusters will 
   work, and new clusters with old automation will work.

Other ideas?  I don't much like #2.

sage
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: wip-crush

2012-09-04 Thread Tommi Virtanen
On Fri, Aug 31, 2012 at 1:36 PM, Sage Weil  wrote:
> Okay, it's trivial to change 'pool' to 'root' in the default generated
> crush map, and update all the docs accordingly.  The problem is that some
> stuff built on top of ceph has 'pool=default' in there, including our chef
> cookbooks and those that other people are building.

That's actually in ceph.git src/upstart/ceph-osd.conf -- it can change
exactly when the code changes!
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: wip-crush

2012-09-05 Thread Sage Weil
On Fri, 31 Aug 2012, Sage Weil wrote:
> Okay, it's trivial to change 'pool' to 'root' in the default generated 
> crush map, and update all the docs accordingly.  The problem is that some 
> stuff built on top of ceph has 'pool=default' in there, including our chef 
> cookbooks and those that other people are building.
> 
> I see a few options:
> 
> 1) - Document that pool=default should be used for clusters created 
>  pre-0.52, and root=default for clusters created after that (at 
>  http://ceph.com/docs/...).
>- Tell new tools to use root=default
>- Encourage existing tools to use *both* root=default pool=default (if 
>  the type is not present, it will be ignored).  They will break on 
>  newly created clusters with new code, but it will at least happen 
>  quickly (on cluster creation).
>- Make noise in the release notes+announcement.

Okay, #1 it is!  I'll make some more noise when v0.52 is released.  
Merging this into master.

sage

> 
> 2) Make 'pool' be silently translated to 'root' (and the other way around) 
>if the type is not present.  That way new tools with old clusters will 
>work, and new clusters with old automation will work.
> 
> Other ideas?  I don't much like #2.
> 
> sage
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html