All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Nelson <mark.nelson@inktank.com>
To: Loic Dachary <loic@dachary.org>
Cc: Andreas Joachim Peters <Andreas.Joachim.Peters@cern.ch>,
	"ceph-devel@vger.kernel.org" <ceph-devel@vger.kernel.org>
Subject: Re: CEPH Erasure Encoding + OSD Scalability
Date: Fri, 20 Sep 2013 08:19:49 -0500	[thread overview]
Message-ID: <523C4B75.5040206@inktank.com> (raw)
In-Reply-To: <523C40B7.5060902@dachary.org>

Very exciting work guys!

I suspect there will definitely be people who want lower CPU 
consumption, especially as ARM and Atom processors become more prolific. :)

Mark

On 09/20/2013 07:33 AM, Loic Dachary wrote:
> Hi Andreas,
>
> Great work on these benchmarks ! It's definitely an incentive to improve as much as possible. Could you push / send the scripts and sequence of operations you've used ? I'll reproduce this locally while getting rid of the extra copy. It would be useful to capture that into a script that can be conveniently run from the teuthology integrations tests to check against performance regressions.
>
> Regarding the 3P implementation, in my opinion it would be very valuable for some people who prefer low CPU consumption. And I'm eager to see more than one plugin in the erasure code plugin directory ;-)
>
> Cheers
>
> On 20/09/2013 13:35, Andreas Joachim Peters wrote:
>> Hi Loic,
>>
>> I have now some benchmarks on a Xeon 2.27 GHz 4-core with gcc 4.4 (-O2) for ENCODING based on the CEPH Jerasure port.
>> I measured for objects from 128k to 512 MB with random contents (if you encode 1 GB objects you see slow downs due to caching inefficiencies ...), otherwise results are stable for the given object sizes.
>>
>> I quote only the benchmark for ErasureCodeJerasureReedSolomonRAID6 (3,2) , the other are significantly slower (2-3x slower) and my 3P(3,2,1) implementation providing the same redundancy level like RS-Raid6[3,2] (double disk failure) but using more space (66% vs 100% overhead).
>>
>> The effect of out.c_str() is significant ( contributes with factor 2 slow-down for the best jerasure algorithm for [3,2] ).
>>
>> Averaged results for Objects Size 4MB:
>>
>> 1) Erasure CRS [3,2] - 2.6 ms buffer preparation (out.c_str()) - 2.4 ms encoding => ~780 MB/s
>> 2) 3P [3,2,1] - 0,005 ms buffer preparation (3P adjusts the padding in the algorithm) - 0.87ms encoding => ~4.4 GB/s
>>
>> I think it pays off to avoid the copy in the encoding if it does not matter for the buffer handling upstream and pad only the last chunk.
>>
>> Last thing I tested is how performances scales with number of cores running 4 tests in parallel:
>>
>> Jerasure (3,2) limits at ~2,0 GB/s for a 4-core CPU (Xeon 2.27 GHz).
>> 3P(3,2,1) limits ~8 GB/s for a 4-core CPU (Xeon 2.27 GHz).
>>
>> I also implemented the decoding for 3P, but didn't test yet all reconstruction cases. There is probably room for improvements using AVX support for XOR operations in both implementations.
>>
>> Before I invest more time, do think it is useful to have this fast 3P algorithm for double disk failures with 100% space overhead? Because I believe that people will always optimize for space and would rather use something like (10,2) even if the performance degrades and CPU consumption goes up?!? Let me know, no problem in any case!
>>
>> Finally I tested some combinations for ErasureCodeJerasureReedSolomonRAID6:
>>
>> (3,2) (4,2) (6,2) (8,2) (10,2) they all run around 780-800 MB/s
>>
>> Cheers Andreas.
>>
>>
>>
>>
>>


  reply	other threads:[~2013-09-20 13:19 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <-7369304096744919226@unknownmsgid>
2013-09-20 11:35 ` CEPH Erasure Encoding + OSD Scalability Andreas Joachim Peters
2013-09-20 12:33   ` Loic Dachary
2013-09-20 13:19     ` Mark Nelson [this message]
2013-09-20 15:36     ` Sage Weil
2013-09-20 16:49       ` Loic Dachary
2013-09-21 15:11         ` Loic Dachary
2013-09-22  7:26           ` Andreas Joachim Peters
2013-09-22  9:41             ` Loic Dachary
2013-11-12  1:11             ` Andreas Joachim Peters
2013-11-12 18:06               ` Loic Dachary
2013-11-19 11:35                 ` Andreas Joachim Peters
2013-12-09 16:45                 ` Loic Dachary
2013-12-09 17:03                   ` Mark Nelson
2013-12-10  8:43                   ` Loic Dachary
2013-12-11  9:49                     ` Andreas Joachim Peters
2013-12-11 12:28                       ` Loic Dachary
2013-12-11 13:00                         ` Mark Nelson
2013-12-13 15:47                           ` Andreas Joachim Peters
2013-12-13 16:42                             ` Loic Dachary
2013-09-22 23:00 Andreas Joachim Peters
2013-09-23  7:27 ` Loic Dachary
2013-09-23  9:37   ` Andreas Joachim Peters
2013-09-23 15:43   ` Andreas Joachim Peters
2013-09-25 15:14     ` Loic Dachary
2013-09-25 18:33       ` Andreas Joachim Peters
2013-09-25 18:48         ` Loic Dachary
2013-09-25 18:53           ` Sage Weil
     [not found]           ` <CAGhffvz1TYYLoqn0tps1HiLObSCv7H0ZNVgOd0raicGqgRuukA@mail.gmail.com>
2013-09-26 19:18             ` Loic Dachary
2013-09-26 21:49               ` Andreas Joachim Peters
2013-09-27  9:40                 ` Loic Dachary
2013-10-01 23:00                   ` Andreas Joachim Peters
2013-10-02 10:04                     ` Loic Dachary
2013-10-02 10:15                     ` Loic Dachary
     [not found] <3472A07E6605974CBC9BC573F1BC02E494B06990@PLOXCHG04.cern.ch>
2013-07-05 21:23 ` Loic Dachary
2013-07-06 13:45   ` Andreas Joachim Peters
2013-07-06 15:28     ` Mark Nelson
2013-07-06 20:43       ` Loic Dachary
2013-07-08 15:38         ` Mark Nelson
     [not found]   ` <CAGhffvx5-xmprT-vL1VNrz12+pJSikg1WsUqy_JRdW0JNm5auQ@mail.gmail.com>
2013-07-06 20:47     ` Loic Dachary
2013-07-07 21:04       ` Andreas Joachim Peters
2013-07-08  3:37         ` Sage Weil
2013-07-08 10:00           ` Andreas Joachim Peters
2013-07-08 10:31             ` Loic Dachary
2013-07-08 15:47             ` Sage Weil
2013-08-19 10:35         ` Loic Dachary
2013-08-22 21:50           ` Andreas Joachim Peters
     [not found]           ` <CAGhffvwB87a+1294BjmPrfu0a9hYdu17N-eHOvYCHWMXDLcJmA@mail.gmail.com>
2013-08-22 23:03             ` Loic Dachary
     [not found]               ` <CAGhffvxW9sG5LtcF-tU1YGkCMAQUfh2WW_3N=f=-vWs48vyxkQ@mail.gmail.com>
2013-08-24 19:41                 ` Loic Dachary
2013-08-25 11:49                   ` Loic Dachary
2013-09-14 14:59                     ` Andreas Joachim Peters
2013-09-14 18:04                       ` Loic Dachary
     [not found] <CAGhffvws=OabwJHi+7n=SOg+YNxAnU=Zt8WLVZtvf1neHZQYhw@mail.gmail.com>
2013-07-04 13:07 ` Loic Dachary

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=523C4B75.5040206@inktank.com \
    --to=mark.nelson@inktank.com \
    --cc=Andreas.Joachim.Peters@cern.ch \
    --cc=ceph-devel@vger.kernel.org \
    --cc=loic@dachary.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.