MemExchange: Cloud-Scale Memory Trading
Abstract: To handle unpredictable workloads, cloud providers typically over-provision memory to meet peak demand, resulting in substantial underutilization across datacenter clusters. At the same time, memory-constrained tenants may suffer elevated cache miss rates, even when idle capacity remains stranded elsewhere in the infrastructure. MemExchange is a cluster-wide, multi-tenant memory management system that dynamically right-sizes in-memory caching tenants according to workload demand. Leveraging marginal-utility-based allocation derived from online Miss Ratio Curve (MRC) estimation, MemExchange redistributes idle memory between tenants across physical nodes using RDMA. This approach transforms the dedicated caching memory scattered across servers into a logically aggregated pool, enabling cross-node memory exchange without centralized coordination or forced tenant co-location. To support efficient remote access, we design the MemExchange Tracker Communication (MTC) protocol, an application-layer mechanism that coordinates memory reallocation and enables one-sided RDMA operations without involving remote CPUs. We implement MemExchange in Memcached and evaluate it through microbenchmarks, medium and rack-scale deployments of up to 100 CloudLab servers. Our results show up to 2.3x lower remote-access overhead compared to TCP-based designs, a 13% increase in cluster-wide memory utilization at rack scale, and up to 63% reduction in miss rate for memory-constrained tenants under skewed workloads.
Paper Prompts
Sign up for free to create and run prompts on this paper.
Top Community Prompts
Explain it Like I'm 14
What this paper is about (big idea)
MemExchange is a new way for cloud computers to “share” memory so it doesn’t go to waste. Big web services (like social media or shopping sites) keep popular data in fast memory (DRAM) to answer requests quickly—this is called a cache. But clouds usually give each app a fixed chunk of memory based on worst‑case needs. That leaves some machines with extra, unused memory while others are short and keep missing their cache, slowing things down.
MemExchange lets apps borrow idle memory from other machines across the data center, turning lots of small, unused pieces into one big pool that everyone can tap when they need it.
What questions the researchers asked
- Can we move unused memory across different servers to the apps that need it most, in real time?
- Can we do this without a slow, central controller and without moving apps around?
- Can apps use memory on another server fast enough that it still feels “nearby”?
- Will this improve cache hit rates (more answers found in memory), reduce misses, and use a cluster’s memory more efficiently?
How it works (in simple terms)
Think of a school with many lockers:
- Some students’ lockers are overflowing (they keep running to the library—slow).
- Other lockers sit half empty.
- MemExchange is like a locker‑sharing system: students with extra space lend it to students who need more, even if they’re in different hallways.
Here are the core pieces, with friendly explanations:
- Cache, hits, and misses:
- A cache is like a classroom’s front‑row bin with the most-used handouts. A “hit” means the paper is right there; a “miss” means someone has to run to the library (slow!).
- Miss Ratio Curve (MRC) and “marginal utility”:
- An MRC shows how many misses you get for different cache sizes. “Marginal utility” is “bang for your buck”: if I give you one more page of memory, how much will your miss rate drop?
- MemExchange watches which items get evicted and tracks tiny “shadows” (just the keys, not the full data). If a request hits a shadow, that’s a clue: with a bit more memory, it would have been a hit. This helps estimate who benefits most from extra memory and who can give some up with little pain.
- RDMA (Remote Direct Memory Access):
- RDMA is like a high‑speed express lane that lets one computer read/write memory on another computer directly, without bothering the other computer’s brain (CPU). It’s much faster than normal network routes.
- Distributed trackers and the MTC protocol:
- Each server runs a tiny “tracker” that keeps score and negotiates memory trades with other servers using a lightweight message system called MTC (MemExchange Tracker Communication).
- There is no central boss; trackers coordinate with each other. If one fails, the rest keep going.
- Putting it all together:
- Apps that would gain a lot from more memory (high marginal utility) ask for pages.
- Apps that can spare memory (low marginal utility) give up a page.
- If the giver is on another machine, the page stays there but is opened for fast RDMA access by the borrower. From the app’s view, it feels like a new overflow shelf has appeared.
What the researchers did to test it
- They built MemExchange into Memcached, a popular in‑memory key‑value store used by real web services.
- They designed MTC for fully distributed coordination (no central controller).
- They used RDMA to access remote memory and compared it to normal TCP networking and software RDMA.
- They ran experiments on up to 100 servers (CloudLab), with real‑world‑like workloads (e.g., Twitter and Facebook traces) and synthetic tests. They measured:
- How much extra delay remote memory adds
- Cache miss rates
- Overall memory utilization in the cluster
- Throughput and tail latencies
Main results and why they matter
- Remote access is fast enough:
- Serving most requests from remote memory added about 9 microseconds on average (31 μs vs. 22 μs locally). That’s tiny compared to going all the way to a database (which can take around 10 milliseconds).
- RDMA vs. TCP:
- RDMA cut remote‑access overhead by up to 2.3× compared to TCP‑based designs. In short: RDMA makes remote memory feel much closer.
- Better use of memory across the cluster:
- Memory utilization went up by 13% at rack scale (and up to 50% in medium‑scale tests). That means less waste and more useful work done with the same hardware.
- Fewer cache misses for squeezed apps:
- Under skewed (realistic) workloads, “memory‑hungry” tenants saw up to a 63% drop in miss rate when they could borrow memory.
- No single point of failure:
- Because coordination is fully distributed, one tracker failing doesn’t stop the entire system.
Why this matters: More hits and fewer misses mean faster responses for users and less load on back‑end databases. Better utilization means cloud providers can do more with the same machines, potentially lowering costs and energy use.
What this could change in the real world
- Faster, smoother web services: Social feeds, shopping carts, and game servers could serve more requests straight from memory, improving speed—especially during traffic spikes.
- Lower costs and greener data centers: By using memory more efficiently, providers can delay buying extra hardware and reduce power consumption.
- More resilient systems: No central controller means fewer single points of failure and smoother scaling.
- A step toward memory “disaggregation”: MemExchange shows that using memory across the network can work well today. It could inspire broader systems where memory is pooled and shared like a common utility.
In short, MemExchange takes stranded, unused memory across many servers and “trades” it to the apps that need it most, doing it quickly (thanks to RDMA) and fairly (thanks to smart scoring), which makes cloud services faster and more efficient.
Knowledge Gaps
Knowledge gaps, limitations, and open questions
The paper introduces a promising cluster-wide, RDMA-enabled memory trading system for Memcached, but several aspects remain unaddressed or insufficiently explored. The following list highlights concrete gaps and questions to guide future work:
- Scalability of control plane: MTC multicasts to all trackers for each reallocation attempt, implying O(N) messaging per event. How does MTC scale to thousands of nodes and tenants without message storms, and how is cluster membership managed dynamically?
- Reliability and security of MTC: MTC uses unauthenticated, unreliable UDP with timeouts. How does the system handle high loss, reordering, or partitions, and prevent spoofing/DoS? What authentication/authorization is needed for tracker messages in multi-tenant clouds?
- Convergence and stability: The reallocation algorithm lacks formal analysis. Under rapidly changing workloads, what guarantees exist on convergence, oscillation control, and fairness (e.g., starvation avoidance) as scores shift and multiple victors concurrently emerge?
- Parameter sensitivity: The scoring formula () includes factors (e.g., , , , normalization by ) whose tuning is not specified. How do window sizes, decay factors, and thresholds affect stability, responsiveness, and miss-rate improvements?
- MRC/MU accuracy under heterogeneity: Shadow-queue–based MRC estimation in multi-slab, variable-size object settings can be biased. How accurate are MU estimates across slabs, sizes, and skew, and what are the error bounds and overheads?
- Remote item lifecycle and eviction: Remote items are excluded from local eviction. How are cold or stale remote objects reclaimed, and how is remote capacity prevented from accumulating dead data without periodic compaction/garbage collection?
- Promotion policies: There is no mechanism to promote hot remote items back to local memory. Would selective promotion reduce RDMA reads and tail latency, and what policies (e.g., LFU/LRU thresholds) are effective?
- Victim recall and preemption: Victims pin pages and cannot reclaim them until reallocation reverses. What protocol enables donors to recall remote pages to protect their SLOs, and how are victors notified and forced to migrate/invalidate without data loss?
- Data integrity and consistency: One-sided RDMA operations risk torn reads/writes or inconsistent views without ordering protocols. What correctness guarantees exist (e.g., fencing, atomicity, checksums), and how are retries or partial failures handled?
- RDMA resource limits and management: Persistent connections per (IP, port) can exhaust QPs/CQs/MRs at scale; MRs/pinned pages consume NIC and OS resources. What connection pooling, sharing, or back-pressure strategies prevent RDMA resource exhaustion?
- NIC and network contention: One-sided RDMA reads/writes consume donor NIC bandwidth and can interfere with local tenants. How are rate limiting, QoS, or scheduling applied to protect donors’ latency and throughput?
- Datacenter network realities: RoCE requires PFC/ECN tuning; packet loss, congestion, and incast are common. How does MemExchange perform under realistic DC congestion and topology (e.g., cross-rack, multi-hop), and how is topology-awareness used for victim selection?
- Heterogeneity handling: Nodes differ in NIC speed (10/25/100 Gbps), CPU, and memory capacity. How does the system adapt reallocation and victim selection to heterogeneous performance, and what are the effects on fairness and latency?
- Security and isolation with RDMA: Cross-tenant RDMA access raises concerns about rkey management, revocation, and isolation (e.g., SR-IOV, protection domains). How are rkeys rotated/revoked, pages zeroized, and accesses audited in multi-tenant/public cloud settings?
- Authentication and authorization for memory sharing: The paper assumes intra-cluster trust. What identity, policy, and billing controls are needed to restrict who can access whose memory across organizational boundaries?
- Failure handling beyond basics: Orphaned pages after victor crashes are not reclaimed; there is no lease/heartbeat–based GC. How are orphans detected and cleaned up, and how are remote items invalidated on donor/victor failure or RDMA disconnect?
- Robustness under high churn: The system’s behavior under frequent tenant arrivals/departures and workload spikes is not evaluated. How does MTC behave with many concurrent reallocations and frequent victors in large clusters?
- Cost-benefit and TCO analysis: Network and NIC utilization due to remote GETs/SETs is not quantified. Under what workload/network conditions do utilization and miss-rate gains outweigh added bandwidth, CPU (polling), and RDMA management costs?
- Impact on application-level SLOs: Evaluation focuses on median/p99 latencies and microbenchmarks. What are p99.9, p99.99 impacts under mixed read/write workloads, larger objects, and real production traces, especially near saturation?
- Generality beyond Memcached: Portability to Redis, RocksDB block caches, JVM heaps, or other allocators is not demonstrated. What changes are required for different memory managers and data structures, and how do MRC/MU and remote-page abstractions translate?
- Interaction with orchestrators: How does MemExchange integrate with cluster schedulers (e.g., Kubernetes) and autoscalers? Can placement decisions and MemExchange cooperate to reduce cross-rack RDMA and improve locality?
- Purchased capacity and fairness: Tenants may exceed purchased memory temporarily. What policies ensure fairness, preemption priority, and billing/incentives (e.g., price-per-hit) so overuse does not disadvantage others?
- Security/compliance constraints: Cross-host memory sharing may conflict with data residency/compliance requirements. How can encryption-in-transit for RDMA (e.g., IPsec for RoCE) and auditability be integrated without losing performance?
- Membership and discovery: The paper does not specify how trackers discover each other or maintain a consistent cluster view. How are joins/leaves detected, and how are split-brain scenarios resolved without a central registry?
- NUMA and local memory placement: The impact of NUMA locality on victim page selection and local eviction is not evaluated. Can NUMA-aware policies reduce latency and CPU cache penalties?
- Interaction with hypervisor/container features: Effects of huge pages, THP, KSM, ballooning, cgroups, and SR-IOV are not addressed. How do these influence pinned memory availability and isolation?
- Evaluation breadth: Results up to 100 CloudLab nodes and specific workloads may not reflect production diversity. How does the system perform on longer runs, with real traces, across multi-rack/fabric-scale deployments, and under induced failures?
- Comparison breadth: Memtrade is omitted due to unavailability; comparisons focus on MemSweeper and Infiniswap. How does MemExchange compare against brokered memory markets and CXL-based disaggregation in identical environments?
- Remote-page layout and fragmentation: Mapping Memcached slabs to remote pages may introduce fragmentation across classes. What is the fragmentation overhead and how can remote memory compaction be handled?
- Monitoring and observability: There is no discussion of operator-facing metrics for MU accuracy, reallocation rates, orphan pages, RDMA errors, and congestion. What telemetry is required to safely operate MemExchange at scale?
Practical Applications
Overview
Below are actionable, real-world applications derived from the paper’s findings, methods, and innovations. Each item identifies the sector(s), what can be built or adopted, and the key assumptions or dependencies that affect feasibility. Applications are grouped into Immediate Applications (deployable now) and Long-Term Applications (requiring further development, scale-up, or ecosystem changes).
Immediate Applications
- Software/Cloud: Elastic cache memory pools for managed services
- Use case: Cloud providers (e.g., AWS, Azure, GCP) integrate MemExchange into Memcached/Redis-based “Cache-as-a-Service” offerings to right-size tenant memory across clusters, reducing miss rates and improving utilization.
- Tools/products/workflows: A Tracker daemon per node; RDMA-enabled NICs; MTC protocol for decentralized coordination; MemExchange-integrated Memcached; cluster dashboards exposing marginal-utility (MU) scores and memory trading events; policy knobs for SLO-aware prioritization.
- Assumptions/dependencies: RDMA-capable infrastructure (RoCE/iWARP), OFED drivers, registered memory management; tenant isolation via page clearing and rkeys; workloads tolerant of ~9 µs added latency per remote GET; shadow-queue MRC approximations hold under production traffic mixes.
- Web-scale platforms: Overflow remote memory to protect hit rates during traffic spikes
- Use case: E-commerce, social networks, streaming, ad-tech microservices protect cache hit rates under diurnal or event-driven spikes by borrowing remote memory from underutilized nodes.
- Tools/products/workflows: Kubernetes operator that deploys Trackers as a DaemonSet; RDMA CNI and fabric readiness checks; per-tenant MU telemetry feeding autoscaling policies; SRE runbooks for page trading during peak events.
- Assumptions/dependencies: Stable RDMA transport with low tail latency; coherent slab-class management across tenants; object sizes within tested ranges (e.g., 80–650 bytes) or validated for larger payloads.
- Databases and data platforms: Front-end cache tiers with dynamic cluster-wide right-sizing
- Use case: MySQL/PostgreSQL/NoSQL front caches reduce backend misses (10 ms) by using remote memory as transparent overflow; improved tail latency for read-heavy workloads.
- Tools/products/workflows: MemExchange-enabled Memcached sidecars in data services; MU-driven policies for right-sizing per-schema or per-service caches; health checks integrated with query latency SLIs.
- Assumptions/dependencies: Consistent hashing or sharding unaffected by page-level trading; RDMA connection pooling; acceptable CPU overhead from MU computation and shadow queues.
- AI/ML: Low-latency memory trading for inference caches
- Use case: LLM token/embedding caches and feature stores maintain high hit rates by borrowing memory from neighboring nodes without central brokers.
- Tools/products/workflows: RDMA-enabled inference clusters; MemExchange-integrated key-value cache for model-serving layers; MU-exposed metrics tied to model SLOs (p95/p99 latency).
- Assumptions/dependencies: Inference pipelines tolerate occasional remote reads; model-serving nodes equipped with RDMA NICs; policy for eviction excludes hot local objects as designed.
- FinOps/Cost optimization: Memory utilization and rightsizing governance
- Use case: Reduce over-provisioning and improve cluster-level memory utilization (e.g., +13% at rack scale) with automated trading; lower cloud spend or raise density.
- Tools/products/workflows: MU dashboards; cost-aware policies (e.g., cap temporary exceedance of purchased capacity); audit logs of page trades; budgeting tied to hit-rate improvements.
- Assumptions/dependencies: Organizational acceptance of dynamic quota exceedance; fairness constraints across tenants; governance for rollback when miss rates deteriorate.
- Multi-tenant PaaS: Fair memory sharing among co-located tenants
- Use case: Hosted platforms dynamically reassign memory pages based on per-tenant marginal utility, minimizing performance impact on donors.
- Tools/products/workflows: Tenant-level SLAs encoded in MU scoring; locality-aware victim selection to reduce RDMA overhead; per-tenant isolation via rkey permissions.
- Assumptions/dependencies: Strong page sanitization; UDP-based MTC reliability via timeouts/retries; regulators/customers accept logical pooling with strict isolation.
- Edge and CDN caches: Regional memory pooling
- Use case: Edge clusters and CDNs redistribute idle memory across nodes to sustain hit rates under locality shifts without costly reprovisioning.
- Tools/products/workflows: Lightweight Trackers on edge nodes; RDMA over converged Ethernet (RoCEv2); MU-triggered trading tuned for proximity to minimize RTT impact.
- Assumptions/dependencies: Edge networks support RDMA; variability in access patterns still yields usable MRC/MU signals; operational tolerance for remote GET latencies.
- Academia/Education: Systems labs and research prototypes
- Use case: Teaching modern cache management, RDMA one-sided operations, decentralized coordination; research on utility-aware resource sharing.
- Tools/products/workflows: Course modules with MemExchange; reproducible experiments on CloudLab; extensions to MRC estimation and MU algorithms.
- Assumptions/dependencies: Availability of compatible hardware testbeds (e.g., CloudLab); instructor familiarity with RDMA and Memcached internals.
- Operations/SRE: Failure-tolerant cache deployments
- Use case: Deploy MemExchange’s fully distributed tracker architecture to avoid single points of failure; graceful degradation to local-only caching on tracker/tenant crashes.
- Tools/products/workflows: Runbooks for tracker failures; alarms on orphaned remote pages; safe recovery without centralized brokers.
- Assumptions/dependencies: Proper timeout and retry parameters; monitoring of RDMA connections; policies for reclamation of orphaned pages.
Long-Term Applications
- Software/Cloud: Cross-tenant memory marketplaces with pricing and SLAs
- Use case: A market-driven memory trading service (akin to spot markets) where tenants bid for pages based on price-per-hit improvements derived from MU/MRC estimates.
- Tools/products/workflows: Brokerless or federated marketplaces; policy engines for fairness/compliance; billing integrations; dynamic price models.
- Assumptions/dependencies: Standardized MU/MRC reporting; customer consent for cross-tenant sharing; robust isolation (regulatory-grade data handling).
- Disaggregated memory: Integration with CXL and composable infrastructures
- Use case: Extend MemExchange to CXL memory pools for rack-scale disaggregation; more granular and higher-bandwidth remote memory tiers.
- Tools/products/workflows: CXL-aware trackers; hybrid RDMA/CXL access layers; page trading across memory sleds; unified abstractions for remote regions.
- Assumptions/dependencies: CXL deployment maturity; OS/driver support; security and QoS for shared memory fabrics.
- Broad cache ecosystem support: Redis, JVM caches, CDN-specific caches
- Use case: Port the MU/MRC and MTC protocol to Redis, segment caches (e.g., Segcache/LHD), JVM heaps (e.g., off-heap caches), and CDN caches.
- Tools/products/workflows: Language/runtime bindings (C/C++/Java); plugin APIs for cache engines; per-engine eviction and remote-item semantics.
- Assumptions/dependencies: Engine-specific threading/IO models; correctness under concurrent RDMA; robust remote-value representation.
- Generalized resource exchange: CPU, GPU memory, NVMe/PMem tiers
- Use case: Extend marginal-utility–driven allocation to other resources (GPU RAM for inference/training; NVMe/PMem for tiered caches) in a unified trading framework.
- Tools/products/workflows: Multi-resource MU scoring; cross-resource utility comparators; device-specific remote-access primitives (GPUDirect RDMA, SPDK).
- Assumptions/dependencies: Reliable low-latency interconnects; accurate utility models across heterogeneous resources; strong isolation and scheduling policies.
- Cloud-native orchestration: Kubernetes-native memory trading operator
- Use case: A K8s operator that manages MemExchange trackers, RDMA setup, MU telemetry, and tenant policies, integrating with HPA/VPA and service meshes.
- Tools/products/workflows: CRDs for cache tenants; RDMA-ready CNI; Prometheus/Grafana MU metrics; reconciliation loops for page trades.
- Assumptions/dependencies: Cluster RDMA readiness; coordination with autoscalers; security context for memory registration and rkey distribution.
- SLO-aware policy and governance: Standards for dynamic resource pooling
- Use case: Industry-wide guidelines for safe multi-tenant dynamic memory sharing, isolation guarantees, auditability, and SLO-based fairness.
- Tools/products/workflows: Best-practice documents; compliance frameworks; certification for RDMA-based pooling deployments.
- Assumptions/dependencies: Agreement among cloud providers and regulators; tooling for verifiable isolation and audit logs; customer transparency.
- Energy and sustainability: Green datacenter optimization via higher memory utilization
- Use case: Tie MU-driven memory pooling to energy-reduction goals—defer server spin-ups, increase consolidation, and reduce stranded capacity.
- Tools/products/workflows: Energy-aware MU policies; sustainability dashboards; integration with power management and workload placement systems.
- Assumptions/dependencies: Accurate correlation between memory utilization and energy savings; cooperation with schedulers; guardrails to prevent performance regressions.
- Robustness and security hardening: Formal isolation and recovery mechanisms
- Use case: Advanced page sanitization, formal verification of isolation, automated reclamation of orphaned pages, and intrusion detection for RDMA misuse.
- Tools/products/workflows: Verified memory-clearing routines; rkey lifecycle management; anomaly detection on RDMA verbs; automated orphan reclamation.
- Assumptions/dependencies: Investment in security engineering; standardized RDMA telemetry; acceptance of overheads for stronger assurances.
- Wider network compatibility: Operation without specialized RDMA NICs
- Use case: Optimize RXE (software RDMA) or QUIC-based remote memory paths to approach RDMA-like performance for environments lacking RDMA hardware.
- Tools/products/workflows: Kernel/user-space accelerations; zero-copy paths; adaptive transport selection per path.
- Assumptions/dependencies: Continued improvements in software transports; careful tail-latency management; validation under diverse workloads.
These applications leverage the paper’s core advances—utility-aware, cluster-wide dynamic memory redistribution; one-sided RDMA for low-latency remote memory; and fully distributed coordination via MTC—to realize tangible efficiency, performance, and resiliency gains across sectors.
Glossary
- AVL trees: A self-balancing binary search tree that maintains height balance to ensure logarithmic-time operations. "balanced search tree techniques (e.g., AVL trees) used to track reuse distance and compute marginal benefit in MemExchange"
- Ballooning (hypervisor-level): A virtualization technique where the hypervisor reclaims or returns memory from/to guest VMs to manage host memory pressure. "Hypervisor-level ballooning approaches~\cite{waldspurger2002memory, fuerst2022memory} reclaim memory within a single host"
- Binary protocol (Memcached binary protocol): A fixed-format network protocol for Memcached requests/responses, used instead of the text protocol for efficiency. "TCP (remote instance accessed via the Memcached binary protocol)"
- CloudLab: An academic, at-scale testbed for cloud systems experimentation. "deployments of up to 100 CloudLab servers"
- Completion Queue (CQ): An RDMA structure where completion notifications for verbs are posted. "completion events are reported via a Completion Queue (CQ)"
- CXL (Compute Express Link): A high-speed, cache-coherent interconnect standard that enables memory expansion/disaggregation. "High-speed interconnects such as RDMA and CXL~\cite{CXL:xxx, li2023pond} make such architectures feasible."
- FaRM: A distributed shared-memory platform that uses RDMA for high-performance access to remote objects. "FaRM~\cite{dragojevic2014farm} provides a distributed memory platform in which applications share a cluster-wide address space."
- INFINISWAP: A system that uses RDMA to swap memory pages to remote idle machines instead of local disk. "INFINISWAP~\cite{gu2017efficient} uses RDMA to swap memory pages to remote idle nodes instead of local disk."
- lkey/rkey: Local and remote keys that authorize RDMA NIC access to registered memory regions. "producing a Memory Region (MR) and associated lkey and rkey."
- LookAhead algorithm: A utility-driven allocation algorithm that predicts benefit from additional resources to guide allocation. "The concept of Marginal Utility (MU) and the LookAhead algorithm were introduced in \cite{qureshi2006utility}"
- Marginal Utility (MU): A metric estimating the expected improvement (e.g., hit-rate gain) per additional unit of memory. "Marginal Utility (MU)~\cite{qureshi2006utility}. MU quantifies the expected hit-rate improvement per additional page of memory."
- Memory disaggregation: Decoupling memory from compute into a shared pool accessible over the network. "Memory disaggregation decouples memory from compute nodes and pools it into a network-accessible resource shared across tenants."
- Memory harvesting: Techniques that reclaim unused memory from producers and reallocate it to consumers to improve utilization. "Memory harvesting mechanisms reclaim unused memory from one application, VM, or server and reallocate it to others"
- Memory pinning: Preventing memory from being swapped or moved by the OS, often required for RDMA access. "Because RDMA registration pins the memory region, the operating system cannot swap it out"
- Memory Region (MR): An RDMA-registered memory segment that can be accessed via RDMA verbs. "producing a Memory Region (MR) and associated lkey and rkey."
- MemExchange Tracker Communication (MTC) protocol: The paper’s application-layer protocol for decentralized memory reallocation and RDMA setup. "we design the MemExchange Tracker Communication (MTC) protocol, an application-layer mechanism that coordinates memory reallocation and enables one-sided RDMA operations without involving remote CPUs."
- Miss Ratio Curves (MRCs): Curves that relate cache size to miss rate, used to guide resizing decisions. "Miss Ratio Curves (MRCs) characterize the relationship between cache size and miss rate"
- One-sided RDMA operations: RDMA verbs (READ/WRITE) that access remote memory without involving the remote CPU. "one-sided RDMA operations without involving remote CPUs"
- Queue Pair (QP): The pair of RDMA queues (send/receive) that defines a communication endpoint. "Operations are issued through a Queue Pair (QP)"
- RDMA (Remote Direct Memory Access): A networking technology that enables direct memory-to-memory data transfer bypassing remote CPU/OS. "Remote Direct Memory Access (RDMA) enables direct memory-to-memory transfers between machines without involving the remote CPU or operating system."
- RDMA verbs: The programming interface (operations) for RDMA NICs, including one-sided and two-sided operations. "Applications interact with the specialized NIC using RDMA verbs, including one-sided operations such as RDMA_READ and RDMA_WRITE, and two-sided operations such as Send/Receive."
- Reuse distance: The number of unique accesses between two references to the same item; used in constructing MRCs. "Traditional MRC construction relies on stack distance or reuse distance analysis"
- RXE (Software RDMA over Converged Ethernet): A software implementation of RDMA functionality over standard Ethernet. "RXE (Software RDMA over Converged Ethernet)~\cite{man7:rxe}"
- Segmented LRU: An LRU cache partitioned into segments (e.g., hot/warm/cold) to better manage item aging and eviction. "Each slab class maintains a segmented LRU (hot, warm, and cold)."
- Service Level Objectives (SLOs): Targeted performance/availability goals that guide resource provisioning. "tenants are allocated memory based on peak demand to satisfy Service Level Objectives (SLOs)"
- Shadow queues: Lightweight structures that keep metadata of recently evicted items to estimate benefits of more memory. "MemExchange leverages shadow queues \cite{cidon2016cliffhanger, seyri2019dynamically} to approximate MRCs online with minimal overhead."
- Slab allocator: A memory allocator that partitions memory into fixed-size slabs for objects of a given size class. "Memcached~\cite{Mem:xxx} uses a slab-based allocator that divides memory into fixed-size \SI{1}{MB} pages"
- Slab class: A grouping in slab allocation for items of similar size, each with its own pages and chunks. "each assigned to a slab class for a predefined item size."
- Stack distance: A metric of how many distinct items are accessed between two references to the same item; used for MRCs. "Traditional MRC construction relies on stack distance or reuse distance analysis"
- Victor/Victim: Roles in reallocation where a victor requests/receives memory and a victim relinquishes memory. "To identify victors (tenants seeking memory) and victims (tenants that can relinquish memory)"
- Zipfian: A skewed probability distribution where a few items are very popular; common in cache workloads. "a skewed (Zipfian) trace with heterogeneous object sizes (80â440 bytes)"