Poornima G b87c397091 iobuf: Get rid of pre allocated iobuf_pool and use per thread mem pool
The current implementation of iobuf_pool has two problems:
- prealloc of 12.5MB memory, this limits the scale factor of the gluster
  processes due to RAM requirements
- lock contention, as the current implementation has one global
  iobuf_pool lock. Credits for debugging and addressing the same goes to
  Krutika Dhananjay <kdhananj@redhat.com>. Issue: #410

Hence changing the iobuf implementation to use per thread mem pool.
This may theoritically appear to cause perf dip as there is no preallocation.
But per thread mem pool will not have significant perf impact as the last
allocated memory is kept alive for subsequent allocs, for some time.
The worst case would be if iobufs requested are of random sizes each time.
The best case is, if we get iobuf request of the same size. From the perf
tests, this patch did not seem to cause any perf decrease.

Note that, with this patch, the rdma performance is going to degrade
drastically. In one of the previous patchsets we had fixes to not
degrade rdma perf, but rdma is not supported and also not tested [1].
Hence the decision was to not have code in rdma that is not tested
and not supported.

[1] https://lists.gluster.org/pipermail/gluster-users.old/2018-July/034400.html

Updates: #325
Change-Id: Ic2ef3bd498f9250dea25f25ba0c01fde19584b27
Signed-off-by: Poornima G <pgurusid@redhat.com>
2018-12-18 09:35:24 +00:00
..
2018-02-19 17:38:55 +00:00
2018-12-14 17:34:28 +00:00

Developer Guide

Gluster's contributors can check about the internals by visiting Developer Guide Section. While it is not 'comprehensive', it can help you to get started.

Also while coding, keep Coding Standard in mind.

When you are ready to commit the changes, make sure you meet our Commit message standard.

Admin Guide

The gluster administration guide is maintained at github. The browsable admin guide can be found here.

The doc patch has to be sent against the above mentioned repository.

Features/Spec

The Gluster features which are 'in progress' or implemented can be found at github.

Upgrade Guide

The gluster upgrade guide is maintained at github. The browsable upgrade guide can be found here

The doc patch has to be sent against the above mentioned repository.

For more details about the docuemntation workflow please refer this discussion