Hi Mykola, On Fri, 25 Sep 2015, Mykola Golub wrote: > Hi, > > On Mon, Sep 21, 2015 at 04:32:19PM +0300, Mykola Golub wrote: > > On Wed, Sep 16, 2015 at 09:23:07AM -0700, Sage Weil wrote: > > > On Wed, 16 Sep 2015, GuangYang wrote: > > > > Hi Sam, > > > > As part of the effort to solve problems similar to issue #13104 > > > > (http://tracker.ceph.com/issues/13104), do you think it is appropriate > > > > to add some parameters to pool setting: > > > > 1. recovery priority of the pool - we have a customized pool > > > > recovery priority (like process's nice value) to favor some pools over > > > > others. For example, the bucket index pool is usually much much smaller > > > > but important to recover first (e.g. might affect write latency as like > > > > issue #13104). > > > > 2. pool level recovery op priority - currently we have a low > > > > priority for recovery op (by default it is 10 while client io's > > > > priority is 63), is it possible to have a pool setting to customized > > > > the priority on pool level. > > > > > > > > The purpose is to give some flexibility in terms of favor some pools > > > > over others when doing recovery, in our case using radosgw, we would > > > > like to favor bucket index pool as that is on the write path for all > > > > requests. > > > > > > I think this makes sense, and is analogous to > > > > > > https://github.com/ceph/ceph/pull/5922 > > > > > > which does per-pool scrub settings. I think the only real question is > > > whether pg_pool_t is the right place to keep piling these parameters in, > > > or whether we want some unstructured key/value settings or something. > > > > I aggree that adding a bunch of new rarely used fields to pg_pool_t > > might not be a very good idea. Still storing these options here looks > > convenient (accessing, updating...). What do you think if I add > > something like this in pg_pool_t instead? > > > > typedef boost::variant<string,int,double> pool_opt_value_t; > > typedef std::map<pool_opt_key_t,pool_opt_value_t> opts_t; > > opts_t opts; > > > > (in reality I suppose it will be more compicated but will have > > something like this in base). > > > > Usually opts will be empty or have only one or two settings, so it > > will not consume much space. > > What do you think about this implementation, which adds a dictionary > for pool options to pg_pool_t? > > https://github.com/ceph/ceph/pull/6081 > > Although #5922 has already been merged to master, I think it is still > not late to change scrub intervals to be stored in options?
Yeah, I agree that something along these lines is better. It's too late to add this to infernalis, though.. I think we should revert the scrub interval options and then use the dictionary (post-infernalis). How does that sound? sage > > > > > Or where do you suggest to store them instead? > > > > BTW, I see we already have in pg_pool_t: > > > > map<string,string> properties; ///< OBSOLETE > > > > I wonder what it was supposed to be used for and why it is marked > > obsolete? > > > > -- > > Mykola Golub > > -- > Mykola Golub > -- > 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 > >