Memcached Local Caches RDMA Memory Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Memcached systems face inefficiencies due to CPU limitations, leading to poor memory bandwidth usage, scalability issues, and high power consumption, especially in large web applications where multiple servers are needed to handle requests, resulting in suboptimal performance and power efficiency.
Innovation Solution
Implementing a memcached system with local caches that map physical memory addresses into the address space, allowing client devices to perform RDMA operations directly, reducing server-side processor involvement and enabling more efficient memory utilization and scalability by using local caches for hit detection and stale value management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If multiple memcached servers are deployed to handle large web applications, then the total memory capacity and request handling capability increase, but the memory bandwidth usage efficiency deteriorates and power consumption increases
Solution Approach 1:
The invention segments the memcached system into client-side local caches and server-side remote caches. Clients maintain local cache memory that stores frequently accessed data locally, eliminating the need to fetch all data from remote servers. This segmentation allows each server to handle fewer requests while maintaining high overall system capacity, thus improving memory bandwidth efficiency.
Solution Approach 2:
The invention adds a new dimension to the caching architecture by implementing client-side caching alongside server-side caching. This creates a two-level cache hierarchy (local client cache + remote server cache) that operates in parallel, allowing the system to scale memory capacity without proportionally increasing network traffic and server processing load.
2Productivity
If multiple memcached servers are deployed to achieve load balance, then the request handling capability increases, but the scalability and power efficiency deteriorate due to heavy CPU involvement
Solution Approach 1:
The invention extracts the caching functionality from the server side and places it at the client side. By taking out the local cache management responsibility from servers and assigning it to clients, the system reduces CPU involvement on servers while maintaining request handling capability. This extraction eliminates redundant data fetching and processing on server CPUs.
Solution Approach 2:
The invention implements self-service by enabling clients to manage their own local caches autonomously. Clients independently determine what data to cache locally, when to evict data, and how to access cached data, without requiring server CPU intervention for each cache operation. This self-service approach dramatically reduces server power consumption while maintaining productivity.
3Adaptability or versatility
If random access patterns are used in memcached, then the flexibility and adaptability increase, but the CPU caching effectiveness deteriorates due to wasted cycles and power
Solution Approach 1:
The invention applies preliminary action by pre-caching data at the client side before it is actually needed. Clients proactively cache data based on access patterns and predictions, so when random access requests occur, the data is already available locally. This preliminary caching action eliminates the need for CPU-intensive operations during actual access, maintaining flexibility while improving power efficiency.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Apparatuses, methods and storage medium associated with a memcached system are disclosed herewith. In embodiments, a client device of the memcached system may include memory and one or more processors coupled with the memory. Further, the client device may include memcached logic configured to receive a request to Get or Set a value corresponding to a key in the memcached system, determine, in response to the receive, whether the key results in a hit in a local cache maintained in memory by the memcached logic, and service the Get or Set request based at least in part on whether a result of the determine indicates the key results in a hit in the local cache. In embodiments, a server of the memcached system may include complement memcached logic to server a Get, Set or an Update request. Other embodiments may be described and/or claimed.