erpc-io / eRPC

Efficient RPCs for datacenter networks
Other
862 stars 140 forks source link

Is there a way to integrate eRPC with an existing application without doing memcpy? #78

Closed kyleshu closed 2 years ago

kyleshu commented 2 years ago

I have an exsiting storage application which does read and write remotely and keeps its own memory pool. For now, I am able to integrate it with eRPC by doing memcpy between eRPC message buffers and application memory. However, it hurts the performance of eRPC and the overall system a lot (in term of latency, and perhaps throughput if it's too slow). I am wondering if it's possible / there is an easy way to avoid doing so by having a unified memory space shared by application and eRPC. For example, register application memory to eRPC and use them when sending/receiving requests/responses? Any ideas? Thanks!

kyleshu commented 2 years ago

We end up using eRPC only for messaging, and directly use RDMA verbs to read/write real data.

anujkaliaiitd commented 2 years ago

Thanks for the update. I had thought about your question and I couldn't think of a clean way to do this (though one could make a hacky solution.)