On Tue, Feb 25, 2014 at 3:05 PM, Alex Elder <elder@xxxxxxxx> wrote: >>> The other thing is that the expected size is limited by >>> rbd_image_header->obj_order, which is a single byte. I >>> think you should encode this the same way. Even if the >>> hint were for more than RBD, this level of granularity >>> may be sufficient. >>> >>>> + u64 expected_write_size; >>> >>> Probably the same thing here, a byte might be enough >>> to encode this by using log2(expected_write_size). >>> >>>> + __u8 expected_size_probability; >> >> I think in the interest of genericity expected_object_size should be an >> arbitrary, not limited to a power-of-2 value. Now, given the current >> 90M object size limit 64 bits might seem a lot, but extent offset and >> length are 64 bit values and to be future-proof I followed that here. > > I have no objection to the 64-bit size but I still think > a byte representing log2(size) is sufficient. Power-of-2 > granularity is most likely fine (and might even be what > such a hint gets converted to anyway) for file systems > or other backing store. But again, you can do that with > a 64 bit value as well. Filesystems of course round it, but probably not to a power-of-2. I guess it's adjusted to a multiple of block size and then capped with some value that the allocator can cope with. xfs for example would happily take on say 5M. power-of-2 is sufficient for rbd, but _probably_ not in general. Thanks, Ilya -- 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