spcl / rFaaS

rFaaS: a high-performance FaaS platform with RDMA acceleration for low-latency invocations.
https://mcopik.github.io/projects/rfaas/
BSD 3-Clause "New" or "Revised" License
49 stars 15 forks source link

Add C++ allocator #18

Open mcopik opened 1 year ago

mcopik commented 1 year ago

Currently, we expose a very low-level interface for allocating memory - as shown in this documentation:

  rdmalib::Buffer<char> in(opts.input_size, rdmalib::functions::Submission::DATA_HEADER_SIZE), out(opts.input_size);
  in.register_memory(executor._state.pd(), IBV_ACCESS_LOCAL_WRITE);
  out.register_memory(executor._state.pd(), IBV_ACCESS_LOCAL_WRITE | IBV_ACCESS_REMOTE_WRITE);

While rdmalib::Buffer is applicable, we need a higher-level concept based on the CX++ std::allocator to integrate RDMA-managed memory into user applications.

veenaamb commented 1 year ago

Hey @mcopik , can I work on this issue?

mcopik commented 1 year ago

@veenaamb Sure, go ahead! Let me know if you need any assistance :)

mcopik commented 1 year ago

@veenaamb Are you still working on the issue?

lbhnsh commented 8 months ago

Hi, if nobody is working on this issue, can I take this up? @mcopik

mcopik commented 8 months ago

@lbhnsh Yes, please do! There is an open PR #30, but it requires some changes that I highlighted in the comments - we should be allocating page-aligned memory blocks of given size and returning properly initialized instances of buffer<T> . buffer is an abstraction to hide the actual memory block and make sure we properly apply or RDMA-related operations.

lbhnsh commented 7 months ago

Hi, you have mentioned to add allocator implementation in rfaaslib, so just wanted to clarify in which specific folder should the changes be made as there is not a specific folder that exactly has the name rfaaslib Thank you @mcopik

mcopik commented 7 months ago

@lbhnsh You can follow what has been done in the PR #30 - add this in rfaaslib.