Re: Fwd: wip-hint

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 23 Feb 2014, Yehuda Sadeh wrote:
> (resending to get through the list) My main concern is that the whole
> notion of hint needs to be abstracted. Instead of having a specific op
> for allocation hints we should have a generic hint operation that
> would contain a hint type in it. That hint will then be parsed within
> the various osd components, and will be used if identified and if
> needed. Then you'd be able to add various hints without needing to
> change the  protocol itself.
> Not sure if the operation itself needs to have a "write" flag set on it, 
> as hints may apply to read operations too (e.g., a hint to prefetch data 
> read). We may want to create two different ops, one for read and one for 
> write. I think that a first step would be to modify the current op and 
> add a "hint type" string at the data portion, and an optional bufferlist 
> for data. The size params need to be generic and not specific (param1, 
> param2, ...).

The nice thing about adding a new rados op is that there isn't any 
disruptive protocol change.  Practically speaking, there isn't a big 
difference between adding one new hint op that is extensible and utilizing 
the (already extensible) rados op infrastructure.  Mostly it just means 
that the allocation hint is nicely named and parameterized for this 
particular purpose without precluding the ability to add other ops later. 
In the read-side hint case I think we should be particularly careful about 
using things like flags to make it trivial to add new behaviors, but I 
don't see a benefit to smoshing those sorts of hints together with 
allocation hints when the alloc stuff is clearly different.

That said, I think it *is* important whether we are nice and general 
about alloc hints in this op.  We can add new fields to the args union as 
needed (up to a point), and can always add an setallochint2 op, but if 
there is something obvious missing..

> The reasoning behind that is that at one point we may have different
> backbends plugging into the osd externally. Providing a proper osd
> backbend sdk might be another step. So we'd want this to be as
> abstract as possible. These hints could be sent blindly without the
> osd needing to understand their meaning, leaving it to the backbend to
> interpret.

Hmm, good point.  The ftct that is is clearly parameterized means the OSD 
is passing through named arguments.  We can always add a pass-thru hint 
for stuff that is outside the well-defined hints.  Even so I suspect most 
of it will/can be captured with flags while still falling into a few 
buckets (alloc hint now, later something like fadvise or generic 
wriete hints).

s

> 
> Yehuda
> 
> On Sunday, February 23, 2014, Sage Weil <sage@xxxxxxxxxxx> wrote:
> >
> > Hey Sam, Yehuda,
> >
> > Can you take a final look at https://github.com/ceph/ceph/pull/1284?
> >
> > Yehuda, you mentioned wanting to make the hint op as general as possible.
> > This bit is only addressing the allocation piece, and there is room in the
> > args struct to add additional fields (so far 0 means 'not
> > specified/undefined'), but I'm not sure if that captures your concerns.
> >
> > Thanks!
> > sage
> >
> >
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux