Hi, I am a storage software coder who is interested in Gluster. I am trying to
improve the read/write performance of it.
I noticed that gluster is using Vandermonde matrix in erasure code encoding and
decoding process. However, it is quite complicate to generate inverse matrix of
a Vandermonde matrix, which is necessary for decode. The cost is O(n³).
Use a Cauchy matrix, can greatly cut down the cost of the process to find an
inverse matrix. Which is O(n²).
I use intel storage accelerate library to replace the original ec encode/decode
part of gluster. And it reduce the encode and decode time to about 50% of the
original one.
However, when I test the whole system. The read/write performance is almost the
same as the original gluster.
I test it on three machines as servers. Each one had two bricks, both of them
are SSD. So the total amount of bricks is 6. Use two of them as coding bricks.
That is a 4+2 disperse volume configure.
The capability of network card is 10000Mbps. Theoretically it can support read
and write with the speed faster than 1000MB/s.
The actually performance of read is about 492MB/s.
The actually performance of write is about 336MB/s.
While the original one read at 461MB/s, write at 322MB/s
Is there someone who can give me some advice about how to improve its
performance? Which part is the critical defect on its performance if it’s not
the ec translator?
I did a time count on translators. It show me EC translator just take 7% in the
whole read\write process. Even though I knew that some translators are run
asynchronous, so the real percentage can be some how lager than that.
Sincerely thank you for your patient to read my question!
_______________________________________________
Gluster-devel mailing list
Gluster-devel@gluster.org
https://lists.gluster.org/mailman/listinfo/gluster-devel