All of lore.kernel.org
 help / color / mirror / Atom feed
* Comments on Ceph distributed parity implementation
@ 2013-06-14 20:13 Martin Flyvbjerg
  2013-06-14 20:29 ` Mark Nelson
                   ` (3 more replies)
  0 siblings, 4 replies; 23+ messages in thread
From: Martin Flyvbjerg @ 2013-06-14 20:13 UTC (permalink / raw)
  To: ceph-devel

Dear Community
I am a young engineer (not software or math, please bare with me) with some suggestions regarding erasure codes. I never used Ceph before or any other distributed file system.

I stumped upon the suggestion for adding erasure codes to Ceph, as
described in this article
http://wiki.Ceph.com/01Planning/02Blueprints/Dumpling/Erasure_encoding_as_a_storage_backend

first I would like to say great initiative to add erasure codes to Ceph.
Ceph needs its own implementation and it have to be done right, I cannot stress this enough, suggested software mentioned in that article would result in very low performance.

Why?
Reed-Solomon is normally something regarded as being very slow compared to other erasure codes, because the underlying Galois-Field multiplication is slow. Please see video at usenix.org forexplanation.

The implementations of Zfec library and other suggested software the others rely on the Vandermonde matrix, a matrix used in in Reed-Solomon erasure codes, a faster approach would be to use the Cauchy-Reed-Solomon implementation. Please see [1,2,3]
Although there is something even better, by using the Intel SSE2/3 SIMD instructions it is possible to do the as fast as any other XOR based erasure codes (RaptorQ LT-codes, LDPC etc.).

The suggested FECpp lib uses the optimisation but with a relative small Galois-field only 2^8, since Ceph aimes at unlimited scalability increasing the size of the Galois-Field would improve performance [4]. Of course the configured Ceph Object Size and/or Stripe width have to be taken into account.
Please see
https://www.usenix.org/conference/fast13/screaming-fast-galois-field-arithmetic-using-sse2-extensions


The solution
Using the GF-Complete open source library [4] to implement Reed-Solomon in Ceph in order to allow Ceph to scale to infinity.
James S. Plank the author of GF-complete have developed a library implementing various Reed-Solomon codes called Jerasure. http://web.eecs.utk.edu/~plank/plank/www/software.html
Jerasure 2.0 using the GF-complete artimetric based in Intel SSE SIMD instructions, is current in development expected release august 2013. Will be released under the new BSD license. Jerasure 2.0 also supports arbitrary Galois-field sizes 8,16,32,64 or 128 bit.

The limit of this implementation would be the processors L2/L3 cache not the underlying arithmetic. 

Best Regards
Martin Flyvbjerg

[1] http://web.eecs.utk.edu/~plank/plank/papers/CS-05-569.pdf
[2] http://web.eecs.utk.edu/~plank/plank/papers/CS-08-625.pdf
[3] http://web.eecs.utk.edu/~plank/plank/papers/FAST-2009.pdf
[4] http://web.eecs.utk.edu/~plank/plank/papers/FAST-2013-GF.pdf

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2013-06-24  2:26 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-14 20:13 Comments on Ceph distributed parity implementation Martin Flyvbjerg
2013-06-14 20:29 ` Mark Nelson
2013-06-14 21:05 ` Joe Buck
2013-06-14 22:57 ` Loic Dachary
2013-06-15  1:12   ` Paul Von-Stamwitz
2013-06-15  6:51     ` Loic Dachary
2013-06-16 19:51     ` Benoît Parrein
2013-06-16 21:31       ` Loic Dachary
2013-06-17 16:48         ` Benoît Parrein
2013-06-17 16:55         ` Paul Von-Stamwitz
2013-06-18  7:44           ` Benoît Parrein
2013-06-18 14:22             ` James Plank
2013-06-19  1:35               ` Paul Von-Stamwitz
2013-06-20 18:25               ` Loic Dachary
2013-06-21  1:23                 ` Paul Von-Stamwitz
2013-06-21  8:29                   ` Loic Dachary
2013-06-22  0:08                     ` Paul Von-Stamwitz
2013-06-22  8:26                       ` Loic Dachary
2013-06-24  2:26                       ` Harvey Skinner
     [not found]     ` <C395B77B849187439280E1CF5FE1F2FA8990491B@G9W0337.americas.hpqcorp.net>
     [not found]       ` <CAJOObidVdjtiwk+xk5rwZi4=DBZ9GvTQnAkteCC0OhB_vyg6pg@mail.gmail.com>
     [not found]         ` <CAJOObicNGkweZbVSR-V8NA9YXaZucUpNm0y8Ph3X7EkE=pRG5g@mail.gmail.com>
2013-06-18 14:31           ` Harvey Skinner
2013-06-18 15:46             ` Loic Dachary
2013-06-15  7:30 ` Loic Dachary
2013-06-15  9:40   ` Leen Besselink

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.