1

I knew that RDMA requires both sender and receiver register their memory before data transfer. I am wondering if the registered memory on both sender and receiver should be same or not. If same, I think RDMA wastes lots of memory since both side basically are storing the identical data. Is there any way to reduce such problem?

1
  • Is this in the context of any particular situation or code? If not it's probably off-topic. Commented Jan 16, 2018 at 20:11

1 Answer 1

1

After a network transfer, both the sender and the receiver contain copies of the same information. However, depending on the application and communication pattern, buffers on both sides can be reused. For example, the initiator of a remote read operation can use the same buffers for the results of the read after it is done with the previous results.

Sign up to request clarification or add additional context in comments.

2 Comments

Is that possible that the buffer size on both side are different. What I want to do is that sender keeps writing or reading 4K page from/to receiver. You can think receiver actually is a data store. In this case, should I set the buffer on receiver to 10GB(e.g. big enough to store tons of pages), and set sender buffer to 4K. or any better design for that.
You can also copy in and out of a smaller buffer, or dynamically register and unregister memory as needed. On some devices you can use on demand paging, so the communication buffers are not pinned to memory.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.