MIND: In-Network Memory Management for Disaggregated Data Centers

https://www.anuragkhandelwal.com/papers/mind.pdf

  • Resource disaggregation

    • High resource utilization, ease to manage, elastic scalability

    • Memory disaggregation

      • Need for memory disaggregation

        • Now: suffer from low utilization, unbalanced usage, energy consumption

        • Timely problem (storage disaggregation is already popular)

      • Goal:

        • Performance (CPU <--> memory): high throughput and low latency

        • Transparent elasticity: flexible resource allocation

      • Existing approach

        • Distributed shared memory (DSM)

          • Good elasticity but not good performance

        • Recent disaggregated memory schemes

          • Compromise elasticity by high throughput (no sharing0

        • Key insight: in-network memory management (MMU)

          • Central location: global view & processing directly in the data path

          • Programmable switching ASIC: flexible processing at line rate

          • Similarity between network functions and memory management

      • MIND: in-network memory management

          • Address translation: where is the data

          • Memory protection: is this access permitted or valid?

          • Cache coherence protocol: how to keep data synchronized?

      • Challenges in Building In-network MMU

        • Limited amount of in-network resources

          • Limited size of in-network memory

            • Tens of MB --> not sufficient to store metadata in a traditional way

          • Limited computation capability

            • Switching ASIC --> not sufficient to directly port traditional MMU functions

      • 3 Principles for System Design

        • P1: decouple memory management functionalities

          • Each function has the data structure suitable to its purpose

        • P2: Leverage global view of network

          • Make better decisions for memory management

        • P3: Exploit network-centric hardware primitives

          • Reuse network hardware highly optimized for network functions

      • Challenges

        • Address translation

          • Small: too many entries, huge page: load balancing

          • Apply

            • Static huge partition

            • Fine-grained, range-based translation

        • Memory protection

          • Small: too many entries, huge page: inflexible protection

          • Solve: VMA-granularity protection

        • Cache directory

          • Small cache line: too many entries, large cache line: false sharing

          • Solve: access granularity, coherence granularity (dynamic resizing), with theoretical bound of O(log2)

  • Performance evaluation

    • Low contention, high contention

  • Conclusion

    • Trade-off between resource elasticity and performance in memory aggregation

    • MIND: in-network MMU by leveraging programmable network

    • Match the performance of prior proposals and provide transparent elasticity

Last updated