RE: wip-enc-dec

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

 



While we've been focusing the encode/decode optimization around bluestore. I'm eager to see what these new schemes will do for things on the wire. Our old performance measurements (back in the E/F timeframe) showed that wire-oriented serialization/deserialization was a significant CPU hog too.

Just something to get around to once we stabilize what we're going to do in this area.


Allen Samuels
SanDisk |a Western Digital brand
2880 Junction Avenue, San Jose, CA 95134
T: +1 408 801 7030| M: +1 408 780 6416
allen.samuels@xxxxxxxxxxx


> -----Original Message-----
> From: Mark Nelson [mailto:mnelson@xxxxxxxxxx]
> Sent: Thursday, August 18, 2016 7:41 PM
> To: Varada Kari <Varada.Kari@xxxxxxxxxxx>; Samuel Just
> <sjust@xxxxxxxxxx>; Allen Samuels <Allen.Samuels@xxxxxxxxxxx>
> Cc: ceph-devel@xxxxxxxxxxxxxxx; Weil, Sage <sweil@xxxxxxxxxx>
> Subject: Re: wip-enc-dec
> 
> Hi Varada,
> 
> FWIW, here's my branch where I've been playing with using safe_appenders
> in the existing bluestore encoding scheme:
> 
> https://github.com/markhpc/ceph/tree/wip-bluestore-append
> 
> Looks like it's going to be pretty advantageous to use a big appender to
> encode as much of the blob as possible.  It's making a pretty substantial
> difference, at least with ou
> 
> Mark
> 
> On 08/18/2016 09:03 PM, Varada Kari wrote:
> > Hi Sam,
> >
> > Here is some wip code on the new approach proposed by Allen.
> >
> > https://github.com/varadakari/ceph/commits/wip-enc-dec
> >
> > we are using a raw buffer which has all the encoded data and absorbed
> > into bufferlist once completed.
> > It pretty much has all the containers and primitive types support.
> > Working on some more optimizations on
> > the bluestore end to reduce the onode size along with blob map, but
> > they are wrapped in BlueStore.* files.
> > enc_dec.h and test_enc_dec.cc contains the logic.
> >
> > Haven't tired with the safe and unsafe appenders yet.
> >
> > Varada
> >
> > On Friday 19 August 2016 05:44 AM, Samuel Just wrote:
> >> Here's a beginning on what that might look like:
> >> https://github.com/athanatos/ceph/commits/wip-sam-enc-dec-proto
> >>
> >> The design mostly comes from Allen/Varada's approach, but it uses
> >> unsafe_appender (I don't really feel strongly about that, Sage
> >> indicated that just using a raw pointer would probably be faster).
> >> The important part is that the top two commits above convert all
> >> primitive types as well as vector and pair (provided that their
> >> templated types support the new machinery).  This means that
> >> vector<int> should be able to preallocate and use unsafe_appender for
> >> all existing users.  I think it's worth going to some effort to make
> >> it easy to convert over existing users.
> >> -Sam
> >>
> >> On Thu, Aug 18, 2016 at 10:35 AM, Allen Samuels
> >> <Allen.Samuels@xxxxxxxxxxx> wrote:
> >>> No reason not to merge them.
> >>>
> >>>
> >>> Allen Samuels
> >>> SanDisk |a Western Digital brand
> >>> 2880 Junction Avenue, San Jose, CA 95134
> >>> T: +1 408 801 7030| M: +1 408 780 6416 allen.samuels@xxxxxxxxxxx
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: Samuel Just [mailto:sjust@xxxxxxxxxx]
> >>>> Sent: Thursday, August 18, 2016 9:43 AM
> >>>> To: Allen Samuels <Allen.Samuels@xxxxxxxxxxx>; Varada Kari
> >>>> <Varada.Kari@xxxxxxxxxxx>; ceph-devel@xxxxxxxxxxxxxxx
> >>>> Subject: wip-enc-dec
> >>>>
> >>>> Is there a reason not to put this new machinery directly into
> encoding.h?  The
> >>>> new machinery seems to be sufficient to implement the existing
> ::encode
> >>>> and ::decode types and should be compatible, right?
> >>>> With the containers, we can use template trickery to also forward the
> new
> >>>> functions when present in the mapped types.  That would let us
> gradually
> >>>> adapt the code base.
> >>>> -Sam
> >
> > PLEASE NOTE: The information contained in this electronic mail message is
> intended only for the use of the designated recipient(s) named above. If the
> reader of this message is not the intended recipient, you are hereby notified
> that you have received this message in error and that any review,
> dissemination, distribution, or copying of this message is strictly prohibited. If
> you have received this communication in error, please notify the sender by
> telephone or e-mail (as shown above) immediately and destroy any and all
> copies of this message in your possession (whether hard copies or
> electronically stored copies).
> > --
> > 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