Re: Suggestion needed to make use of iobuf_pool as rdma buffer.

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

 



Rafi,

it totally makes sense to me that you need to pre-allocate i/o buffers that will be used by RDMA, and you don't want to constantly change (i.e. allocate and deallocate) these buffers.  Since a remote RDMA controller can be reading and writing to them, we have to be very careful about deallocating in particular.  So an "arena" of pre-registered RDMA buffers makes perfect sense.

Am I understanding you correctly that io-cache translator is soaking up all the RDMA-related buffers?   How important is io-cache translator to Gluster performance at this point?  Given that FUSE caching is now enabled, it seems to me that io-cache translator would accomplish very little.  Should we have it disabled by default?  If so, would that solve your problem?

So how do read-ahead translator and write-behind translator interact with RDMA buffering?

-ben

----- Original Message -----
> From: "Mohammed Rafi K C" <rkavunga@xxxxxxxxxx>
> To: gluster-devel@xxxxxxxxxxx
> Sent: Tuesday, January 13, 2015 9:29:56 AM
> Subject:  Suggestion needed to make use of iobuf_pool as rdma	buffer.
> 
> Hi All,
> 
> When using RDMA protocol, we need to register the buffer which is going
> to send through rdma with rdma device. In fact, it is a costly
> operation, and a performance killer if it happened in I/O path. So our
> current plan is to register pre-allocated iobuf_arenas from  iobuf_pool
> with rdma when rdma is getting initialized. The problem comes when all
> the iobufs are exhausted, then we need to dynamically allocate new
> arenas from libglusterfs module. Since it is created in libglusterfs, we
> can't make a call to rdma from libglusterfs. So we will force to
> register each of the iobufs from the newly created arenas with rdma in
> I/O path. If io-cache is turned on in client stack, then all the
> pre-registred arenas will use by io-cache as cache buffer. so we have to
> do the registration in rdma for each i/o call for every iobufs,
> eventually we cannot make use of pre registered arenas.
> 
> To address the issue, we have two approaches in mind,
> 
>  1) Register each dynamically created buffers in iobuf by bringing
> transport layer together with libglusterfs.
> 
>  2) create a separate buffer for caching and offload the data from the
> read response to the cache buffer in background.
> 
> If we could make use of preregister memory for every rdma call, then we
> will have approximately 20% increment for write and 25% of increment for
> read.
> 
> Please give your thoughts to address the issue.
> 
> Thanks & Regards
> Rafi KC
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel@xxxxxxxxxxx
> http://www.gluster.org/mailman/listinfo/gluster-devel
> 
_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel



[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux