Skip to content

Implementation and Design Questions

Collin Lee edited this page Apr 23, 2018 · 7 revisions
  • What's the right abstraction of this Homa library?
    • Message oriented vs RPC oriented? [Start with RPC - i.e. what RAMCloud has now]
    • Integrated poller or exported poller? [Allow use of application provided polling thread]
    • Sessions and sockets? [Revisit - Unclear that sessions are necessary]
    • How to handle memory lifetimes of message buffers? Copy contents? [Revisit - Use existing?]
  • How do we provide configuration information?
    • File?
    • Constructor args?
  • If the interface is not what we want how should we proceed? [Use mostly existing interface]
    • Start by shimming around the existing code?
    • Try to modify the interface as we go?
  • Build tools? Make vs CMake vs Other
  • Are the drivers included in the library? [Drivers should be external]
  • Split protocol processing from message assembly
    • Scheduling packets is a relatively centralized activity, but
    • Assembling packets into messages can be done in a data parallel manner.
Clone this wiki locally